From 5196b3eb6e4fa086fb791f7cb677f0aeb17e728f Mon Sep 17 00:00:00 2001 From: Dustin Date: Sun, 15 Jun 2025 09:19:07 -0700 Subject: [PATCH] Add state duration tracker to movement state receiver to re-enable drop through collision mask. drop through floor now better. --- lib/classes/movement_state_receiver.gd | 3 +++ src/actors/players/playerE/PlayerE-Movement_StateReceiver.gd | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/classes/movement_state_receiver.gd b/lib/classes/movement_state_receiver.gd index 780d21d..a8269b2 100644 --- a/lib/classes/movement_state_receiver.gd +++ b/lib/classes/movement_state_receiver.gd @@ -30,6 +30,7 @@ var velocity_controller :VelocityController = VelocityController.new() #var sim_velocity = Vector2(0,0) var physics_delta:float var process_delta:float +var state_duration:float = 0.0 ## Tracks how long we've been in state var modifier: StateModifierMovement @@ -133,6 +134,8 @@ func get_climb_shape_location() -> Vector2: return Vector2(-1,-1) func _on_state_change(old_state_name:String, new_state :State): + ## Reset State Duration Counter + state_duration = 0.0 ###### State machine if new_state is StateAnimatedActor: #Testing this. Update: It works ## Confirmed that I do neet to update the current_state with the passed state. diff --git a/src/actors/players/playerE/PlayerE-Movement_StateReceiver.gd b/src/actors/players/playerE/PlayerE-Movement_StateReceiver.gd index 058064b..bf71cfe 100644 --- a/src/actors/players/playerE/PlayerE-Movement_StateReceiver.gd +++ b/src/actors/players/playerE/PlayerE-Movement_StateReceiver.gd @@ -338,7 +338,9 @@ func _state_process_physics_fall(): var bar = $"%WallDetector".is_colliding() #parent.get_node("CollisionShape2D").set_deferred("disabled", false) - parent.set_collision_mask_bit(9,true) + state_duration += physics_delta + if (state_duration > .25): + parent.set_collision_mask_bit(9,true) if $"%LedgeDetector".is_colliding() and !$"%WallDetector".is_colliding(): #print("it touched me!")