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();
        }