feat: added basic state machine system & Engine.Systems class library
This commit is contained in:
22
Engine.Systems/StateMachine/IState.cs
Normal file
22
Engine.Systems/StateMachine/IState.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
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);
|
||||
}
|
Reference in New Issue
Block a user