Esempio n. 1
0
 public void DeleteState(BotanyStateID stateID)
 {
     if (stateID == BotanyStateID.NullState)
     {
         return;
     }
     foreach (IBotanyState s in mStates)
     {
         if (s.stateID == stateID)
         {
             mStates.Remove(s);
             return;
         }
     }
 }
Esempio n. 2
0
 public void AddTransition(BotanyTransition trans, BotanyStateID id)
 {
     if (trans == BotanyTransition.NullTansition)
     {
         return;
     }
     if (id == BotanyStateID.NullState)
     {
         return;
     }
     if (mMap.ContainsKey(trans))
     {
         return;
     }
     mMap.Add(trans, id);
 }
Esempio n. 3
0
        public void PerformTransition(BotanyTransition trans)
        {
            if (trans == BotanyTransition.NullTansition)
            {
                return;
            }
            BotanyStateID nextStateID = CurrentState.GetOutPutState(trans);

            if (nextStateID == BotanyStateID.NullState)
            {
                return;
            }
            foreach (IBotanyState s in mStates)
            {
                if (s.stateID == nextStateID)
                {
                    currentState.DoBeforeLeaving();
                    currentState = s;
                    currentState.DoBeforeEntering();
                    return;
                }
            }
        }