private bool isTransitionAllowed(Nb_StateModel <T> state1, Nb_StateModel <T> state2) { if (transitions.Contains(state1, state2)) { return(true); } return(false); }
public void changeState(T nextT) { if (!isTransitionAllowed(curState.getState(), nextT)) { throw new Nb_Exception("State transition from " + curState.ToString() + " to " + nextT.ToString() + " is not allowed."); } curState.onExit(); curState = getState(nextT); getState(nextT).onEnter(); }
public void changeState(Nb_StateModel <T> nextState) { if (!isTransitionAllowed(curState, nextState)) { throw new Nb_Exception("State transition from " + curState.ToString() + " to " + nextState.ToString() + " is not allowed."); } curState.onExit(); curState = nextState; curState.onEnter(); }
public Nb_StateMachine(Nb_StateModel <T> curState) { this.curState = curState; transitions = new Nb_Tuple <Nb_StateModel <T>, Nb_StateModel <T> > (); allStates = new List <Nb_StateModel <T> > (); foreach (T state in Enum.GetValues(typeof(T))) { Nb_StateModel <T> tmp = new Nb_StateModel <T> (state); allStates.Add(tmp); } }
public Nb_StateMachine(T t) { allStates = new List <Nb_StateModel <T> > (); foreach (T state in Enum.GetValues(typeof(T))) { Nb_StateModel <T> tmp = new Nb_StateModel <T> (state); allStates.Add(tmp); } curState = getState(t); transitions = new Nb_Tuple <Nb_StateModel <T>, Nb_StateModel <T> > (); defaultTransitions = new Nb_Tuple <Nb_StateModel <T>, Nb_StateModel <T> > (); }
public void addTransition(Nb_StateModel <T> state1, Nb_StateModel <T> state2, bool isDefault = false) { addTransition(state1.getState(), state2.getState(), isDefault); }