Feat/12 add effects and better animations to fpv #17

Merged
Dotts merged 14 commits from feat/12-add-effects-and-better-animations-to-fpv into main 2026-06-11 19:35:34 -07:00
5 changed files with 86 additions and 0 deletions
Showing only changes of commit 5e4507ab24 - Show all commits
+23
View File
@@ -13,6 +13,7 @@ var _dash_icon: TextureRect
var _grapple_label: Label var _grapple_label: Label
var _dash_label: Label var _dash_label: Label
var _fps_label: Label var _fps_label: Label
var _standalone_speed_label: Label
var _player: CharacterBody3D var _player: CharacterBody3D
var _debug_ui_panel: PanelContainer var _debug_ui_panel: PanelContainer
@@ -489,6 +490,17 @@ func _build_hud() -> void:
_fps_label.position = Vector2(12, 12) _fps_label.position = Vector2(12, 12)
canvas.add_child(_fps_label) canvas.add_child(_fps_label)
_standalone_speed_label = Label.new()
_standalone_speed_label.name = "StandaloneSpeedLabel"
_standalone_speed_label.text = "Speed: 0.0 m/s"
_standalone_speed_label.add_theme_font_size_override("font_size", 24)
_standalone_speed_label.add_theme_color_override("font_color", Color(0.3, 1.0, 0.5))
_standalone_speed_label.add_theme_color_override("font_outline_color", Color(0, 0, 0))
_standalone_speed_label.add_theme_constant_override("outline_size", 4)
_standalone_speed_label.set_anchors_preset(Control.PRESET_TOP_LEFT)
_standalone_speed_label.position = Vector2(12, 45)
canvas.add_child(_standalone_speed_label)
_debug_ui_panel = PanelContainer.new() _debug_ui_panel = PanelContainer.new()
_debug_ui_panel.name = "InfoPanel" _debug_ui_panel.name = "InfoPanel"
_debug_ui_panel.offset_left = 12 _debug_ui_panel.offset_left = 12
@@ -664,6 +676,17 @@ func _process(_delta: float) -> void:
if _speed_label: if _speed_label:
_speed_label.text = "Speed: %.1f m/s (total: %.1f)" % [hspeed, total_speed] _speed_label.text = "Speed: %.1f m/s (total: %.1f)" % [hspeed, total_speed]
if _standalone_speed_label:
if SettingsManager.show_movement_speed and not SettingsManager.show_debug_ui:
_standalone_speed_label.visible = true
_standalone_speed_label.text = "Speed: %.1f m/s" % hspeed
if _fps_label and _fps_label.visible:
_standalone_speed_label.position = Vector2(12, 45)
else:
_standalone_speed_label.position = Vector2(12, 12)
else:
_standalone_speed_label.visible = false
if _state_label: if _state_label:
var sm = _player.get_node_or_null("MovementStateMachine") var sm = _player.get_node_or_null("MovementStateMachine")
if sm: if sm:
+3
View File
@@ -27,6 +27,7 @@ var default_bindings = {
var current_bindings = {} var current_bindings = {}
var show_debug_ui: bool = false var show_debug_ui: bool = false
var show_movement_speed: bool = false
var username: String = "Player" var username: String = "Player"
var mouse_sensitivity: float = 0.002 var mouse_sensitivity: float = 0.002
var ads_sensitivity: float = 0.001 var ads_sensitivity: float = 0.001
@@ -134,6 +135,7 @@ func _save_settings() -> void:
var save_data = { var save_data = {
"bindings": current_bindings, "bindings": current_bindings,
"show_debug_ui": show_debug_ui, "show_debug_ui": show_debug_ui,
"show_movement_speed": show_movement_speed,
"username": username, "username": username,
"mouse_sensitivity": mouse_sensitivity, "mouse_sensitivity": mouse_sensitivity,
"ads_sensitivity": ads_sensitivity, "ads_sensitivity": ads_sensitivity,
@@ -172,6 +174,7 @@ func _load_settings() -> void:
current_bindings[action] = loaded_bindings[action] current_bindings[action] = loaded_bindings[action]
if data.has("username"): username = data["username"] if data.has("username"): username = data["username"]
if data.has("show_debug_ui"): show_debug_ui = data["show_debug_ui"] if data.has("show_debug_ui"): show_debug_ui = data["show_debug_ui"]
if data.has("show_movement_speed"): show_movement_speed = data["show_movement_speed"]
if data.has("mouse_sensitivity"): mouse_sensitivity = data["mouse_sensitivity"] if data.has("mouse_sensitivity"): mouse_sensitivity = data["mouse_sensitivity"]
if data.has("ads_sensitivity"): ads_sensitivity = data["ads_sensitivity"] if data.has("ads_sensitivity"): ads_sensitivity = data["ads_sensitivity"]
if data.has("world_fov"): world_fov = data["world_fov"] if data.has("world_fov"): world_fov = data["world_fov"]
+23
View File
@@ -10,6 +10,7 @@ var _dash_icon: TextureRect
var _grapple_label: Label var _grapple_label: Label
var _dash_label: Label var _dash_label: Label
var _fps_label: Label var _fps_label: Label
var _standalone_speed_label: Label
var _player: CharacterBody3D var _player: CharacterBody3D
var _debug_ui_panel: PanelContainer var _debug_ui_panel: PanelContainer
@@ -283,6 +284,17 @@ func _build_hud() -> void:
_fps_label.position = Vector2(12, 12) _fps_label.position = Vector2(12, 12)
canvas.add_child(_fps_label) canvas.add_child(_fps_label)
_standalone_speed_label = Label.new()
_standalone_speed_label.name = "StandaloneSpeedLabel"
_standalone_speed_label.text = "Speed: 0.0 m/s"
_standalone_speed_label.add_theme_font_size_override("font_size", 24)
_standalone_speed_label.add_theme_color_override("font_color", Color(0.3, 1.0, 0.5))
_standalone_speed_label.add_theme_color_override("font_outline_color", Color(0, 0, 0))
_standalone_speed_label.add_theme_constant_override("outline_size", 4)
_standalone_speed_label.set_anchors_preset(Control.PRESET_TOP_LEFT)
_standalone_speed_label.position = Vector2(12, 45)
canvas.add_child(_standalone_speed_label)
_debug_ui_panel = PanelContainer.new() _debug_ui_panel = PanelContainer.new()
_debug_ui_panel.name = "InfoPanel" _debug_ui_panel.name = "InfoPanel"
_debug_ui_panel.offset_left = 12 _debug_ui_panel.offset_left = 12
@@ -443,6 +455,17 @@ func _process(_delta: float) -> void:
if _speed_label: if _speed_label:
_speed_label.text = "Speed: %.1f m/s (total: %.1f)" % [hspeed, total_speed] _speed_label.text = "Speed: %.1f m/s (total: %.1f)" % [hspeed, total_speed]
if _standalone_speed_label:
if SettingsManager.show_movement_speed and not SettingsManager.show_debug_ui:
_standalone_speed_label.visible = true
_standalone_speed_label.text = "Speed: %.1f m/s" % hspeed
if _fps_label and _fps_label.visible:
_standalone_speed_label.position = Vector2(12, 45)
else:
_standalone_speed_label.position = Vector2(12, 12)
else:
_standalone_speed_label.visible = false
if _state_label: if _state_label:
var sm = _player.get_node_or_null("MovementStateMachine") var sm = _player.get_node_or_null("MovementStateMachine")
if sm: if sm:
@@ -10,6 +10,7 @@ var _dash_icon: TextureRect
var _grapple_label: Label var _grapple_label: Label
var _dash_label: Label var _dash_label: Label
var _fps_label: Label var _fps_label: Label
var _standalone_speed_label: Label
var _player: CharacterBody3D var _player: CharacterBody3D
var _debug_ui_panel: PanelContainer var _debug_ui_panel: PanelContainer
@@ -249,6 +250,17 @@ func _build_hud() -> void:
_fps_label.position = Vector2(12, 12) _fps_label.position = Vector2(12, 12)
canvas.add_child(_fps_label) canvas.add_child(_fps_label)
_standalone_speed_label = Label.new()
_standalone_speed_label.name = "StandaloneSpeedLabel"
_standalone_speed_label.text = "Speed: 0.0 m/s"
_standalone_speed_label.add_theme_font_size_override("font_size", 24)
_standalone_speed_label.add_theme_color_override("font_color", Color(0.3, 1.0, 0.5))
_standalone_speed_label.add_theme_color_override("font_outline_color", Color(0, 0, 0))
_standalone_speed_label.add_theme_constant_override("outline_size", 4)
_standalone_speed_label.set_anchors_preset(Control.PRESET_TOP_LEFT)
_standalone_speed_label.position = Vector2(12, 45)
canvas.add_child(_standalone_speed_label)
_debug_ui_panel = PanelContainer.new() _debug_ui_panel = PanelContainer.new()
_debug_ui_panel.name = "InfoPanel" _debug_ui_panel.name = "InfoPanel"
_debug_ui_panel.offset_left = 12 _debug_ui_panel.offset_left = 12
@@ -423,6 +435,17 @@ func _process(_delta: float) -> void:
if _speed_label: if _speed_label:
_speed_label.text = "Speed: %.1f m/s (total: %.1f)" % [hspeed, total_speed] _speed_label.text = "Speed: %.1f m/s (total: %.1f)" % [hspeed, total_speed]
if _standalone_speed_label:
if SettingsManager.show_movement_speed and not SettingsManager.show_debug_ui:
_standalone_speed_label.visible = true
_standalone_speed_label.text = "Speed: %.1f m/s" % hspeed
if _fps_label and _fps_label.visible:
_standalone_speed_label.position = Vector2(12, 45)
else:
_standalone_speed_label.position = Vector2(12, 12)
else:
_standalone_speed_label.visible = false
if _state_label: if _state_label:
var sm = _player.get_node_or_null("MovementStateMachine") var sm = _player.get_node_or_null("MovementStateMachine")
if sm: if sm:
+14
View File
@@ -37,6 +37,7 @@ var _resolution_opt: OptionButton
var _fps_slider: HSlider var _fps_slider: HSlider
var _fps_input: LineEdit var _fps_input: LineEdit
var _show_fps_checkbox: CheckButton var _show_fps_checkbox: CheckButton
var _show_movement_speed_checkbox: CheckButton
var _vol_master_slider: HSlider var _vol_master_slider: HSlider
var _vol_master_input: LineEdit var _vol_master_input: LineEdit
var _vol_sfx_slider: HSlider var _vol_sfx_slider: HSlider
@@ -622,6 +623,15 @@ func _build_ui() -> void:
) )
advanced_tab.add_child(_show_fps_checkbox) advanced_tab.add_child(_show_fps_checkbox)
_show_movement_speed_checkbox = CheckButton.new()
_show_movement_speed_checkbox.text = "Show Movement Speed Indicator"
_show_movement_speed_checkbox.button_pressed = SettingsManager.show_movement_speed
_show_movement_speed_checkbox.toggled.connect(func(toggled_on: bool):
SettingsManager.show_movement_speed = toggled_on
SettingsManager._save_settings()
)
advanced_tab.add_child(_show_movement_speed_checkbox)
var spacer_adv = Control.new() var spacer_adv = Control.new()
spacer_adv.size_flags_vertical = Control.SIZE_EXPAND_FILL spacer_adv.size_flags_vertical = Control.SIZE_EXPAND_FILL
advanced_tab.add_child(spacer_adv) advanced_tab.add_child(spacer_adv)
@@ -633,6 +643,8 @@ func _build_ui() -> void:
SettingsManager.show_debug_ui = false SettingsManager.show_debug_ui = false
_show_fps_checkbox.button_pressed = false _show_fps_checkbox.button_pressed = false
SettingsManager.show_fps = false SettingsManager.show_fps = false
_show_movement_speed_checkbox.button_pressed = false
SettingsManager.show_movement_speed = false
SettingsManager._save_settings() SettingsManager._save_settings()
) )
advanced_tab.add_child(reset_adv_btn) advanced_tab.add_child(reset_adv_btn)
@@ -784,6 +796,8 @@ func _show_settings() -> void:
_debug_ui_checkbox.button_pressed = SettingsManager.show_debug_ui _debug_ui_checkbox.button_pressed = SettingsManager.show_debug_ui
if _show_fps_checkbox: if _show_fps_checkbox:
_show_fps_checkbox.button_pressed = SettingsManager.show_fps _show_fps_checkbox.button_pressed = SettingsManager.show_fps
if _show_movement_speed_checkbox:
_show_movement_speed_checkbox.button_pressed = SettingsManager.show_movement_speed
if _world_fov_slider: if _world_fov_slider:
_world_fov_slider.value = SettingsManager.world_fov _world_fov_slider.value = SettingsManager.world_fov
_world_fov_input.text = str(round(SettingsManager.world_fov)) _world_fov_input.text = str(round(SettingsManager.world_fov))