public override void OnStart(StartState start) { base.OnStart(start); Fields["isShielded"].guiActive = false; Fields["Cl"].guiActive = Fields["Cd"].guiActive = Fields["Cm"].guiActive = false; if (HighLogic.LoadedSceneIsFlight && vessel.isActiveVessel) { activeControlSys = this; statusOverrideTimer = 0; vessel.OnFlyByWire += new FlightInputCallback(StabilityAugmentation); } OnVesselPartsChange += GetNavball; invKerbinSLDensity = 1 / FARAeroUtil.GetCurrentDensity(FlightGlobals.Bodies[1], 0); }
public void OnDestroy() { if (start != StartState.Editor) { activeControlSys = null; if(vessel) vessel.OnFlyByWire -= new FlightInputCallback(StabilityAugmentation); } }
public void OnDestroy() { if (activeControlSys == this) { vessel.OnFlyByWire -= new FlightInputCallback(StabilityAugmentation); } activeControlSys = null; }
public override void FixedUpdate() { if (HighLogic.LoadedSceneIsFlight && part) { if (vessel.isActiveVessel) { if ((object)activeControlSys == null) { activeControlSys = this; statusOverrideTimer = 0; } if (activeControlSys == this) { if (vessel.staticPressure > 0) { double soundspeed; double density = FARAeroUtil.GetCurrentDensity(vessel, out soundspeed); MachNumber = this.vessel.srf_velocity.magnitude / soundspeed; if (DensityRelative) AirDensity = (density * invKerbinSLDensity).ToString("F3"); else AirDensity = (density).ToString("F3"); q = density * vessel.srf_velocity.sqrMagnitude * 0.5; mach = MachNumber.ToString("F3"); } else { q = 0; mach = "0.000"; AirDensity = "0.000"; } timeSinceSave++; } } else if (activeControlSys == this) activeControlSys = null; } }
public static bool SetActiveControlSysAndStabilitySystem(Vessel vesselToChangeTo, Vessel vesselToChangeFrom) { if ((object)vesselToChangeFrom != null && (object)activeControlSys != null) { vesselToChangeFrom.OnFlyByWire -= new FlightInputCallback(StabilityAugmentation); } foreach (Part p in vesselToChangeTo.Parts) if (p.Modules.Contains("FARControlSys")) { activeControlSys = p.Modules["FARControlSys"] as FARControlSys; break; } if ((object)activeControlSys == null) { return false; } statusOverrideTimer = 0; vesselToChangeTo.OnFlyByWire += new FlightInputCallback(StabilityAugmentation); return true; }