mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-01 11:15:33 +00:00
22 lines
No EOL
652 B
C#
22 lines
No EOL
652 B
C#
#nullable enable
|
|
using System.Collections.Generic;
|
|
using Godot;
|
|
|
|
namespace Cirno.Scripts.Components.FSM;
|
|
|
|
public interface IStateMachine<TKey, [MustBeVariant] TType>
|
|
where TKey : notnull
|
|
where TType : Node
|
|
{
|
|
public Dictionary<TKey, IState<TKey, TType>> States { get; set; }
|
|
protected TKey CurrentStateIndex { get; set; }
|
|
public IState<TKey, TType> CurrentState { get; }
|
|
public TKey InitialState { get; }
|
|
public void SetState(TKey stateId);
|
|
public TKey GetState();
|
|
|
|
public TType MainObject { get; }
|
|
|
|
// Allow states to query modules by type from the owning actor
|
|
public T? GetModule<T>() where T : Node;
|
|
} |