death and restart menu working
This commit is contained in:
@@ -4,25 +4,10 @@ extends OverlaidMenu
|
|||||||
@export var options_packed_scene : PackedScene
|
@export var options_packed_scene : PackedScene
|
||||||
@export_file("*.tscn") var main_menu_scene : String
|
@export_file("*.tscn") var main_menu_scene : String
|
||||||
|
|
||||||
@export var menu_context : GUIDEMappingContext
|
|
||||||
|
|
||||||
var popup_open : Node
|
var popup_open : Node
|
||||||
var previous_mapping_contexts : Array
|
|
||||||
|
|
||||||
var is_listening_to_inputs = true
|
var is_listening_to_inputs = true
|
||||||
|
|
||||||
func _enter_tree() -> void:
|
|
||||||
super._enter_tree()
|
|
||||||
previous_mapping_contexts = GUIDE.get_enabled_mapping_contexts()
|
|
||||||
for previous_context in previous_mapping_contexts:
|
|
||||||
GUIDE.disable_mapping_context(previous_context)
|
|
||||||
GUIDE.enable_mapping_context(menu_context)
|
|
||||||
|
|
||||||
func _exit_tree() -> void:
|
|
||||||
GUIDE.disable_mapping_context(menu_context)
|
|
||||||
for previous_context in previous_mapping_contexts:
|
|
||||||
GUIDE.enable_mapping_context(previous_context)
|
|
||||||
|
|
||||||
func close_popup() -> void:
|
func close_popup() -> void:
|
||||||
if popup_open != null:
|
if popup_open != null:
|
||||||
popup_open.hide()
|
popup_open.hide()
|
||||||
@@ -76,8 +61,6 @@ func _ready() -> void:
|
|||||||
_hide_exit_for_web()
|
_hide_exit_for_web()
|
||||||
_hide_options_if_unset()
|
_hide_options_if_unset()
|
||||||
_hide_main_menu_if_unset()
|
_hide_main_menu_if_unset()
|
||||||
|
|
||||||
back_action.triggered.connect(_handle_cancel_input)
|
|
||||||
|
|
||||||
func _on_restart_button_pressed() -> void:
|
func _on_restart_button_pressed() -> void:
|
||||||
%ConfirmRestart.popup_centered()
|
%ConfirmRestart.popup_centered()
|
||||||
|
|||||||
@@ -11,7 +11,9 @@ extends Control
|
|||||||
process_mode = PROCESS_MODE_INHERIT
|
process_mode = PROCESS_MODE_INHERIT
|
||||||
@export var makes_mouse_visible : bool = true
|
@export var makes_mouse_visible : bool = true
|
||||||
|
|
||||||
@export var back_action : GUIDEAction
|
@export var menu_context : GUIDEMappingContext = preload("uid://c2hpxkcujyc13")
|
||||||
|
@export var back_action : GUIDEAction = preload("uid://ck43v3q5ype3f")
|
||||||
|
var previous_mapping_contexts : Array
|
||||||
|
|
||||||
signal menu_closing
|
signal menu_closing
|
||||||
|
|
||||||
@@ -20,7 +22,12 @@ var _initial_focus_mode : FocusMode = FOCUS_ALL
|
|||||||
var _initial_mouse_mode : Input.MouseMode
|
var _initial_mouse_mode : Input.MouseMode
|
||||||
var _initial_focus_control
|
var _initial_focus_control
|
||||||
var _scene_tree : SceneTree
|
var _scene_tree : SceneTree
|
||||||
|
|
||||||
|
func _exit_tree() -> void:
|
||||||
|
GUIDE.disable_mapping_context(menu_context)
|
||||||
|
for previous_context in previous_mapping_contexts:
|
||||||
|
GUIDE.enable_mapping_context(previous_context)
|
||||||
|
|
||||||
func close() -> void:
|
func close() -> void:
|
||||||
menu_closing.emit()
|
menu_closing.emit()
|
||||||
_scene_tree.paused = _initial_pause_state
|
_scene_tree.paused = _initial_pause_state
|
||||||
@@ -53,3 +60,10 @@ func _enter_tree() -> void:
|
|||||||
_scene_tree.paused = pauses_game or _initial_pause_state
|
_scene_tree.paused = pauses_game or _initial_pause_state
|
||||||
if makes_mouse_visible:
|
if makes_mouse_visible:
|
||||||
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
|
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
|
||||||
|
|
||||||
|
previous_mapping_contexts = GUIDE.get_enabled_mapping_contexts()
|
||||||
|
for previous_context in previous_mapping_contexts:
|
||||||
|
GUIDE.disable_mapping_context(previous_context)
|
||||||
|
GUIDE.enable_mapping_context(menu_context)
|
||||||
|
back_action.triggered.connect(_handle_cancel_input)
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ signal restart_pressed
|
|||||||
signal main_menu_pressed
|
signal main_menu_pressed
|
||||||
|
|
||||||
func _handle_cancel_input():
|
func _handle_cancel_input():
|
||||||
|
return
|
||||||
if $ConfirmExit.visible:
|
if $ConfirmExit.visible:
|
||||||
$ConfirmExit.hide()
|
$ConfirmExit.hide()
|
||||||
elif $ConfirmMainMenu.visible:
|
elif $ConfirmMainMenu.visible:
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
[gd_scene load_steps=11 format=3 uid="uid://55wehh6xombr"]
|
[gd_scene load_steps=12 format=3 uid="uid://55wehh6xombr"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://bkcsjsk2ciff" path="res://addons/maaacks_game_template/base/scenes/music_players/background_music_player.tscn" id="2_roiv2"]
|
[ext_resource type="PackedScene" uid="uid://bkcsjsk2ciff" path="res://addons/maaacks_game_template/base/scenes/music_players/background_music_player.tscn" id="2_roiv2"]
|
||||||
[ext_resource type="AudioStream" uid="uid://f8cvr5s041ej" path="res://assets/audio/ambiance/637083__nox_sound__ambiance_nature_night_cricket_calm_loop_stereo.wav" id="3_boadi"]
|
[ext_resource type="AudioStream" uid="uid://f8cvr5s041ej" path="res://assets/audio/ambiance/637083__nox_sound__ambiance_nature_night_cricket_calm_loop_stereo.wav" id="3_boadi"]
|
||||||
|
[ext_resource type="Script" uid="uid://cupqhe3qv7ero" path="res://systems/ui/general_manager.gd" id="3_k6got"]
|
||||||
[ext_resource type="Script" uid="uid://cyh0d64pfygbl" path="res://addons/maaacks_game_template/base/scripts/pause_menu_controller.gd" id="4_wlbyq"]
|
[ext_resource type="Script" uid="uid://cyh0d64pfygbl" path="res://addons/maaacks_game_template/base/scripts/pause_menu_controller.gd" id="4_wlbyq"]
|
||||||
[ext_resource type="PackedScene" uid="uid://ccqajqchiw4xu" path="res://menus/scenes/overlaid_menus/pause_menu.tscn" id="5_wwrc3"]
|
[ext_resource type="PackedScene" uid="uid://ccqajqchiw4xu" path="res://menus/scenes/overlaid_menus/pause_menu.tscn" id="5_wwrc3"]
|
||||||
[ext_resource type="Resource" uid="uid://dgluj0ql5vth7" path="res://systems/inputs/base_mode/pause.tres" id="6_vy804"]
|
[ext_resource type="Resource" uid="uid://dgluj0ql5vth7" path="res://systems/inputs/base_mode/pause.tres" id="6_vy804"]
|
||||||
@@ -40,6 +41,9 @@ adjustment_enabled = true
|
|||||||
[node name="BackgroundMusicPlayer" parent="." instance=ExtResource("2_roiv2")]
|
[node name="BackgroundMusicPlayer" parent="." instance=ExtResource("2_roiv2")]
|
||||||
stream = ExtResource("3_boadi")
|
stream = ExtResource("3_boadi")
|
||||||
|
|
||||||
|
[node name="GeneralManager" type="Node" parent="."]
|
||||||
|
script = ExtResource("3_k6got")
|
||||||
|
|
||||||
[node name="PauseMenuController" type="Node" parent="." node_paths=PackedStringArray("player")]
|
[node name="PauseMenuController" type="Node" parent="." node_paths=PackedStringArray("player")]
|
||||||
script = ExtResource("4_wlbyq")
|
script = ExtResource("4_wlbyq")
|
||||||
pause_menu_packed = ExtResource("5_wwrc3")
|
pause_menu_packed = ExtResource("5_wwrc3")
|
||||||
@@ -63,3 +67,7 @@ transform = Transform3D(0.99999994, 0, 0, 0, 1, 0, 0, 0, 0.99999994, 0, 0, 0)
|
|||||||
collision_layer = 17
|
collision_layer = 17
|
||||||
TutorialDone = true
|
TutorialDone = true
|
||||||
AccelerationAir = 1.5
|
AccelerationAir = 1.5
|
||||||
|
|
||||||
|
[node name="DebugLayer" type="CanvasLayer" parent="."]
|
||||||
|
|
||||||
|
[connection signal="PlayerDied" from="Player" to="GeneralManager" method="on_player_died"]
|
||||||
|
|||||||
@@ -1,18 +1,14 @@
|
|||||||
[gd_scene load_steps=6 format=3 uid="uid://ccqajqchiw4xu"]
|
[gd_scene load_steps=4 format=3 uid="uid://ccqajqchiw4xu"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b5cd6sa8qq4vc" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/menus/pause_menu.tscn" id="1_0paax"]
|
[ext_resource type="PackedScene" uid="uid://b5cd6sa8qq4vc" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/menus/pause_menu.tscn" id="1_0paax"]
|
||||||
[ext_resource type="Script" uid="uid://bwvomv4eww4fg" path="res://menus/scenes/overlaid_menus/pause_menu.gd" id="2_ek1hy"]
|
[ext_resource type="Script" uid="uid://bwvomv4eww4fg" path="res://menus/scenes/overlaid_menus/pause_menu.gd" id="2_ek1hy"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dim045la3mijk" path="res://menus/scenes/overlaid_menus/mini_options_overlaid_menu.tscn" id="3_e0t2r"]
|
[ext_resource type="PackedScene" uid="uid://dim045la3mijk" path="res://menus/scenes/overlaid_menus/mini_options_overlaid_menu.tscn" id="3_e0t2r"]
|
||||||
[ext_resource type="Resource" uid="uid://c2hpxkcujyc13" path="res://systems/inputs/menu_mode/menu_mode.tres" id="4_nfx08"]
|
|
||||||
[ext_resource type="Resource" uid="uid://ck43v3q5ype3f" path="res://systems/inputs/menu_mode/back.tres" id="5_su1bt"]
|
|
||||||
|
|
||||||
[node name="PauseMenu" instance=ExtResource("1_0paax")]
|
[node name="PauseMenu" instance=ExtResource("1_0paax")]
|
||||||
top_level = true
|
top_level = true
|
||||||
script = ExtResource("2_ek1hy")
|
script = ExtResource("2_ek1hy")
|
||||||
options_packed_scene = ExtResource("3_e0t2r")
|
options_packed_scene = ExtResource("3_e0t2r")
|
||||||
main_menu_scene = "res://menus/scenes/menus/main_menu/main_menu_with_animations.tscn"
|
main_menu_scene = "res://menus/scenes/menus/main_menu/main_menu_with_animations.tscn"
|
||||||
menu_context = ExtResource("4_nfx08")
|
|
||||||
back_action = ExtResource("5_su1bt")
|
|
||||||
|
|
||||||
[connection signal="tree_entered" from="." to="." method="on_enter_tree"]
|
[connection signal="tree_entered" from="." to="." method="on_enter_tree"]
|
||||||
[connection signal="tree_exited" from="." to="." method="on_exit_tree"]
|
[connection signal="tree_exited" from="." to="." method="on_exit_tree"]
|
||||||
|
|||||||
@@ -38,6 +38,9 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
///////////////////////////
|
///////////////////////////
|
||||||
// Signals and events //
|
// Signals and events //
|
||||||
///////////////////////////
|
///////////////////////////
|
||||||
|
|
||||||
|
[Signal]
|
||||||
|
public delegate void PlayerDiedEventHandler();
|
||||||
|
|
||||||
public event Action<IDamageable, DamageRecord> DamageTaken;
|
public event Action<IDamageable, DamageRecord> DamageTaken;
|
||||||
public event Action<IHealthable, HealthChangedRecord> HealthChanged;
|
public event Action<IHealthable, HealthChangedRecord> HealthChanged;
|
||||||
@@ -593,6 +596,9 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
// Attack states
|
// Attack states
|
||||||
_attackStandard.StateEntered += OnStandardAttackStarted;
|
_attackStandard.StateEntered += OnStandardAttackStarted;
|
||||||
_attackDash.StateEntered += OnDashAttackStarted;
|
_attackDash.StateEntered += OnDashAttackStarted;
|
||||||
|
|
||||||
|
// Testing out kill
|
||||||
|
// GetTree().CreateTimer(2).Timeout += () => Kill(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////
|
///////////////////////////
|
||||||
@@ -2168,7 +2174,7 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
|
|
||||||
public void Kill(IHealthable source)
|
public void Kill(IHealthable source)
|
||||||
{
|
{
|
||||||
GD.Print("Player died!");
|
EmitSignalPlayerDied();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ResetInvincibility()
|
public void ResetInvincibility()
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_resource type="Resource" script_class="GUIDEMappingContext" load_steps=66 format=3 uid="uid://c2hpxkcujyc13"]
|
[gd_resource type="Resource" script_class="GUIDEMappingContext" load_steps=67 format=3 uid="uid://c2hpxkcujyc13"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cpplm41b5bt6m" path="res://addons/guide/guide_action_mapping.gd" id="1_xno0b"]
|
[ext_resource type="Script" uid="uid://cpplm41b5bt6m" path="res://addons/guide/guide_action_mapping.gd" id="1_xno0b"]
|
||||||
[ext_resource type="Resource" uid="uid://ck43v3q5ype3f" path="res://systems/inputs/menu_mode/back.tres" id="2_6sfub"]
|
[ext_resource type="Resource" uid="uid://ck43v3q5ype3f" path="res://systems/inputs/menu_mode/back.tres" id="2_6sfub"]
|
||||||
@@ -29,11 +29,16 @@ script = ExtResource("3_scydb")
|
|||||||
input = SubResource("Resource_tp5dr")
|
input = SubResource("Resource_tp5dr")
|
||||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_lvbl0")])
|
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_lvbl0")])
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_6sfub"]
|
||||||
|
script = ExtResource("8_yfqfy")
|
||||||
|
key = 4194305
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_17mt7"]
|
[sub_resource type="Resource" id="Resource_17mt7"]
|
||||||
script = ExtResource("7_m88dc")
|
script = ExtResource("7_m88dc")
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_23hmj"]
|
[sub_resource type="Resource" id="Resource_23hmj"]
|
||||||
script = ExtResource("3_scydb")
|
script = ExtResource("3_scydb")
|
||||||
|
input = SubResource("Resource_6sfub")
|
||||||
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_17mt7")])
|
triggers = Array[ExtResource("6_c647i")]([SubResource("Resource_17mt7")])
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_len71"]
|
[sub_resource type="Resource" id="Resource_len71"]
|
||||||
|
|||||||
31
systems/ui/general_manager.gd
Normal file
31
systems/ui/general_manager.gd
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
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_group("Levels")
|
||||||
|
|
||||||
|
@export_category("Menus")
|
||||||
|
@export_group("Overlaid")
|
||||||
|
@export var lost_menu : PackedScene = preload("uid://ciyq8eiv1mtie")
|
||||||
|
|
||||||
|
@export_category("Others")
|
||||||
|
@export var focused_viewport : Viewport
|
||||||
|
|
||||||
|
|
||||||
|
func on_player_died() -> void:
|
||||||
|
if not focused_viewport:
|
||||||
|
focused_viewport = get_viewport()
|
||||||
|
var _initial_focus_control = focused_viewport.gui_get_focus_owner()
|
||||||
|
var current_menu: LevelLostMenu = lost_menu.instantiate()
|
||||||
|
|
||||||
|
get_tree().current_scene.call_deferred("add_child", current_menu)
|
||||||
|
current_menu.restart_pressed.connect(restart_current_level)
|
||||||
|
current_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
systems/ui/general_manager.gd.uid
Normal file
1
systems/ui/general_manager.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://cupqhe3qv7ero
|
||||||
Reference in New Issue
Block a user