public iFSMState MakeTransition(int event_code = 0) { iFSMState next = null; transition_table.TryGetValue(event_code, out next); return(next); }
public void AddTransition(iFSMState from, iFSMState to, int event_code = 0) { if (transition_index.ContainsKey(from) == false) { transition_index[from] = new FSMStateTransitions(); } transition_index[from].AddTransition(to, event_code); }
public bool MakeTransition(int event_code = 0) { iFSMState next = transition_index[active_state].MakeTransition(event_code); if (next == null) { Debug.Log("Can not make transition from " + active_state + " for event " + event_code); return(false); } active_state.ExitState(); active_state = next; active_state.EnterState(); return(true); }
public void StartFSM(iFSMState first_state) { active_state = first_state; active_state.EnterState(); ResumeFSM(); }
public void AddTransition(iFSMState state, int event_code = 0) { transition_table[event_code] = state; }