public static void FromAny <TState, TTrigger>(this IStateMachine <TState, TTrigger> fsm, TTrigger trigger, TState targetState) { TState[] states = fsm.GetStates(); foreach (TState state in states) { fsm.AddTransition(new Transition <TState, TTrigger>(state, trigger, targetState)); } }
public static void ConfigureWithStatesAsTriggers <TState>(this IStateMachine <TState, TState> fsm) { TState[] states = fsm.GetStates(); for (int i = 0; i < states.Length; i++) { for (int j = 0; j < states.Length; j++) { fsm.AddTransition(new Transition <TState, TState>(states[i], states[j], states[j])); } } }
public static void FromAnyExceptTarget <TState, TTrigger>(this IStateMachine <TState, TTrigger> fsm, TTrigger trigger, TState targetState) { TState[] states = fsm.GetStates(); foreach (TState stateId in states) { if (stateId.Equals(targetState) == false) { fsm.AddTransition(new Transition <TState, TTrigger>(stateId, trigger, targetState)); } } }
public void CreateMachine() { machine = StateMachine.Create<Transitions, TransitionHandler>(); machine.AddTransition(null, State<FirstState,Transitions>.Instance, Transitions.Start); machine.AddTransition(State<FirstState, Transitions>.Instance, State<SecondState, Transitions>.Instance, Transitions.Okay); machine.AddTransition(State<FirstState, Transitions>.Instance, State<ThirdState, Transitions>.Instance, Transitions.Error); machine.AddTransition(State<SecondState, Transitions>.Instance, null, Transitions.NormalExit); machine.AddTransition(State<ThirdState, Transitions>.Instance, State<FinalState, Transitions>.Instance, Transitions.CalculateErrorCode); machine.AddTransition(State<FinalState, Transitions>.Instance, null, Transitions.ExitWithErrorCode); }
public void FromToWhere(IStateMachine stateMachine, IState from, IState to, Func <bool> where) { stateMachine.AddTransition(from, to, where); }
public static void AddTransition <TState, TTrigger>(this IStateMachine <TState, TTrigger> fsm, TState sourceTarget, TTrigger trigger, TState targetState) { fsm.AddTransition(new Transition <TState, TTrigger>(sourceTarget, trigger, targetState)); }
public static void AddTransition <TState, TTrigger>(this IStateMachine <TState, TTrigger> fsm, TState stateFrom, TTrigger trigger, TState stateTo) { fsm.AddTransition(new Transition <TState, TTrigger>(stateFrom, trigger, stateTo)); }