public StateMachin()
            {
                mTokenActions = new Dictionary <MousToken, Dictionary <MousState, Action> >();
                mLocked       = new List <MousToken>();

                CurrentState = MousState.Normal;
            }
Exemplo n.º 2
0
        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();
                    });
                }
            }