Files
EGJ25/template/scenes/menus/main_menu/main_menu_with_animations.gd

40 lines
1.1 KiB
GDScript3
Raw Permalink Normal View History

2025-06-27 23:11:54 +02:00
extends MainMenu
var animation_state_machine : AnimationNodeStateMachinePlayback
func intro_done() -> void:
animation_state_machine.travel("OpenMainMenu")
func _is_in_intro() -> bool:
return animation_state_machine.get_current_node() == "Intro"
func _event_is_mouse_button_released(event : InputEvent) -> bool:
return event is InputEventMouseButton and not event.is_pressed()
func _event_skips_intro(event : InputEvent) -> bool:
return event.is_action_released("ui_accept") or \
event.is_action_released("ui_select") or \
event.is_action_released("ui_cancel") or \
_event_is_mouse_button_released(event)
func _open_sub_menu(menu : Node) -> void:
super._open_sub_menu(menu)
animation_state_machine.travel("OpenSubMenu")
func _close_sub_menu() -> void:
super._close_sub_menu()
animation_state_machine.travel("OpenMainMenu")
func _input(event : InputEvent) -> void:
if _is_in_intro() and _event_skips_intro(event):
intro_done()
return
super._input(event)
func _ready() -> void:
super._ready()
animation_state_machine = $MenuAnimationTree.get("parameters/playback")
func _on_continue_game_button_pressed() -> void:
load_game_scene()