feat: Implement powerup inventory UI, settings menu, and foundational managers for input and game settings.
This commit is contained in:
+33
-17
@@ -60,6 +60,20 @@ func _ready():
|
||||
|
||||
# Setup global multiplayer spawners (Stands, etc.)
|
||||
_setup_multiplayer_spawners()
|
||||
|
||||
# Connect HUD Settings button to pause menu toggle
|
||||
var hud_settings = get_node_or_null("TouchControls/TouchControls/SettingsBtn")
|
||||
if hud_settings:
|
||||
if hud_settings.pressed.is_connected(_toggle_pause_menu):
|
||||
hud_settings.pressed.disconnect(_toggle_pause_menu)
|
||||
hud_settings.pressed.connect(_toggle_pause_menu)
|
||||
|
||||
# Programmatically connect Pause Menu Settings button to ensure it works
|
||||
var pause_settings = get_node_or_null("PauseMenu/Panel/VBox/SettingsBtn")
|
||||
if pause_settings:
|
||||
if pause_settings.pressed.is_connected(_on_settings_pressed):
|
||||
pause_settings.pressed.disconnect(_on_settings_pressed)
|
||||
pause_settings.pressed.connect(_on_settings_pressed)
|
||||
|
||||
func _setup_multiplayer_spawners():
|
||||
# Setup MultiplayerSpawner for Static Tekton Stands
|
||||
@@ -2317,24 +2331,26 @@ func _on_how_to_play_back_pressed():
|
||||
|
||||
func _on_settings_pressed():
|
||||
var pause_menu = get_node_or_null("PauseMenu")
|
||||
var settings_panel = get_node_or_null("SettingsPanel")
|
||||
if pause_menu:
|
||||
pause_menu.visible = false
|
||||
if settings_panel:
|
||||
settings_panel.visible = true
|
||||
|
||||
# Sync settings UI with current state
|
||||
var joystick_toggle = settings_panel.get_node_or_null("Panel/VBox/JoystickToggle")
|
||||
if joystick_toggle and touch_controls:
|
||||
joystick_toggle.set_pressed_no_signal(touch_controls.joystick_enabled)
|
||||
var settings_menu = get_node_or_null("SettingsMenu")
|
||||
if not settings_menu:
|
||||
var scene = load("res://scenes/ui/settings_menu.tscn")
|
||||
if scene:
|
||||
settings_menu = scene.instantiate()
|
||||
settings_menu.name = "SettingsMenu"
|
||||
add_child(settings_menu)
|
||||
|
||||
var size_slider = settings_panel.get_node_or_null("Panel/VBox/ButtonSizeRow/ButtonSizeSlider")
|
||||
if size_slider and touch_controls:
|
||||
size_slider.set_value_no_signal(touch_controls.button_size)
|
||||
|
||||
var opacity_slider = settings_panel.get_node_or_null("Panel/VBox/OpacityRow/OpacitySlider")
|
||||
if opacity_slider and touch_controls:
|
||||
opacity_slider.set_value_no_signal(touch_controls.button_opacity)
|
||||
# Connect close button
|
||||
var close_btn = settings_menu.get_node_or_null("PanelContainer/VBoxContainer/Header/CloseButton")
|
||||
if close_btn:
|
||||
if close_btn.pressed.is_connected(_on_settings_back_pressed):
|
||||
close_btn.pressed.disconnect(_on_settings_back_pressed)
|
||||
close_btn.pressed.connect(_on_settings_back_pressed)
|
||||
|
||||
if settings_menu:
|
||||
settings_menu.open()
|
||||
|
||||
func _on_quit_match_pressed():
|
||||
get_tree().paused = false # Ensure unpaused when returning to menu
|
||||
@@ -2345,9 +2361,9 @@ func _on_quit_match_pressed():
|
||||
|
||||
func _on_settings_back_pressed():
|
||||
var pause_menu = get_node_or_null("PauseMenu")
|
||||
var settings_panel = get_node_or_null("SettingsPanel")
|
||||
if settings_panel:
|
||||
settings_panel.visible = false
|
||||
var settings_menu = get_node_or_null("SettingsMenu")
|
||||
if settings_menu:
|
||||
settings_menu.visible = false
|
||||
if pause_menu:
|
||||
pause_menu.visible = true
|
||||
|
||||
|
||||
Reference in New Issue
Block a user