private void SetVesselInfo() { SimManager.Gravity = CelestialBodies.SelectedBody.Gravity; if (BuildAdvanced.Instance.ShowAtmosphericDetails) { SimManager.Atmosphere = CelestialBodies.SelectedBody.GetAtmospheres(BuildAdvanced.Altitude); } else { SimManager.Atmosphere = 0.0; } SimManager.RequestSimulation(); SimManager.TryStartSimulation(); if (lastStage != null) { PartInfoItem.Release(infoItems); infoItems.Clear(); infoItems.Add(PartInfoItem.Create("Delta-V", lastStage.deltaV.ToString("N0") + " / " + lastStage.totalDeltaV.ToString("N0") + "m/s")); infoItems.Add(PartInfoItem.Create("Mass", Units.ToMass(lastStage.mass, lastStage.totalMass))); infoItems.Add(PartInfoItem.Create("TWR", lastStage.thrustToWeight.ToString("F2") + " (" + lastStage.maxThrustToWeight.ToString("F2") + ")")); infoItems.Add(PartInfoItem.Create("Parts", lastStage.partCount + " / " + lastStage.totalPartCount)); } }
protected void Update() { try { if (!Visible || Hidden || EditorLogic.RootPart == null || (EditorPanels.Instance.IsMouseOver() && IsPointerOverStaging() == false)) { return; } position.x = Mathf.Clamp(Input.mousePosition.x + 16.0f, 0.0f, Screen.width - position.width); position.y = Mathf.Clamp(Screen.height - Input.mousePosition.y, 0.0f, Screen.height - position.height); if (position.x < Input.mousePosition.x + 20.0f) { position.y = Mathf.Clamp(position.y + 20.0f, 0.0f, Screen.height - position.height); } if (position.x < Input.mousePosition.x + 16.0f && position.y < Screen.height - Input.mousePosition.y) { position.x = Input.mousePosition.x - 3 - position.width; } RaycastHit rayHit; Part part = null; if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit)) { // MyLogger.Log("Raycast returned true"); part = rayHit.transform.GetComponent <Part>(); } else { // MyLogger.Log("Raycast returned false"); part = EditorLogic.fetch.ship.parts.Find(p => p.HighlightActive) ?? EditorLogic.SelectedPart; } if (part != null) { if (!part.Equals(selectedPart)) { selectedPart = part; ResetInfo(); } if (NamesOnly || skipFrame) { skipFrame = false; return; } if (!showInfo && Input.GetKeyDown(KeyBinder.PartInfoShowHide)) { showInfo = true; } else if (ClickToOpen && showInfo && Input.GetKeyDown(KeyBinder.PartInfoShowHide)) { ResetInfo(); } if (showInfo) { PartInfoItem.Release(infoItems); infoItems.Clear(); SetCostInfo(); SetMassItems(); SetResourceItems(); SetEngineInfo(); SetAlternatorInfo(); SetGimbalInfo(); SetRcsInfo(); SetParachuteInfo(); SetSasInfo(); SetReactionWheelInfo(); SetSolarPanelInfo(); SetGeneratorInfo(); SetDecouplerInfo(); SetTransmitterInfo(); SetScienceExperimentInfo(); SetScienceContainerInfo(); SetSingleActivationInfo(); } } else { selectedPart = null; } } catch (Exception ex) { MyLogger.Exception(ex); } }
protected void Update() { try { if (!Visible || Hidden || EditorLogic.RootPart == null || EditorLogic.fetch.editorScreen != EditorScreen.Parts) { return; } position.x = Mathf.Clamp(Input.mousePosition.x + 16.0f, 0.0f, Screen.width - position.width); position.y = Mathf.Clamp(Screen.height - Input.mousePosition.y, 0.0f, Screen.height - position.height); if (position.x < Input.mousePosition.x + 20.0f) { position.y = Mathf.Clamp(position.y + 20.0f, 0.0f, Screen.height - position.height); } if (position.x < Input.mousePosition.x + 16.0f && position.y < Screen.height - Input.mousePosition.y) { position.x = Input.mousePosition.x - 3 - position.width; } part = EditorLogic.fetch.ship.parts.Find(p => p.stackIcon.highlightIcon) ?? EditorLogic.SelectedPart; if (part != null) { if (!part.Equals(selectedPart)) { selectedPart = part; ResetInfo(); } if (NamesOnly || skipFrame) { skipFrame = false; return; } if (!showInfo && Input.GetMouseButtonDown(2)) { showInfo = true; } else if (ClickToOpen && showInfo && Input.GetMouseButtonDown(2)) { ResetInfo(); } if (showInfo) { PartInfoItem.Release(infoItems); infoItems.Clear(); SetCostInfo(); SetMassItems(); SetResourceItems(); SetEngineInfo(); SetAlternatorInfo(); SetGimbalInfo(); SetRcsInfo(); SetParachuteInfo(); SetSasInfo(); SetReactionWheelInfo(); SetSolarPanelInfo(); SetGeneratorInfo(); SetDecouplerInfo(); SetTransmitterInfo(); SetScienceExperimentInfo(); SetScienceContainerInfo(); SetSingleActivationInfo(); } } else { selectedPart = null; } } catch (Exception ex) { Logger.Exception(ex); } }