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