2024-02-06 12:03:32 +01:00

65 lines
1.4 KiB
GDScript

class_name AnimationController
extends Node
@export var character: Character
@export var animation_player: AnimationPlayer
var next_animation: StringName = "RESET"
func _ready():
assert(character)
assert(animation_player)
func _process(_delta):
if character.velocity.y > 0:
play("human/jump")
elif character.velocity.y < 0:
play("human/fall")
elif character.direction != Vector3.ZERO:
play("human/run-fast")
else:
play("human/idle")
if animation_player.current_animation == next_animation:
return
animation_player.play(next_animation)
func play(action_name: StringName):
next_animation = action_name
# func air(y_velocity: float):
# if y_velocity > 0:
# play("rifle_jump")
# else:
# play("falling")
# func aim(move: Vector2, is_shooting: bool):
# if move.x > 0:
# play("rifle_aim_strafe_right")
# elif move.x < 0:
# play("rifle_aim_strafe_left")
# elif move.y < 0:
# play("rifle_aim_walk_forward")
# elif move.y > 0:
# play("rifle_aim_walk_backward")
# else:
# play("rifle_aim")
# if is_shooting:
# play("rifle_shoot")
# func run(move: Vector2, is_shooting: bool):
# if move.y < 0:
# play("rifle_run_forward")
# elif move.y > 0:
# play("rifle_run_backward")
# elif move.x > 0:
# play("rifle_run_right")
# elif move.x < 0:
# play("rifle_run_left")
# elif is_shooting:
# play("rifle_shoot")
# else:
# play("rifle_idle")