using Godot;

namespace Cirno.Scripts.Components.FSM;

public abstract partial class ModuleBase<TKey, TType> : Node, IModule<TKey, TType>
    where TKey : notnull
    where TType : Node
{
    public abstract void EnterState(TKey state);
    public abstract void ExitState(TKey state);
    public abstract void Init(IStateMachine<TKey, TType> machine);
    public abstract void Process(double delta);
    public abstract void PhysicsProcess(double delta);
}