Exemple #1
0
        public override void OnStart(StartState state)
        {
            if (state == StartState.Editor)
                return;

            if (vessel == null)
                return;
            engine = GetEngine();
            engine.useVelocityCurve = false;
            part.maxTemp = 3600f;
            engine.heatProduction = 100f;
            aje = new AJESolver();
            aje.setDefaults();

            switch (defaultentype)
            {
                case 1:
                    aje.loadJ85();
                    break;
                case 2:
                    aje.loadF100();
                    break;
                case 3:
                    aje.loadCF6();
                    break;
                case 4:
                    aje.loadRamj();
                    break;
            }
            if (true)
            {
                if (acore != -1 && byprat != -1)
                {
                    aje.acore = acore;
                    aje.byprat = byprat;
                    aje.afan = acore * (1.0 + byprat);
                    aje.a2d = aje.a2 = aje.afan;

                }
                if (tt4 != -1)
                    aje.tt[4] = aje.tt4 = aje.tt4d = tt4;
                if (prat3 != -1)
                    aje.prat[3] = aje.p3p2d = prat3;
                if (prat13 != -1)
                    aje.prat[13] = aje.p3fp2d = prat13;
                if (tcomp != -1)
                    aje.tcomp = tcomp;
                if (fhv != -1)
                    aje.fhvd = aje.fhv = fhv;
                if (tt7 != -1)
                    aje.tt[7] = aje.tt7 = aje.tt7d = tt7;
                if (eta2 != -1)
                    aje.eta[2] = eta2;
                if (prat2 != -1)
                    aje.prat[2] = prat2;
                if (prat4 != -1)
                    aje.prat[4] = prat4;
                if (eta3 != -1)
                    aje.eta[3] = eta3;
                if (eta4 != -1)
                    aje.eta[4] = eta4;
                if (eta5 != -1)
                    aje.eta[5] = eta5;
                if (eta7 != -1)
                    aje.eta[7] = eta7;
                if (eta13 != -1)
                    aje.eta[13] = eta13;
                if (tinlt != -1)
                    aje.tinlt = tinlt;
                if (tfan != -1)
                    aje.tfan = tfan;
                if (tcomp != -1)
                    aje.tcomp = tcomp;
                if (precooled != -1)
                    aje.precooled = precooled;
                if (abflag != -1)
                    aje.abflag = abflag;
            }
            if (aje.abflag == 1 && (!isReactionEngine))
            {
                useAB = true;
                ABmax = (float)aje.tt7;
                ABmin = (float)(aje.tt4);
            }
        }
Exemple #2
0
        public override void OnStart(StartState state)
        {
            if (state == StartState.Editor)
            {
                Need_Area = acore * (1 + byprat);
                return;
            }
            if (vessel == null)
                return;
            engine = new EngineWrapper(part);
            engine.useVelocityCurve = false;
            engine.IspMultiplier = IspMultiplier;
            engine.idle = idle;
            engine.ThrustUpperLimit = maxThrust;
            part.maxTemp = 1800f;
            if(tt4 >0)
                part.maxTemp = (tt4-32f) * (1f/1.8f);
            engine.heatProduction = part.maxTemp * 0.1f;
            aje = new AJESolver();
            aje.setDefaults();

            switch (defaultentype)
            {
                case 1:
                    aje.loadJ85();
                    break;
                case 2:
                    aje.loadF100();
                    break;
                case 3:
                    aje.loadCF6();
                    break;
                case 4:
                    aje.loadRamj();
                    break;
            }
            if (true)
            {
                if (acore != -1 && byprat != -1)
                {
                    aje.areaCore = acore;
                    aje.byprat = byprat;
                    aje.areaFan = acore * (1.0 + byprat);
                    aje.a2d = aje.a2 = aje.areaFan;

                }
                if (tt4 != -1)
                    aje.tt[4] = aje.tt4 = aje.tt4d = tt4;
                if (prat3 != -1)
                    aje.prat[3] = aje.p3p2d = prat3;
                if (prat13 != -1)
                    aje.prat[13] = aje.p3fp2d = prat13;
                if (tcomp != -1)
                    aje.tcomp = tcomp;
                if (fhv != -1)
                    aje.fhvd = aje.fhv = fhv;
                if (tt7 != -1)
                    aje.tt[7] = aje.tt7 = aje.tt7d = tt7;
                if (eta2 != -1)
                    aje.eta[2] = eta2;
                if (prat2 != -1)
                    aje.prat[2] = prat2;
                if (prat4 != -1)
                    aje.prat[4] = prat4;
                if (eta3 != -1)
                    aje.eta[3] = eta3;
                if (eta4 != -1)
                    aje.eta[4] = eta4;
                if (eta5 != -1)
                    aje.eta[5] = eta5;
                if (eta7 != -1)
                    aje.eta[7] = eta7;
                if (eta13 != -1)
                    aje.eta[13] = eta13;
                if (tinlt != -1)
                    aje.tinlt = tinlt;
                if (tfan != -1)
                    aje.tfan = tfan;
                if (tcomp != -1)
                    aje.tcomp = tcomp;
                if (abflag != -1)
                    aje.abflag = abflag;
            }
            if (aje.abflag == 1 && (!isReactionEngine))
            {
                useAB = true;
                ABmax = (float)aje.tt7;
                ABmin = (float)(aje.tt4);
            }
            if (part.partInfo.partPrefab.Modules.Contains("AJEModule"))
            {
                AJEModule a = (AJEModule)part.partInfo.partPrefab.Modules["AJEModule"];
                usePrat3Curve = a.usePrat3Curve;
                prat3Curve = a.prat3Curve;
            }
            if (usePrat3Curve)
            {
                print("AJE OnStart for part " + part.name + " found prat3Curve");
                float min, max;
                prat3Curve.FindMinMaxValue(out min, out max);
                print("curve: " + prat3Curve.minTime + ": " + min + "; " + prat3Curve.maxTime + ": " + max);
                aje.fsmach = 0.0;
                aje.prat[3] = aje.p3p2d = prat3Curve.Evaluate(0.0f);
            }

            engine.engineDecelerationSpeed = 1 / (float)(aje.areaCore * (1 + aje.byprat));
            engine.engineAccelerationSpeed = 1 / (float)(aje.areaCore * (1 + aje.byprat));
        }
Exemple #3
0
        public override void OnStart(StartState state)
        {
            if (state == StartState.Editor)
            {
                Need_Area = acore * (1 + byprat);
                return;
            }
            if (vessel == null)
            {
                return;
            }
            engine = new EngineWrapper(part);
            engine.useVelocityCurve = false;
            engine.IspMultiplier    = IspMultiplier;
            engine.idle             = idle;
            engine.ThrustUpperLimit = maxThrust;
            part.maxTemp            = 1800f;
            if (tt4 > 0)
            {
                part.maxTemp = (tt4 - 32f) * (1f / 1.8f);
            }
            engine.heatProduction = part.maxTemp * 0.1f;
            aje = new AJESolver();
            aje.setDefaults();

            switch (defaultentype)
            {
            case 1:
                aje.loadJ85();
                break;

            case 2:
                aje.loadF100();
                break;

            case 3:
                aje.loadCF6();
                break;

            case 4:
                aje.loadRamj();
                break;
            }
            if (true)
            {
                if (acore != -1 && byprat != -1)
                {
                    aje.areaCore = acore;
                    aje.byprat   = byprat;
                    aje.areaFan  = acore * (1.0 + byprat);
                    aje.a2d      = aje.a2 = aje.areaFan;
                }
                if (tt4 != -1)
                {
                    aje.tt[4] = aje.tt4 = aje.tt4d = tt4;
                }
                if (prat3 != -1)
                {
                    aje.prat[3] = aje.p3p2d = prat3;
                }
                if (prat13 != -1)
                {
                    aje.prat[13] = aje.p3fp2d = prat13;
                }
                if (tcomp != -1)
                {
                    aje.tcomp = tcomp;
                }
                if (fhv != -1)
                {
                    aje.fhvd = aje.fhv = fhv;
                }
                if (tt7 != -1)
                {
                    aje.tt[7] = aje.tt7 = aje.tt7d = tt7;
                }
                if (eta2 != -1)
                {
                    aje.eta[2] = eta2;
                }
                if (prat2 != -1)
                {
                    aje.prat[2] = prat2;
                }
                if (prat4 != -1)
                {
                    aje.prat[4] = prat4;
                }
                if (eta3 != -1)
                {
                    aje.eta[3] = eta3;
                }
                if (eta4 != -1)
                {
                    aje.eta[4] = eta4;
                }
                if (eta5 != -1)
                {
                    aje.eta[5] = eta5;
                }
                if (eta7 != -1)
                {
                    aje.eta[7] = eta7;
                }
                if (eta13 != -1)
                {
                    aje.eta[13] = eta13;
                }
                if (tinlt != -1)
                {
                    aje.tinlt = tinlt;
                }
                if (tfan != -1)
                {
                    aje.tfan = tfan;
                }
                if (tcomp != -1)
                {
                    aje.tcomp = tcomp;
                }
                if (abflag != -1)
                {
                    aje.abflag = abflag;
                }
            }
            if (aje.abflag == 1 && (!isReactionEngine))
            {
                useAB = true;
                ABmax = (float)aje.tt7;
                ABmin = (float)(aje.tt4);
            }
            if (part.partInfo.partPrefab.Modules.Contains("AJEModule"))
            {
                AJEModule a = (AJEModule)part.partInfo.partPrefab.Modules["AJEModule"];
                usePrat3Curve = a.usePrat3Curve;
                prat3Curve    = a.prat3Curve;
            }
            if (usePrat3Curve)
            {
                print("AJE OnStart for part " + part.name + " found prat3Curve");
                float min, max;
                prat3Curve.FindMinMaxValue(out min, out max);
                print("curve: " + prat3Curve.minTime + ": " + min + "; " + prat3Curve.maxTime + ": " + max);
                aje.fsmach  = 0.0;
                aje.prat[3] = aje.p3p2d = prat3Curve.Evaluate(0.0f);
            }

            engine.engineDecelerationSpeed = 1 / (float)(aje.areaCore * (1 + aje.byprat));
            engine.engineAccelerationSpeed = 1 / (float)(aje.areaCore * (1 + aje.byprat));
        }