generated from SGDA/GodotExampleProject
40 lines
1.1 KiB
GDScript3
40 lines
1.1 KiB
GDScript3
|
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()
|