complete project reorganization
This commit is contained in:
45
tools/general_manager.gd
Normal file
45
tools/general_manager.gd
Normal file
@@ -0,0 +1,45 @@
|
||||
@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()
|
||||
1
tools/general_manager.gd.uid
Normal file
1
tools/general_manager.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://cupqhe3qv7ero
|
||||
4
tools/grab_focus.gd
Normal file
4
tools/grab_focus.gd
Normal file
@@ -0,0 +1,4 @@
|
||||
extends Control
|
||||
|
||||
func _ready() -> void:
|
||||
grab_focus()
|
||||
1
tools/grab_focus.gd.uid
Normal file
1
tools/grab_focus.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://brrt2uj47cmld
|
||||
6
tools/new_main_menu.gd
Normal file
6
tools/new_main_menu.gd
Normal file
@@ -0,0 +1,6 @@
|
||||
extends Control
|
||||
|
||||
@export_file("*.tscn") var game_scene_path : String
|
||||
|
||||
func on_new_game() -> void:
|
||||
SceneLoader.load_scene(game_scene_path)
|
||||
1
tools/new_main_menu.gd.uid
Normal file
1
tools/new_main_menu.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://ckywnolvqy6w1
|
||||
64
tools/tutorial_controller.gd
Normal file
64
tools/tutorial_controller.gd
Normal file
@@ -0,0 +1,64 @@
|
||||
extends Control
|
||||
|
||||
@export var tuto_got_sword_packed : PackedScene
|
||||
@export var focused_viewport : Viewport
|
||||
var already_shown_weapon_tuto : bool = false
|
||||
var active_tutorial: Control
|
||||
|
||||
@onready var tutorial_master_panel: PanelContainer = $PanelContainer
|
||||
@onready var wait_to_show_blocking_tuto: Timer = $WaitToShowBlockingTuto
|
||||
|
||||
@onready var tuto_move_and_look: VBoxContainer = %TutoMoveAndLook
|
||||
@onready var tuto_mantle_up: HBoxContainer = %TutoMantleUp
|
||||
@onready var tuto_wall_jump: HBoxContainer = %TutoWallJump
|
||||
@onready var tuto_dash_weapon: HBoxContainer = %TutoDashWeapon
|
||||
@onready var tuto_weapon_throw: HBoxContainer = %TutoWeaponThrow
|
||||
@onready var tuto_enjoy: HBoxContainer = %TutoEnjoy
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
active_tutorial = tuto_move_and_look
|
||||
func hide_tutorials(body: Node3D) -> void:
|
||||
active_tutorial.visible = false
|
||||
master_invisible()
|
||||
func master_invisible() -> void:
|
||||
tutorial_master_panel.visible = false
|
||||
func master_visible() -> void:
|
||||
tutorial_master_panel.visible = true
|
||||
func handle_new_tutorial(tuto: Control) -> void:
|
||||
tuto.visible = true
|
||||
active_tutorial = tuto
|
||||
master_visible()
|
||||
|
||||
|
||||
func _on_tuto_mantle_body_entered(body: Node3D) -> void:
|
||||
handle_new_tutorial(tuto_mantle_up)
|
||||
|
||||
func _on_tuto_wall_jump_body_entered(body: Node3D) -> void:
|
||||
handle_new_tutorial(tuto_wall_jump)
|
||||
|
||||
func _on_tuto_done_area_body_entered(body: Node3D) -> void:
|
||||
handle_new_tutorial(tuto_dash_weapon)
|
||||
|
||||
func _on_weapon_retrieved_body_entered(body: Node3D) -> void:
|
||||
wait_to_show_blocking_tuto.start()
|
||||
|
||||
func _on_tuto_weapon_throw_body_entered(body: Node3D) -> void:
|
||||
handle_new_tutorial(tuto_weapon_throw)
|
||||
|
||||
func _on_tuto_enjoy_body_entered(body: Node3D) -> void:
|
||||
handle_new_tutorial(tuto_enjoy)
|
||||
|
||||
func _show_weapon_tutorial() -> void:
|
||||
if already_shown_weapon_tuto:
|
||||
return
|
||||
|
||||
already_shown_weapon_tuto = true
|
||||
if not focused_viewport:
|
||||
focused_viewport = get_viewport()
|
||||
var _initial_focus_control = focused_viewport.gui_get_focus_owner()
|
||||
var current_menu = tuto_got_sword_packed.instantiate()
|
||||
get_tree().current_scene.call_deferred("add_child", current_menu)
|
||||
await current_menu.tree_exited
|
||||
if is_inside_tree() and _initial_focus_control:
|
||||
_initial_focus_control.grab_focus()
|
||||
1
tools/tutorial_controller.gd.uid
Normal file
1
tools/tutorial_controller.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://dvieq1o7ci70y
|
||||
Reference in New Issue
Block a user