InitializeOverallEngineData() 공개 메소드

public InitializeOverallEngineData ( double nMinFlow, double nMaxFlow, FloatCurve nAtmosphereCurve, FloatCurve nAtmCurve, FloatCurve nVelCurve, FloatCurve nAtmCurveIsp, FloatCurve nVelCurveIsp, bool nDisableUnderwater, double nThrottleResponseRate, double nChamberNominalTemp, double nMachLimit, double nMachMult, double nFlowMultMin, double nFlowMultCap, double nFlowMultSharp, double nVaryThrust, float nSeed ) : void
nMinFlow double
nMaxFlow double
nAtmosphereCurve FloatCurve
nAtmCurve FloatCurve
nVelCurve FloatCurve
nAtmCurveIsp FloatCurve
nVelCurveIsp FloatCurve
nDisableUnderwater bool
nThrottleResponseRate double
nChamberNominalTemp double
nMachLimit double
nMachMult double
nFlowMultMin double
nFlowMultCap double
nFlowMultSharp double
nVaryThrust double
nSeed float
리턴 void
예제 #1
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;
        }
예제 #2
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;
        }