Example #1
0
        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();
        }
Example #2
0
        public void Update(HeatLoop loop)
        {
            heatLoop = loop;

            GenerateLinePoints();
            UpdateLinePositions();
            UpdateLoopProperties();
        }
Example #3
0
        public OverlayLoop(HeatLoop loop, Transform overlayRoot, bool startVisible)
        {
            root        = overlayRoot;
            heatLoop    = loop;
            overlayLine = new OverlayLine(root, loop.ID);

            SetVisible(startVisible);
        }
Example #4
0
        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;
                }
            }
        }
Example #5
0
        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);
        }
Example #6
0
        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);
        }
Example #7
0
        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);
        }