diff --git a/modules/actors/player/scripts/states/airborne.gd b/modules/actors/player/scripts/states/airborne.gd index b8694fc..b625014 100644 --- a/modules/actors/player/scripts/states/airborne.gd +++ b/modules/actors/player/scripts/states/airborne.gd @@ -1,13 +1,16 @@ extends LocomotionState -@onready var locomotion: CharacterBody3D = $"../../Locomotion" @onready var player: Node3D = $"../.." @onready var head: Node3D = $"../../Locomotion/Head" var gravity = ProjectSettings.get_setting("physics/3d/default_gravity") +func enter(): + if not player.locomotion == null: + player.locomotion.elapsed_time = 0.0 + func physics_update(delta: float) -> void: - if locomotion.is_on_floor(): + if player.locomotion.is_on_floor(): if Input.is_action_pressed("duck"): transition.emit("Ducking") return @@ -15,9 +18,9 @@ func physics_update(delta: float) -> void: transition.emit("Running") return - locomotion.velocity.y -= gravity * delta + player.locomotion.velocity.y -= gravity * delta player.process_input() - locomotion.velocity = locomotion.update_velocity(delta, false) + player.locomotion.velocity = player.locomotion.update_velocity(delta, false) - locomotion.move_and_slide() + player.locomotion.move_and_slide() diff --git a/modules/actors/player/scripts/states/ducking.gd b/modules/actors/player/scripts/states/ducking.gd index 2c4879f..67442e9 100644 --- a/modules/actors/player/scripts/states/ducking.gd +++ b/modules/actors/player/scripts/states/ducking.gd @@ -2,6 +2,10 @@ extends LocomotionState @onready var player: Node3D = $"../.." +func enter(): + if not player.locomotion == null: + player.locomotion.elapsed_time = 0.0 + func physics_update(delta: float) -> void: player.process_input() diff --git a/modules/actors/player/scripts/states/running.gd b/modules/actors/player/scripts/states/running.gd index 0ddda6b..4b38d81 100644 --- a/modules/actors/player/scripts/states/running.gd +++ b/modules/actors/player/scripts/states/running.gd @@ -2,6 +2,10 @@ extends LocomotionState @onready var player: Node3D = $"../.." +func enter(): + if not player.locomotion == null: + player.locomotion.elapsed_time = 0.0 + func physics_update(delta: float) -> void: player.process_input() diff --git a/modules/actors/player/scripts/states/walking.gd b/modules/actors/player/scripts/states/walking.gd index 8820f4d..4693596 100644 --- a/modules/actors/player/scripts/states/walking.gd +++ b/modules/actors/player/scripts/states/walking.gd @@ -2,6 +2,10 @@ extends LocomotionState @onready var player: Node3D = $"../.." +func enter(): + if not player.locomotion == null: + player.locomotion.elapsed_time = 0.0 + func physics_update(delta: float) -> void: player.process_input()