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);
     
 }
Beispiel #5
0
 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));
 }
Beispiel #7
0
 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));
 }