31 lines
664 B
GDScript
31 lines
664 B
GDScript
extends Node
|
|
|
|
class_name State
|
|
|
|
@export var state_id: StringName = &""
|
|
@export var next_state_id: StringName
|
|
@export var animation_name: String
|
|
|
|
@onready var agent: AIBase = owner
|
|
|
|
@warning_ignore("unused_signal")
|
|
signal transitioned(state: State, new_state_id: StringName)
|
|
|
|
func enter() -> void:
|
|
pass
|
|
|
|
func exit() -> void:
|
|
pass
|
|
|
|
func update(_delta) -> void:
|
|
pass
|
|
|
|
func physics_update(_delta) -> void:
|
|
pass
|
|
|
|
func run_animation() -> void:
|
|
if agent.anim_player and agent.anim_player.has_animation(animation_name):
|
|
var anim = agent.anim_player.get_animation(animation_name)
|
|
anim.loop_mode = Animation.LOOP_LINEAR
|
|
agent.anim_player.play(animation_name)
|