public StateMachin() { mTokenActions = new Dictionary <MousToken, Dictionary <MousState, Action> >(); mLocked = new List <MousToken>(); CurrentState = MousState.Normal; }
public static MousState[] GetExept(MousState state) { List <MousState> l = GetStates.ToList(); l.Remove(state); return(l.ToArray()); }
public void RegisterState(MousToken token, MousState[] fromStates, MousState toState, Action @event) { if (!mTokenActions.ContainsKey(token)) { mTokenActions.Add(token, new Dictionary <MousState, Action>()); } foreach (MousState item in fromStates) { mTokenActions[token].Add(item, delegate { CurrentState = toState; @event?.Invoke(); Lock(); }); } }