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,11 @@
namespace Syntriax.Engine.StateMachine;
public readonly record struct StateTransition(IState State, IReadOnlyList<Func<bool>> Conditions)
{
public static implicit operator (IState state, IReadOnlyList<Func<bool>> conditions)(StateTransition value)
=> (value.State, value.Conditions);
public static implicit operator StateTransition((IState state, IReadOnlyList<Func<bool>> conditions) value)
=> new(value.state, value.conditions);
public bool CanTransition => !Conditions.Any(c => !c.Invoke());
}