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); } }
public void SetState(SpartaState state, SpartaTransition transitionIn, SpartaTransition transitionOut) { AddState(state, SpartaState.SpartaStateMode.Loading, transitionIn, transitionOut); }