public void DeactivateState(driveState targetState) { if (ListOfStates.Contains(targetState)) { ListOfStates.Remove(targetState); } }
public driveState[] StatesToOverwrite(driveState targetState) { switch (targetState) { case driveState.still: return(new driveState[4] { driveState.accelerating, driveState.deaccelerating, driveState.braking, driveState.reversing }); case driveState.accelerating: return(new driveState[4] { driveState.still, driveState.deaccelerating, driveState.braking, driveState.reversing }); case driveState.deaccelerating: return(new driveState[4] { driveState.still, driveState.accelerating, driveState.braking, driveState.reversing }); case driveState.reversing: return(new driveState[4] { driveState.still, driveState.accelerating, driveState.braking, driveState.deaccelerating }); case driveState.boosting: return(new driveState[1] { driveState.mini_boosting }); } return(null); }
//=============================================================== //=============================================================== //State List Interactions public void ActivateState(driveState targetState) { if (!ListOfStates.Contains(targetState)) { driveState[] overwrites = StatesToOverwrite(targetState); if (overwrites != null) { foreach (driveState item in overwrites) { DeactivateState(item); } } ListOfStates.Add(targetState); } }