Inheritance: SolverEngines.EngineSolver
        public override void CreateEngine()
        {
            engineSolver = new SolverRF();
            if (!useAtmCurve)
            {
                atmCurve = null;
            }
            if (!useVelCurve)
            {
                velCurve = null;
            }
            if (!useThrustCurve)
            {
                thrustCurve = null;
            }

            // FIXME quick temp hax
            if (useAtmCurve)
            {
                if (maxEngineTemp == 0)
                {
                    maxEngineTemp = 2000d;
                }
                if (chamberNominalTemp == 0)
                {
                    chamberNominalTemp = 950d;
                }
            }
            else
            {
                if (maxEngineTemp == 0)
                {
                    maxEngineTemp = 3600d;
                }
                if (chamberNominalTemp == 0)
                {
                    chamberNominalTemp = 3500d;
                }
            }

            (engineSolver as SolverRF).InitializeOverallEngineData(
                minFuelFlow,
                maxFuelFlow,
                atmosphereCurve,
                atmCurve,
                velCurve,
                throttleResponseRate,
                chamberNominalTemp,
                machLimit,
                machHeatMult);
        }
Exemplo n.º 2
0
        public override void CreateEngine()
        {
            rfSolver = new SolverRF();
            if(!useAtmCurve)
                atmCurve = null;
            if(!useVelCurve)
                velCurve = null;
            if (!useThrustCurve)
                thrustCurve = null;

            // FIXME quick temp hax
            if (useAtmCurve)
            {
                if (maxEngineTemp == 0d)
                    maxEngineTemp = 2000d;
                if (chamberNominalTemp == 0d)
                    chamberNominalTemp = 950d;
            }
            else
            {
                if (maxEngineTemp == 0d)
                    maxEngineTemp = 3600d;
                if (chamberNominalTemp == 0d)
                    chamberNominalTemp = 3400d;
                if (tempGaugeMin == 0.8d)
                    tempGaugeMin = 0.95d;
            }
            double thrustVariation = varyThrust * RFSettings.Instance.varyThrust;
            chamberNominalTemp *= (1d - thrustVariation);

            rfSolver.InitializeOverallEngineData(
                minFuelFlow,
                maxFuelFlow,
                atmosphereCurve,
                atmCurve,
                velCurve,
                throttleResponseRate,
                chamberNominalTemp,
                machLimit,
                machHeatMult,
                flowMultMin,
                flowMultCap,
                flowMultCapSharpness,
                multFlow,
                thrustVariation,
                (float)part.name.GetHashCode());

            rfSolver.SetScale(scale);

            engineSolver = rfSolver;
        }
Exemplo n.º 3
0
        public override void CreateEngine()
        {
            rfSolver = new SolverRF();
            if (!useAtmCurve)
            {
                atmCurve = null;
            }
            if (!useVelCurve)
            {
                velCurve = null;
            }

            // FIXME quick temp hax
            if (useAtmCurve)
            {
                if (maxEngineTemp == 0d)
                {
                    maxEngineTemp = 2000d;
                }
                if (chamberNominalTemp == 0d)
                {
                    chamberNominalTemp = 950d;
                }
            }
            else
            {
                if (maxEngineTemp == 0d)
                {
                    maxEngineTemp = 3600d;
                }
                if (chamberNominalTemp == 0d)
                {
                    chamberNominalTemp = 3400d;
                }
                if (tempGaugeMin == 0.8d)
                {
                    tempGaugeMin = 0.95d;
                }
            }
            double thrustVariation = varyThrust * RFSettings.Instance.varyThrust;

            chamberNominalTemp *= (1d - thrustVariation);

            rfSolver.InitializeOverallEngineData(
                minFuelFlow,
                maxFuelFlow,
                atmosphereCurve,
                useAtmCurve ? atmCurve : null,
                useVelCurve ? velCurve : null,
                useAtmCurveIsp ? atmCurveIsp : null,
                useVelCurveIsp ? velCurveIsp : null,
                disableUnderwater,
                throttleResponseRate,
                chamberNominalTemp,
                machLimit,
                machHeatMult,
                flowMultMin,
                flowMultCap,
                flowMultCapSharpness,
                thrustVariation,
                (float)part.name.GetHashCode());

            rfSolver.SetScale(scale);

            engineSolver = rfSolver;
        }
        protected bool started = false; // Track start state, don't handle MEC notification before first start.

        #endregion

        #region Overrides
        public override void CreateEngine()
        {
            rfSolver = new SolverRF();
            if (!useAtmCurve)
            {
                atmCurve = null;
            }
            if (!useVelCurve)
            {
                velCurve = null;
            }

            // FIXME quick temp hax
            if (useAtmCurve)
            {
                if (maxEngineTemp == 0d)
                {
                    maxEngineTemp = 2000d;
                }
                if (chamberNominalTemp == 0d)
                {
                    chamberNominalTemp = 950d;
                }
            }
            else
            {
                if (maxEngineTemp == 0d)
                {
                    maxEngineTemp = 3600d;
                }
                if (chamberNominalTemp == 0d)
                {
                    chamberNominalTemp = 3400d;
                }
                if (tempGaugeMin == 0.8d)
                {
                    tempGaugeMin = 0.95d;
                }
            }
            double totalVariation = (1d + localVaryFlow) * (1d + localVaryIsp) - 1d;

            chamberNominalTemp *= (1d - totalVariation);

            rfSolver.InitializeOverallEngineData(
                minFuelFlow,
                maxFuelFlow,
                atmosphereCurve,
                useAtmCurve ? atmCurve : null,
                useVelCurve ? velCurve : null,
                useAtmCurveIsp ? atmCurveIsp : null,
                useVelCurveIsp ? velCurveIsp : null,
                disableUnderwater,
                throttleResponseRate,
                chamberNominalTemp,
                machLimit,
                machHeatMult,
                flowMultMin,
                flowMultCap,
                flowMultCapSharpness,
                localVaryFlow,
                localVaryIsp,
                localVaryMixture,
                isSolid,
                partSeed);

            rfSolver.SetScale(scale);

            engineSolver = rfSolver;
        }