feat: added advanced settings for showing player movement debug and settings for mouse sensistivity

This commit is contained in:
DottsGit
2026-06-06 00:51:53 -04:00
parent 0c00f4c385
commit 33f5c7cb82
4 changed files with 147 additions and 26 deletions
+118 -8
View File
@@ -23,6 +23,9 @@ var editing_index: int = -1
# Settings UI
var settings_editor: Control
var settings_back_btn: Button
var _debug_ui_checkbox: CheckButton
var _mouse_sens_slider: HSlider
var _mouse_sens_input: LineEdit
var keybind_vbox: VBoxContainer
var rebind_overlay: ColorRect
var rebind_label: Label
@@ -209,19 +212,78 @@ func _build_ui() -> void:
gen_label.text = "Settings coming soon..."
general_tab.add_child(gen_label)
var spacer_gen = Control.new()
spacer_gen.size_flags_vertical = Control.SIZE_EXPAND_FILL
general_tab.add_child(spacer_gen)
var reset_gen_btn = Button.new()
reset_gen_btn.text = "Reset to Defaults"
reset_gen_btn.pressed.connect(func():
pass # No settings yet
)
general_tab.add_child(reset_gen_btn)
# Mouse Tab
var mouse_tab = VBoxContainer.new()
mouse_tab.name = "Mouse"
mouse_tab.add_theme_constant_override("separation", 10)
tab_container.add_child(mouse_tab)
var sens_hbox = HBoxContainer.new()
mouse_tab.add_child(sens_hbox)
var sens_title = Label.new()
sens_title.text = "Sensitivity"
sens_title.custom_minimum_size = Vector2(150, 0)
sens_hbox.add_child(sens_title)
_mouse_sens_slider = HSlider.new()
_mouse_sens_slider.min_value = 1.0
_mouse_sens_slider.max_value = 100.0
_mouse_sens_slider.step = 1.0
_mouse_sens_slider.value = SettingsManager.mouse_sensitivity * 10000.0
_mouse_sens_slider.custom_minimum_size = Vector2(200, 0)
_mouse_sens_slider.size_flags_vertical = Control.SIZE_SHRINK_CENTER
sens_hbox.add_child(_mouse_sens_slider)
_mouse_sens_input = LineEdit.new()
_mouse_sens_input.text = str(round(SettingsManager.mouse_sensitivity * 10000.0))
_mouse_sens_input.custom_minimum_size = Vector2(60, 0)
sens_hbox.add_child(_mouse_sens_input)
_mouse_sens_slider.value_changed.connect(func(value: float):
_mouse_sens_input.text = str(round(value))
SettingsManager.mouse_sensitivity = value / 10000.0
SettingsManager._save_settings()
)
_mouse_sens_input.text_submitted.connect(func(new_text: String):
var val = new_text.to_float()
val = clampf(val, 1.0, 100.0)
_mouse_sens_slider.value = val
_mouse_sens_input.text = str(round(val))
SettingsManager.mouse_sensitivity = val / 10000.0
SettingsManager._save_settings()
)
var spacer_mouse = Control.new()
spacer_mouse.size_flags_vertical = Control.SIZE_EXPAND_FILL
mouse_tab.add_child(spacer_mouse)
var reset_mouse_btn = Button.new()
reset_mouse_btn.text = "Reset to Defaults"
reset_mouse_btn.pressed.connect(func():
_mouse_sens_slider.value = 20.0
SettingsManager.mouse_sensitivity = 0.002
SettingsManager._save_settings()
)
mouse_tab.add_child(reset_mouse_btn)
# Keybindings Tab
var key_tab = VBoxContainer.new()
key_tab.name = "Keybindings"
tab_container.add_child(key_tab)
var reset_btn = Button.new()
reset_btn.text = "Reset to Defaults"
reset_btn.pressed.connect(func():
SettingsManager.reset_to_defaults()
_populate_keybindings()
)
key_tab.add_child(reset_btn)
var scroll = ScrollContainer.new()
scroll.size_flags_vertical = Control.SIZE_EXPAND_FILL
key_tab.add_child(scroll)
@@ -230,6 +292,47 @@ func _build_ui() -> void:
keybind_vbox.size_flags_horizontal = Control.SIZE_EXPAND_FILL
scroll.add_child(keybind_vbox)
var reset_key_btn = Button.new()
reset_key_btn.text = "Reset to Defaults"
reset_key_btn.pressed.connect(func():
SettingsManager.reset_to_defaults()
_populate_keybindings()
)
key_tab.add_child(reset_key_btn)
# Advanced Tab
var advanced_tab = VBoxContainer.new()
advanced_tab.name = "Advanced"
advanced_tab.add_theme_constant_override("separation", 10)
tab_container.add_child(advanced_tab)
var debug_label = Label.new()
debug_label.text = "--- Debug ---"
debug_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
advanced_tab.add_child(debug_label)
_debug_ui_checkbox = CheckButton.new()
_debug_ui_checkbox.text = "Show Debug UI (Speed, State, Buffs)"
_debug_ui_checkbox.button_pressed = SettingsManager.show_debug_ui
_debug_ui_checkbox.toggled.connect(func(toggled_on: bool):
SettingsManager.show_debug_ui = toggled_on
SettingsManager._save_settings()
)
advanced_tab.add_child(_debug_ui_checkbox)
var spacer_adv = Control.new()
spacer_adv.size_flags_vertical = Control.SIZE_EXPAND_FILL
advanced_tab.add_child(spacer_adv)
var reset_adv_btn = Button.new()
reset_adv_btn.text = "Reset to Defaults"
reset_adv_btn.pressed.connect(func():
_debug_ui_checkbox.button_pressed = false
SettingsManager.show_debug_ui = false
SettingsManager._save_settings()
)
advanced_tab.add_child(reset_adv_btn)
# Rebind Overlay
rebind_overlay = ColorRect.new()
rebind_overlay.color = Color(0, 0, 0, 0.85)
@@ -286,6 +389,13 @@ func _show_settings() -> void:
loadout_editor.visible = false
settings_editor.visible = true
_populate_keybindings()
if _debug_ui_checkbox:
_debug_ui_checkbox.button_pressed = SettingsManager.show_debug_ui
if _mouse_sens_slider:
var display_val = round(SettingsManager.mouse_sensitivity * 10000.0)
_mouse_sens_slider.value = display_val
if _mouse_sens_input:
_mouse_sens_input.text = str(display_val)
func _populate_keybindings() -> void:
for c in keybind_vbox.get_children():