Esempio n. 1
0
    private void SetState(State newState)
    {
        if (state == newState)
        {
            return;
        }
        // Debug.Log("new state = " + newState);
        switch (newState)
        {
        case State.SELECT_OBJECTIVE:
            InactivatePanels();
            objectivePanel.SetActive(true);
            break;

        case State.COURSE_CHANGE:
            InactivatePanels();
            courseChangePanel.SetActive(true);
            break;

        case State.INTERCEPT_SELECTION:
            running = false;
            GravityEngine.Instance().SetEvolve(running);
            // trajectory prediction is "heavy", especially at high time zoom. Only enable it when it is
            // needed
            SetTrajectoryPrediction(true);
            InactivatePanels();
            manualPanel.SetActive(true);
            break;

        case State.ORBIT_SELECTION:
            running = false;
            GravityEngine.Instance().SetEvolve(running);
            InactivatePanels();
            orbitXferPanel.SetActive(true);
            CalculateTransfers();
            break;

        case State.MANEUVER:
            running = true;
            SetTrajectoryPrediction(false);
            GravityEngine.Instance().SetEvolve(running);
            trajIntercepts.ClearMarkers();
            InactivatePanels();
            maneuverPanel.SetActive(true);
            spaceship.ResetThrust();
            break;

        default:
            Debug.LogError("Internal error - unknown state");
            break;
        }
        state = newState;
    }