From bbb5149184ae1507198227c4b1e7b258f67b3a64 Mon Sep 17 00:00:00 2001 From: Minimata Date: Tue, 17 Feb 2026 15:33:07 +0100 Subject: [PATCH] made it that inputting a direction when hanging makes us leave the wall --- scenes/player_controller/PlayerController.tscn | 6 ++++++ scenes/player_controller/scripts/PlayerController.cs | 8 ++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/scenes/player_controller/PlayerController.tscn b/scenes/player_controller/PlayerController.tscn index 15ff3e2f..f2e0674b 100644 --- a/scenes/player_controller/PlayerController.tscn +++ b/scenes/player_controller/PlayerController.tscn @@ -1154,6 +1154,12 @@ delay_in_seconds = "0.0" [node name="Hanging" type="Node" parent="StateChart/Root/Movement/OnWall" unique_id=1208015492] script = ExtResource("27_34snm") +[node name="OnMove" type="Node" parent="StateChart/Root/Movement/OnWall/Hanging" unique_id=751408886] +script = ExtResource("28_n7qhm") +to = NodePath("../../Hugging") +event = &"move" +delay_in_seconds = "0.0" + [node name="Running" type="Node" parent="StateChart/Root/Movement/OnWall" unique_id=766545186] script = ExtResource("27_34snm") diff --git a/scenes/player_controller/scripts/PlayerController.cs b/scenes/player_controller/scripts/PlayerController.cs index 740dd899..99393e03 100644 --- a/scenes/player_controller/scripts/PlayerController.cs +++ b/scenes/player_controller/scripts/PlayerController.cs @@ -1200,10 +1200,8 @@ public partial class PlayerController : CharacterBody3D, } - private float _timeOnWall; public void OnWallStarted() { - _timeOnWall = 0f; if (_simpleDashCooldownTimer.IsStopped()) _canDash = true; else @@ -1219,7 +1217,6 @@ public partial class PlayerController : CharacterBody3D, } public void OnWallStopped() { - _timeOnWall = 0f; } public void OnLeaveWallFromRun() { @@ -1229,7 +1226,6 @@ public partial class PlayerController : CharacterBody3D, { // _canDash = true; // _canDashAirborne = true; - _timeOnWall += delta; if (IsInputTowardsWall(_wallHugStartNormal)) WallHug(delta); @@ -1264,7 +1260,6 @@ public partial class PlayerController : CharacterBody3D, { // _canDash = false; // _canDashAirborne = false; - _timeOnWall += delta; // Find horizontal velocity projected on the current wall var hvel = new Vector3(Velocity.X, 0, Velocity.Z); @@ -1393,9 +1388,10 @@ public partial class PlayerController : CharacterBody3D, } public void WallHang(float delta) { - _timeOnWall += 1; // Consider we've already spent quite some time on wall Velocity = Vector3.Zero; GlobalPosition = _wallHugStartLocation; + if (GetGlobalMoveInput().Length() > Mathf.Epsilon) + _playerState.SendEvent("move"); } public bool IsFacingWall() {