From cea3956fbb2e0e698cc5fd4802a37b393a64cc0d Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Tue, 26 Aug 2025 18:00:27 +0200 Subject: [PATCH] Refactor GameManager and PlayerDeathComponent for improved state management and logging; update scene connections for player death handling --- Autoloads/GameManager.cs | 4 ++-- objects/level/base_level.tscn | 1 + scenes/level_village_1.tscn | 4 ++++ scripts/Resources/LevelResource.cs.uid | 1 + scripts/UI/AudioSettings.cs | 9 ++++++++- scripts/UI/DeathScreen.cs.uid | 1 + scripts/UI/SettingsMenu.cs | 8 ++++---- scripts/components/PlayerDeathComponent.cs | 1 + 8 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 scripts/Resources/LevelResource.cs.uid create mode 100644 scripts/UI/DeathScreen.cs.uid diff --git a/Autoloads/GameManager.cs b/Autoloads/GameManager.cs index 373da7c..fe5b61e 100644 --- a/Autoloads/GameManager.cs +++ b/Autoloads/GameManager.cs @@ -9,11 +9,11 @@ namespace Mr.BrickAdventures.Autoloads; public partial class GameManager : Node { - [Export] public Array LevelScenes { get; set; } = new(); + [Export] public Array LevelScenes { get; set; } = []; public PlayerController Player { get; set; } - private List _sceneNodes = new(); + private List _sceneNodes = []; [Export] public Dictionary PlayerState { get; set; } = new() diff --git a/objects/level/base_level.tscn b/objects/level/base_level.tscn index ee9bdd1..1329c6c 100644 --- a/objects/level/base_level.tscn +++ b/objects/level/base_level.tscn @@ -97,6 +97,7 @@ tile_set = ExtResource("11_0vx27") position = Vector2(215, 324) [connection signal="Death" from="Brick Player/HealthComponent" to="UI Layer/DeathScreen" method="OnPlayerDeath"] +[connection signal="Death" from="Brick Player/HealthComponent" to="UI Layer/GameOverScreen" method="OnPlayerDeath"] [editable path="Brick Player"] [editable path="UI Layer"] diff --git a/scenes/level_village_1.tscn b/scenes/level_village_1.tscn index a6cdc82..e2ae812 100644 --- a/scenes/level_village_1.tscn +++ b/scenes/level_village_1.tscn @@ -117,6 +117,7 @@ tile_set = ExtResource("10_ei558") tile_set = ExtResource("11_w7c5i") [node name="Killzone" parent="." instance=ExtResource("13_tvdre")] +process_mode = 4 position = Vector2(215, 324) [node name="Child" parent="." instance=ExtResource("15_vqevu")] @@ -137,5 +138,8 @@ Text = "LEVEL_1_TOOLTIP_2" position = Vector2(-59, -247) Text = "LEVEL_1_TOOLTIP_3" +[connection signal="Death" from="Brick Player/HealthComponent" to="UI Layer/DeathScreen" method="OnPlayerDeath"] +[connection signal="Death" from="Brick Player/HealthComponent" to="UI Layer/GameOverScreen" method="OnPlayerDeath"] + [editable path="Brick Player"] [editable path="UI Layer"] diff --git a/scripts/Resources/LevelResource.cs.uid b/scripts/Resources/LevelResource.cs.uid new file mode 100644 index 0000000..eb8fefd --- /dev/null +++ b/scripts/Resources/LevelResource.cs.uid @@ -0,0 +1 @@ +uid://c2h0pqhxiqswe diff --git a/scripts/UI/AudioSettings.cs b/scripts/UI/AudioSettings.cs index 83aa475..b9acc6f 100644 --- a/scripts/UI/AudioSettings.cs +++ b/scripts/UI/AudioSettings.cs @@ -22,8 +22,15 @@ public partial class AudioSettings : Control MasterVolumeSlider.ValueChanged += OnMasterVolumeChanged; MusicVolumeSlider.ValueChanged += OnMusicVolumeChanged; SfxVolumeSlider.ValueChanged += OnSfxVolumeChanged; + + LoadSettings(); } - + + public override void _ExitTree() + { + SaveSettings(); + } + public override void _UnhandledInput(InputEvent @event) { if (!@event.IsActionReleased("ui_cancel")) return; diff --git a/scripts/UI/DeathScreen.cs.uid b/scripts/UI/DeathScreen.cs.uid new file mode 100644 index 0000000..3e10b43 --- /dev/null +++ b/scripts/UI/DeathScreen.cs.uid @@ -0,0 +1 @@ +uid://csprksav8mj1h diff --git a/scripts/UI/SettingsMenu.cs b/scripts/UI/SettingsMenu.cs index 010a319..554c440 100644 --- a/scripts/UI/SettingsMenu.cs +++ b/scripts/UI/SettingsMenu.cs @@ -26,10 +26,10 @@ public partial class SettingsMenu : Control DisplaySettingsButton.Pressed += OnDisplaySettingsPressed; GameplaySettingsButton.Pressed += OnGameplaySettingsPressed; - InputSettingsControl.Hide(); - AudioSettingsControl.Hide(); - DisplaySettingsControl.Hide(); - GameplaySettingsControl.Hide(); + InputSettingsControl?.Hide(); + AudioSettingsControl?.Hide(); + DisplaySettingsControl?.Hide(); + GameplaySettingsControl?.Hide(); } public override void _UnhandledInput(InputEvent @event) diff --git a/scripts/components/PlayerDeathComponent.cs b/scripts/components/PlayerDeathComponent.cs index 7db4780..1f39128 100644 --- a/scripts/components/PlayerDeathComponent.cs +++ b/scripts/components/PlayerDeathComponent.cs @@ -31,6 +31,7 @@ public partial class PlayerDeathComponent : Node2D } _gameManager.RemoveLives(1); + GD.Print("Player death, lives left: " + _gameManager.GetLives()); _gameManager.ResetCurrentSessionState(); } } \ No newline at end of file