23 lines
780 B
C#
23 lines
780 B
C#
namespace Syntriax.Engine.StateMachine;
|
|
|
|
public interface IState
|
|
{
|
|
event StateUpdateEventHandler? OnStateUpdate;
|
|
event StateTransitionedFromEventHandler? OnStateTransitionedFrom;
|
|
event StateTransitionedToEventHandler? OnStateTransitionedTo;
|
|
event StateTransitionReadyEventHandler? OnStateTransitionReady;
|
|
|
|
string Name { get; }
|
|
|
|
IState? GetNextState();
|
|
|
|
void Update();
|
|
void TransitionTo(IState from);
|
|
void TransitionFrom(IState to);
|
|
|
|
delegate void StateUpdateEventHandler(IState sender);
|
|
delegate void StateTransitionedFromEventHandler(IState sender, IState toState);
|
|
delegate void StateTransitionedToEventHandler(IState sender, IState fromState);
|
|
delegate void StateTransitionReadyEventHandler(IState sender, IState toState);
|
|
}
|