Files
Cozypaw-Hospital/scripts/systems/settings_menu.gd
Steven Wroblewski 2bb73c905c fix(ui): sync settings sliders to saved values when menu opens
show_menu() now calls set_value_no_signal() to reflect the current
GameState volume values without re-triggering value_changed handlers.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 13:28:57 +02:00

46 lines
1.1 KiB
GDScript

## SettingsMenu — overlay panel for audio volume and game reset.
class_name SettingsMenu extends CanvasLayer
func _ready() -> void:
visible = false
func show_menu() -> void:
var music_slider: HSlider = get_node_or_null("Panel/MusicSlider") as HSlider
var sfx_slider: HSlider = get_node_or_null("Panel/SfxSlider") as HSlider
if music_slider != null:
music_slider.set_value_no_signal(GameState.music_volume)
if sfx_slider != null:
sfx_slider.set_value_no_signal(GameState.sfx_volume)
visible = true
func hide_menu() -> void:
visible = false
func _on_music_slider_value_changed(value: float) -> void:
AudioManager.set_music_volume(value)
GameState.music_volume = value
func _on_sfx_slider_value_changed(value: float) -> void:
AudioManager.set_sfx_volume(value)
GameState.sfx_volume = value
func _on_reset_button_pressed() -> void:
var dialog: ConfirmationDialog = get_node_or_null("Panel/ResetConfirmDialog") as ConfirmationDialog
if dialog != null:
dialog.popup_centered()
func _on_reset_confirmed() -> void:
SaveManager.reset_game()
get_tree().reload_current_scene()
func _on_close_button_pressed() -> void:
hide_menu()