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); }
private void AssignTransitionsAndClear(NoTokenStateConstruction newState) { foreach (var t in m_transitionsToNextState) { t.To(newState); } m_transitionsToNextState.Clear(); }
public void To(NoTokenStateConstruction dest) { m_dest = dest.ToEntranceType(); }