public void PerformTransition(TRANSITION transition) { if (transition == TRANSITION.NullTransition) { WKStaticFunction.WKMessageError("the transition is null"); return; } STATE_ID stateID = _CurrentState.GetState(transition); if (stateID == STATE_ID.NullStateID) { WKStaticFunction.WKMessageError("the state of transition is null ::" + _CurrentState.ID.ToString() + transition.ToString()); return; } _CurrentStateID = stateID; STATE_ID previousState = _CurrentState.ID; foreach (FSMState state in _States) { if (state.ID == _CurrentStateID) { _CurrentState.OnLeave(); _CurrentState = state; _CurrentState._PreviousState = previousState; _CurrentState.OnEnter(); break; } } }
private void CheckInput() { if (Input.GetKeyDown(KeyCode.LeftArrow)) { transition = TRANSITION.LEFT; currentNumber = (currentNumber + 59) % 60; safelock.transform.Rotate(rotateDegree, 0, 0); tick.Play(); } else if (Input.GetKeyDown(KeyCode.RightArrow)) { transition = TRANSITION.RIGHT; currentNumber = (currentNumber + 1) % 60; safelock.transform.Rotate(-rotateDegree, 0, 0); tick.Play(); } else if (Input.GetKeyDown(KeyCode.Space)) { transition = TRANSITION.DOOR; } else { transition = TRANSITION.NULL; } }
// Use this for initialization void Start() { rotateDegree = 360.0f / 60.0f; state = STATE.INIT; transition = TRANSITION.NULL; openDoorEnd = -10.0f; ResetPasswd(); }
public STATE_ID GetState(TRANSITION transition) { if (_Map.ContainsKey(transition)) { return(_Map[transition]); } return(STATE_ID.NullStateID); }
// set the transition so the things in the app gonna call this to transition from one state //To another public void SetTransition(TRANSITION transition) { if (_FSM != null) { _FSM.PerformTransition(transition); } else { WKStaticFunction.WKMessageError("there is no fsm system in the app"); MakeFSM(); } }
public void DeleteTransition(TRANSITION transition) { if (transition == TRANSITION.NullTransition) { WKStaticFunction.WKMessageError("The Transition is null, or not fully initialized"); return; } if (_Map.ContainsKey(transition)) { _Map.Remove(transition); return; } WKStaticFunction.WKMessageLog("The Transition is not on the transition _Map"); }
public void AddTransition(TRANSITION Transition, STATE_ID StateID) { if (Transition == TRANSITION.NullTransition) { WKStaticFunction.WKMessageError("The Transition is error"); return; } if (StateID == STATE_ID.NullStateID) { WKStaticFunction.WKMessageError("The State is error"); return; } if (_Map.ContainsKey(Transition)) { WKStaticFunction.WKMessageError("The FSM already have this transition for state"); return; } _Map.Add(Transition, StateID); }
private void OpenMenu(Menu menu, TRANSITION transition) { menu.ResetTriggers(); if (Instance.CurrentMenu != null) { if (transition == TRANSITION.CLOSE) { Instance.CurrentMenu.Close(); } else { if (transition == TRANSITION.STACK) { Instance.History.Push(Instance.CurrentMenu); } Instance.CurrentMenu.Hide(); } } Instance.CurrentMenu = menu; Instance.CurrentMenu.Open(); }