Fixed issue where physically insignificant part mass was not being correctly cascaded down through parent parts.
@@ -1,5 +1,9 @@
+ Added: Orbital readouts - "Speed at Periapsis" and "Speed at Apoapsis". (Padishar)
+ Added: Manoeuvre readouts - "Post-burn Apoapsis" and "Post-burn Periapsis". (Padishar)
Fixed: Synched the minimum simulation time sliders and stopped them from snapping back after 999ms. (saybur)
+ Fixed: Added workaround for the bug in Vessel.horizontalSrfSpeed (Padishar)
+ Fixed: Physically insignificant part masses were not correctly being cascaded down through its parents.
Added: 'Mach Number' readout under the 'Surface' category and included it on the default surface HUD.
@@ -21,8 +25,8 @@
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.
- Changed: Increased eccentricity readout to 5 decimal places.
- Changed: Implemented Sarbian's object pooling.
+ Changed: Increased eccentricity readout to 5 decimal places.
+ Changed: Implemented Sarbian's object pooling.
Changed: The default selected body is now assigned via 'Planitarium.Home'.
Changed: HUDs to clamp fully inside the screen instead of allowing them to run off the edge by a certain amount.
Fixed: Physically insignificant part mass is now associated with the parent part.
@@ -76,7 +80,7 @@
Added: Support KIDS ISP thrust correction.
@@ -86,7 +90,7 @@
Fixed: Missing texture on the ER-7500 model.
Added: Career mode that limits the Flight Engineer by:
- Requiring an Engineer Kerbal of any level, or placement of an Engineer Chip or ER-7500 part.
@@ -206,7 +210,7 @@
Added: New readout to the surface category:
- Vertical Acceleration
- Horizontal Acceleration
Changed: Atmospheric efficiency readout now shows as a percentage.
Changed: Atmospheric settings (pressure/velocity) in the editor condensed onto a single line.
Fixed: Bug where the overlays in the editor would stay open outside of parts screen.
@@ -363,6 +367,7 @@
Added: Stock toolbar support in the Flight Engineer.
Changed: Orbital Period has higher precision.
Fixed: Various NullRefs in editor window and overlay.
Initial release for public testing.
@@ -25,7 +25,7 @@
/// Current version of the Kerbal Engineer assembly.
- public const string ASSEMBLY_VERSION = "126.96.36.199";
+ public const string ASSEMBLY_VERSION = "188.8.131.52";
private static string assemblyFile;
private static string assemblyName;
@@ -21,6 +21,7 @@
@@ -44,7 +45,11 @@
public override void Draw(SectionModule section)
- this.DrawLine(FlightGlobals.ActiveVessel.horizontalSrfSpeed.ToSpeed(), section.IsHud);
+ // Used to do this but the bug-fix to horizontalSrfSpeed in KSP 1.0.3 actually made it worse so workaround
+ //this.DrawLine(FlightGlobals.ActiveVessel.horizontalSrfSpeed.ToSpeed(), section.IsHud);
+ var ves = FlightGlobals.ActiveVessel;
+ double horizSpeed = Math.Sqrt(ves.srfSpeed * ves.srfSpeed - ves.verticalSpeed * ves.verticalSpeed);
+ this.DrawLine(horizSpeed.ToSpeed(), section.IsHud);
@@ -30,6 +30,7 @@
+ using System.ComponentModel;
@@ -675,21 +676,28 @@
for (int i = 0; i < this.allParts.Count; i++)
PartSim part = this.allParts[i];
- // If the part has a parent
- if (part.parent != null)
- if (part.isNoPhysics)
- if (part.parent.isNoPhysics && part.parent.parent != null)
- part.baseMass = 0d;
- part.baseMassForCoM = 0d;
- part.parent.baseMassForCoM += part.baseMassForCoM;
- part.baseMassForCoM = 0d;
+ // Check if part should pass it's mass onto its parent.
+ if (part.isNoPhysics && part.parent != null)
+ PartSim partParent = part.parent;
+ // Loop through all parents until a physically significant parent is found.
+ while (partParent != null)
+ // Check if parent is physically significant.
+ if (partParent.isNoPhysics == false)
+ // Apply the mass to the parent and remove it from the originating part.
+ partParent.baseMassForCoM += part.baseMassForCoM;
+ part.baseMassForCoM = 0.0;
+ // Break out of the recursive loop.
+ // Recursively loop through the parent parts.
+ partParent = partParent.parent;
Binary files a/Output/KerbalEngineer/KerbalEngineer.dll and b/Output/KerbalEngineer/KerbalEngineer.dll differ