Пример #1
0
        public FluentBuilder State(string name)
        {
            NoTokenStateConstruction newState = m_graph.NewState(name);

            m_stateInContext = newState;
            if (m_states.ContainsKey(name))
            {
                Debug.LogError("Hapn FluentBuilder: multiple states declared with same name.");
            }
            m_states[name] = newState;
            if (m_waitingTransitions.ContainsKey(name))
            {
                foreach (IBaseTransitionBuilder t in m_waitingTransitions[name])
                {
                    // Transitions with- and without-tokens can transition to no-token states.
                    t.To(newState);
                }
                m_waitingTransitions.Remove(name);
            }

            LinkWaitingThingsToNewState(name, newState);
            AssignTransitionsAndClear(newState);

            return(this);
        }
Пример #2
0
 private void AssignTransitionsAndClear(NoTokenStateConstruction newState)
 {
     foreach (var t in m_transitionsToNextState)
     {
         t.To(newState);
     }
     m_transitionsToNextState.Clear();
 }
Пример #3
0
 public void To(NoTokenStateConstruction dest)
 {
     m_dest = dest.ToEntranceType();
 }