@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()