extends Node onready var util = get_node("/root/Util") var played_jump_sound = false func _ready(): "$Footsteps/Timer.time_left = -1.0" func jump(): var on_floor = $"../OnFootPhysics/Floor".is_on_floor var jump_intent = $"../MovementInput".jump_intent var velocity = $"../OnFootPhysics".velocity if jump_intent and not on_floor and not played_jump_sound: $Jump.play() played_jump_sound = true elif on_floor and played_jump_sound: $Jump.stop() $JumpLanding.play() played_jump_sound = false if not on_floor and velocity.z < -10 and not $FallingSound.playing: $FallingSound.play() $FallingSound.pitch_scale = rand_range(0.5, 1.2) elif on_floor: $FallingSound.stop() func footsteps(): var on_floor = $"../OnFootPhysics/Floor".is_on_floor var velocity = $"../MovementInput".input_xz print($Footsteps/Timer.time_left) if not on_floor or velocity.length() == 0 or not $"..".is_on_foot(): $Footsteps.stop() return if $Footsteps/Timer.time_left > 0.0: return $Footsteps.pitch_scale = rand_range(0.9, 1.1) $Footsteps.play() var is_sprinting = $"../MovementInput".sprinting if is_sprinting: $Footsteps/Timer.start(0.3) else: $Footsteps/Timer.start(0.5) func _process(_delta): jump() footsteps()