Exemple #1
0
        protected void AddState(SpartaState state, SpartaState.SpartaStateMode mode, SpartaTransition transitionIn, SpartaTransition transitionOut)
        {
            if (state == null)
            {
                return;
            }

            if (states.Count > 0 && (mode == SpartaState.SpartaStateMode.Loading))
            {
                SpartaState[] spartaStates = this.states.Array;
                int           count        = this.states.Count;
                for (int i = 0; i < count; i++)
                {
                    if (spartaStates[i].Mode == SpartaState.SpartaStateMode.Loading)
                    {
                        spartaStates[i].Mode = SpartaState.SpartaStateMode.Deactivated;
                    }
                    else if (spartaStates[i].Mode == SpartaState.SpartaStateMode.Activated || spartaStates[i].Mode == SpartaState.SpartaStateMode.TransitionIn)
                    {
                        if (transitionOut.transitionType == SpartaTransitionType.None)
                        {
                            spartaStates[i].Mode = SpartaState.SpartaStateMode.Deactivated;
                        }
                        else
                        {
                            spartaStates[i].TransitionOut = transitionOut;
                            spartaStates[i].Mode          = SpartaState.SpartaStateMode.TransitionOff;
                        }
                    }
                }
            }

            state.TransitionIn = transitionIn;
            state.Mode         = mode;

            if (!states.Contains(state))
            {
                states.Add(state);
            }
        }
Exemple #2
0
 public void SetState(SpartaState state, SpartaTransition transitionIn, SpartaTransition transitionOut)
 {
     AddState(state, SpartaState.SpartaStateMode.Loading, transitionIn, transitionOut);
 }