Exemple #1
0
 private bool isTransitionAllowed(Nb_StateModel <T> state1, Nb_StateModel <T> state2)
 {
     if (transitions.Contains(state1, state2))
     {
         return(true);
     }
     return(false);
 }
Exemple #2
0
 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();
 }
Exemple #3
0
 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();
 }
Exemple #4
0
 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);
     }
 }
Exemple #5
0
 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> > ();
 }
Exemple #6
0
 public void addTransition(Nb_StateModel <T> state1, Nb_StateModel <T> state2, bool isDefault = false)
 {
     addTransition(state1.getState(), state2.getState(), isDefault);
 }