feat: added basic state machine system & Engine.Systems class library

This commit is contained in:
2025-03-29 21:40:30 +03:00
parent b9ee1ec232
commit 5c3e0f6581
6 changed files with 184 additions and 0 deletions

View 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);
}