示例#1
0
        /*
         * Main window
         */
        private void HandleMainWindow(int windowID)
        {
            GUIStyle _settingsToggleGroupStyle = new GUIStyle(GUI.skin.toggle);

            _settingsToggleGroupStyle.margin.left += 40;

            //save Window Position
            _config.MainWindowXPosition = (int)_editorMainWindow.xMin;
            _config.MainWindowYPosition = (int)_editorMainWindow.yMin;

            GUILayout.BeginVertical();
            GUILayout.EndVertical();
            GUILayout.BeginVertical();

            if (GUILayout.Button(Constants.guiSettingsGUIContent, GUILayout.MaxWidth(160)))
            {
                _mainWindowsSettingsMode = !_mainWindowsSettingsMode;
            }
            //Settings
            if (_mainWindowsSettingsMode)
            {
                _editorMainWindow.height         = Constants.guiMainWindowHSettingsExpanded;
                _settingsScrollPosition          = GUILayout.BeginScrollView(_settingsScrollPosition);
                _config.includeAllNodes          = GUILayout.Toggle(_config.includeAllNodes, Constants.guiAllNodesGUIContent);
                Welder.includeAllNodes           = _config.includeAllNodes;
                _config.dontProcessMasslessParts = GUILayout.Toggle(_config.dontProcessMasslessParts, Constants.guiDontProcessMasslessPartsGUIContent);
                Welder.dontProcessMasslessParts  = _config.dontProcessMasslessParts;
                _config.dataBaseAutoReload       = GUILayout.Toggle(_config.dataBaseAutoReload, Constants.guiDbAutoReloadGUIContent);
                _config.useNamedCfgFile          = GUILayout.Toggle(_config.useNamedCfgFile, Constants.guiUseNamedCfgFileGUIContent);
                _config.advancedDebug            = GUILayout.Toggle(_config.advancedDebug, Constants.guiAdvancedDebugGUIContent);
                _config.clearEditor        = GUILayout.Toggle(_config.clearEditor, Constants.guiClearEditorGUIContent);
                _config.fileSimplification = GUILayout.Toggle(_config.fileSimplification, Constants.guiFileSimplificationGUIContent);
                Welder.fileSimplification  = _config.fileSimplification;
                GUILayout.Space(10.0f);
                GUILayout.Label(" Vector Precision: " + _config.precisionDigits);
                _config.precisionDigits = (int)GUILayout.HorizontalSlider(_config.precisionDigits, 1, 6);
                Welder.precisionDigits  = _config.precisionDigits;
                GUILayout.Space(10.0f);
                GUILayout.Label("Strength params calculation method");
//				_config.StrengthCalcMethod = (StrengthParamsCalcMethod)GUILayout.SelectionGrid((int)_config.StrengthCalcMethod, Constants.StrengthParamsCalcMethodsGUIContent, 1, GUILayout.MaxWidth(140));
                foreach (StrengthParamsCalcMethod method in Enum.GetValues(typeof(StrengthParamsCalcMethod)))
                {
                    if (GUILayout.Toggle((_config.StrengthCalcMethod == method), Constants.StrengthParamsCalcMethodsGUIContent[(int)method], _settingsToggleGroupStyle))
                    {
                        _config.StrengthCalcMethod = method;
                        Welder.StrengthCalcMethod  = method;
                    }
                }
                GUILayout.Space(10.0f);
                GUILayout.Label("MaxTemp calculation method");
//				_config.MaxTempCalcMethod = (MaxTempCalcMethod)GUILayout.SelectionGrid((int)_config.MaxTempCalcMethod, Constants.MaxTempCalcMethodsGUIContent, 1, GUILayout.MaxWidth(140));
                foreach (MaxTempCalcMethod method in Enum.GetValues(typeof(MaxTempCalcMethod)))
                {
                    if (GUILayout.Toggle((_config.MaxTempCalcMethod == method), Constants.MaxTempCalcMethodsGUIContent[(int)method], _settingsToggleGroupStyle))
                    {
                        _config.MaxTempCalcMethod = method;
                        Welder.MaxTempCalcMethod  = method;
                    }
                }
                GUILayout.EndScrollView();

//				GUILayout.Space(10.0f);
                if (GUILayout.Button(Constants.guiSaveSettingsButtonGUIContent, GUILayout.MaxWidth(160)))
                {
                    FileManager.saveConfig(_config);
                    _config = FileManager.loadConfig();
                }
            }
            else
            {
                _editorMainWindow.height = Constants.guiMainWindowH;
                GUILayout.Space(20.0f);
            }

            //SelectPArtbranch button
            if (GUILayout.RepeatButton(Constants.guiSelectPartGUIContent, GUILayout.MaxWidth(160)))
            {
                this.state = DisplayState.partSelection;
            }

            //Weld button
            if (GUILayout.Button(Constants.guiWeldItButtonGUIContent, GUILayout.MaxWidth(160)))
            {
                FileManager.saveConfig(_config);

                if (EditorLockManager.isEditorLocked())
                {
                    if (_selectedPartbranch == null)
                    {
                        _selectedPartbranch = EditorLogic.RootPart;
                    }
                    repositionPreWeldment(_selectedPartbranch);
                    weldPart(_selectedPartbranch);
                }
            }
            if (GUILayout.Button(Constants.guiCloseGUIContent, GUILayout.MaxWidth(160)))
            {
                closeMainwindow();
            }
            //Hints area
            GUILayout.TextArea(GUI.tooltip, GUILayout.ExpandHeight(true), GUILayout.MaxHeight(100));
            GUIStyle VersionLabelGUIStyle = new GUIStyle(GUI.skin.label);

            VersionLabelGUIStyle.fontSize = 12;
            GUILayout.Label(Constants.logVersion, VersionLabelGUIStyle);
            GUILayout.EndVertical();

            GUI.DragWindow();
        }         //private void OnMainWindow()
示例#2
0
        public void MorseSettingsWindow(int id)
        {
            GUILayout.BeginVertical();

            morseSettings.morseCodeStr = GUILayout.TextField(morseSettings.morseCodeStr);

            GUILayout.BeginHorizontal();
            if (GUILayout.Button(/*Dit*/ Localizer.Format("#autoLOC_CL_0029") + " (.)"))
            {
                morseSettings.morseCodeStr += ".";
            }
            if (GUILayout.Button(/*"Dah*/ Localizer.Format("#autoLOC_CL_0032") + " (_)"))
            {
                morseSettings.morseCodeStr += "_";
            }
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            if (GUILayout.Button(/*"Letter Space */ Localizer.Format("#autoLOC_CL_0036") + " ( )"))
            {
                morseSettings.morseCodeStr += " ";
            }
            if (GUILayout.Button(/*"Word Space*/ Localizer.Format("#autoLOC_CL_0038") + " (|)"))
            {
                morseSettings.morseCodeStr += "|";
            }
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label(/*"Dih duration :"*/ Localizer.Format("#autoLOC_CL_0030"));
            if (GUILayout.Button("--"))
            {
                morseSettings.ditDuration -= .1f;
                UpdateTiming();
            }
            if (GUILayout.Button("-"))
            {
                morseSettings.ditDuration -= .01f;
                UpdateTiming();
            }
            GUILayout.Label(morseSettings.ditDuration.ToString());
            if (GUILayout.Button("+"))
            {
                morseSettings.ditDuration += .01f;
                UpdateTiming();
            }

            if (GUILayout.Button("++"))
            {
                morseSettings.ditDuration += .1f;
                UpdateTiming();
            }
            GUILayout.EndHorizontal();

            morseSettings.manualTiming = GUILayout.Toggle(morseSettings.manualTiming, /*"Manual Timing"*/ Localizer.Format("#autoLOC_CL_0031"));

            GUILayout.BeginHorizontal();
            GUILayout.Label(/*"Dah duration :"*/ Localizer.Format("#autoLOC_CL_0033"));
            if (GUILayout.Button("--"))
            {
                if (morseSettings.manualTiming)
                {
                    morseSettings.dahDuration -= .1f;
                }
            }
            if (GUILayout.Button("-"))
            {
                if (morseSettings.manualTiming)
                {
                    morseSettings.dahDuration -= .01f;
                }
            }
            GUILayout.Label(morseSettings.dahDuration.ToString());
            if (GUILayout.Button("+"))
            {
                if (morseSettings.manualTiming)
                {
                    morseSettings.dahDuration += .01f;
                }
            }
            if (GUILayout.Button("++"))
            {
                if (morseSettings.manualTiming)
                {
                    morseSettings.dahDuration += .1f;
                }
            }
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label(/*"Symbol Space :"*/ Localizer.Format("#autoLOC_CL_0034"));
            if (GUILayout.Button("--"))
            {
                if (morseSettings.manualTiming)
                {
                    morseSettings.symbolSpaceDuration -= .1f;
                }
            }
            if (GUILayout.Button("-"))
            {
                if (morseSettings.manualTiming)
                {
                    morseSettings.symbolSpaceDuration -= .01f;
                }
            }
            GUILayout.Label(morseSettings.symbolSpaceDuration.ToString());
            if (GUILayout.Button("+"))
            {
                if (morseSettings.manualTiming)
                {
                    morseSettings.symbolSpaceDuration += .01f;
                }
            }
            if (GUILayout.Button("++"))
            {
                if (morseSettings.manualTiming)
                {
                    morseSettings.symbolSpaceDuration += .1f;
                }
            }
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label(/*"Letter Space :"*/ Localizer.Format("#autoLOC_CL_0036"));
            if (GUILayout.Button("--"))
            {
                if (morseSettings.manualTiming)
                {
                    morseSettings.letterSpaceDuration -= .1f;
                }
            }
            if (GUILayout.Button("-"))
            {
                if (morseSettings.manualTiming)
                {
                    morseSettings.letterSpaceDuration -= .01f;
                }
            }
            GUILayout.Label(morseSettings.letterSpaceDuration.ToString());
            if (GUILayout.Button("+"))
            {
                if (morseSettings.manualTiming)
                {
                    morseSettings.letterSpaceDuration += .01f;
                }
            }
            if (GUILayout.Button("++"))
            {
                if (morseSettings.manualTiming)
                {
                    morseSettings.letterSpaceDuration += .1f;
                }
            }
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label(/*"Word Space :"*/ Localizer.Format("#autoLOC_CL_0038"));
            if (GUILayout.Button("--"))
            {
                if (morseSettings.manualTiming)
                {
                    morseSettings.wordSpaceDuration -= .1f;
                }
            }
            if (GUILayout.Button("-"))
            {
                if (morseSettings.manualTiming)
                {
                    morseSettings.wordSpaceDuration -= .01f;
                }
            }
            GUILayout.Label(morseSettings.wordSpaceDuration.ToString());
            if (GUILayout.Button("+"))
            {
                if (morseSettings.manualTiming)
                {
                    morseSettings.wordSpaceDuration += .01f;
                }
            }
            if (GUILayout.Button("++"))
            {
                if (morseSettings.manualTiming)
                {
                    morseSettings.wordSpaceDuration += .1f;
                }
            }
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            if (GUILayout.Button(/*"Cancel"*/ Localizer.Format("#autoLOC_CL_0079")))
            {
                CloseSettings();
            }
            if (GUILayout.Button(/*"Morse Alphabet"*/ Localizer.Format("#autoLOC_CL_0078")))
            {
                showAlphabetWindow = !showAlphabetWindow;
            }
            if (GUILayout.Button(/*"Apply"*/ Localizer.Format("#autoLOC_CL_0080")))
            {
                ApplySettings();
            }
            GUILayout.EndHorizontal();

            GUILayout.EndVertical();

            GUI.DragWindow();
        }
示例#3
0
        private void Window(int id)
        {
            if (!cfgWinData)
            {
                cfgWinData = true;
//				newScreenshotAtIntervals = AS.configuration.screenshotAtIntervals;
                newInterval          = AS.configuration.screenshotInterval;
                interval             = newInterval.ToString();
                newConvertToJPG      = AS.configuration.convertToJPG;
                newKeepOrginalPNG    = AS.configuration.keepOrginalPNG;
                newNoGUIOnScreenshot = AS.configuration.noGUIOnScreenshot;
                newGUIOnScreenshot   = AS.configuration.guiOnScreenshot;

                newScreenshotPath          = AS.configuration.screenshotPath;
                newFilename                = AS.configuration.filename;
                newJPGQuality              = AS.configuration.JPGQuality;
                JPGQuality                 = newJPGQuality.ToString();
                newScreenshotOnSceneChange = AS.configuration.screenshotOnSceneChange;
                newOnSpecialEvent          = AS.configuration.onSpecialEvent;
                newKeycode                 = AS.configuration.keycode;

                newprecrashSnapshots    = AS.configuration.precrashSnapshots;
                newsecondsUntilImpact   = AS.configuration.secondsUntilImpact;
                newhsAltitudeLimit      = AS.configuration.hsAltitudeLimit;
                newhsMinVerticalSpeed   = AS.configuration.hsMinVerticalSpeed;
                newhsScreenshotInterval = AS.configuration.hsScreenshotInterval;

                secondsUntilImpact   = AS.configuration.secondsUntilImpact.ToString();
                hsAltitudeLimit      = AS.configuration.hsAltitudeLimit.ToString();
                hsMinVerticalSpeed   = AS.configuration.hsMinVerticalSpeed.ToString();
                hsScreenshotInterval = AS.configuration.hsScreenshotInterval.ToString();

                newsupersize = AS.configuration.supersize;
                strsupersize = AS.configuration.supersize.ToString();

                newautoSave            = AS.configuration.autoSave;
                newminBetweenSaves     = AS.configuration.minBetweenSaves;
                minBetweenSaves        = AS.configuration.minBetweenSaves.ToString();
                newsavePrefix          = AS.configuration.savePrefix;
                newnumToRotate         = AS.configuration.numToRotate;
                numToRotate            = AS.configuration.numToRotate.ToString();
                newautoSaveOnGameStart = AS.configuration.autoSaveOnGameStart;
            }

            SetVisible(true);
            GUI.enabled = true;

            GUILayout.BeginHorizontal();
            GUILayout.EndHorizontal();
            //DrawTitle ("Options");
            GUILayout.BeginArea(new Rect(10, 50, 375, 450));

            GUILayout.BeginVertical();

            DrawTitle("Screenshot Options");

            //GUILayout.BeginHorizontal ();
            //GUILayout.Label ("Take screenshots at specified intervals: ");
            //GUILayout.FlexibleSpace ();
            //newScreenshotAtIntervals = GUILayout.Toggle (newScreenshotAtIntervals, "");
            //GUILayout.EndHorizontal ();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Screenshot Interval in seconds: ");
            GUILayout.FlexibleSpace();
            interval = GUILayout.TextField(interval, GUILayout.MinWidth(30.0F), GUILayout.MaxWidth(30.0F));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Convert to JPG: ");
            GUILayout.FlexibleSpace();
            newConvertToJPG = GUILayout.Toggle(newConvertToJPG, "");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Keep original PNG: ");
            GUILayout.FlexibleSpace();
            newKeepOrginalPNG = GUILayout.Toggle(newKeepOrginalPNG, "");
            GUILayout.EndHorizontal();


            GUILayout.BeginHorizontal();
            GUILayout.Label("JPEG Quality (1-100):");
            GUILayout.FlexibleSpace();
            JPGQuality = GUILayout.TextField(JPGQuality, GUILayout.MinWidth(30.0F), GUILayout.MaxWidth(30.0F));
            GUILayout.EndHorizontal();


            GUILayout.BeginHorizontal();
            GUILayout.Label("Supersize images (0-4):");
            GUILayout.FlexibleSpace();
            strsupersize = GUILayout.TextField(strsupersize, GUILayout.MinWidth(30.0F), GUILayout.MaxWidth(30.0F));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Screenshot path:");
            GUILayout.FlexibleSpace();
//			GUILayout.EndHorizontal ();

//			GUILayout.BeginHorizontal ();
//			GUILayout.FlexibleSpace ();
            newScreenshotPath = GUILayout.TextField(newScreenshotPath, GUILayout.MinWidth(50F), GUILayout.MaxWidth(250F));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Filename Format:");
            GUILayout.FlexibleSpace();
            newFilename = GUILayout.TextField(newFilename, GUILayout.MinWidth(30F), GUILayout.MaxWidth(160F));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Screenshot after scene change:");
            GUILayout.FlexibleSpace();
            newScreenshotOnSceneChange = GUILayout.Toggle(newScreenshotOnSceneChange, "");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Screenshot after special event:");
            GUILayout.FlexibleSpace();
            newOnSpecialEvent = GUILayout.Toggle(newOnSpecialEvent, "");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Use Blizzy Toolbar if available:");
            GUILayout.FlexibleSpace();
            newUseBlizzyToolbar = GUILayout.Toggle(newUseBlizzyToolbar, "");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Activation Keycode:");
            GUILayout.FlexibleSpace();
            newKeycode = GUILayout.TextField(newKeycode, GUILayout.MinWidth(30F), GUILayout.MaxWidth(40F));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("No GUI on screenshot:");
            GUILayout.FlexibleSpace();
            newNoGUIOnScreenshot = GUILayout.Toggle(newNoGUIOnScreenshot, "");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("GUI on screenshot:   ");
            GUILayout.FlexibleSpace();
            newGUIOnScreenshot = GUILayout.Toggle(newGUIOnScreenshot, "");
            GUILayout.EndHorizontal();

            GUILayout.EndVertical();
            GUILayout.EndArea();


            GUILayout.BeginArea(new Rect(400, 50, 300, 400));
            GUILayout.BeginVertical();

            DrawTitle("Pre-Crash Settings");

            GUILayout.BeginHorizontal();
            GUILayout.Label("Take pre-crash snapshots:");
            GUILayout.FlexibleSpace();
            newprecrashSnapshots = GUILayout.Toggle(newprecrashSnapshots, "");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Seconds until impact:");
            secondsUntilImpact = GUILayout.TextField(secondsUntilImpact, GUILayout.MinWidth(30.0F), GUILayout.MaxWidth(30.0F));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Altitude limit (meters):");
            hsAltitudeLimit = GUILayout.TextField(hsAltitudeLimit, GUILayout.MinWidth(30.0F), GUILayout.MaxWidth(60.0F));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Minimum vertical speed:");
            hsMinVerticalSpeed = GUILayout.TextField(hsMinVerticalSpeed, GUILayout.MinWidth(30.0F), GUILayout.MaxWidth(30.0F));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Screenshot interval (pre-crash):");
            hsScreenshotInterval = GUILayout.TextField(hsScreenshotInterval, GUILayout.MinWidth(30.0F), GUILayout.MaxWidth(30.0F));
            GUILayout.EndHorizontal();


            GUILayout.BeginHorizontal();
            GUILayout.Label("");
            GUILayout.EndHorizontal();

            DrawTitle("Automatic Save Settings");

            GUILayout.BeginHorizontal();
            GUILayout.Label("Activation Key (not configurable):");
            GUILayout.FlexibleSpace();
            GUILayout.Label("Ctrl-F6");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Minutes between saves:");
            minBetweenSaves = GUILayout.TextField(minBetweenSaves, GUILayout.MinWidth(30.0F), GUILayout.MaxWidth(30.0F));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Save file format:");
            newsavePrefix = GUILayout.TextField(newsavePrefix, GUILayout.MinWidth(30.0F), GUILayout.MaxWidth(160.0F));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Max save files:");
            numToRotate = GUILayout.TextField(numToRotate, GUILayout.MinWidth(30.0F), GUILayout.MaxWidth(30.0F));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Autosave on at game start:");
            GUILayout.FlexibleSpace();
            newautoSaveOnGameStart = GUILayout.Toggle(newautoSaveOnGameStart, "");
            GUILayout.EndHorizontal();



            GUILayout.EndVertical();
            GUILayout.EndArea();


            //
            // I probably don't need to have the "finally" sections, but
            // it doesn't hurt and will be there if I need it in the future
            //
            try {
                newInterval = Convert.ToSingle(Convert.ToDouble(interval));
            } catch (Exception) {
            } finally {     }

            try {
                newJPGQuality = Convert.ToUInt16(JPGQuality);
            } catch (Exception) {
            } finally {     }


            try {
                newsecondsUntilImpact = Convert.ToUInt16(secondsUntilImpact);
            } catch (Exception) {
            } finally {     }
            try {
                newhsAltitudeLimit = Convert.ToUInt16(hsAltitudeLimit);
            } catch (Exception) {
            } finally {     }
            try {
                newhsMinVerticalSpeed = Convert.ToUInt16(hsMinVerticalSpeed);
            } catch (Exception) {
            } finally {     }
            try {
                newhsScreenshotInterval = Convert.ToSingle(Convert.ToDouble(hsScreenshotInterval));
            } catch (Exception) {
            } finally {     }

            try {
                newsupersize = Convert.ToUInt16(strsupersize);
                if (newsupersize < 0)
                {
                    newsupersize = 0;
                }
                if (newsupersize > AS.configuration.MAX_SUPERSIZE)
                {
                    newsupersize = AS.configuration.MAX_SUPERSIZE;
                }
            } catch (Exception) {
            } finally {     }

            try {
                newminBetweenSaves = Convert.ToUInt16(minBetweenSaves);
            } catch (Exception) {
            } finally {     }

            try {
                newnumToRotate = Convert.ToUInt16(numToRotate);
            } catch (Exception) {
            } finally {     }

            GUI.DragWindow();
        }
示例#4
0
        void GUIActive(int windowID)
        {
#if false
            if (HighLogic.LoadedScene == GameScenes.SETTINGS)
            {
                GUI.BringWindowToFront(09271);
            }
#endif
            GUILayout.BeginHorizontal();

            GUILayout.BeginVertical();
            GUILayout.BeginHorizontal();
            GUILayout.Label("Name: ");
            nameString = GUILayout.TextField(nameString);
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Width: ");
            xString = GUILayout.TextField(xString);
            xString = Regex.Replace(xString, @"[^0-9]", "");
            GUILayout.EndHorizontal();
            GUILayout.BeginHorizontal();
            GUILayout.Label("Height: ");
            yString = GUILayout.TextField(yString);
            yString = Regex.Replace(yString, @"[^0-9]", "");
            GUILayout.EndHorizontal();
            fullScreen  = GUILayout.Toggle(fullScreen, "Fullscreen");
            reloadScene = GUILayout.Toggle(reloadScene, "Reload scene");
            if (GUILayout.Button("Set Screen Resolution"))
            {
                if (xString != null && yString != null)
                {
                    x = Convert.ToInt32(xString);
                    y = Convert.ToInt32(yString);

                    if (x > 0 && y > 0)
                    {
                        GameSettings.SCREEN_RESOLUTION_HEIGHT = y;
                        GameSettings.SCREEN_RESOLUTION_WIDTH  = x;
                        GameSettings.FULLSCREEN = fullScreen;
                        GameSettings.SaveSettings();
                        Screen.SetResolution(x, y, fullScreen);
                        Log.detail("Set screen resolution");

                        if (reloadScene)
                        {
                            if (HighLogic.LoadedScene != GameScenes.LOADING)
                            {
                                HighLogic.LoadScene(HighLogic.LoadedScene);
                            }
                            else
                            {
                                ScreenMessages.PostScreenMessage("You cannot reload the scene while loading the game!", 1);
                            }
                        }
                    }
                    else
                    {
                        ScreenMessages.PostScreenMessage("One or both of your values is too small.  Please enter a valid value.", 1, ScreenMessageStyle.UPPER_CENTER);
                    }
                }
                else
                {
                    ScreenMessages.PostScreenMessage("The values you have set are invalid.  Please set a valid value.", 1, ScreenMessageStyle.UPPER_CENTER);
                }
            }

            if (nameString == "")
            {
                GUI.enabled = false;
            }

            if (GUILayout.Button("Save"))
            {
                string newName       = nameString;
                string newX          = xString;
                string newY          = yString;
                bool   newFullscreen = fullScreen;

                ConfigNode config = new ConfigNode(newName);
                config.AddValue("name", newName);
                config.AddValue("x", newX);
                config.AddValue("y", newY);
                config.AddValue("fullscreen", newFullscreen.ToString());
                this.presets.Create(config);

                ScreenMessages.PostScreenMessage("Preset saved.  You can change the preset later by using the same name in this editor.", 5, ScreenMessageStyle.UPPER_CENTER);
                this.presets.ReloadFiles();
            }


            GUI.enabled = 0 != this.presets.files.Count;

            if (deleteEnabled)
            {
                if (GUILayout.Button("Disable Delete"))
                {
                    deleteEnabled = false;
                }
            }
            else
            {
                if (GUILayout.Button("Enable Delete"))
                {
                    deleteEnabled = true;
                }
            }
            if (GUILayout.Button("Close"))
            {
                toolbarButton.Active = false;
            }
            GUILayout.EndVertical();
            GUILayout.BeginVertical();

            scrollViewPos = GUILayout.BeginScrollView(scrollViewPos);

            foreach (Data.ConfigNode configNode in this.presets.files)
            {
                ConfigNode config = configNode.Node;
                if (deleteEnabled)
                {
                    if (GUILayout.Button("Delete " + config.GetValue("name")))
                    {
                        confirmDeleteEnabled = true;
                        this.presets.MarkForDeletion(configNode);
                    }
                }
                else
                {
                    if (GUILayout.Button(config.GetValue("name")))
                    {
                        int xVal;
                        int.TryParse(config.GetValue("x"), out xVal);
                        int yVal;
                        int.TryParse(config.GetValue("y"), out yVal);
                        bool fullscreen;
                        bool.TryParse(config.GetValue("fullscreen"), out fullscreen);
                        GameSettings.SCREEN_RESOLUTION_HEIGHT = yVal;
                        GameSettings.SCREEN_RESOLUTION_WIDTH  = xVal;
                        GameSettings.FULLSCREEN = fullscreen;
                        GameSettings.SaveSettings();
                        Screen.SetResolution(xVal, yVal, fullscreen);
                        Log.detail("Set screen resolution from preset");
                    }
                }
            }

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

            if (GUI.Button(new Rect(anyresWinRect.width - 18, 3f, 15f, 15f), new GUIContent("X")))
            {
                toolbarButton.Active = false;
            }

            GUI.DragWindow();
        }
示例#5
0
        private void drawPlaneSetting()
        {
            planeConfig.EnableSystem =
                GUILayout.Toggle(planeConfig.EnableSystem, "System Enable", toggleStyle);

            // descent rate config
            planeConfig.EnableDescentRate =
                GUILayout.Toggle(planeConfig.EnableDescentRate, "Descent Rate", toggleStyle);

            planeConfig.EnableClosureToTerrain =
                GUILayout.Toggle(planeConfig.EnableClosureToTerrain, "Closure to Terrain", toggleStyle);

            GUILayout.Label(String.Format("Descent Rate Factor: {0}", planeConfig.DescentRateFactor));
            descentRateFactorExp          = GUILayout.HorizontalSlider(descentRateFactorExp, -1.0f, 1.0f);
            planeConfig.DescentRateFactor = (float)Math.Round(Math.Pow(10, descentRateFactorExp), 1);

            // altitude loss
            planeConfig.EnableAltitudeLoss =
                GUILayout.Toggle(planeConfig.EnableAltitudeLoss, "Altitude Loss After Takeoff", toggleStyle);

            // terrain clearance
            planeConfig.EnableTerrainClearance =
                GUILayout.Toggle(planeConfig.EnableTerrainClearance, "Terrain Clearance", toggleStyle);
            GUILayout.BeginHorizontal();
            {
                GUILayout.Label("Gear Alt");
                GUILayout.FlexibleSpace();
                tooLowGearAltitudeString =
                    GUILayout.TextField(tooLowGearAltitudeString, GUILayout.Height(30), GUILayout.Width(80));
                GUILayout.Label(Util.GetShortString(planeConfig.UnitOfAltitude));
            }
            GUILayout.EndHorizontal();

            // altitude
            planeConfig.EnableAltitudeCallouts =
                GUILayout.Toggle(planeConfig.EnableAltitudeCallouts, "Altitude Callouts", toggleStyle);

            // retard
            planeConfig.EnableRetard =
                GUILayout.Toggle(planeConfig.EnableRetard, "Retard", toggleStyle);

            // bank angle
            planeConfig.EnableTraffic =
                GUILayout.Toggle(planeConfig.EnableTraffic, "Traffic", toggleStyle);

            // traffic
            planeConfig.EnableBankAngle =
                GUILayout.Toggle(planeConfig.EnableBankAngle, "Bank Angle", toggleStyle);

            // v1
            planeConfig.EnableV1 =
                GUILayout.Toggle(planeConfig.EnableV1, "V1", toggleStyle);

            // rotate
            planeConfig.EnableRotate =
                GUILayout.Toggle(planeConfig.EnableRotate, "Rotate", toggleStyle);

            // gear up
            planeConfig.EnableGearUp =
                GUILayout.Toggle(planeConfig.EnableGearUp, "Gear Up", toggleStyle);

            // stall
            GUILayout.BeginHorizontal();
            {
                planeConfig.EnableStall =
                    GUILayout.Toggle(planeConfig.EnableStall, "Stall", toggleStyle);
                GUILayout.Space(50);
                planeConfig.EnableStallShake =
                    GUILayout.Toggle(planeConfig.EnableStallShake, "Shake", toggleStyle);
            }
            GUILayout.EndHorizontal();
            GUILayout.Label(String.Format("Max AOA: {0} deg", planeConfig.StallAoa));
            planeConfig.StallAoa = (float)Math.Round(GUILayout.HorizontalSlider(planeConfig.StallAoa, 0.0f, 180.0f), 0);

            // take off speed
            GUILayout.Label(String.Format("V1 Speed: {0} m/s", planeConfig.V1Speed));
            planeConfig.V1Speed = (float)Math.Round(GUILayout.HorizontalSlider(planeConfig.V1Speed, 10.0f, 200.0f), 0);
            GUILayout.Label(String.Format("Take Off Speed: {0} m/s", planeConfig.TakeOffSpeed));
            planeConfig.TakeOffSpeed = (float)Math.Round(GUILayout.HorizontalSlider(planeConfig.TakeOffSpeed, 10.0f, 200.0f), 0);

            // landing speed
            GUILayout.Label(String.Format("Landing Speed: {0} m/s", planeConfig.LandingSpeed));
            planeConfig.LandingSpeed = (float)Math.Round(GUILayout.HorizontalSlider(planeConfig.LandingSpeed, 10.0f, 200.0f), 0);
        }
示例#6
0
        private void DoWindow(int id)
        {
            GUILayout.BeginHorizontal();
            GUILayout.Label("For each mod, select which toolbar to put it's button on.");
            GUILayout.EndHorizontal();
            GUILayout.BeginHorizontal();
            GUILayout.Label("If the Blizzy toobar is not installed, all buttons will be put on the stock toolbar, regardless of the setting");
            GUILayout.EndHorizontal();

            GUILayout.Space(10);

            GUILayout.BeginHorizontal();
            GUILayout.Label("Stock", GUILayout.Width(50));
            GUILayout.Label("Blizzy", GUILayout.Width(50));
            GUILayout.Label("Both", GUILayout.Width(50));
            GUILayout.Label("None", GUILayout.Width(50));
            GUILayout.EndHorizontal();
            GUILayout.BeginHorizontal();

            //ToolbarControl.sortedModList = ToolbarControl.sortedModList.OrderBy(x => x.displayName).ToList();


            scrollVector = GUILayout.BeginScrollView(scrollVector, scrollbar_style, GUILayout.Height(scrollBarHeight));

            foreach (ToolbarControl.Mod mod in ToolbarControl.sortedModList)
            {
                bool doUseButtons = false;
                GUILayout.BeginHorizontal();
                bool stock = GUILayout.Toggle(mod.useStock, "", GUILayout.Width(60));
                if (stock != mod.useStock)
                {
                    if (ToolbarControl.registeredMods[mod.modId].useStock == ToolbarControl.registeredMods[mod.modId].useBlizzy &&
                        ToolbarControl.registeredMods[mod.modId].useStock)
                    {
                        ToolbarControl.registeredMods[mod.modId].useBlizzy = false;
                    }
                    else
                    {
                        ToolbarControl.registeredMods[mod.modId].useStock  = stock;
                        ToolbarControl.registeredMods[mod.modId].useBlizzy = !stock;
                    }

                    doUseButtons = true;
                }

                bool blizzy = GUILayout.Toggle(mod.useBlizzy, "", GUILayout.Width(50));

                if (blizzy != ToolbarControl.registeredMods[mod.modId].useBlizzy)
                {
                    if (ToolbarControl.registeredMods[mod.modId].useStock == ToolbarControl.registeredMods[mod.modId].useBlizzy &&
                        ToolbarControl.registeredMods[mod.modId].useBlizzy)
                    {
                        ToolbarControl.registeredMods[mod.modId].useStock = false;
                    }
                    else
                    {
                        ToolbarControl.registeredMods[mod.modId].useBlizzy = blizzy;
                        ToolbarControl.registeredMods[mod.modId].useStock  = !blizzy;
                    }

                    doUseButtons = true;
                }

                bool both    = (stock & blizzy);
                bool newboth = GUILayout.Toggle(both, "", GUILayout.Width(50));
                if (newboth != both)
                {
                    ToolbarControl.registeredMods[mod.modId].useBlizzy = true;
                    ToolbarControl.registeredMods[mod.modId].useStock  = true;

                    doUseButtons = true;
                }
                if (!ToolbarControl.registeredMods[mod.modId].noneAllowed)
                {
                    GUI.enabled = false;
                }
                bool none    = (!stock & !blizzy);
                bool newnone = GUILayout.Toggle(none, "", GUILayout.Width(25));
                if (newnone != none)
                {
                    ToolbarControl.registeredMods[mod.modId].useBlizzy = false;
                    ToolbarControl.registeredMods[mod.modId].useStock  = false;

                    doUseButtons = true;
                }

                if (doUseButtons)
                {
                    ToolbarControl.SaveData();
                    if (ToolbarControl.registeredMods[mod.modId].modToolbarControl != null)
                    {
                        ToolbarControl.registeredMods[mod.modId].modToolbarControl.UseButtons(mod.modId);
                    }
                    else
                    {
                        Log.Debug("mod.Key: " + mod.modId + " modToolbarControl is null");
                    }
                }
                GUI.enabled = true;
                GUILayout.Label(" " + mod.displayName);
                GUILayout.FlexibleSpace();
                GUILayout.EndHorizontal();
            }
            GUILayout.EndScrollView();

            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Close"))
            {
                GUIEnabled = false;
            }
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("?"))
            {
                IntroWindowClass.showHelp  = true;
                IntroWindowClass.automoved = 0;
            }
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();

            GUI.DragWindow();
        }
示例#7
0
        // GUI
        private void WindowGUI(int windowID)
        {
            if (null == this.CurrentVessel)
            {
                return;
            }

            #region General GUI
            // General GUI window information
            GUIStyle mySty = new GUIStyle(GUI.skin.button);
            mySty.normal.textColor   = mySty.focused.textColor = Color.white;
            mySty.hover.textColor    = mySty.active.textColor = Color.yellow;
            mySty.onNormal.textColor = mySty.onFocused.textColor = mySty.onHover.textColor = mySty.onActive.textColor = Color.green;
            mySty.padding            = new RectOffset(2, 2, 2, 2);

            // Buoyancy -, current %, and + buttons
            GUILayout.BeginHorizontal();
            if (GUILayout.RepeatButton("-", mySty))
            {
                TargetBuoyantVessel  -= 0.002f;
                ToggleAltitudeControl = false;
            }
            TargetBuoyantVessel = Mathf.Clamp01(TargetBuoyantVessel);

            GUILayout.Label("        " + Mathf.RoundToInt(TargetBuoyantVessel * 100) + "%");

            if (GUILayout.RepeatButton("+", mySty))
            {
                TargetBuoyantVessel  += 0.002f;
                ToggleAltitudeControl = false;
            }
            GUILayout.EndHorizontal();

            // Slider control.  Also is set by the other controls.
            GUILayout.BeginHorizontal();
            {
                float temp = TargetBuoyantVessel;
                TargetBuoyantVessel = GUILayout.HorizontalSlider(TargetBuoyantVessel, 0f, 1f);
                if (temp != TargetBuoyantVessel)
                {
                    ToggleAltitudeControl = false;
                }
            }
            GUILayout.EndHorizontal();

            TargetBuoyantVessel = Mathf.Clamp01(TargetBuoyantVessel);
            #endregion

            #region Toggle Altitude
            // Altitude control.  Should be deactivated when pressing any other unrelated control.
            GUILayout.BeginHorizontal();
            {
                string toggleAltitudeControlString = "Altitude Control Off";
                if (ToggleAltitudeControl)
                {
                    toggleAltitudeControlString = "Altitude Control On";
                }
                ToggleAltitudeControl = GUILayout.Toggle(ToggleAltitudeControl, toggleAltitudeControlString);
            }
            GUILayout.EndHorizontal();
            #endregion

            if (ToggleAltitudeControl)
            {
                #region Altitude Control
                willReset1 = true;

                // Vertical Velocity -, target velocity, and + buttons
                GUILayout.BeginHorizontal();
                GUILayout.Label("Target Vertical Velocity");
                GUILayout.EndHorizontal();

                GUILayout.BeginHorizontal();
                if (GUILayout.RepeatButton("--", mySty))
                {
                    TargetVerticalVelocity -= 0.1f;
                }
                if (GUILayout.Button("-", mySty))
                {
                    TargetVerticalVelocity -= 0.1f;
                }
                if (GUILayout.Button(TargetVerticalVelocity.ToString("00.0") + " m/s", mySty))
                {
                    TargetVerticalVelocity = 0;
                }
                if (GUILayout.Button("+", mySty))
                {
                    TargetVerticalVelocity += 0.1f;
                }
                if (GUILayout.RepeatButton("++", mySty))
                {
                    TargetVerticalVelocity += 0.1f;
                }
                GUILayout.EndHorizontal();
                #endregion
            }
            else
            {
                TargetVerticalVelocity = 0;
                if (willReset1)
                {
                    resetGUIsize = true;
                    willReset1   = false;
                }
            }

            if (Envelopes.Count > 1)
            {
                GUILayout.BeginHorizontal();
                string toggleAutoPitchString = "Auto Pitch Off";
                if (ToggleAutoPitch)
                {
                    toggleAutoPitchString = "Auto Pitch On";
                }
                ToggleAutoPitch = GUILayout.Toggle(ToggleAutoPitch, toggleAutoPitchString);
                GUILayout.EndHorizontal();
            }

            if (ToggleAutoPitch)
            {
                willReset4 = true;
            }
            else
            {
                if (willReset4)
                {
                    resetGUIsize = true;
                    willReset4   = false;
                }
            }

            if (ToggleAutoPitch)
            {
                willReset2 = true;

#if DEBUG
                DisplayHologram = GUILayout.Toggle(DisplayHologram, "Display Hologram at " + LineOffsetMultiplier.ToString("F1"));
                if (DisplayHologram)
                {
                    LineOffsetMultiplier = GUILayout.HorizontalSlider(LineOffsetMultiplier, -20f, 20f);
                }
#endif
            }
            else
            {
                DisplayHologram = false;
                if (willReset2)
                {
                    resetGUIsize = true;
                    willReset2   = false;
                }
            }

            if (AnchorPresent)
            {
                GUILayout.BeginHorizontal();
                string toggleAnchor = "Anchor Inactive";
                if (AnchorOn)
                {
                    toggleAnchor = "Anchor Active";
                }
                AnchorOn = GUILayout.Toggle(AnchorOn, toggleAnchor);
                string toggleAutoAnchor = "Auto Anchor Off";
                if (AutoAnchor)
                {
                    toggleAutoAnchor = "Auto Anchor On";
                }
                AutoAnchor = GUILayout.Toggle(AutoAnchor, toggleAutoAnchor);
                GUILayout.EndHorizontal();
            }

            if (resetGUIsize)
            {
                // Reset window size
                windowPos.Set(windowPos.x, windowPos.y, 10, 10);
                resetGUIsize = false;
            }

            #region Debug
            // Debug info


            GUILayout.BeginHorizontal();
            GUILayout.Label("Buoyancy - Weight: " + (TotalBuoyancy - (CurrentVessel.GetTotalMass() * FlightGlobals.getGeeForceAtPosition(CurrentVessel.GetWorldPos3D()).magnitude)).ToString("0.00"));
            GUILayout.EndHorizontal();

            //GUILayout.BeginHorizontal();
            //GUILayout.Label("Angle from Up: " + (ContAngle(heading, up, up)).ToString("0.0"));
            //GUILayout.EndHorizontal();

            //GUILayout.BeginHorizontal();
            //GUILayout.Label("Front Torque: " + (totalTorqueP).ToString("0.0"));
            //GUILayout.EndHorizontal();

            //GUILayout.BeginHorizontal();
            //GUILayout.Label("Rear Torque: " + (totalTorqueN).ToString("0.0"));
            //GUILayout.EndHorizontal();

            //GUILayout.BeginHorizontal();
            //GUILayout.Label("Front B: " + (targetBuoyancyP).ToString("0.00"));
            //GUILayout.EndHorizontal();

            //GUILayout.BeginHorizontal();
            //GUILayout.Label("Rear B: " + (targetBuoyancyN).ToString("0.00"));
            //GUILayout.EndHorizontal();

                #if DEBUG
            int x = 0;
            foreach (HLEnvelopePartModule envelope in Envelopes)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Label("Env" + x + " Location: " + (envelope.eDistanceFromCoM).ToString("0.00"));
                GUILayout.EndHorizontal();
                GUILayout.BeginHorizontal();
                GUILayout.Label("Env" + x + " Buoyancy: " + (envelope.buoyantForce.magnitude).ToString("0.00"));
                GUILayout.EndHorizontal();
                GUILayout.BeginHorizontal();
                GUILayout.Label("Env" + x + " Specific Volume: " + (envelope.specificVolumeFractionEnvelope).ToString("0.00"));
                GUILayout.EndHorizontal();
                GUILayout.BeginHorizontal();
                GUILayout.Label("Env" + x + " targetPitchBuoyancy: " + (envelope.targetPitchBuoyancy).ToString("0.00"));
                GUILayout.EndHorizontal();
                //GUILayout.BeginHorizontal();
                //GUILayout.Label("Env" + x + " targetBoyantForceFractionCompressor: " + (envelope.targetBoyantForceFractionCompressor).ToString("0.00"));
                //GUILayout.EndHorizontal();

                x += 1;
            }
                #endif
            #endregion

            GUI.DragWindow(new Rect(0, 0, 500, 20));
        }
        void OnWindowGUI(int id)
        {
            GUI.skin = HighLogic.Skin;
            Historian historian = Historian.Instance;

            // column one
            using (GUILayout.AreaScope columnOne = new GUILayout.AreaScope(new Rect(15, 20, 380, 550)))
            {
                using (GUILayout.VerticalScope col = new GUILayout.VerticalScope())
                {
                    GUILayout.Space(20);
                    historian.Suppressed              = GUILayout.Toggle(historian.Suppressed, Localizer.GetStringByTag("#Historian_Suppressed"));
                    historian.AlwaysActive            = GUILayout.Toggle(historian.AlwaysActive, Localizer.GetStringByTag("#Historian_AlwaysActive"));
                    historian.AutoHideUI              = GUILayout.Toggle(historian.AutoHideUI, Localizer.GetStringByTag("#Historian_AutoHideUI"));
                    Configuration.Instance.AutoHideUI = historian.AutoHideUI;

                    Configuration.Instance.PersistentConfigurationWindow = GUILayout.Toggle(Configuration.Instance.PersistentConfigurationWindow, Localizer.GetStringByTag("#Historian_AlwaysShowConfigWindow"));
                    Configuration.Instance.EnableLauncherButton          = GUILayout.Toggle(Configuration.Instance.EnableLauncherButton, Localizer.GetStringByTag("#Historian_UseAppLauncher"));
                    Configuration.Instance.EnableToolbarButton           = GUILayout.Toggle(Configuration.Instance.EnableToolbarButton, Localizer.GetStringByTag("#Historian_UseToolbar"));
                    GUILayout.Space(10);

                    using (GUILayout.HorizontalScope layout = new GUILayout.HorizontalScope())
                    {
                        int rightClickOptionsCount = 4;
                        //GUILayout.Space(40);
                        GUILayout.Label(Localizer.GetStringByTag("#Historian_RightClickAction"));
                        GUILayout.Space(10);
                        if (GUILayout.Button(previousButtonTexture, GUILayout.Width(20), GUILayout.Height(GUI.skin.label.lineHeight)))
                        {
                            Configuration.Instance.RightClickAction = (RightClickAction)Mathf.Clamp((int)Configuration.Instance.RightClickAction - 1, 0, rightClickOptionsCount - 1);
                        }
                        else if (GUILayout.Button(nextButtonTexture, GUILayout.Width(20), GUILayout.Height(GUI.skin.label.lineHeight)))
                        {
                            Configuration.Instance.RightClickAction = (RightClickAction)Mathf.Clamp((int)Configuration.Instance.RightClickAction + 1, 0, rightClickOptionsCount - 1);
                        }
                        GUILayout.Space(5);
                        GUILayout.Label(Configuration.Instance.RightClickAction.ToString(), GUI.skin.textArea, GUILayout.ExpandWidth(true));
                    }

                    ManageButtons();

                    GUILayout.Space(10);
                    using (GUILayout.HorizontalScope layout = new GUILayout.HorizontalScope())
                    {
                        GUILayout.Label(Localizer.GetStringByTag("#Historian_Layout"));
                        GUILayout.Space(10);
                        string[] layouts = historian.GetLayoutNames();
                        if (GUILayout.Button(previousButtonTexture, GUILayout.Width(20), GUILayout.Height(GUI.skin.label.lineHeight)))
                        {
                            historian.CurrentLayoutIndex = Mathf.Clamp(historian.CurrentLayoutIndex - 1, 0, layouts.Length - 1);
                        }
                        else if (GUILayout.Button(nextButtonTexture, GUILayout.Width(20), GUILayout.Height(GUI.skin.label.lineHeight)))
                        {
                            historian.CurrentLayoutIndex = Mathf.Clamp(historian.CurrentLayoutIndex + 1, 0, layouts.Length - 1);
                        }
                        GUILayout.Space(5);
                        GUILayout.Label(historian.GetCurrentLayoutName(), GUI.skin.textArea, GUILayout.ExpandWidth(true));
                    }

                    GUILayout.Space(10);
                    using (GUILayout.HorizontalScope customHead = new GUILayout.HorizontalScope())
                    {
                        GUILayout.Label(Localizer.GetStringByTag("#Historian_CustomText"));
                        GUILayout.FlexibleSpace();
                        Configuration.Instance.PersistentCustomText = GUILayout.Toggle(Configuration.Instance.PersistentCustomText, Localizer.GetStringByTag("#Historian_Persistent"), GUILayout.Width(120));
                    }
                    Configuration.Instance.CustomText = GUILayout.TextArea(Configuration.Instance.CustomText, GUI.skin.textArea, GUILayout.Height(60));

                    GUILayout.Space(10);
                    using (GUILayout.HorizontalScope spaceCentre = new GUILayout.HorizontalScope())
                    {
                        GUILayout.Label(Localizer.GetStringByTag("#Historian_DefaultSpaceCenterLabel"));
                        GUILayout.FlexibleSpace();
                        Configuration.Instance.DefaultSpaceCenterName = GUILayout.TextField(Configuration.Instance.DefaultSpaceCenterName, GUI.skin.textArea, GUILayout.Width(150));
                    }


                    GUILayout.Space(10);
                    GUILayout.Label($"{Localizer.GetStringByTag("#Historian_LastActionTime")}: {Configuration.Instance.TimeToRememberLastAction} ms");
                    Configuration.Instance.TimeToRememberLastAction = (int)GUILayout.HorizontalSlider(Configuration.Instance.TimeToRememberLastAction, 250, 10000, GUILayout.ExpandWidth(true));
                }
            }

            // column two
            using (GUILayout.AreaScope columnTwo = new GUILayout.AreaScope(new Rect(410, 20, 220, 500)))
            {
                using (GUILayout.VerticalScope col = new GUILayout.VerticalScope())
                {
                    GUILayout.Space(20);
                    GUILayout.Label(Localizer.GetStringByTag("#Historian_DayNames"));
                    for (int i = 0; i < Configuration.Instance.KerbinDayNames.Length; i++)
                    {
                        using (GUILayout.HorizontalScope item = new GUILayout.HorizontalScope())
                        {
                            GUILayout.Label($"{i + 1}:");
                            GUILayout.FlexibleSpace();
                            Configuration.Instance.KerbinDayNames[i] = GUILayout.TextField(Configuration.Instance.KerbinDayNames[i], GUI.skin.textArea, GUILayout.Width(190f));
                        }
                    }

                    GUILayout.Space(50);
                    GUILayout.Label(Localizer.GetStringByTag("#Historian_DefaultEmptyCrewSlot"));
                    GUILayout.Space(10);
                    using (GUILayout.HorizontalScope noCrewLabel = new GUILayout.HorizontalScope())
                    {
                        GUILayout.Label(Localizer.GetStringByTag("#Historian_CrewedLabel"));
                        GUILayout.FlexibleSpace();
                        Configuration.Instance.DefaultNoCrewLabel = GUILayout.TextField(Configuration.Instance.DefaultNoCrewLabel, GUI.skin.textArea, GUILayout.Width(120));
                    }
                    using (GUILayout.HorizontalScope noCrewLabel = new GUILayout.HorizontalScope())
                    {
                        GUILayout.Label(Localizer.GetStringByTag("#Historian_UncrewedLabel"));
                        GUILayout.FlexibleSpace();
                        Configuration.Instance.DefaultUnmannedLabel = GUILayout.TextField(Configuration.Instance.DefaultUnmannedLabel, GUI.skin.textArea, GUILayout.Width(120));
                    }
                }
            }

            // column three
            using (GUILayout.AreaScope columnThree = new GUILayout.AreaScope(new Rect(660, 20, 220, 480)))
            {
                using (GUILayout.VerticalScope col = new GUILayout.VerticalScope())
                {
                    GUILayout.Space(20);
                    GUILayout.Label(Localizer.GetStringByTag("#Historian_MonthNames"));
                    for (int i = 0; i < Configuration.Instance.KerbinMonthNames.Length; i++)
                    {
                        using (GUILayout.HorizontalScope item = new GUILayout.HorizontalScope())
                        {
                            GUILayout.Label($"{i + 1}:");
                            GUILayout.FlexibleSpace();
                            Configuration.Instance.KerbinMonthNames[i] = GUILayout.TextField(Configuration.Instance.KerbinMonthNames[i], GUI.skin.textArea, GUILayout.Width(190f));
                        }
                    }
                }
            }

            // bottom bar
            using (GUILayout.AreaScope buttonBar = new GUILayout.AreaScope(new Rect(5, 525, 890, 30)))
            {
                using (GUILayout.HorizontalScope layout = new GUILayout.HorizontalScope())
                {
                    GUILayout.FlexibleSpace();
                    if (GUILayout.Button(Localizer.GetStringByTag("#autoLOC_900539"), GUILayout.Width(100.0f))) // #autoLOC_900539 = Load
                    {
                        historian.Reload();
                    }
                    if (GUILayout.Button(Localizer.GetStringByTag("#autoLOC_174778"), GUILayout.Width(100.0f))) // #autoLOC_174778 = Save
                    {
                        Configuration.Instance.Layout = historian.GetCurrentLayoutName();

                        historian.SetConfiguration(Configuration.Instance);
                        if (!Configuration.Instance.PersistentConfigurationWindow)
                        {
                            Toggle();
                        }

                        if (!String.IsNullOrEmpty(Configuration.Instance.CustomText))
                        {
                            Configuration.Instance.TokenizedCustomText = Parser.GetTokens(Configuration.Instance.CustomText);
                        }
                    }
                    GUILayout.Space(20);
                    // GUILayout.FlexibleSpace();
                }
            }

            GUI.DragWindow();
        }
示例#9
0
        internal void drawWindow(int id)
        {
            if (PartCommander.Instance.settings.altSkin)
            {
                GUI.skin = PartCommander.Instance.modStyleUnity.skin;
            }
            else
            {
                GUI.skin = PartCommander.Instance.modStyle.skin;
            }
            GUILayout.BeginVertical();
            GUILayout.Label("Settings", modStyle.guiStyles["titleLabel"]);
            GUILayout.EndVertical();
            if (Event.current.type == EventType.Repaint)
            {
                dragRect = GUILayoutUtility.GetLastRect();
            }
            GUILayout.BeginVertical();
            scrollPos = GUILayout.BeginScrollView(scrollPos);

            GUILayout.BeginHorizontal();
            bool newHideUnAct = GUILayout.Toggle(settings.hideUnAct, "Hide unactionable parts", modStyle.guiStyles["toggleText"]);

            if (newHideUnAct != settings.hideUnAct)
            {
                PartCommander.Instance.updateParts = true;
                settings.hideUnAct = newHideUnAct;
                settings.Save();
            }

            GUILayout.EndHorizontal();
            GUILayout.Space(5f);
            GUILayout.BeginHorizontal();

            GUILayout.Label("Font Size:", modStyle.guiStyles["settingsLabel"]);
            bool fontChanged = false;

            GUILayout.FlexibleSpace();
            if (settings.fontSize <= 12)
            {
                GUI.enabled = false;
            }
            if (GUILayout.Button("<", modStyle.guiStyles["settingsButton"]))
            {
                settings.fontSize--;
                fontChanged = true;
            }
            GUI.enabled = true;
            string s = GUILayout.TextField(settings.fontSize.ToString(), modStyle.guiStyles["settingsLabel"]);

            if (settings.fontSize >= 20)
            {
                GUI.enabled = false;
            }
            if (GUILayout.Button(">", modStyle.guiStyles["settingsButton"]))
            {
                settings.fontSize++;
                fontChanged = true;
            }
            GUI.enabled = true;
            if (fontChanged)
            {
                settings.Save();
                PartCommander.Instance.modStyle.UpdateFontSize(settings.fontSize);
                PartCommander.Instance.modStyleUnity.UpdateFontSize(settings.fontSize);
            }
            GUILayout.EndHorizontal();
            GUILayout.Space(5f);
            GUILayout.BeginHorizontal();

            bool newAltSkin = GUILayout.Toggle(settings.altSkin, "Use alternate skin", modStyle.guiStyles["toggleText"]);

            if (newAltSkin != settings.altSkin)
            {
                settings.altSkin = newAltSkin;
                settings.Save();
                if (PartCommander.Instance.settings.altSkin)
                {
                    modStyle = PartCommander.Instance.modStyleUnity;
                    PartCommander.Instance.modStyle = PartCommander.Instance.modStyleUnity;
                }
                else
                {
                    modStyle = PartCommander.Instance.modStyleKSP;
                    PartCommander.Instance.modStyle = PartCommander.Instance.modStyle;
                }
            }

            GUILayout.EndHorizontal();
            GUILayout.Space(5f);
            GUILayout.BeginHorizontal();

            bool newEnableHotKey = GUILayout.Toggle(settings.enableHotKey, "Enable hot key", modStyle.guiStyles["toggleText"]);

            if (newEnableHotKey != settings.enableHotKey)
            {
                settings.enableHotKey = newEnableHotKey;
                settings.Save();
            }

            GUILayout.EndHorizontal();
            GUILayout.Space(5f);
            GUILayout.BeginHorizontal();

            if (settingHotKey)
            {
                GUILayout.Label("Type a new hot key...", modStyle.guiStyles["settingsLabel"]);
                if (Event.current.isKey)
                {
                    settings.hotKey = Event.current.keyCode;
                    settings.Save();
                    settingHotKey = false;
                }
            }
            else
            {
                if (settings.enableHotKey)
                {
                    GUILayout.BeginHorizontal();
                    GUILayout.Label("Mod + ");
                    if (GUILayout.Button(new GUIContent(settings.hotKey.ToString(), "Click to set new hot key"), modStyle.guiStyles["settingsButton"]))
                    {
                        settingHotKey = true;
                    }
                    GUILayout.EndHorizontal();
                }
            }
            GUILayout.EndHorizontal();
            GUILayout.EndScrollView();
            GUILayout.Space(25f);
            GUILayout.EndVertical();

            if (GUI.Button(new Rect(windowRect.width - 18, 3f, 15f, 15f), new GUIContent("", "Close"), modStyle.guiStyles["closeButton"]))
            {
                showWindow = false;
            }
            // Create resize button in bottom right corner
            if (GUI.RepeatButton(new Rect(windowRect.width - 23, windowRect.height - 23, 20, 20), "", modStyle.guiStyles["resizeButton"]))
            {
                resizingWindow = true;
            }
            GUI.DragWindow();
        }