- Fix SaveManager reset_game to use DirAccess.remove correctly - Add null check for FileAccess.open in save_game - Fix AudioManager crossfade tween callback chain - Replace fragile absolute HUD path with relative onready - Guard character position save against empty id - Add GameState.has_character_position helper - Emit room_changed signal after tween completes - Add target_floor validation in ElevatorButton - Persist audio settings via GameState - Add class_name to RoomNavigator, AudioManager, HUD Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
40 lines
843 B
GDScript
40 lines
843 B
GDScript
## SettingsMenu — overlay panel for audio volume and game reset.
|
|
class_name SettingsMenu extends CanvasLayer
|
|
|
|
|
|
func _ready() -> void:
|
|
visible = false
|
|
|
|
|
|
func show_menu() -> void:
|
|
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()
|