feat: Implement core game systems including settings management, player input, and initial gameplay mechanics with associated UI.

This commit is contained in:
Yogi Wiguna
2026-03-12 10:35:26 +08:00
parent 4f6783b468
commit 93eda69ad6
10 changed files with 218 additions and 155 deletions
+16 -6
View File
@@ -105,16 +105,26 @@ func _connect_signals():
# Close
close_button.pressed.connect(func(): visible = false)
# Connect remapping buttons (exclude non-keybinds like use_controller)
# Connect remapping buttons
for action_name in SettingsManager.settings.controls.keys():
if action_name == "use_controller":
continue
var btn = get_node_or_null("%" + action_name.to_pascal_case() + "Btn")
if btn:
if btn.pressed.is_connected(_on_remap_button_pressed):
btn.pressed.disconnect(_on_remap_button_pressed)
btn.pressed.connect(_on_remap_button_pressed.bind(action_name))
# Check Primary Button
var primary_btn = get_node_or_null("%" + action_name.to_pascal_case() + "Btn")
if primary_btn:
if primary_btn.pressed.is_connected(_on_remap_button_pressed):
primary_btn.pressed.disconnect(_on_remap_button_pressed)
primary_btn.pressed.connect(_on_remap_button_pressed.bind(action_name))
# Check Alt Button
if not action_name.ends_with("_alt"):
var alt_action = action_name + "_alt"
var alt_btn = get_node_or_null("%" + action_name.to_pascal_case() + "AltBtn")
if alt_btn:
if alt_btn.pressed.is_connected(_on_remap_button_pressed):
alt_btn.pressed.disconnect(_on_remap_button_pressed)
alt_btn.pressed.connect(_on_remap_button_pressed.bind(alt_action))
func _on_video_setting_changed(_unused = false):
SettingsManager.settings.video.fullscreen = fullscreen_toggle.button_pressed