protected void sendPressRelease(Vessel komet) { try { Log("Generating press release"); StringBuilder resultsMessage = new StringBuilder(); MessageSystem.Message msg; string[] kometNameItems = komet.vesselName.Split(new char[] { '/' }); resultsMessage.AppendLine(kometNameItems[1] + "'s Komet has been discovered! It has been designated " + komet.vesselName + " by astronomers."); resultsMessage.AppendLine(" "); resultsMessage.AppendLine("We currently know very little about the komet, other than the following:"); resultsMessage.AppendLine(" "); resultsMessage.AppendLine("Discovered: " + KSPUtil.dateTimeFormatter.PrintDateCompact(komet.DiscoveryInfo.lastObservedTime, false, false)); resultsMessage.AppendLine("Orbiting: " + komet.orbit.referenceBody.name); resultsMessage.AppendLine("Size Category: " + DiscoveryInfo.GetSizeClassSizes(komet.DiscoveryInfo.objectSize)); resultsMessage.AppendLine("Orbital Period: " + KSPUtil.PrintTimeLong(komet.orbit.period)); resultsMessage.AppendLine(komet.DiscoveryInfo.signalStrengthPercent.OneLiner); msg = new MessageSystem.Message(kometNameItems[1] + "'s Komet Discovered!", resultsMessage.ToString(), MessageSystemButton.MessageButtonColor.GREEN, MessageSystemButton.ButtonIcons.ACHIEVE); MessageSystem.Instance.AddMessage(msg); } catch (Exception ex) { Log("Oops: " + ex); } }
private void draw(int id) { if (!simTermination) { if (GUILayout.Button("Resume Simulation"/*, _guiSkin.button */)) { Log.Info("Close 1"); Close(); } GUILayout.Space(SPACER); } if (GUILayout.Button("<color=orange>Terminate Simulation</color>"/*, _guiSkin.button */)) { string revertTarget; switch (KRASHShelter.lastScene) { case GameScenes.EDITOR: switch (KRASHShelter.lastEditor) { case EditorFacility.SPH: revertTarget = "Spaceplane Hangar"; break; case EditorFacility.VAB: revertTarget = "Vehicle Assembly Building"; break; // This should never happen. If it does, just go to the SC default: revertTarget = "Space Center"; KRASHShelter.lastScene = GameScenes.SPACECENTER; break; } break; case GameScenes.SPACECENTER: revertTarget = "Space Center"; break; default: revertTarget = "Pre-Simulation"; break; } string s = "Revert to " + revertTarget + " (" + KSPUtil.PrintTimeLong(((int)(Planetarium.GetUniversalTime() - FlightDriver.PostInitState.UniversalTime))); DialogGUIBase[] options = new DialogGUIBase[2]; options[0] = new DialogGUIButton(s, () => { StartCoroutine(WaitForFlightResultsDialog()); }); options[1] = new DialogGUIButton("Cancel", () => { Log.Info("Close 2"); Close(); }); var multidialog = new MultiOptionDialog("krash2", "Terminating will set the game back to an earlier state. Are you sure you want to continue?", "Terminating Simulation", HighLogic.UISkin, 450, options); _activePopup = PopupDialog.SpawnPopupDialog(new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), multidialog, false, HighLogic.UISkin, true); Hide(); } if (FlightDriver.CanRevertToPostInit) { if (GUILayout.Button("<color=orange>Restart Simulation</color>"/*, _guiSkin.button*/)) { DialogGUIBase[] options = new DialogGUIBase[2]; string s = "Revert to Launch(" + KSPUtil.PrintTimeLong(((int)(Planetarium.GetUniversalTime() - FlightDriver.PostInitState.UniversalTime))) + " ago"; options[0] = new DialogGUIButton(s, () => { Log.Info("Close 3"); Close(); Log.Info("Close 4"); Close(); FlightDriver.RevertToLaunch(); // The RevertTolaunch reloads all the objects, so we destroy them here to avoid conflicts KRASHShelter.instance.DestroyModules(); }); options[1] = new DialogGUIButton("Cancel", () => { Log.Info("Close 5"); Close(); }); var multidialog = new MultiOptionDialog("krash3", "Reverting will set the game back to an earlier state. Are you sure you want to continue?", "Reverting Simulation", HighLogic.UISkin, 450, options); _activePopup = PopupDialog.SpawnPopupDialog(new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), multidialog, false, HighLogic.UISkin, true); // _activePopup = PopupDialog.SpawnPopupDialog(new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), // new MultiOptionDialog(null, new Callback (drawRevertWarning), "Reverting Simulation", HighLogic.Skin, new DialogOption[0]), false, HighLogic.Skin); APIManager.ApiInstance.SimRestartEvent.Fire((Vessel)FlightGlobals.ActiveVessel, KRASHShelter.simCost + KRASHShelter.simSetupCost); Hide(); } } GUILayout.Space(SPACER); if (GUILayout.Button("Settings"/*, _guiSkin.button*/)) { Hide(); _miniSettings = MiniSettings.Create(Unhide); } #if false } else {
public string PrintTimeLong(double time) => KSPUtil.PrintTimeLong(time);