From 1438dc7784925563bf661e7d8a8d7253b763cf55 Mon Sep 17 00:00:00 2001 From: david Date: Sun, 9 Feb 2025 10:40:16 +0100 Subject: [PATCH] 2.11 crashing and respawning --- general/utils.cs | 7 +++++++ scenes/characters/Player.cs | 13 +++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 general/utils.cs 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(); + } }