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