internal StateMachine(State <TTrig, TName> startState, List <State <TTrig, TName> > allStates, string?name) { CurrentState = startState; PreviousState = null; OnStateSet?.Invoke(PreviousState, CurrentState); StateMachineInfo = new StateMachineInfo <TTrig, TName>(allStates, startState, name); }
public void SetState() { if (!State) { State = true; OnStateSet?.Invoke(this, new EventArgs()); if (parent != null) { parent.SetState(); } } }
public void Restore(State <TTrig, TName> state) { PreviousState = CurrentState; CurrentState = state; OnStateSet?.Invoke(PreviousState, CurrentState); }