public void ChangeState(StatesNames newState) { Vector3 m_MoveDirection = currentState.LeaveState(newState); currentState = this[newState]; currentState.EnterState(m_MoveDirection); }
public override void LeaveState(StatesNames newState) { Background.enabled = true; timeScale = GameTime.timeScale; GameTime.timeScale = 0f; OnPause?.Invoke(); Cursor.lockState = CursorLockMode.None; Cursor.visible = true; }
public override void LeaveState(StatesNames newState) { isChangingMain = false; isChangingAlt = false; changingButton = ""; OnChangingButtonFinished?.Invoke(); SwitchStateObject(false); }
State GetStateFromName(StatesNames _name) { foreach (State cur in states) { if (cur.stateName == _name) { return(cur); } } throw new ArgumentOutOfRangeException(); }
public bool CheckNewState(StatesNames newState) { for (int i = 0; i < allowedTransitions.Length; i++) { if (newState == allowedTransitions [i]) { return(true); } } return(false); }
State this[StatesNames stateName] { get { foreach (State cur in statesList) { if (cur.StateName == stateName) { return(cur); } } throw new System.ArgumentOutOfRangeException(); } }
/// <summary> /// Notify observers of a specific State's value. /// </summary> /// <typeparam name="T">The State's value type.</typeparam> /// <param name="stateName">The state name.</param> /// <returns>The State.</returns> public override IState <T> PublishState <T>(StatesNames stateName) { bool isDisplayed = UITitle.Exist(); var genericIsDisplayed = (T)Convert.ChangeType(isDisplayed, typeof(T)); State <T> state = stateName switch { StatesNames.Exist => new State <T>(this, StatesNames.Exist, genericIsDisplayed), StatesNames.Ready => new State <T>(this, StatesNames.Ready, genericIsDisplayed), _ => throw new ArgumentException($"Undefined {nameof(StatesNames)}: {stateName}."), }; NotifyObservers(state); return(state); }
public void ChangeState(StatesNames _name) { if (_name == currentState.stateName || !IsChangeStateAllowed) { return; } if (!currentState.CheckNewState(_name)) { throw new ArgumentOutOfRangeException($"Transition {currentState.stateName} - {_name} not allowed"); } currentState.LeaveState(_name); previousState = currentState; State newState = GetStateFromName(_name); currentState = newState; currentState.EnterState(); }
public void ChangeState(string _name) { StatesNames temp = _name.GetStateNameFromString(); ChangeState(temp); }
public static string GetString(this StatesNames name) { return(name.ToString().ToLower()); }
public virtual void LeaveState(StatesNames newState) { SwitchStateObject(false); }
public override Vector3 LeaveState(StatesNames newState) { return(m_MoveDirection); }
public abstract Vector3 LeaveState(StatesNames newState);
public State(INavigable navigable, StatesNames name, T value) { Navigable = navigable; Name = name; Value = value; }
/// <summary> /// Notify observers of a specific State's value. /// </summary> /// <typeparam name="T">The State's value type.</typeparam> /// <param name="stateName">The state name.</param> /// <returns>The State.</returns> public abstract IState <T> PublishState <T>(StatesNames stateName);
public override void LeaveState(StatesNames newState) { SwitchStateObject(false); inputField.text = ""; isActive = false; }
public override Vector3 LeaveState(StatesNames newState) { return(Vector3.zero); }