Moved all VOID_Data entries to a common VOID_Data class file, then organized and formatted it.
[VOID.git] / VOID_HUDAdvanced.cs
blob:a/VOID_HUDAdvanced.cs -> blob:b/VOID_HUDAdvanced.cs
--- a/VOID_HUDAdvanced.cs
+++ b/VOID_HUDAdvanced.cs
@@ -264,410 +264,5 @@
 				GUILayout.ExpandWidth(false));
 		}
 	}
-
-	public static partial class VOID_Data
-	{
-		public static int upcomingManeuverNodes
-		{
-			get
-			{
-				if (core.vessel == null ||
-					core.vessel.patchedConicSolver == null ||
-					core.vessel.patchedConicSolver.maneuverNodes == null
-				)
-				{
-					return 0;
-				}
-
-				return core.vessel.patchedConicSolver.maneuverNodes.Count;
-			}
-		}
-
-		public static readonly VOID_Vector3dValue vesselThrustOffset = new VOID_Vector3dValue(
-			"Thrust Offset",
-			delegate()
-		{
-			if (core.vessel == null)
-			{
-				return Vector3d.zero;
-			}
-
-			List<PartModule> engineModules = core.vessel.getModulesOfType<PartModule>();
-
-			Vector3d thrustPos = Vector3d.zero;
-			Vector3d thrustDir = Vector3d.zero;
-			float thrust = 0;
-
-			foreach (PartModule engine in engineModules)
-			{
-				float moduleThrust = 0;
-
-				switch (engine.moduleName)
-				{
-					case "ModuleEngines":
-					case "ModuleEnginesFX":
-						break;
-					default:
-						continue;
-				}
-
-				if (!engine.isEnabled)
-				{
-					continue;
-				}
-
-				CenterOfThrustQuery cotQuery = new CenterOfThrustQuery();
-
-				if (engine is ModuleEngines)
-				{
-					ModuleEngines engineModule = engine as ModuleEngines;
-
-					moduleThrust = engineModule.finalThrust;
-
-					engineModule.OnCenterOfThrustQuery(cotQuery);
-				}
-				else // engine is ModuleEnginesFX
-				{
-					ModuleEnginesFX engineFXModule = engine as ModuleEnginesFX;
-
-					moduleThrust = engineFXModule.finalThrust;
-
-					engineFXModule.OnCenterOfThrustQuery(cotQuery);
-				}
-
-				if (moduleThrust != 0d)
-				{
-					cotQuery.thrust = moduleThrust;
-				}
-
-				thrustPos += cotQuery.pos * cotQuery.thrust;
-				thrustDir += cotQuery.dir * cotQuery.thrust;
-				thrust += cotQuery.thrust;
-			}
-
-			if (thrust != 0)
-			{
-				thrustPos /= thrust;
-				thrustDir /= thrust;
-			}
-
-			Transform vesselTransform = core.vessel.transform;
-
-			thrustPos = vesselTransform.InverseTransformPoint(thrustPos);
-			thrustDir = vesselTransform.InverseTransformDirection(thrustDir);
-
-			Vector3d thrustOffset = VectorTools.PointDistanceToLine(
-				thrustPos, thrustDir.normalized, core.vessel.findLocalCenterOfMass());
-
-			Tools.PostDebugMessage(typeof(VOID_Data), "vesselThrustOffset:\n" +
-				"\tthrustPos: {0}\n" +
-				"\tthrustDir: {1}\n" +
-				"\tthrustOffset: {2}\n" +
-				"\tvessel.CoM: {3}",
-				thrustPos,
-				thrustDir.normalized,
-				thrustOffset,
-				core.vessel.findWorldCenterOfMass()
-			);
-
-			return thrustOffset;
-		},
-			"m"
-		);
-
-		public static readonly VOID_DoubleValue vesselAccel = new VOID_DoubleValue(
-			"Acceleration",
-			() => geeForce * KerbinGee,
-			"m/s²"
-		);
-
-		public static readonly VOID_IntValue vesselCrewCount = new VOID_IntValue(
-			"Crew Onboard",
-			delegate()
-			{
-				if (core.vessel != null)
-				{
-					return core.vessel.GetCrewCount();
-				}
-				else
-				{
-					return 0;
-				}
-			},
-			""
-		);
-
-		public static readonly VOID_IntValue vesselCrewCapacity = new VOID_IntValue(
-			"Crew Capacity",
-			delegate()
-		{
-			if (core.vessel != null)
-			{
-				return core.vessel.GetCrewCapacity();
-			}
-			else
-			{
-				return 0;
-			}
-		},
-			""
-		);
-
-		public static readonly VOID_DoubleValue vesselAngularVelocity = new VOID_DoubleValue(
-			"Angular Velocity",
-			delegate()
-		{
-			if (core.vessel != null)
-			{
-				return core.vessel.angularVelocity.magnitude;
-			}
-			else
-			{
-				return double.NaN;
-			}
-		},
-			"rad/s"
-		);
-
-		public static readonly VOID_DoubleValue stageNominalThrust = new VOID_DoubleValue(
-			"Nominal Stage Thrust",
-			delegate()
-		{
-			if (core.LastStage == null)
-			{
-				return double.NaN;
-			}
-
-			if (core.LastStage.actualThrust == 0d)
-			{
-				return core.LastStage.thrust;
-			}
-			else
-			{
-				return core.LastStage.actualThrust;
-			}
-		},
-			"kN"
-		);
-
-		public static readonly VOID_DoubleValue stageMassFlow = new VOID_DoubleValue(
-			"Stage Mass Flow",
-			delegate()
-			{
-				if (core.LastStage == null)
-				{
-					return double.NaN;
-				}
-
-			double stageIsp = core.LastStage.isp;
-			double stageThrust = stageNominalThrust;
-
-			Tools.PostDebugMessage(typeof(VOID_Data), "calculating stageMassFlow from:\n" +
-				"\tstageIsp: {0}\n" +
-				"\tstageThrust: {1}\n" +
-				"\tKerbinGee: {2}\n",
-				stageIsp,
-				stageThrust,
-				KerbinGee
-			);
-
-				return stageThrust / (stageIsp * KerbinGee);
-			},
-			"Mg/s"
-		);
-
-		public static readonly VOID_DoubleValue currManeuverDeltaV = new VOID_DoubleValue(
-			"Current Maneuver Delta-V",
-			delegate()
-			{
-				if (upcomingManeuverNodes > 0)
-				{
-				return core.vessel.patchedConicSolver.maneuverNodes[0].DeltaV.magnitude;
-				}
-				else
-				{
-					return double.NaN;
-				}
-			},
-			"m/s"
-		);
-
-		public static readonly VOID_DoubleValue currManeuverDVRemaining = new VOID_DoubleValue(
-			"Remaining Maneuver Delta-V",
-			delegate()
-			{
-				if (upcomingManeuverNodes > 0)
-				{
-					return core.vessel.patchedConicSolver.maneuverNodes[0].GetBurnVector(core.vessel.orbit).magnitude;
-				}
-				else
-				{
-					return double.NaN;
-				}
-			},
-			"m/s"
-		);
-
-		public static readonly VOID_DoubleValue nextManeuverDeltaV = new VOID_DoubleValue(
-			"Current Maneuver Delta-V",
-			delegate()
-		{
-			if (upcomingManeuverNodes > 1)
-			{
-				return core.vessel.patchedConicSolver.maneuverNodes[1].DeltaV.magnitude;
-			}
-			else
-			{
-				return double.NaN;
-			}
-		},
-			"m/s"
-		);
-
-		public static readonly VOID_DoubleValue currentNodeBurnDuration = new VOID_DoubleValue(
-			"Total Burn Time",
-			delegate()
-			{
-				if (core.LastStage == null || currManeuverDeltaV.Value == double.NaN)
-				{
-					return double.NaN;
-				}
-			    
-				double stageThrust = stageNominalThrust;
-
-				return burnTime(currManeuverDeltaV.Value, totalMass, stageMassFlow, stageThrust);
-			},
-			"s"
-		);
-
-		public static readonly VOID_DoubleValue currentNodeBurnRemaining = new VOID_DoubleValue(
-			"Burn Time Remaining",
-			delegate()
-			{
-				if (core.LastStage == null || currManeuverDVRemaining == double.NaN)
-				{
-					return double.NaN;
-				}
-
-				double stageThrust = stageNominalThrust;
-
-				return burnTime(currManeuverDVRemaining, totalMass, stageMassFlow, stageThrust);
-			},
-			"s"
-		);
-
-		public static readonly VOID_DoubleValue currentNodeHalfBurnDuration = new VOID_DoubleValue(
-			"Half Burn Time",
-			delegate()
-		{
-			if (core.LastStage == null || currManeuverDeltaV.Value == double.NaN)
-			{
-				return double.NaN;
-			}
-
-			double stageThrust = stageNominalThrust;
-
-			return burnTime(currManeuverDeltaV.Value / 2d, totalMass, stageMassFlow, stageThrust);
-		},
-			"s"
-		);
-
-		public static readonly VOID_StrValue burnTimeDoneAtNode = new VOID_StrValue(
-			"Full burn time to be half done at node",
-			delegate()
-		{
-			if (core.LastStage == null && upcomingManeuverNodes < 1)
-			{
-				return "N/A";
-			}
-
-			ManeuverNode node = core.vessel.patchedConicSolver.maneuverNodes[0];
-
-			if ((node.UT - Planetarium.GetUniversalTime()) < 0)
-			{
-				return string.Empty;
-			}
-
-			double interval = (node.UT - currentNodeBurnDuration) - Planetarium.GetUniversalTime();
-
-			if (double.IsNaN(interval))
-			{
-				return string.Intern("NaN");
-			}
-
-			int sign = Math.Sign(interval);
-			interval = Math.Abs(interval);
-
-			string format;
-
-			if (sign >= 0)
-			{
-				format = string.Intern("T - {0}");
-			}
-			else
-			{
-				format = string.Intern("T + {0}");
-			}
-
-			return string.Format(format, VOID_Tools.ConvertInterval(interval));
-		}
-		);
-
-		public static readonly VOID_StrValue burnTimeHalfDoneAtNode = new VOID_StrValue(
-			"Full burn time to be half done at node",
-			delegate()
-			{
-			if (core.LastStage == null && upcomingManeuverNodes < 1)
-			{
-				return "N/A";
-			}
-
-			ManeuverNode node = core.vessel.patchedConicSolver.maneuverNodes[0];
-
-			if ((node.UT - Planetarium.GetUniversalTime()) < 0)
-			{
-				return string.Empty;
-			}
-
-			double interval = (node.UT - currentNodeHalfBurnDuration) - Planetarium.GetUniversalTime();
-
-			if (double.IsNaN(interval))
-			{
-				return string.Intern("NaN");
-			}
-
-			int sign = Math.Sign(interval);
-			interval = Math.Abs(interval);
-
-			string format;
-
-			if (sign >= 0)
-			{
-				format = string.Intern("T - {0}");
-			}
-			else
-			{
-				format = string.Intern("T + {0}");
-			}
-
-			return string.Format(format, VOID_Tools.ConvertInterval(interval));
-			}
-		);
-
-		private static double burnTime(double deltaV, double initialMass, double massFlow, double thrust)
-		{
-			Tools.PostDebugMessage(typeof(VOID_Data), "calculating burnTime from:\n" +
-				"\tdeltaV: {0}\n" +
-				"\tinitialMass: {1}\n" +
-				"\tmassFlow: {2}\n" +
-				"\tthrust: {3}\n",
-				deltaV,
-				initialMass,
-				massFlow,
-				thrust
-			);
-			return initialMass / massFlow * (1d - Math.Exp(-deltaV * massFlow / thrust));
-		}
-	}
 }