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)