예제 #1
0
        private double[] mapline;    // all refs are below

        /* MAP: nearly trivial functions */
        public void setBody(CelestialBody b)
        {
            if (body == b)
            {
                return;
            }
            body = b;
            if (SCANconfigLoader.GlobalResource)
            {
                resource = SCANcontroller.getResourceNode(SCANcontroller.controller.resourceSelection);
                if (resource == null)
                {
                    resource = SCANcontroller.GetFirstResource;
                }
                resource.CurrentBodyConfig(body.name);
            }
        }
예제 #2
0
        protected override void DrawWindowPost(int id)
        {
            if (dropDown && Event.current.type == EventType.mouseDown && !ddRect.Contains(Event.current.mousePosition))
            {
                dropDown = false;
            }

            //These methods update all of the UI elements whenever any of the options are changed
            if (windowMode == 0)
            {
                if (currentTerrain.PalRev != oldReverseState)
                {
                    oldReverseState = currentTerrain.PalRev;
                    drawPreviewLegend();
                }

                if (minTerrainSlider.valueChanged() || maxTerrainSlider.valueChanged())
                {
                    setTerrainSliders();
                }

                if (currentTerrain.PalDis != oldDiscreteState)
                {
                    oldDiscreteState = currentTerrain.PalDis;
                    drawPreviewLegend();
                }

                if (clampState != oldClampState)
                {
                    oldClampState = clampState;
                    drawPreviewLegend();
                }

                if (paletteSizeSlider.valueChanged())
                {
                    regenPaletteSets();
                    currentTerrain.ColorPal = palette.CurrentPalettes.availablePalettes[paletteIndex];
                    drawPreviewLegend();
                }
            }
            else if (windowMode == 1)
            {
                slopeColorPickerLow.colorStateChanged();
                slopeColorPickerLow.brightnessChanged();
                slopeColorPickerHigh.colorStateChanged();
                slopeColorPickerHigh.brightnessChanged();
            }
            else if (windowMode == 2)
            {
                biomeColorPicker.colorStateChanged();
                biomeColorPicker.brightnessChanged();
            }
            else if (windowMode == 3)
            {
                if (resourceMinSlider.valueChanged() || resourceMaxSlider.valueChanged())
                {
                    setResourceSliders();
                }

                if (bodyIndex != data.Body.flightGlobalsIndex)
                {
                    SCANUtil.SCANdebugLog("Trigger Body Change");
                    bodyIndex = data.Body.flightGlobalsIndex;

                    currentResource.CurrentBodyConfig(data.Body.name);

                    lowRCutoff  = currentResource.CurrentBody.MinValue;
                    highRCutoff = currentResource.CurrentBody.MaxValue;

                    oldFineControl = fineControlMode = false;

                    setResourceSliders();
                }

                if (oldFineControl != fineControlMode)
                {
                    oldFineControl = fineControlMode;
                    if (fineControlMode)
                    {
                        if (lowRCutoff < 5f)
                        {
                            resourceMinSlider.MinValue = 0f;
                        }
                        else
                        {
                            resourceMinSlider.MinValue = lowRCutoff - 5;
                        }

                        if (lowRCutoff > 95f)
                        {
                            resourceMinSlider.MaxValue = 100f;
                        }
                        else if (highRCutoff < lowRCutoff + 5f)
                        {
                            resourceMinSlider.MaxValue = highRCutoff - 0.1f;
                        }
                        else
                        {
                            resourceMinSlider.MaxValue = lowRCutoff + 5f;
                        }

                        if (highRCutoff < 5f)
                        {
                            resourceMaxSlider.MinValue = 0f;
                        }
                        else if (lowRCutoff > highRCutoff - 5f)
                        {
                            resourceMaxSlider.MinValue = lowRCutoff + 0.1f;
                        }
                        else
                        {
                            resourceMaxSlider.MinValue = highRCutoff - 5f;
                        }

                        if (highRCutoff > 95f)
                        {
                            resourceMaxSlider.MaxValue = 100f;
                        }
                        else
                        {
                            resourceMaxSlider.MaxValue = highRCutoff + 5f;
                        }
                    }
                    else
                    {
                        setResourceSliders();
                    }
                }

                resourceColorPicker.colorStateChanged();
                resourceColorPicker.brightnessChanged();
            }

            sessionRect = WindowRect;
        }
예제 #3
0
        protected override void Start()
        {
            if (HighLogic.LoadedScene == GameScenes.SPACECENTER || HighLogic.LoadedScene == GameScenes.TRACKSTATION)
            {
                kscMapObj = (SCANkscMap)SCANcontroller.controller.kscMap;
                if (SCANkscMap.BigMap != null)
                {
                    bigMap = SCANkscMap.BigMap;
                }
                if (kscMapObj.Data != null)
                {
                    data = kscMapObj.Data;
                }
            }
            else if (HighLogic.LoadedSceneIsFlight)
            {
                bigMapObj = (SCANBigMap)SCANcontroller.controller.BigMap;
                if (SCANBigMap.BigMap != null)
                {
                    bigMap = SCANBigMap.BigMap;
                }
                if (bigMapObj.Data != null)
                {
                    data = bigMapObj.Data;
                }
            }

            if (data == null)
            {
                data = SCANUtil.getData(Planetarium.fetch.Home);
                if (data == null)
                {
                    data = new SCANdata(Planetarium.fetch.Home);
                    SCANcontroller.controller.addToBodyData(Planetarium.fetch.Home, data);
                }
            }

            currentTerrain = new SCANterrainConfig(data.TerrainConfig);

            stockBiomes = SCANcontroller.controller.useStockBiomes;

            minTerrainSlider   = new SCANuiSlider(data.TerrainConfig.DefaultMinHeight - SCANconfigLoader.SCANNode.RangeBelowMinHeight, data.TerrainConfig.MaxTerrain - 100, data.TerrainConfig.MinTerrain, "Min: ", "m", -2);
            maxTerrainSlider   = new SCANuiSlider(data.TerrainConfig.MinTerrain + 100, data.TerrainConfig.DefaultMaxHeight + SCANconfigLoader.SCANNode.RangeAboveMaxHeight, data.TerrainConfig.MaxTerrain, "Max: ", "m", -2);
            clampTerrainSlider = new SCANuiSlider(data.TerrainConfig.MinTerrain + 10, data.TerrainConfig.MaxTerrain - 10, data.TerrainConfig.ClampTerrain ?? data.TerrainConfig.MinTerrain + 10, "Clamp: ", "m", -1);
            paletteSizeSlider  = new SCANuiSlider(3, 12, data.TerrainConfig.PalSize, "Palette Size: ", "", 0);

            slopeColorPickerLow  = new SCANuiColorPicker(SCANcontroller.controller.lowSlopeColorOne, SCANcontroller.controller.highSlopeColorOne, true);
            slopeColorPickerHigh = new SCANuiColorPicker(SCANcontroller.controller.lowSlopeColorTwo, SCANcontroller.controller.highSlopeColorTwo, true);

            slopeColorPickerLow.updateOldSwatches();
            slopeColorPickerHigh.updateOldSwatches();

            bTrans           = SCANcontroller.controller.biomeTransparency;
            biomeTransSlider = new SCANuiSlider(0, 80, bTrans, "Ter. Trans: ", "%", 0);

            biomeColorPicker = new SCANuiColorPicker(SCANcontroller.controller.lowBiomeColor, SCANcontroller.controller.highBiomeColor, true);

            biomeColorPicker.updateOldSwatches();

            if (SCANconfigLoader.GlobalResource)
            {
                loadedResources = SCANcontroller.setLoadedResourceList();
                currentResource = new SCANresourceGlobal(loadedResources[0]);
                currentResource.CurrentBodyConfig(data.Body.name);

                if (currentResource != null)
                {
                    resourceMinSlider   = new SCANuiSlider(0, currentResource.CurrentBody.MinValue - 0.1f, currentResource.CurrentBody.MinValue, "Min: ", "%", 1);
                    resourceMaxSlider   = new SCANuiSlider(currentResource.CurrentBody.MinValue + 0.1f, 100, currentResource.CurrentBody.MaxValue, "Max: ", "%", 1);
                    resourceTransSlider = new SCANuiSlider(0, 80, currentResource.Transparency, "Trans: ", "%", 0);

                    resourceColorPicker = new SCANuiColorPicker(currentResource.MinColor, currentResource.MaxColor, true);
                }
            }

            bodyIndex = data.Body.flightGlobalsIndex;

            if (windowMode > 3 || (windowMode > 2 && !SCANconfigLoader.GlobalResource))
            {
                windowMode = 0;
            }

            setSizeSlider(currentTerrain.ColorPal.kind);
        }
예제 #4
0
        //Drop down menu for palette selection
        private void dropDownBox(int id)
        {
            if (dropDown)
            {
                if (paletteBox && windowMode == 0)
                {
                    ddRect = new Rect(40, 120, 100, 100);
                    GUI.Box(ddRect, "");
                    for (int i = 0; i < Palette.kindNames.Length; i++)
                    {
                        Rect r = new Rect(ddRect.x + 10, ddRect.y + 5 + (i * 23), 80, 22);
                        if (GUI.Button(r, Palette.kindNames[i], SCANskins.SCAN_dropDownButton))
                        {
                            paletteBox = false;
                            palette.CurrentPalettes = palette.setCurrentPalettesType((Palette.Kind)i, (int)pSize);
                            setSizeSlider((Palette.Kind)i);
                        }
                    }
                }
                else if (resourceBox && windowMode == 3)
                {
                    ddRect = new Rect(WindowRect.width - 440, 115, 160, 140);
                    GUI.Box(ddRect, "");
                    for (int i = 0; i < loadedResources.Count; i++)
                    {
                        scrollR = GUI.BeginScrollView(ddRect, scrollR, new Rect(0, 0, 140, 23 * loadedResources.Count));
                        Rect r = new Rect(2, i * 23, 136, 22);
                        if (GUI.Button(r, loadedResources[i].Name, SCANskins.SCAN_dropDownButton))
                        {
                            currentResource = new SCANresourceGlobal(loadedResources[i]);
                            currentResource.CurrentBodyConfig(data.Body.name);

                            fineControlMode = oldFineControl = false;

                            updateUI();

                            dropDown    = false;
                            resourceBox = false;
                        }
                        GUI.EndScrollView();
                    }
                }
                else if (saveWarning)
                {
                    ddRect = new Rect(WindowRect.width - 182, WindowRect.height - 92, 180, 90);
                    GUI.Box(ddRect, "");
                    Rect r = new Rect(ddRect.x + 10, ddRect.y, 160, 60);
                    GUI.Label(r, "Overwrite Existing Config File?", SCANskins.SCAN_headlineSmall);

                    r.x     += 40;
                    r.y     += 55;
                    r.width  = 80;
                    r.height = 30;

                    if (GUI.Button(r, "Confirm", SCANskins.SCAN_buttonWarning))
                    {
                        dropDown    = false;
                        saveWarning = false;
                        SCANconfigLoader.SCANNode.Save();
                    }
                }
                else
                {
                    dropDown = false;
                }
            }
        }