59 lines
1.7 KiB
GDScript
59 lines
1.7 KiB
GDScript
## MainMenu - Main menu scene with navigation to avatar customization.
|
|
##
|
|
## Provides buttons for:
|
|
## - Customize Avatar (opens avatar customization UI)
|
|
## - Play
|
|
## - Quit
|
|
|
|
extends Control
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# UI References
|
|
# ---------------------------------------------------------------------------
|
|
|
|
@onready var customize_button: Button = $CenterContainer/VBoxContainer/CustomizeButton
|
|
@onready var play_button: Button = $CenterContainer/VBoxContainer/PlayButton
|
|
@onready var quit_button: Button = $CenterContainer/VBoxContainer/QuitButton
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Signals
|
|
# ---------------------------------------------------------------------------
|
|
|
|
## Emitted when the player requests to customize their avatar.
|
|
signal open_customization
|
|
|
|
## Emitted when the player requests to start the game.
|
|
signal start_game
|
|
|
|
## Emitted when the player requests to quit.
|
|
signal quit_requested
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Lifecycle
|
|
# ---------------------------------------------------------------------------
|
|
|
|
func _ready() -> void:
|
|
customize_button.pressed.connect(_on_customize_pressed)
|
|
play_button.pressed.connect(_on_play_pressed)
|
|
quit_button.pressed.connect(_on_quit_pressed)
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Button Handlers
|
|
# ---------------------------------------------------------------------------
|
|
|
|
func _on_customize_pressed() -> void:
|
|
open_customization.emit()
|
|
|
|
|
|
func _on_play_pressed() -> void:
|
|
start_game.emit()
|
|
|
|
|
|
func _on_quit_pressed() -> void:
|
|
quit_requested.emit()
|
|
get_tree().quit()
|