Beispiel #1
0
 public void DeactivateState(driveState targetState)
 {
     if (ListOfStates.Contains(targetState))
     {
         ListOfStates.Remove(targetState);
     }
 }
Beispiel #2
0
    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);
    }
Beispiel #3
0
    //===============================================================

    //===============================================================
    //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);
        }
    }