Table of Contents
src / beginning / menu / menu.gd
Attached Scenes
Code
extends Control
enum Plate { OPENING, ROOT, ACCOUNTS, CHAPTERS }
@export var current_plate : Plate = Plate.OPENING : set = change_plate
@export var grab_focus_root : bool = false : set = set_grab_focus_root
func _ready() -> void:
%ClimbButton.grab_focus()
FocusHelper.set_neighbors_v([
%ClimbButton, %OptionsButton, %CreditsButton, %QuitButton])
func set_grab_focus_root(val: bool) -> void:
if val: %ClimbButton.grab_focus()
func change_plate(val: Plate) -> void:
current_plate = val
func _on_climb_button_focus_entered() -> void:
if current_plate == Plate.ROOT:
%AnimationPlayer.play('climb_focused')
func _on_climb_button_focus_exited() -> void:
if current_plate == Plate.ROOT:
%AnimationPlayer.play('climb_unfocused')
func _on_climb_button_pressed() -> void:
if current_plate == Plate.ROOT:
Input.start_joy_vibration(0, 0.4, 0.6, 0.2)
%AnimationPlayer.play('climb_selected')
func _on_quit_button_pressed() -> void:
get_tree().quit()
func _on_accounts_ui_backed() -> void:
if current_plate == Plate.ACCOUNTS:
%AnimationPlayer.play('climb_unselected')
func _on_accounts_get_started(account: Account) -> void:
%Chapters.setup_from_account_resource()
%AnimationPlayer.play("chapters_show")
func _on_chapters_ui_backed() -> void:
if current_plate == Plate.CHAPTERS || current_plate == Plate.ACCOUNTS:
%AnimationPlayer.play('chapters_hide')
%World.back_to_circular_move()
func _on_chapters_focused(idx: int) -> void:
if current_plate == Plate.CHAPTERS:
%World.focus_chapter(idx)
func _on_chapters_selected(idx: int) -> void:
if current_plate == Plate.CHAPTERS:
%World.zoom_chapter(idx)