diff --git a/general/utils.cs b/general/utils.cs new file mode 100644 index 0000000..000d8a1 --- /dev/null +++ b/general/utils.cs @@ -0,0 +1,7 @@ +using Godot; + +static class DeferredCalls { + public static void ReloadCurrentScene(this Node node) { + node.GetTree().CallDeferred("reload_current_scene"); + } +} \ No newline at end of file diff --git a/scenes/characters/Player.cs b/scenes/characters/Player.cs index 0b03f56..72385d2 100644 --- a/scenes/characters/Player.cs +++ b/scenes/characters/Player.cs @@ -34,11 +34,20 @@ public partial class Player : RigidBody3D { if (body.GetGroups().Contains("Goal")) { - GD.Print("Player landed on the landing pad"); + CompleteLevel(); } if (body.GetGroups().Contains("Hazard")) { - GD.Print("Player crashed on the floor :("); + CrashSequence(); } } + + private void CrashSequence(){ + GD.Print("Player crashed on the floor :("); + DeferredCalls.ReloadCurrentScene(this); + } + + private void CompleteLevel(){ + GetTree().Quit(); + } }