Esempio n. 1
0
        public virtual ConfigNode Load(ConfigNode config)
        {
            if (config.HasNode(configNodeName))
            {
                ConfigNode windowConfig = config.GetNode(configNodeName);

                windowPos.x      = Utilities.GetValue(windowConfig, "x", windowPos.x);
                windowPos.y      = Utilities.GetValue(windowConfig, "y", windowPos.y);
                windowPos.width  = Utilities.GetValue(windowConfig, "width", windowPos.width);
                windowPos.height = Utilities.GetValue(windowConfig, "height", windowPos.height);

                bool newValue = Utilities.GetValue(windowConfig, "visible", visible);
                SetVisible(newValue);
                if (newValue)                           //So window is on.
                {
                    if (!TACMenuAppLToolBar.GuiVisible) //If Menu ApplToolbar thinks we are off we turn it on
                    {
                        TACMenuAppLToolBar.onAppLaunchToggle();
                    }
                }
                else //So window is off.
                {
                    if (TACMenuAppLToolBar.GuiVisible) //If Menu ApplToolbar thinks we are on we turn it off
                    {
                        TACMenuAppLToolBar.onAppLaunchToggle();
                    }
                }

                return(windowConfig);
            }
            else
            {
                return(null);
            }
        }
        private void DrawWindow(int id)
        {
            GUIContent closeContent = new GUIContent(Textures.BtnRedCross, "Close Window");
            Rect       closeRect    = new Rect(windowRect.width - 21, 4, 16, 16);

            if (GUI.Button(closeRect, closeContent, Textures.ClosebtnStyle))
            {
                RBMenuAppLToolBar.onAppLaunchToggle();
                showSettings = false;
                return;
            }
            GUILayout.BeginHorizontal();
            GUILayout.BeginVertical();
            GUILayout.BeginVertical();
            #region Wernher_Portrait Panel 1

            InstructorscrollViewVector = GUILayout.BeginScrollView(InstructorscrollViewVector, GUILayout.Width(148), GUILayout.Height(186));
            GUILayout.BeginVertical();
            if ((IsTSlevel1 && Database.allowTSlevel1) || !IsTSlevel1)
            {
                if (Event.current.type == EventType.Repaint)
                {
                    GUILayout.Box(_portrait, GUILayout.Width(128), GUILayout.Height(128));
                }
                else
                {
                    GUILayout.Box(string.Empty, GUILayout.Width(128), GUILayout.Height(128));
                }
                GUILayout.Label("Wernher von Kerman", GUILayout.Width(128));
            }
            else
            {
                GUILayout.Label(Locales.currentLocale.Values["trackingStation_hasToBeLevel"], GUILayout.Width(128), GUILayout.Height(128));
            }
            #endregion
            GUILayout.EndVertical();
            GUILayout.EndScrollView();
            GUILayout.EndVertical();
            GUILayout.BeginVertical();
            #region BodyList Panel 2
            scrollViewVector = GUILayout.BeginScrollView(scrollViewVector, GUILayout.Width(148), GUILayout.Height(313));
            GUILayout.BeginVertical();
            haveTrackedBodies = false;
            foreach (CelestialBody cb in BodyList)
            {
                if (TrackedBodies[cb] && !bool.Parse(BodySaveNode(cb.GetName()).GetValue("ignore")))
                {
                    if (GUILayout.Button(cb.GetName(), GUILayout.Width(110))) //new Rect(5, fromTop, 110, 32),
                    {
                        if (selectedBody == cb)
                        {
                            selectedBody = null;
                        }
                        else
                        {
                            selectedBody = cb;
                        }
                        PlayOKEmote();
                    }
                    haveTrackedBodies = true;
                }
            }
            GUILayout.EndVertical();
            GUILayout.EndScrollView();
            if (GUILayout.Button(Locales.currentLocale.Values["misc_settings"], GUILayout.Width(130), GUILayout.Height(32)))
            {
                showSettings = !showSettings;
            }
            #endregion
            GUILayout.EndVertical();
            GUILayout.EndVertical();
            GUILayout.BeginVertical();
            #region Research Panel 3
            ResearchscrollViewVector = GUILayout.BeginScrollView(ResearchscrollViewVector, GUILayout.Width(522), GUILayout.Height(530));
            GUILayout.BeginVertical();
            if ((IsTSlevel1 && Database.allowTSlevel1) || !IsTSlevel1)
            {
                if (selectedBody == null)
                {
                    if (!haveTrackedBodies)
                    {
                        GUILayout.Label("<color=orange>" + Locales.currentLocale.Values["archives_empty"] + "</color>", GUILayout.Width(502));
                    }
                    else
                    {
                        GUILayout.Label("<color=orange>" + Locales.currentLocale.Values["archives_welcome"] + "</color>", GUILayout.Width(502)); //GUILayout
                    }
                }
                else
                {
                    GUILayout.BeginHorizontal();
                    GUILayout.Label("<b><size=35><color=orange>" + selectedBody.GetName() + "</color></size></b>", GUILayout.Width(150));
                    GUILayout.Label("<i>" + Database.DiscoveryMessage[selectedBody.GetName()] + "</i>", GUILayout.Width(300));
                    GUILayout.EndHorizontal();

                    if (selectedBody.referenceBody != Planetarium.fetch.Sun)
                    {
                        GUILayout.Label(string.Format(Locales.currentLocale.Values["research_orbiting"], selectedBody.referenceBody.GetName()), GUILayout.Width(150));
                    }
                    else
                    {
                        GUILayout.Label(Locales.currentLocale.Values["research_orbitingSun"], GUILayout.Width(150));
                    }


                    GUILayout.Label(string.Format(Locales.currentLocale.Values["research_researchState"], ResearchState[selectedBody]), GUILayout.Width(502));
                    if (ResearchState[selectedBody] == 0)
                    {
                        if (GUILayout.Button("<color=green>" + string.Format(Locales.currentLocale.Values["research_launchPlan"], selectedBody.GetName()) + " </color><size=10><i>(" + string.Format(Locales.currentLocale.Values["research_launchPlanCost"], (ResearchCost + ProgressResearchCost).ToString() /* 10 */) + ")</i></size>", GUILayout.Width(502)))
                        {
                            LaunchResearchPlan(selectedBody);
                            PlayNiceEmote();
                        }
                    }
                    else if (ResearchState[selectedBody] >= 10)
                    {
                        //GUILayout.BeginHorizontal();
                        if (GUILayout.Button("<color=red>" + string.Format(Locales.currentLocale.Values["research_stopPlan"], selectedBody.GetName()) + " </color><size=10><i>(" + string.Format(Locales.currentLocale.Values["research_stopPlanGives"], ResearchCost /* 5 */) + ")</i></size>", GUILayout.Width(502)))
                        {
                            StopResearchPlan(selectedBody);
                            PlayBadEmote();
                        }
                        if (ResearchState[selectedBody] < 40 && ResearchState[selectedBody] >= 10)
                        {
                            if (GUILayout.Button(Locales.currentLocale.Values["researchData_aspect"], GUILayout.Width(502)))
                            {
                                PlayNiceEmote();
                                Research(selectedBody, 10);
                                SetBodyDiscoveryLevels(); // Update Body Discovery Levels
                            }
                        }
                        else if (ResearchState[selectedBody] >= 40 && ResearchState[selectedBody] < 100)
                        {
                            GUILayout.Label("<i><color=green>" + Locales.currentLocale.Values["researchData_aspect"] + " ✓</color></i>", GUILayout.Width(502));
                            if (GUILayout.Button(Locales.currentLocale.Values["researchData_caracteristics"], GUILayout.Width(502)))
                            {
                                PlayNiceEmote();
                                Research(selectedBody, 10);
                                SetBodyDiscoveryLevels(); // Update Body Discovery Levels

                                //then...
                                if (ResearchState[selectedBody] == 100)
                                {
                                    ScreenMessages.PostScreenMessage(string.Format(Locales.currentLocale.Values["research_isNowFullyResearched_funds"], selectedBody.GetName(), ScienceReward));
                                    ResearchAndDevelopment.Instance.AddScience(ScienceReward, TransactionReasons.None);
                                }
                            }
                        }
                        else if (ResearchState[selectedBody] >= 100)
                        {
                            GUILayout.Label("<i><color=green>" + Locales.currentLocale.Values["researchData_aspect"] + " ✓</color></i>", GUILayout.Width(502));                                       //new Rect(188, 227, 502, 32),
                            GUILayout.Label("<i><color=green>" + Locales.currentLocale.Values["researchData_caracteristics"] + " ✓</color></i>", GUILayout.Width(502));                               //new Rect(188, 264, 502, 32),

                            GUILayout.Label("<b>" + string.Format(Locales.currentLocale.Values["research_isNowFullyResearched_sendVessels"], selectedBody.GetName()) + "</b>", GUILayout.Width(502)); //new Rect(188, 301, 502, 32),

                            // GUI.Label(new Rect(188, 301, 502, 32), "Send a exploration probe to " + selectedBody.GetName() + " : Incomplete", HighLogic.Skin.button);
                            // GUI.Label(new Rect(188, 338, 502, 32), "Run science experiments on " + selectedBody.GetName() + " : Incomplete", HighLogic.Skin.button);
                        }
                        //GUILayout.EndHorizontal();
                    }
                }
            }
            #endregion

            GUILayout.EndVertical();
            GUILayout.EndScrollView();

            GUILayout.EndVertical();
            GUILayout.EndHorizontal();
            Utilities.SetTooltipText();
            GUI.DragWindow();

            /*
             * if (GUI.Button(new Rect(10, 175, 128, 35), "Play Happy"))
             *  PlayEmote(5);
             * if (GUI.Button(new Rect(10, 217, 128, 35), "Play Disappointed"))
             *  PlayEmote(10); */
        }
        private void windowF(int id)
        {
            GUIContent closeContent = new GUIContent(Textures.BtnRedCross, "Close Window");
            Rect       closeRect    = new Rect(FwindowPos.width - 21, 4, 16, 16);

            if (GUI.Button(closeRect, closeContent, Textures.ClosebtnStyle))
            {
                TSTMenuAppLToolBar.onAppLaunchToggle();
                return;
            }

            GUILayout.BeginVertical();
            //Scrollable Camera list starts here
            // Begin the ScrollView
            CamscrollViewVector = GUILayout.BeginScrollView(CamscrollViewVector, GUILayout.Height(120));
            GUILayout.BeginVertical();

            if (!tstchemcam.Any() && !tstSpaceTel.Any())
            {
                GUILayout.Label("Active Vessel has no TST Cameras installed", statusStyle);
            }
            else
            {
                GUILayout.Label(new GUIContent("Cameras", "TST Cameras"), sectionTitleStyle);
                GUILayout.BeginHorizontal();
                GUILayout.Label(new GUIContent("Name", "The Vessel name"), PartListStyle, GUILayout.Width(180));
                GUILayout.Label(new GUIContent("Type", "The part type name"), PartListStyle, GUILayout.Width(80));
                GUILayout.Label(new GUIContent("Zoom", "The maximum zoom capability of this part"), PartListStyle, GUILayout.Width(40));
                GUILayout.EndHorizontal();

                int ind = 0;
                foreach (TSTSpaceTelescope scope in tstSpaceTel)
                {
                    GUILayout.BeginHorizontal();
                    GUILayout.Label(scope.name, PartListPartStyle, GUILayout.Width(180));
                    if (scope.part.name == "tarsierSpaceTelescope")
                    {
                        GUILayout.Label(new GUIContent("SmlScope", "Space Telescope"), PartListPartStyle, GUILayout.Width(80));
                    }
                    else
                    {
                        GUILayout.Label(new GUIContent("AdvScope", "Advanced Space Telescope"), PartListPartStyle, GUILayout.Width(80));
                    }
                    GUILayout.Label(string.Format("{0}x", scope.maxZoom), PartListPartStyle, GUILayout.Width(40));
                    if (!RT2Present || (RT2Present && (!RT2Enabled || RT2VesselConnected)))
                    {
                        if (scope.Active)
                        {
                            if (GUILayout.Button(new GUIContent("Close", "Close Camera"), GUILayout.Width(42f)))
                            {
                                scope.eventCloseCamera();
                            }
                            if (GUILayout.Button(new GUIContent("GUI", "Toggle the Camera GUI on/off"), GUILayout.Width(34f)))
                            {
                                if (scope.windowState == TSTSpaceTelescope.WindowState.Hidden)
                                {
                                    scope.eventShowGUI();
                                }
                                else
                                {
                                    scope.hideGUI();
                                }
                            }
                        }
                        else
                        {
                            if (GUILayout.Button(new GUIContent("Open", "Open Camera"), GUILayout.Width(42f)))
                            {
                                scope.eventOpenCamera();
                            }
                        }
                        if (scope.GetScienceCount() > 0)
                        {
                            if (GUILayout.Button(new GUIContent("View", "View stored Science"), GUILayout.Width(35f)))
                            {
                                scope.ReviewData();
                            }
                        }
                        if (tstGyroReactionWheel.ElementAtOrDefault(ind) != null)
                        {
                            if (GUILayout.Button(new GUIContent("F/T", "Fine Tune Camera Gyros"), GUILayout.Width(34f)))
                            {
                                FTTelIndex = ind;
                                _FTVisible = !_FTVisible;
                            }
                        }
                    }
                    else
                    {
                        GUILayout.Label(new GUIContent("No Connection", "Vessel has no Remote Tech connection or crew"), PartListPartStyle, GUILayout.Width(76));
                    }
                    GUILayout.EndHorizontal();

                    ind++;
                }
                foreach (TSTChemCam chemcam in tstchemcam)
                {
                    GUILayout.BeginHorizontal();
                    GUILayout.Label(chemcam.name, PartListPartStyle, GUILayout.Width(180));
                    GUILayout.Label(new GUIContent("RovCam", "ChemCam Rover part"), PartListPartStyle, GUILayout.Width(80));
                    if (!RT2Present || (RT2Present && (!RT2Enabled || RT2VesselConnected)))
                    {
                        if (chemcam.Active)
                        {
                            if (GUILayout.Button(new GUIContent("Close", "Close Camera"), GUILayout.Width(42f)))
                            {
                                chemcam.eventCloseCamera();
                            }
                        }
                        else
                        {
                            if (GUILayout.Button(new GUIContent("Open", "Open Camera"), GUILayout.Width(42f)))
                            {
                                chemcam.eventOpenCamera();
                            }
                        }
                        if (chemcam.GetScienceCount() > 0)
                        {
                            if (GUILayout.Button(new GUIContent("View", "View stored Science"), GUILayout.Width(35f)))
                            {
                                chemcam.ReviewData();
                            }
                        }
                    }
                    else
                    {
                        GUILayout.Label(new GUIContent("No Connection", "Vessel has no Remote Tech connection or crew"), PartListPartStyle, GUILayout.Width(76));
                    }
                    GUILayout.EndHorizontal();
                }
            }
            // End the ScrollView
            GUILayout.EndVertical();
            GUILayout.EndScrollView();

            //Scrollable SDD list starts here
            // Begin the ScrollView
            SDDscrollViewVector = GUILayout.BeginScrollView(SDDscrollViewVector);
            GUILayout.BeginVertical();
            if (!tstSDD.Any())
            {
                GUILayout.Label("Active Vessel has no TST SDDs installed", PartListPartStyle);
            }
            else
            {
                GUILayout.Label(new GUIContent("SSDs", "Science Storage Device"), sectionTitleStyle);
                GUILayout.BeginHorizontal();
                GUILayout.Label(new GUIContent("Name", "Device type name"), PartListStyle, GUILayout.Width(155));
                GUILayout.Label(new GUIContent("Capacity", "Storage capacity in Mits"), PartListStyle, GUILayout.Width(65));
                GUILayout.Label(new GUIContent("Used", "The percentage used"), PartListStyle, GUILayout.Width(40));
                GUILayout.Label(new GUIContent("Science", "The number of science data entries stored"), PartListStyle, GUILayout.Width(70));
                GUILayout.EndHorizontal();

                foreach (TSTScienceHardDrive drive in tstSDD)
                {
                    GUILayout.BeginHorizontal();
                    GUILayout.Label(drive.name, PartListPartStyle, GUILayout.Width(155));
                    GUILayout.Label(string.Format("{0}Mits", drive.Capacity), PartListPartStyle, GUILayout.Width(65));
                    GUILayout.Label(string.Format("{0}%", drive.PercentageFull), PartListPartStyle, GUILayout.Width(40));
                    GUILayout.BeginHorizontal();
                    GUILayout.Label(string.Format("{0}", drive.scienceData.Count), PartListPartStyle, GUILayout.Width(10));
                    if (!RT2Present || (RT2Present && (!RT2Enabled || RT2VesselConnected)))
                    {
                        if (drive.PercentageFull >= 100f)
                        {
                            GUI.enabled = false;
                        }
                        if (GUILayout.Button(new GUIContent("Fill", "Fill the Drive with Science"), GUILayout.Width(35f), GUILayout.Height(28f)))
                        {
                            drive.fillDrive();
                        }
                        GUI.enabled = true;
                        if (drive.scienceData.Any())
                        {
                            if (GUILayout.Button(new GUIContent("View", "Review all Science"), GUILayout.Width(35f), GUILayout.Height(28f)))
                            {
                                drive.ReviewData();
                            }
                        }
                    }
                    GUILayout.EndHorizontal();
                    GUILayout.EndHorizontal();
                }
            }
            // End the ScrollView
            GUILayout.EndVertical();
            GUILayout.EndScrollView();

            GUILayout.EndVertical();
            //Scrollable SDD list ends here
            GUILayout.Space(14);

            GUIContent resizeContent = new GUIContent(Textures.BtnResize, "Resize Window");
            Rect       resizeRect    = new Rect(FwindowPos.width - 17, FwindowPos.height - 17, 16, 16);

            GUI.Label(resizeRect, resizeContent, Textures.ResizeStyle);
            HandleResizeEvents(resizeRect);
            if (TSTMstStgs.Instance.TSTsettings.Tooltips)
            {
                Utilities.SetTooltipText();
            }

            GUI.DragWindow();
        }
Esempio n. 4
0
        private void windowF(int id)
        {
            GUIContent closeContent = new GUIContent(Textures.BtnRedCross, cacheautoLOC_TST_0237); //#autoLOC_TST_0237 = Close Window
            Rect       closeRect    = new Rect(FwindowPos.width - 21, 4, 16, 16);

            if (GUI.Button(closeRect, closeContent, Textures.ClosebtnStyle))
            {
                TSTMenuAppLToolBar.onAppLaunchToggle();
                return;
            }

            GUILayout.BeginVertical();
            //Scrollable Camera list starts here
            // Begin the ScrollView
            CamscrollViewVector = GUILayout.BeginScrollView(CamscrollViewVector, GUILayout.Height(120));
            GUILayout.BeginVertical();

            if (tstchemcam.Count == 0 && tstSpaceTel.Count == 0)
            {
                GUILayout.Label(cacheautoLOC_TST_0238, statusStyle); //  #autoLOC_TST_0238 = Active Vessel has no TST Cameras installed
            }
            else
            {
                GUILayout.Label(new GUIContent(cacheautoLOC_TST_0239, cacheautoLOC_TST_0240), sectionTitleStyle);                   //#autoLOC_TST_0239 = Cameras #autoLOC_TST_0240 = TST Cameras
                GUILayout.BeginHorizontal();
                GUILayout.Label(new GUIContent(cacheautoLOC_TST_0241, cacheautoLOC_TST_0242), PartListStyle, GUILayout.Width(180)); //#autoLOC_TST_0241 = Name #autoLOC_TST_0242 = The Vessel name
                GUILayout.Label(new GUIContent(cacheautoLOC_TST_0243, cacheautoLOC_TST_0244), PartListStyle, GUILayout.Width(80));  //#autoLOC_TST_0243 = Type #autoLOC_TST_0244 = The part type name
                GUILayout.Label(new GUIContent(cacheautoLOC_TST_0245, cacheautoLOC_TST_0246), PartListStyle, GUILayout.Width(40));  //#autoLOC_TST_0245 = Zoom #autoLOC_TST_0246 = The maximum zoom capability of this part
                GUILayout.EndHorizontal();

                int ind = 0;
                foreach (TSTSpaceTelescope scope in tstSpaceTel)
                {
                    GUILayout.BeginHorizontal();
                    GUILayout.Label(scope.name, PartListPartStyle, GUILayout.Width(180));
                    if (scope.part.name == "tarsierSpaceTelescope")
                    {
                        GUILayout.Label(new GUIContent(cacheautoLOC_TST_0247, cacheautoLOC_TST_0248), PartListPartStyle, GUILayout.Width(80)); //#autoLOC_TST_0247 = SmlScope #autoLOC_TST_0248 = Space Telescope
                    }
                    else
                    {
                        GUILayout.Label(new GUIContent(cacheautoLOC_TST_0249, cacheautoLOC_TST_0250), PartListPartStyle, GUILayout.Width(80)); //#autoLOC_TST_0249 = AdvScope #autoLOC_TST_0250 = Advanced Space Telescope
                    }
                    GUILayout.Label(string.Format("{0}x", scope.maxZoom), PartListPartStyle, GUILayout.Width(40));
                    if (!RT2Present || (RT2Present && (!RT2Enabled || RT2VesselConnected)))
                    {
                        if (scope.Active)
                        {
                            if (GUILayout.Button(new GUIContent(cacheautoLOC_TST_0251, cacheautoLOC_TST_0043), GUILayout.Width(42f))) //#autoLOC_TST_0251 = Close #autoLOC_TST_0043 = Close Camera
                            {
                                scope.eventCloseCamera();
                            }
                            if (GUILayout.Button(new GUIContent(cacheautoLOC_TST_0252, cacheautoLOC_TST_0253), GUILayout.Width(34f))) //#autoLOC_TST_0252 = GUI #autoLOC_TST_0253 = Toggle the Camera GUI on or off
                            {
                                if (scope.windowState == TSTSpaceTelescope.WindowState.Hidden)
                                {
                                    scope.eventShowGUI();
                                }
                                else
                                {
                                    scope.hideGUI();
                                }
                            }
                        }
                        else
                        {
                            if (GUILayout.Button(new GUIContent(cacheautoLOC_TST_0254, cacheautoLOC_TST_0084), GUILayout.Width(42f))) //#autoLOC_TST_0254 = Open #autoLOC_TST_0084 = Open Camera
                            {
                                scope.eventOpenCamera();
                            }
                        }
                        if (scope.GetScienceCount() > 0)
                        {
                            if (GUILayout.Button(new GUIContent(cacheautoLOC_TST_0255, cacheautoLOC_TST_0256), GUILayout.Width(35f))) //#autoLOC_TST_0255 = View #autoLOC_TST_0256 = View stored Science
                            {
                                scope.ReviewData();
                            }
                        }

                        /* Deprecated
                         * if (tstGyroReactionWheel.ElementAtOrDefault(ind) != null)
                         * {
                         *  if (GUILayout.Button(new GUIContent("F/T", "Fine Tune Camera Gyros"), GUILayout.Width(34f)))
                         *  {
                         *      FTTelIndex = ind;
                         *      _FTVisible = !_FTVisible;
                         *  }
                         * }*/
                    }
                    else
                    {
                        GUILayout.Label(new GUIContent(cacheautoLOC_TST_0257, cacheautoLOC_TST_0258), PartListPartStyle, GUILayout.Width(76)); //#autoLOC_TST_0257 = No Connection #autoLOC_TST_0258 = Vessel has no Remote Tech connection or crew
                    }
                    GUILayout.EndHorizontal();

                    ind++;
                }
                foreach (TSTChemCam chemcam in tstchemcam)
                {
                    GUILayout.BeginHorizontal();
                    GUILayout.Label(chemcam.name, PartListPartStyle, GUILayout.Width(180));
                    GUILayout.Label(new GUIContent(cacheautoLOC_TST_0259, cacheautoLOC_TST_0260), PartListPartStyle, GUILayout.Width(80)); //#autoLOC_TST_0259 = RovCam #autoLOC_TST_0260 = ChemCam Rover part
                    if (!RT2Present || (RT2Present && (!RT2Enabled || RT2VesselConnected)))
                    {
                        if (chemcam.Active)
                        {
                            if (GUILayout.Button(new GUIContent(cacheautoLOC_TST_0065, cacheautoLOC_TST_0043), GUILayout.Width(42f)))  //#autoLOC_TST_0065 = Close #autoLOC_TST_0043 = Close Camera
                            {
                                chemcam.eventCloseCamera();
                            }
                        }
                        else
                        {
                            if (GUILayout.Button(new GUIContent(cacheautoLOC_TST_0254, cacheautoLOC_TST_0084), GUILayout.Width(42f))) //#autoLOC_TST_0254 = Open #autoLOC_TST_0084 = Open Camera
                            {
                                chemcam.eventOpenCamera();
                            }
                        }
                        if (chemcam.GetScienceCount() > 0)
                        {
                            if (GUILayout.Button(new GUIContent(cacheautoLOC_TST_0255, cacheautoLOC_TST_0256), GUILayout.Width(35f))) //#autoLOC_TST_0255 = View #autoLOC_TST_0256 = View stored Science
                            {
                                chemcam.ReviewData();
                            }
                        }
                    }
                    else
                    {
                        GUILayout.Label(new GUIContent(cacheautoLOC_TST_0257, cacheautoLOC_TST_0258), PartListPartStyle, GUILayout.Width(76)); //#autoLOC_TST_0257 = No Connection #autoLOC_TST_0258 = Vessel has no Remote Tech connection or crew
                    }
                    GUILayout.EndHorizontal();
                }
            }
            // End the ScrollView
            GUILayout.EndVertical();
            GUILayout.EndScrollView();

            //Scrollable SDD list starts here
            // Begin the ScrollView
            SDDscrollViewVector = GUILayout.BeginScrollView(SDDscrollViewVector);
            GUILayout.BeginVertical();
            if (tstSDD.Count == 0)
            {
                GUILayout.Label(cacheautoLOC_TST_0261, PartListPartStyle); //#autoLOC_TST_0261 = Active Vessel has no TST SSDs installed
            }
            else
            {
                GUILayout.Label(new GUIContent(cacheautoLOC_TST_0262, cacheautoLOC_TST_0263), sectionTitleStyle);                   //#autoLOC_TST_0262 = SSDs #autoLOC_TST_0263 = Science Storage Device
                GUILayout.BeginHorizontal();
                GUILayout.Label(new GUIContent(cacheautoLOC_TST_0241, cacheautoLOC_TST_0264), PartListStyle, GUILayout.Width(155)); //#autoLOC_TST_0241 = Name #autoLOC_TST_0264 = Device type name
                GUILayout.Label(new GUIContent(cacheautoLOC_TST_0265, cacheautoLOC_TST_0266), PartListStyle, GUILayout.Width(65));  //#autoLOC_TST_0265 = Capacity #autoLOC_TST_0266 = Storage capacity in Mits
                GUILayout.Label(new GUIContent(cacheautoLOC_TST_0267, cacheautoLOC_TST_0268), PartListStyle, GUILayout.Width(40));  //#autoLOC_TST_0267 = Used #autoLOC_TST_0268 = The percentage used
                GUILayout.Label(new GUIContent(cacheautoLOC_TST_0269, cacheautoLOC_TST_0270), PartListStyle, GUILayout.Width(70));  //#autoLOC_TST_0269 = Science #autoLOC_TST_0270 = The number of science data entries stored
                GUILayout.EndHorizontal();

                foreach (TSTScienceHardDrive drive in tstSDD)
                {
                    GUILayout.BeginHorizontal();
                    GUILayout.Label(drive.name, PartListPartStyle, GUILayout.Width(155));
                    GUILayout.Label(string.Format("{0}", drive.Capacity) + cacheautoLOC_TST_0067, PartListPartStyle, GUILayout.Width(65)); //#autoLOC_TST_0067 = \u0020Mits
                    GUILayout.Label(string.Format("{0}%", drive.PercentageFull), PartListPartStyle, GUILayout.Width(40));
                    GUILayout.BeginHorizontal();
                    GUILayout.Label(string.Format("{0}", drive.scienceData.Count), PartListPartStyle, GUILayout.Width(10));
                    if (!RT2Present || (RT2Present && (!RT2Enabled || RT2VesselConnected)))
                    {
                        if (drive.PercentageFull >= 100f)
                        {
                            GUI.enabled = false;
                        }
                        if (GUILayout.Button(new GUIContent(cacheautoLOC_TST_0271, cacheautoLOC_TST_0272), GUILayout.Width(35f), GUILayout.Height(28f))) //#autoLOC_TST_0271 = Fill #autoLOC_TST_0272 = Fill the Drive with Science
                        {
                            drive.fillDrive();
                        }
                        GUI.enabled = true;
                        if (drive.scienceData.Count > 0)
                        {
                            if (GUILayout.Button(new GUIContent(cacheautoLOC_TST_0273, cacheautoLOC_TST_0274), GUILayout.Width(35f), GUILayout.Height(28f))) //#autoLOC_TST_0273 = View #autoLOC_TST_0274 = Review all Science
                            {
                                drive.ReviewData();
                            }
                        }
                    }
                    GUILayout.EndHorizontal();
                    GUILayout.EndHorizontal();
                }
            }
            // End the ScrollView
            GUILayout.EndVertical();
            GUILayout.EndScrollView();

            GUILayout.EndVertical();
            //Scrollable SDD list ends here
            GUILayout.Space(14);

            GUIContent resizeContent = new GUIContent(Textures.BtnResize, cacheautoLOC_TST_0275); //#autoLOC_TST_0275 = Resize Window
            Rect       resizeRect    = new Rect(FwindowPos.width - 17, FwindowPos.height - 17, 16, 16);

            GUI.Label(resizeRect, resizeContent, Textures.ResizeStyle);
            HandleResizeEvents(resizeRect);
            if (TSTMstStgs.Instance.TSTsettings.Tooltips)
            {
                Utilities.SetTooltipText();
            }

            GUI.DragWindow();
        }