protected void AddTransition(FiniteStateTransition transition) { allTransitions.Add(transition); }
protected void RemoveTransition(FiniteStateTransition transition) { allTransitions.Remove(transition); }
bool TryGetNextStateByEventName(FiniteStateTransition transation, string eventName, out FiniteState state) { state = null; if (currentState == null || !currentState.Name.Equals(transation.LastStateName)) return false; if (!eventName.Equals(transation.EventName)) return false; return (allStates.TryGetValue(transation.NextStateName, out state)); }