void Awake()
    {
        // Convert from real world units
        // Rocket engine thrust is given in SI units, so acceleration is in SI units
        // For Orbital scale need to convert to km/hr^2
        accelerationConversion = GravityScaler.AccelSItoGEUnits();
        // and convert to the physics scale used in the engine
        accelerationConversion = accelerationConversion * GravityScaler.AccelGEtoInternalUnits();

        burnStart     = new double[MAX_STAGES];
        burnRateScale = GravityScaler.GetGameSecondPerPhysicsSecond();

        fuelLevel = new double[MAX_STAGES];
        for (int i = 0; i < numStages; i++)
        {
            fuelLevel[i] = massFuel[i];
        }

        // acceleration will be opposite to thrust direction
        accelDirection = -thrustAxis;
        activeStage    = 0;

        activeState = GravityEngine.Instance().GetWorldState();

        SetEngine(engineOn);
    }
Beispiel #2
0
    void Start()
    {
        SetEngine(engineOn);
        // Convert from real world units
        // Rocket engine thrust is given in SI units, so acceleration is in SI units
        // For Orbital scale need to convert to km/hr^2
        accelerationConversion = GravityScaler.AccelSItoGEUnits();
        // and convert to the physics scale used in the engine
        accelerationConversion = accelerationConversion * GravityScaler.AccelGEtoInternalUnits();

        burnRateScaled  = burnRate * GravityScaler.GetGameSecondPerPhysicsSecond();
        thrustDirection = thrustAxis;
    }
    /// <summary>
    /// Validation:
    /// - confirmed velocity in SI units matches expected orbital velocity of ISS
    /// - checked that SI acceleration = -g at terminal velocity (9.73 m/s^2 at 28 km)
    /// </summary>

    // Use this for initialization
    void Start()
    {
        if (inertialMassKg == 0)
        {
            Debug.LogError("Mass is zero. Drag calculation will fail.");
        }
        if (spaceship == null)
        {
            spaceship = GetComponent <NBody>();
        }

        geDistanceToKm = 1;
        v_ship         = new double[] { 0, 0, 0 };
        v_earth        = new double[] { 0, 0, 0 };

        velocityScaleInternalToSI = GravityScaler.VelocityScaletoSIUnits() / GravityScaler.GetVelocityScale();
        accelSItoGE = GravityScaler.AccelSItoGEUnits() / GravityScaler.AccelerationScaleInternalToGEUnits();

        LoadDensityProfile();

        liveState = GravityEngine.Instance().GetWorldState();
    }
Beispiel #4
0
 void Start()
 {
     worldState  = GravityEngine.Instance().GetWorldState();
     accelGEtoSI = GravityScaler.AccelerationScaleInternalToGEUnits() / GravityScaler.AccelSItoGEUnits();
 }