コード例 #1
0
ファイル: WaitState.cs プロジェクト: SecondKey/SKFrame
        public void ChangeState(T token)
        {
            if (isFirst)
            {
                if (nextState == null)
                {
                    if (MainChange != null)
                    {
                        MainChange.Invoke();
                    }
                }
                if (EachChange != null)
                {
                    EachChange.Invoke(token);
                }
            }

            if (nextState == null)
            {
                nextState = new WaitState <T>(token, false);
            }
            else
            {
                nextState.ChangeState(token);
            }
        }
コード例 #2
0
        /// <summary>
        /// 激发状态(注册了一个新的事件)
        /// </summary>
        /// <param name="token"></param>
        public void ExciteState(T token)
        {
            if (isFirst)
            {
                if (nextState == null)
                {
                    if (MainExcite != null)
                    {
                        MainExcite.Invoke();
                    }
                }
                if (EachExcite != null)
                {
                    EachExcite.Invoke(token);
                }
            }

            if (nextState == null)
            {
                nextState = new WaitState <T>(token, false);
            }
            else
            {
                nextState.ExciteState(token);
            }
        }
コード例 #3
0
ファイル: WaitState.cs プロジェクト: SecondKey/SKFrame
        public void ReductionState(T token)
        {
            if (nextState.StateToken as object == token as object)
            {
                nextState = nextState.nextState;

                if (isFirst)
                {
                    if (EachReduction != null)
                    {
                        EachReduction.Invoke(token);
                    }
                    if (nextState == null && addAlready)
                    {
                        MainReduction.Invoke();
                    }
                }
            }
            else
            {
                nextState.ReductionState(token);
            }
        }