public void Jettison() { if (!Jettisoned) { fairing.DeployFairing(); } }
public static void DeployFairing(this Part p) { for (int i = 0; i < p.Modules.Count; i++) { PartModule m = p.Modules[i]; ModuleProceduralFairing fairing = m as ModuleProceduralFairing; if (fairing != null) { fairing.DeployFairing(); } } }
public void Jettison() { if (!Jettisoned) { if (fairing != null) { fairing.DeployFairing(); } else { proceduralFairing.TriggerEvent("Jettison"); } } }
private void ApplyAeroStressFailure() { bool failureOccured = false; if (part.Modules.Contains <ModuleProceduralFairing>()) { ModuleProceduralFairing fairing = part.Modules.GetModule <ModuleProceduralFairing>(); fairing.ejectionForce = 0.5f; fairing.DeployFairing(); failureOccured = true; } List <Part> children = part.children; // ReSharper disable once ForCanBeConvertedToForeach -> decouple modifies collection for (int i = 0; i < children.Count; i++) { Part child = children[i]; child.decouple(25); failureOccured = true; } if (part.parent) { part.decouple(25); failureOccured = true; } if (!failureOccured || !vessel) { return; } vessel.SendMessage("AerodynamicFailureStatus"); string msg = Localizer.Format("FARFlightLogAeroFailure", KSPUtil.PrintTimeStamp(FlightLogger.met), part.partInfo.title); FlightLogger.eventLog.Add(msg); if (FARDebugValues.aeroFailureExplosions) { FXMonger.Explode(part, partTransform.position, (float)projectedArea.totalArea * 0.0005f); } }
private void ApplyAeroStressFailure() { bool failureOccured = false; if (part.Modules.Contains("ModuleProceduralFairing")) { ModuleProceduralFairing fairing = (ModuleProceduralFairing)part.Modules["ModuleProceduralFairing"]; fairing.ejectionForce = 0.5f; fairing.DeployFairing(); failureOccured = true; } List <Part> children = part.children; for (int i = 0; i < children.Count; i++) { Part child = children[i]; child.decouple(25); failureOccured = true; } if (part.parent) { part.decouple(25); failureOccured = true; } if (failureOccured) { if (vessel) { vessel.SendMessage("AerodynamicFailureStatus"); string msg = String.Format("[{0:D2}:{1:D2}:{2:D2}] {3} failed due to aerodynamic stresses.", FlightLogger.met_hours, FlightLogger.met_mins, FlightLogger.met_secs, part.partInfo.title); FlightLogger.eventLog.Add(msg); if (FARDebugValues.aeroFailureExplosions) { FXMonger.Explode(part, partTransform.position, (float)projectedArea.totalArea * 0.0005f); } } } }