Ejemplo n.º 1
0
 public void CreateTransition(FsmTransition stateTransition)
 {
     var sameOne = _transitions.Find((t) => { return t.trail == stateTransition.trail; });
     if (sameOne == null)
         _transitions.Add(stateTransition);
     else
         throw new Exception("The Trastion Same");
 }
Ejemplo n.º 2
0
 public IFsmState TryGoNext()
 {
     for (int i = 0; i < _transitions.Count; i++)
     {
         if (_transitions[i].IsMetCondition)
         {
             FsmTransition transition = _transitions[i];
             return transition.GoToNextState();
         }
     }
     return null;
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 创建过渡线
 /// </summary>
 /// <param name="head"></param>
 /// <param name="trail"></param>
 /// <returns></returns>
 public FsmTransition CreateTransition(IFsmState head, IFsmState trail)
 {
     if (!_stateInfo.ContainsKey(head))
     {
         Log.E("Subscribe Head State  Fist");
         return null;
     }
     if (!_stateInfo.ContainsKey(trail))
     {
         Log.E("Subscribe Trail State  Fist");
         return null;
     }
     FsmTransition transition = new FsmTransition();
     transition.head = head;
     transition.trail = trail;
     _stateInfo[head].CreateTransition(transition);
     return transition;
 }