protected void DrawLoop(HeatLoop loop) { GUILayout.BeginVertical(UIHost.GUIResources.GetStyle("block_background")); GUILayout.BeginHorizontal(); GUILayout.Label(String.Format("ID {0}", loop.ID)); GUILayout.BeginVertical(); GUILayout.Label(String.Format("Loop Temperature {0:F1}/{1:F1} K", loop.Temperature, loop.NominalTemperature), UIHost.GUIResources.GetStyle("negative_category_header")); GUILayout.Label(String.Format("Loop Flux {0} kW", loop.NetFlux), UIHost.GUIResources.GetStyle("negative_category_header")); GUILayout.EndVertical(); GUILayout.BeginVertical(); GUILayout.Label(String.Format("Using coolant {0}", loop.CoolantName), UIHost.GUIResources.GetStyle("negative_category_header")); GUILayout.Label(String.Format("Volume {0}", loop.Volume), UIHost.GUIResources.GetStyle("negative_category_header")); GUILayout.EndVertical(); GUILayout.BeginVertical(); GUILayout.Label(String.Format("Number of timesteps {0}", loop.numSteps), UIHost.GUIResources.GetStyle("negative_category_header")); GUILayout.Label(String.Format("Time step {0}", loop.timeStep), UIHost.GUIResources.GetStyle("negative_category_header")); GUILayout.EndVertical(); GUILayout.EndHorizontal(); foreach (ModuleSystemHeat mod in loop.LoopModules) { GUILayout.Label(String.Format("Part {0}: Total Flux: {1} kW Total Temp: {2}K Volume: {3}", mod.part.partInfo.title, mod.totalSystemFlux, mod.totalSystemTemperature, mod.volume), UIHost.GUIResources.GetStyle("negative_category_header")); } GUILayout.EndVertical(); }
public void Update(HeatLoop loop) { heatLoop = loop; GenerateLinePoints(); UpdateLinePositions(); UpdateLoopProperties(); }
public OverlayLoop(HeatLoop loop, Transform overlayRoot, bool startVisible) { root = overlayRoot; heatLoop = loop; overlayLine = new OverlayLine(root, loop.ID); SetVisible(startVisible); }
void Update() { if (trackedLoopID != -1 && simulator != null && simulator.HasLoop(trackedLoopID)) { HeatLoop lp = simulator.Loop(trackedLoopID); temperatureTextValue.text = Localizer.Format("#LOC_SystemHeat_ToolbarPanel_LoopTemperatureValue", lp.Temperature.ToString("F0"), lp.NominalTemperature.ToString("F0")); string prefix = ""; if (lp.NetFlux == 0f) { prefix = ""; } if (lp.NetFlux > 0f) { prefix = "+"; } if (lp.NetFlux < 0f) { prefix = ""; } fluxTextValue.text = Localizer.Format("#LOC_SystemHeat_ToolbarPanel_LoopFluxValue", prefix, lp.NetFlux.ToString("F1")); if (lp.Temperature >= lp.NominalTemperature) { Color32 c; HexColorField.HexToColor("fe8401", out c); temperatureTextValue.color = c; } else { Color32 c; HexColorField.HexToColor("B4D455", out c); temperatureTextValue.color = c; } if (lp.NetFlux > 0) { Color32 c; HexColorField.HexToColor("fe8401", out c); fluxTextValue.color = c; } else { Color32 c; HexColorField.HexToColor("B4D455", out c); fluxTextValue.color = c; } } }
public void SetupLoop(HeatLoop lp, ModuleSystemHeat sh, bool visible) { SetupComponents(); loop = lp; heatModule = sh; // Utils.Log($"{loop} {heatModule}, {colorRing}, {infoPanelTitle}"); infoPanelTitle.text = heatModule.part.partInfo.title; colorRing.color = SystemHeatSettings.GetLoopColor(loop.ID); Transform xform = transform.FindDeepChild(heatModule.iconName); if (xform != null) { systemIcon.sprite = xform.GetComponent <Image>().sprite; } SetVisibility(visible); }
public void UpdateLoop(HeatLoop lp, ModuleSystemHeat sh, bool visible) { loop = lp; heatModule = sh; Transform xform; if (heatModule != null && heatModule.part != null) { infoPanelTitle.text = heatModule.part.partInfo.title; xform = transform.FindDeepChild(heatModule.iconName); if (xform != null) { systemIcon.sprite = xform.GetComponent <Image>().sprite; } } colorRing.color = SystemHeatSettings.GetLoopColor(loop.ID); SetVisibility(visible); }
public OverlayLine(Transform parent, HeatLoop loop) { Utils.Log($"[OverlayLine]: building line for loop ID {loop.ID}"); if (HighLogic.LoadedSceneIsEditor) { VectorLine.SetCamera3D(EditorLogic.fetch.editorCamera); } if (HighLogic.LoadedSceneIsFlight) { VectorLine.SetCamera3D(FlightCamera.fetch.mainCamera); } line = new VectorLine($"SystemHeat_Loop{loop.ID}_VectorLine", new List <Vector3>(), SystemHeatSettings.OverlayBaseLineWidth, LineType.Continuous, Joins.Weld); line.layer = 0; line.material = new Material(Shader.Find("GUI/Text Shader")); line.material.renderQueue = 3000; lineColor = SystemHeatSettings.GetLoopColor(loop.ID); }