Exemplo n.º 1
0
 public Transition(eTurnstileState start_state,
                   eTurnstileState end_state,
                   eTurnstileEvent event_trigger,
                   Action action)
 {
     StartState   = start_state;
     EndState     = end_state;
     EventTrigger = event_trigger;
     Action       = action;
 }
Exemplo n.º 2
0
 /// <summary>
 /// 状态事件解释引擎
 /// </summary>
 /// <param name="e"></param>
 public void HandleEvent(eTurnstileEvent e)
 {
     foreach (var transition in _transitions)
     {
         if (State == transition.StartState &&
             e == transition.EventTrigger)
         {
             transition.Action();
             State = transition.EndState;
         }
     }
 }
Exemplo n.º 3
0
 private void AddTransition(eTurnstileState start, eTurnstileState end,
                            eTurnstileEvent e, Action action)
 {
     _transitions.Add(new Transition(start, end, e, action));
 }