/// <summary> /// Updates the warp status display /// </summary> public void UpdateWarpStatus() { if (isInSpace) { if (!meetsWarpAltitude) { minWarpAltitudeDisplay = this.part.vessel.orbit.referenceBody.Radius * minPlanetaryRadius; if (minWarpAltitudeDisplay > 1000000) { Fields["minWarpAltitudeDisplay"].guiUnits = "km"; minWarpAltitudeDisplay = minWarpAltitudeDisplay / 1000; } else { Fields["minWarpAltitudeDisplay"].guiUnits = "m"; } Fields["minWarpAltitudeDisplay"].guiActive = true; } else if (!hasWarpCapacity) { } else { minWarpAltitudeDisplay = double.NaN; Fields["minWarpAltitudeDisplay"].guiActive = false; } } else { minWarpAltitudeDisplay = double.NaN; Fields["minWarpAltitudeDisplay"].guiActive = false; spatialLocation = WBISpatialLocations.Unknown; } }
public override void Flameout(string message, bool statusOnly = false, bool showFX = true) { base.Flameout(message, statusOnly, showFX); warpFlameout = true; hasExceededLightSpeed = false; spatialLocation = WBISpatialLocations.Unknown; }
public override void OnFixedUpdate() { base.OnFixedUpdate(); if (!HighLogic.LoadedSceneIsFlight) { return; } // Update spatial location. spatialLocation = BlueshiftScenario.shared.GetSpatialLocation(part.vessel); // Vessel course - just the selected target. updateVesselCourse(); // Make sure the engine is running and we should apply warp. if (!EngineIgnited) { return; } if (!shouldApplyWarp()) { return; } // Drive warp coil resource consumption and get total available warp capacity. getTotalWarpCapacity(); // Update our precondition states updatePreconditionStates(); // Now check for flameout if (IsFlamedOut()) { resetWarpParameters(); return; } // Check for auto-orbit circularization if (orbitCircularized()) { return; } // Calculate the best warp curve to get maximum FTL speed. calculateBestWarpSpeed(); // Reset warp speed exceeded flag. if (warpSpeed < 1f) { hasExceededLightSpeed = false; } // Engage! travelAtWarp(); }
public override void Shutdown() { base.Shutdown(); hasExceededLightSpeed = false; spatialLocation = WBISpatialLocations.Unknown; Fields["warpSpeed"].guiActive = false; int count = warpEngineTextures.Count; for (int index = 0; index < count; index++) { warpEngineTextures[index].isActivated = false; } }