Skip to content

Commit

Permalink
Showing 2 changed files with 20 additions and 12 deletions.
Binary file modified GameData/RP-0/Plugins/RP0.dll
Binary file not shown.
32 changes: 20 additions & 12 deletions Source/ModuleNonReentryRated.cs
Original file line number Diff line number Diff line change
@@ -8,19 +8,10 @@ namespace RP0
{
public class ModuleNonReentryRated : PartModule
{
protected PartThermalData ptd;
protected bool recalc = true;

public override string GetInfo()
{
return "Part is not rated for reentry!";
}

public override void OnAwake()
{
base.OnAwake();
part.maximum_drag = float.MinValue;
}
}

[KSPAddon(KSPAddon.Startup.SpaceCentre, true)]
@@ -32,17 +23,34 @@ public void Start()
ModularFI.ModularFlightIntegrator.RegisterUpdateThermodynamicsPre(UpdateThermodynamicsPre);
}

protected static HashSet<Part> parts = new HashSet<Part>();
protected static Vessel lastVessel = null;

public static void UpdateThermodynamicsPre(ModularFI.ModularFlightIntegrator fi)
{
for (int i = fi.partThermalDataList.Count; i-- > 0;)
if (lastVessel != fi.Vessel || parts.Count != fi.partThermalDataList.Count)
{
PartThermalData ptd = fi.partThermalDataList[i];
if (ptd.part.maximum_drag == float.MinValue)
parts.Clear();
lastVessel = fi.Vessel;

for (int i = fi.partThermalDataList.Count; i-- > 0;)
{
var ptd = fi.partThermalDataList[i];
var part = ptd.part;
if (part.GetComponent<ModuleNonReentryRated>())
parts.Add(part);
}
}

for (int i = fi.partThermalDataList.Count; i-- > 0;)
{
PartThermalData ptd = fi.partThermalDataList[i];
var part = ptd.part;
if(parts.Contains(part))
{
ptd.convectionTempMultiplier = Math.Max(ptd.convectionTempMultiplier, 0.5d);
ptd.convectionCoeffMultiplier = Math.Max(ptd.convectionCoeffMultiplier, 0.5d);
ptd.convectionAreaMultiplier = Math.Max(ptd.convectionAreaMultiplier, 0.5d);

ptd.postShockExtTemp = UtilMath.LerpUnclamped(part.vessel.atmosphericTemperature, part.vessel.externalTemperature, ptd.convectionTempMultiplier);
ptd.finalCoeff = part.vessel.convectiveCoefficient * ptd.convectionArea * 0.001d * part.heatConvectiveConstant * ptd.convectionCoeffMultiplier;

0 comments on commit 0f9a467

Please sign in to comment.