Files
modbison/scripts/main_menu.gd
T

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()