12 lines
527 B
C#
12 lines
527 B
C#
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());
|
|
}
|