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); } }
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)); }
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)); }