using Godot; using Godot.Collections; namespace Cirno.Scripts.Components.FSM; public abstract partial class State : Node2D { [Export] public Array Modules { get; private set; } = new(); public virtual int StateId { get; } protected ActorStateMachine _stateMachine; public virtual void Init(ActorStateMachine stateMachine) { _stateMachine = stateMachine; foreach (var module in Modules) { //module.Init() } } public abstract void EnterState(); public abstract void ExitState(); public abstract void ProcessState(double delta); public abstract void PhysicsProcessState(double delta); }