Files
tgcc/core/ai/framework/state.gd
2026-05-22 00:06:23 +02:00

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)