private void DrawReactor(FissionGenerator gen) { GUI.enabled = true; GUILayout.BeginVertical(gui_bg); GUILayout.BeginHorizontal(); if (GUILayout.Button(Resources.gui_show, GUILayout.MaxWidth(32f), GUILayout.MinWidth(32f), GUILayout.MaxHeight(32f), GUILayout.MinHeight(32f))) { gen.ToggleHighlight(); } GUILayout.Label(gen.part.partInfo.title, gui_header, GUILayout.MaxHeight(32f), GUILayout.MinHeight(32f)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.BeginVertical(GUILayout.MinWidth(150f), GUILayout.MaxWidth(150f)); gen.Enabled = GUILayout.Toggle(gen.Enabled, "Reactor Enabled"); gen.SafetyLimit = GUILayout.Toggle(gen.SafetyLimit, "Safety Limit"); GUILayout.EndVertical(); GUILayout.BeginVertical(); GUILayout.BeginHorizontal(GUILayout.MinWidth(250f), GUILayout.MaxWidth(250f)); GUILayout.Label("Reactor Power", gui_text, GUILayout.MaxWidth(150f), GUILayout.MinWidth(150f)); gen.CurrentPowerPercent = GUILayout.HorizontalSlider(gen.CurrentPowerPercent, gen.MinPowerPercent, 1.0f, GUILayout.MaxWidth(100f), GUILayout.MinWidth(100f)); GUILayout.Label(String.Format("{0:F0}%", gen.CurrentPowerPercent * 100f), gui_text); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(GUILayout.MinWidth(250f), GUILayout.MaxWidth(250f)); GUILayout.Label("Thermal Power", gui_text, GUILayout.MaxWidth(150f), GUILayout.MinWidth(150f)); GUILayout.Box("", HighLogic.Skin.horizontalSlider, GUILayout.MaxWidth(100f), GUILayout.MinWidth(100f)); Rect last = GUILayoutUtility.GetLastRect(); last.xMin = last.xMin + last.width * 0.05f; last.width = last.width * 0.9f * (gen.currentThermalPower / gen.ThermalPower); last.yMin = last.yMin + last.height * 0.05f; last.height = last.height * 0.8f; GUI.color = XKCDColors.Orangeish; GUI.DrawTexture(last, Resources.gui_progressbar); GUI.color = Color.white; GUILayout.Label(String.Format("{0:F0} kW", gen.currentThermalPower), gui_text); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(GUILayout.MinWidth(250f), GUILayout.MaxWidth(250f)); GUILayout.Label("Core Temperature", gui_text, GUILayout.MaxWidth(150f), GUILayout.MinWidth(150f)); GUILayout.Box("", HighLogic.Skin.horizontalSlider, GUILayout.MaxWidth(100f), GUILayout.MinWidth(100f)); last = GUILayoutUtility.GetLastRect(); last.xMin = last.xMin + last.width * 0.05f; last.width = last.width * 0.9f * (gen.CurrentCoreTemperature / gen.MeltdownCoreTemperature); last.yMin = last.yMin + last.height * 0.05f; last.height = last.height * 0.8f; GUI.color = Color.Lerp(XKCDColors.Green, XKCDColors.RedOrange, gen.CurrentCoreTemperature / gen.MeltdownCoreTemperature); GUI.DrawTexture(last, Resources.gui_progressbar); GUI.color = Color.white; GUILayout.Label(String.Format("{0:F0} K", gen.CurrentCoreTemperature), gui_text); GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Core Lifetime (Current): " + gen.FindTimeRemaining(gen.BurnRate * gen.CoreTemperatureRatio), gui_text); GUILayout.Label("Core Lifetime (Full Power): " + gen.FindTimeRemaining(gen.BurnRate), gui_text); GUILayout.EndHorizontal(); GUILayout.EndVertical(); }