- 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>
27 lines
835 B
GDScript
27 lines
835 B
GDScript
## HUD — heads-up display with back button, music toggle, and settings access.
|
|
class_name HUD extends CanvasLayer
|
|
|
|
const MUSIC_ON_SYMBOL: String = "♪"
|
|
const MUSIC_OFF_SYMBOL: String = "✕"
|
|
|
|
var _music_enabled: bool = true
|
|
@onready var _settings_menu: SettingsMenu = get_node_or_null("../SettingsMenu") as SettingsMenu
|
|
|
|
|
|
func _on_back_button_pressed() -> void:
|
|
get_tree().quit()
|
|
|
|
|
|
func _on_music_toggle_pressed() -> void:
|
|
_music_enabled = not _music_enabled
|
|
var volume: float = AudioManager.DEFAULT_MUSIC_VOLUME if _music_enabled else 0.0
|
|
AudioManager.set_music_volume(volume)
|
|
var btn: Button = get_node_or_null("MusicToggle") as Button
|
|
if btn != null:
|
|
btn.text = MUSIC_ON_SYMBOL if _music_enabled else MUSIC_OFF_SYMBOL
|
|
|
|
|
|
func _on_settings_button_pressed() -> void:
|
|
if _settings_menu != null:
|
|
_settings_menu.show_menu()
|