46 lines
1.5 KiB
GDScript
46 lines
1.5 KiB
GDScript
@icon("res://assets/ui/IconGodotNode/white/icon_gear_2.png")
|
|
extends Node
|
|
|
|
@export_category("Scenes")
|
|
@export_group("General")
|
|
@export var main_menu_path : String = "res://menus/scenes/menus/main_menu/main_menu_with_animations.tscn"
|
|
|
|
@export_category("Menus")
|
|
@export_group("Overlaid")
|
|
@export var lost_menu_scene : PackedScene = preload("uid://ciyq8eiv1mtie")
|
|
@export var toolbox_scene : PackedScene = preload("uid://bcn582q8qd4ns")
|
|
|
|
@export_category("Others")
|
|
@export var focused_viewport : Viewport
|
|
@export var toolbox_action:GUIDEAction = preload("uid://ca68r7n3bwba3")
|
|
|
|
# Debug
|
|
@onready var debug_layer: CanvasLayer = $"../DebugLayer"
|
|
@onready var player: PlayerController = $"../Player"
|
|
|
|
func _ready() -> void:
|
|
toolbox_action.triggered.connect(open_toolbox)
|
|
|
|
func open_overlaid_menu(menu: PackedScene) -> Node:
|
|
if not focused_viewport:
|
|
focused_viewport = get_viewport()
|
|
var _initial_focus_control = focused_viewport.gui_get_focus_owner()
|
|
return menu.instantiate()
|
|
|
|
func open_toolbox() -> void:
|
|
var toolbox: Toolbox = open_overlaid_menu(toolbox_scene)
|
|
toolbox.player = player
|
|
debug_layer.call_deferred("add_child", toolbox)
|
|
|
|
func on_player_died() -> void:
|
|
var lost_menu: LevelLostMenu = open_overlaid_menu(lost_menu_scene)
|
|
get_tree().current_scene.call_deferred("add_child", lost_menu)
|
|
lost_menu.restart_pressed.connect(restart_current_level)
|
|
lost_menu.main_menu_pressed.connect(back_to_main_menu)
|
|
|
|
func back_to_main_menu():
|
|
SceneLoader.load_scene(main_menu_path)
|
|
|
|
func restart_current_level():
|
|
SceneLoader.reload_current_scene()
|