Thermal section is now set as custom.
--- a/Documents/CHANGES.txt
+++ b/Documents/CHANGES.txt
@@ -6,11 +6,14 @@
Radiation Flux
Critical Part Name
Critical Part Temperature
- Critical Part Percentage of Max Temperature
+ Critical Part Skin Temperature
+ Critical Part Thermal Percentage of Max Temperature
Hottest Part Name
Hottest Part Temperature
+ Hottest Part Skin Temperature
Coldest Part Name
Coldest Part Temperature
+ Coldest Part Skin Temperature
Changed: Mach on the Build Engineer now accurate to 2 decimal places.
Changed: Max mach in the Build Engineer defaults to 1.00 even when no jet engines are present.
--- a/KerbalEngineer/EngineerGlobals.cs
+++ b/KerbalEngineer/EngineerGlobals.cs
@@ -25,7 +25,7 @@
/// <summary>
/// Current version of the Kerbal Engineer assembly.
/// </summary>
- public const string ASSEMBLY_VERSION = "1.0.16.6";
+ public const string ASSEMBLY_VERSION = "1.0.17.0";
private static string assemblyFile;
private static string assemblyName;
--- a/KerbalEngineer/Flight/Readouts/ReadoutLibrary.cs
+++ b/KerbalEngineer/Flight/Readouts/ReadoutLibrary.cs
@@ -1,6 +1,4 @@
//
-// Kerbal Engineer Redux
-//
// Copyright (C) 2015 CYBUTEK
//
// This program is free software: you can redistribute it and/or modify
@@ -171,11 +169,14 @@
readouts.Add(new RadiationFlux());
readouts.Add(new CriticalPart());
readouts.Add(new CriticalTemperature());
- readouts.Add(new CriticalPercentage());
+ readouts.Add(new CriticalSkinTemperature());
+ readouts.Add(new CriticalThermalPercentage());
readouts.Add(new HottestPart());
readouts.Add(new HottestTemperature());
+ readouts.Add(new HottestSkinTemperature());
readouts.Add(new CoolestPart());
readouts.Add(new CoolestTemperature());
+ readouts.Add(new CoolestSkinTemperature());
// Misc
readouts.Add(new Separator());
--- /dev/null
+++ b/KerbalEngineer/Flight/Readouts/Thermal/CoolestSkinTemperature.cs
@@ -1,1 +1,53 @@
+//
+// Kerbal Engineer Redux
+//
+// Copyright (C) 2015 CYBUTEK
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+//
+namespace KerbalEngineer.Flight.Readouts.Thermal
+{
+ using Helpers;
+ using Sections;
+
+ public class CoolestSkinTemperature : ReadoutModule
+ {
+ public CoolestSkinTemperature()
+ {
+ Name = "Coolest Skin Temperature";
+ Category = ReadoutCategory.GetCategory("Thermal");
+ HelpString = string.Empty;
+ IsDefault = true;
+ }
+
+ public override void Draw(SectionModule section)
+ {
+ if (ThermalProcessor.ShowDetails)
+ {
+ DrawLine(Units.ToTemperature(ThermalProcessor.CoolestSkinTemperature, ThermalProcessor.CoolestSkinTemperatureMax), section.IsHud);
+ }
+ }
+
+ public override void Reset()
+ {
+ FlightEngineerCore.Instance.AddUpdatable(ThermalProcessor.Instance);
+ }
+
+ public override void Update()
+ {
+ ThermalProcessor.RequestUpdate();
+ }
+ }
+}
--- a/KerbalEngineer/Flight/Readouts/Thermal/CriticalPercentage.cs
+++ /dev/null
@@ -1,53 +1,1 @@
-//
-// Kerbal Engineer Redux
-//
-// Copyright (C) 2015 CYBUTEK
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-//
-namespace KerbalEngineer.Flight.Readouts.Thermal
-{
- using Extensions;
- using Sections;
-
- public class CriticalPercentage : ReadoutModule
- {
- public CriticalPercentage()
- {
- Name = "Critical Percentage";
- Category = ReadoutCategory.GetCategory("Thermal");
- HelpString = string.Empty;
- IsDefault = true;
- }
-
- public override void Draw(SectionModule section)
- {
- if (ThermalProcessor.ShowDetails)
- {
- DrawLine(ThermalProcessor.CriticalTemperaturePercentage.ToPercent(), section.IsHud);
- }
- }
-
- public override void Reset()
- {
- FlightEngineerCore.Instance.AddUpdatable(ThermalProcessor.Instance);
- }
-
- public override void Update()
- {
- ThermalProcessor.RequestUpdate();
- }
- }
-}
--- /dev/null
+++ b/KerbalEngineer/Flight/Readouts/Thermal/CriticalSkinTemperature.cs
@@ -1,1 +1,53 @@
+//
+// Kerbal Engineer Redux
+//
+// Copyright (C) 2015 CYBUTEK
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+//
+namespace KerbalEngineer.Flight.Readouts.Thermal
+{
+ using Helpers;
+ using Sections;
+
+ public class CriticalSkinTemperature : ReadoutModule
+ {
+ public CriticalSkinTemperature()
+ {
+ Name = "Critical Skin Temperature";
+ Category = ReadoutCategory.GetCategory("Thermal");
+ HelpString = string.Empty;
+ IsDefault = true;
+ }
+
+ public override void Draw(SectionModule section)
+ {
+ if (ThermalProcessor.ShowDetails)
+ {
+ DrawLine(Units.ToTemperature(ThermalProcessor.CriticalSkinTemperature, ThermalProcessor.CriticalSkinTemperatureMax), section.IsHud);
+ }
+ }
+
+ public override void Reset()
+ {
+ FlightEngineerCore.Instance.AddUpdatable(ThermalProcessor.Instance);
+ }
+
+ public override void Update()
+ {
+ ThermalProcessor.RequestUpdate();
+ }
+ }
+}
--- /dev/null
+++ b/KerbalEngineer/Flight/Readouts/Thermal/CriticalThermalPercentage.cs
@@ -1,1 +1,53 @@
+//
+// Kerbal Engineer Redux
+//
+// Copyright (C) 2015 CYBUTEK
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+//
+namespace KerbalEngineer.Flight.Readouts.Thermal
+{
+ using Extensions;
+ using Sections;
+
+ public class CriticalThermalPercentage : ReadoutModule
+ {
+ public CriticalThermalPercentage()
+ {
+ Name = "Critical Thermal Percentage";
+ Category = ReadoutCategory.GetCategory("Thermal");
+ HelpString = string.Empty;
+ IsDefault = true;
+ }
+
+ public override void Draw(SectionModule section)
+ {
+ if (ThermalProcessor.ShowDetails)
+ {
+ DrawLine(ThermalProcessor.CriticalTemperaturePercentage.ToPercent(), section.IsHud);
+ }
+ }
+
+ public override void Reset()
+ {
+ FlightEngineerCore.Instance.AddUpdatable(ThermalProcessor.Instance);
+ }
+
+ public override void Update()
+ {
+ ThermalProcessor.RequestUpdate();
+ }
+ }
+}
--- /dev/null
+++ b/KerbalEngineer/Flight/Readouts/Thermal/HottestSkinTemperature.cs
@@ -1,1 +1,53 @@
+//
+// Kerbal Engineer Redux
+//
+// Copyright (C) 2015 CYBUTEK
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+//
+namespace KerbalEngineer.Flight.Readouts.Thermal
+{
+ using Helpers;
+ using Sections;
+
+ public class HottestSkinTemperature : ReadoutModule
+ {
+ public HottestSkinTemperature()
+ {
+ Name = "Hottest Skin Temperature";
+ Category = ReadoutCategory.GetCategory("Thermal");
+ HelpString = string.Empty;
+ IsDefault = true;
+ }
+
+ public override void Draw(SectionModule section)
+ {
+ if (ThermalProcessor.ShowDetails)
+ {
+ DrawLine(Units.ToTemperature(ThermalProcessor.HottestSkinTemperature, ThermalProcessor.HottestSkinTemperatureMax), section.IsHud);
+ }
+ }
+
+ public override void Reset()
+ {
+ FlightEngineerCore.Instance.AddUpdatable(ThermalProcessor.Instance);
+ }
+
+ public override void Update()
+ {
+ ThermalProcessor.RequestUpdate();
+ }
+ }
+}
--- a/KerbalEngineer/Flight/Readouts/Thermal/ThermalProcessor.cs
+++ b/KerbalEngineer/Flight/Readouts/Thermal/ThermalProcessor.cs
@@ -1,6 +1,4 @@
//
-// Kerbal Engineer Redux
-//
// Copyright (C) 2015 CYBUTEK
//
// This program is free software: you can redistribute it and/or modify
@@ -19,6 +17,8 @@
namespace KerbalEngineer.Flight.Readouts.Thermal
{
+ using System;
+
public class ThermalProcessor : IUpdatable, IUpdateRequest
{
private static readonly ThermalProcessor instance = new ThermalProcessor();
@@ -27,10 +27,16 @@
{
HottestTemperature = 0.0;
HottestTemperatureMax = 0.0;
+ HottestSkinTemperature = 0.0;
+ HottestSkinTemperatureMax = 0.0;
CoolestTemperature = 0.0;
CoolestTemperatureMax = 0.0;
+ CoolestSkinTemperature = 0.0;
+ CoolestSkinTemperatureMax = 0.0;
CriticalTemperature = 0.0;
CriticalTemperatureMax = 0.0;
+ CriticalSkinTemperature = 0.0;
+ CriticalSkinTemperatureMax = 0.0;
HottestPartName = string.Empty;
CoolestPartName = string.Empty;
CriticalPartName = string.Empty;
@@ -40,11 +46,19 @@
public static string CoolestPartName { get; private set; }
+ public static double CoolestSkinTemperature { get; private set; }
+
+ public static double CoolestSkinTemperatureMax { get; private set; }
+
public static double CoolestTemperature { get; private set; }
public static double CoolestTemperatureMax { get; private set; }
public static string CriticalPartName { get; private set; }
+
+ public static double CriticalSkinTemperature { get; private set; }
+
+ public static double CriticalSkinTemperatureMax { get; private set; }
public static double CriticalTemperature { get; private set; }
@@ -53,6 +67,10 @@
public static double CriticalTemperaturePercentage { get; private set; }
public static string HottestPartName { get; private set; }
+
+ public static double HottestSkinTemperature { get; private set; }
+
+ public static double HottestSkinTemperatureMax { get; private set; }
public static double HottestTemperature { get; private set; }
@@ -69,14 +87,8 @@
public static double InternalFlux { get; private set; }
public static double RadiationFlux { get; private set; }
+
public static bool ShowDetails { get; private set; }
-
- public bool UpdateRequested { get; set; }
-
- public static void RequestUpdate()
- {
- instance.UpdateRequested = true;
- }
public void Update()
{
@@ -92,8 +104,11 @@
RadiationFlux = 0.0;
InternalFlux = 0.0;
HottestTemperature = 0.0;
+ HottestSkinTemperature = 0.0;
CoolestTemperature = double.MaxValue;
+ CoolestSkinTemperature = double.MaxValue;
CriticalTemperature = double.MaxValue;
+ CriticalSkinTemperature = double.MaxValue;
CriticalTemperaturePercentage = 0.0;
HottestPartName = string.Empty;
CoolestPartName = string.Empty;
@@ -107,26 +122,40 @@
RadiationFlux = RadiationFlux + part.thermalRadiationFlux;
InternalFlux = InternalFlux + part.thermalInternalFluxPrevious;
- if (part.temperature > HottestTemperature)
+ if (part.temperature > HottestTemperature || part.skinTemperature > HottestSkinTemperature)
{
HottestTemperature = part.temperature;
HottestTemperatureMax = part.maxTemp;
+ HottestSkinTemperature = part.skinTemperature;
+ HottestSkinTemperatureMax = part.skinMaxTemp;
HottestPartName = part.partInfo.title;
}
- if (part.temperature < CoolestTemperature)
+ if (part.temperature < CoolestTemperature || part.skinTemperature < CoolestSkinTemperature)
{
CoolestTemperature = part.temperature;
CoolestTemperatureMax = part.maxTemp;
+ CoolestSkinTemperature = part.skinTemperature;
+ CoolestSkinTemperatureMax = part.skinMaxTemp;
CoolestPartName = part.partInfo.title;
}
- if (part.temperature / part.maxTemp > CriticalTemperaturePercentage)
+
+ if (part.temperature / part.maxTemp > CriticalTemperaturePercentage || part.skinTemperature / part.skinMaxTemp > CriticalTemperaturePercentage)
{
CriticalTemperature = part.temperature;
CriticalTemperatureMax = part.maxTemp;
- CriticalTemperaturePercentage = part.temperature / part.maxTemp;
+ CriticalSkinTemperature = part.skinTemperature;
+ CriticalSkinTemperatureMax = part.skinMaxTemp;
+ CriticalTemperaturePercentage = Math.Max(part.temperature / part.maxTemp, part.skinTemperature / part.skinMaxTemp);
CriticalPartName = part.partInfo.title;
}
}
}
+
+ public bool UpdateRequested { get; set; }
+
+ public static void RequestUpdate()
+ {
+ instance.UpdateRequested = true;
+ }
}
}
--- a/KerbalEngineer/Flight/Sections/SectionLibrary.cs
+++ b/KerbalEngineer/Flight/Sections/SectionLibrary.cs
@@ -72,9 +72,10 @@
{
Name = "THERMAL",
Abbreviation = "HEAT",
- ReadoutModules = ReadoutLibrary.GetCategory(ReadoutCategory.GetCategory("Thermal")).Where(r => r.IsDefault).ToList()
- });
-
+ ReadoutModules = ReadoutLibrary.GetCategory(ReadoutCategory.GetCategory("Thermal")).Where(r => r.IsDefault).ToList(),
+ IsCustom = true
+ });
+
SectionModule hud1 = new SectionModule
{
Name = "HUD 1",
--- a/KerbalEngineer/KerbalEngineer.csproj
+++ b/KerbalEngineer/KerbalEngineer.csproj
@@ -91,11 +91,14 @@
<Compile Include="Flight\Readouts\Surface\HorizontalAcceleration.cs" />
<Compile Include="Flight\Readouts\Surface\VerticalAcceleration.cs" />
<Compile Include="Flight\Readouts\Surface\MachNumber.cs" />
+ <Compile Include="Flight\Readouts\Thermal\CoolestSkinTemperature.cs" />
<Compile Include="Flight\Readouts\Thermal\CriticalPart.cs" />
<Compile Include="Flight\Readouts\Thermal\CoolestPart.cs" />
<Compile Include="Flight\Readouts\Thermal\CoolestTemperature.cs" />
- <Compile Include="Flight\Readouts\Thermal\CriticalPercentage.cs" />
+ <Compile Include="Flight\Readouts\Thermal\CriticalThermalPercentage.cs" />
+ <Compile Include="Flight\Readouts\Thermal\CriticalSkinTemperature.cs" />
<Compile Include="Flight\Readouts\Thermal\CriticalTemperature.cs" />
+ <Compile Include="Flight\Readouts\Thermal\HottestSkinTemperature.cs" />
<Compile Include="Flight\Readouts\Thermal\InternalFlux.cs" />
<Compile Include="Flight\Readouts\Thermal\RadiationFlux.cs" />
<Compile Include="Flight\Readouts\Thermal\ConvectionFlux.cs" />
Binary files a/Output/KerbalEngineer/KerbalEngineer.dll and b/Output/KerbalEngineer/KerbalEngineer.dll differ
--- a/Output/KerbalEngineer/KerbalEngineer.version
+++ b/Output/KerbalEngineer/KerbalEngineer.version
@@ -5,13 +5,13 @@
{
"MAJOR":1,
"MINOR":0,
- "PATCH":16,
- "BUILD":6
+ "PATCH":17,
+ "BUILD":0
},
"KSP_VERSION":
{
"MAJOR":1,
"MINOR":0,
- "PATCH":2
+ "PATCH":4
}
}