Files
Dawn-Godot/ui/mainmenu/MainMenu.gd
T

44 lines
1.3 KiB
GDScript

class_name MainMenu extends Control
@export var btnNewGame:Button
@export var btnSettings:Button
@export var btnQuit:Button
@export var settingsMenu:ClosableMenu
@export_file("*.tscn") var newGameScene:String
func _ready() -> void:
btnNewGame.pressed.connect(onNewGamePressed)
btnSettings.pressed.connect(onSettingsPressed)
btnQuit.pressed.connect(_onQuitPressed)
settingsMenu.opened.connect(_onSettingsOpened)
settingsMenu.closed.connect(_onSettingsClosed)
btnNewGame.grab_focus()
func _onSettingsOpened() -> void:
# Move focus into the settings panel so the controller can navigate it.
# The SettingsMenu grabs its own internal focus via _notification.
pass
func _onSettingsClosed() -> void:
btnSettings.grab_focus()
func _unhandled_input(event:InputEvent) -> void:
if event.is_action_pressed("ui_cancel"):
if settingsMenu.isOpen:
settingsMenu.close()
get_viewport().set_input_as_handled()
func _onQuitPressed() -> void:
UI.QUIT_DIALOG.closed.connect(_onQuitDialogClosed, CONNECT_ONE_SHOT)
UI.QUIT_DIALOG.open()
func _onQuitDialogClosed() -> void:
btnQuit.grab_focus()
func onNewGamePressed() -> void:
SCENE.setScene(SceneSingleton.SceneType.OVERWORLD)
OVERWORLD.mapChange(newGameScene, "PlayerSpawnPoint")
func onSettingsPressed() -> void:
settingsMenu.isOpen = true