From dbfdc6f4222f752740711a470c24fcd8ca4f9f24 Mon Sep 17 00:00:00 2001 From: pbentes Date: Sun, 1 Sep 2024 14:36:43 +0100 Subject: [PATCH] Added ducking state --- .../actors/player/scripts/states/ducking.gd | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 modules/actors/player/scripts/states/ducking.gd diff --git a/modules/actors/player/scripts/states/ducking.gd b/modules/actors/player/scripts/states/ducking.gd new file mode 100644 index 0000000..2c4879f --- /dev/null +++ b/modules/actors/player/scripts/states/ducking.gd @@ -0,0 +1,20 @@ +extends LocomotionState + +@onready var player: Node3D = $"../.." + +func physics_update(delta: float) -> void: + player.process_input() + + if not player.locomotion.is_on_floor(): + transition.emit("Airborne") + + if player.wish_jump: + player.locomotion.velocity.y = player.locomotion.get_current_settings().JUMP_IMPULSE + else: + player.locomotion.velocity = player.locomotion.update_velocity(delta) + + player.locomotion.move_and_slide() + player.locomotion.update_collider_height(delta) + + if not (Input.is_action_pressed("duck") or player.locomotion.has_collision_above($".".settings.HEIGHT)): + transition.emit("Running")