protected void DrawHeader() { GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label(windowTitle, GUIResources.GetStyle("window_header"), GUILayout.MaxHeight(26f), GUILayout.MinHeight(26f), GUILayout.MinWidth(350f)); GUILayout.FlexibleSpace(); Rect buttonRect = GUILayoutUtility.GetRect(22f, 22f); GUI.color = resources.GetColor("cancel_color"); if (GUI.Button(buttonRect, "", GUIResources.GetStyle("button_cancel"))) { ToggleWindow(); } GUI.DrawTextureWithTexCoords(buttonRect, GUIResources.GetIcon("cancel").iconAtlas, GUIResources.GetIcon("cancel").iconRect); GUI.color = Color.white; GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); DrawControllers(); DrawTemplateControl(); DrawExporters(); GUILayout.EndHorizontal(); }
void DrawPlot(Rect group) { Rect plotRect = new Rect(30f, 10f, 275f, 120f); GUI.BeginGroup(group, GUIResources.GetStyle("block_background")); GUI.DrawTexture(plotRect, graphTexture); int colorIndex = 0; foreach (ResourceProfile profile in drawnProfiles) { GUI.color = profileColors[colorIndex]; GUI.Label(new Rect(236f, 15f + colorIndex * 18f, 80f, 25f), profile.resourceName, GUIResources.GetStyle("text_colored")); colorIndex++; } GUI.color = Color.white; GUIUtility.RotateAroundPivot(90f, new Vector2(10f, 10f)); GUI.Label(new Rect(0f, 0f, 120f, 25f), String.Format("Relative Abundance"), GUIResources.GetStyle("text_label")); GUIUtility.RotateAroundPivot(-90f, new Vector2(10f, 10f)); GUI.Label(new Rect(5f, 130f, 60f, 25f), String.Format("0 km"), GUIResources.GetStyle("text_label")); GUI.Label(new Rect(235f, 130f, 80f, 25f), String.Format("{0} km", (drawnProfiles[0].maxDistance / 1000f).ToString("F0")), GUIResources.GetStyle("text_label")); GUI.EndGroup(); }
protected void DrawMaterials() { GUILayout.BeginHorizontal(); materialID = GUILayout.SelectionGrid(materialID, materialList, 2, GUIResources.GetStyle("radio_text_button")); if (materialID != savedID) { savedID = materialID; matl = model.materials[savedID]; InitializeShaderProperties(model.materials[savedID].materials[0]); } GUILayout.EndHorizontal(); }
void DrawMiniWindow(int WindowID) { float curAM = (float)(AntimatterFactory.Instance.Antimatter); float maxAM = (float)(AntimatterFactory.Instance.AntimatterMax); float rateAM = (float)(AntimatterFactory.Instance.AntimatterRate); Rect barAreaRect = new Rect(39f, 0f, 160f, 32f); Vector2 barBackgroundSize = new Vector2(150, 20f); Vector2 barForegroundSize = new Vector2(Mathf.Max(barBackgroundSize.x * (curAM / maxAM), 8f), 18f); Rect barBackgroundRect = new Rect(0f, 10f, barBackgroundSize.x, barBackgroundSize.y); Rect barForeroundRect = new Rect(0f, 11f, barForegroundSize.x, barForegroundSize.y); Rect storageTextRect = new Rect(5f, 10f, 160f, 20f); Rect rateTextRect = new Rect(barBackgroundSize.x - 90f, 10f, 90f, 20f); Rect amIconRect = new Rect(5f, 5f, 32f, 32f); Rect factoryButtonRect = new Rect(200f, 5f, 32f, 32f); Rect loadoutButtonRect = new Rect(200f, 5f, 32f, 32f); GUI.BeginGroup(barAreaRect); GUI.Box(barBackgroundRect, "", GUIResources.GetStyle("bar_background")); GUI.color = GUIResources.GetColor("bar_blue"); GUI.Box(barForeroundRect, "", GUIResources.GetStyle("bar_foreground")); GUI.color = Color.white; GUI.Label(storageTextRect, String.Format("<color=#ffffff>{0:F2} / {1:F0}</color>", curAM, maxAM), GUIResources.GetStyle("text_basic")); GUI.Label(rateTextRect, Localizer.Format("#LOC_FFT_AntimatterFactoryUI_MiniWindow_Rate", rateAM.ToString("F2")), GUIResources.GetStyle("text_label")); GUI.EndGroup(); GUI.DrawTextureWithTexCoords(amIconRect, GUIResources.GetIcon("antimatter").iconAtlas, GUIResources.GetIcon("antimatter").iconRect); if (HighLogic.LoadedScene == GameScenes.SPACECENTER) { if (GUI.Button(factoryButtonRect, "", GUIResources.GetStyle("button_overlaid"))) { ShowFactory(); } GUI.DrawTextureWithTexCoords(factoryButtonRect, GUIResources.GetIcon("factory").iconAtlas, GUIResources.GetIcon("factory").iconRect); } if (HighLogic.LoadedSceneIsFlight && AntimatterLoader.Instance != null && AntimatterLoader.Instance.loadingAllowed) { if (GUI.Button(loadoutButtonRect, "", GUIResources.GetStyle("button_overlaid"))) { ShowLoading(); } GUI.DrawTextureWithTexCoords(loadoutButtonRect, GUIResources.GetIcon("pump").iconAtlas, GUIResources.GetIcon("pump").iconRect); } }
protected void DrawControllers() { GUILayout.BeginHorizontal(); useControllers = GUILayout.Toggle(useControllers, "Link to Editor", GUILayout.Width(150)); GUILayout.BeginVertical(); GUILayout.Label("<b>CONTROLLERS</b>"); // GUILayout.BeginHorizontal(); GUILayout.Label("Throttle", GUIResources.GetStyle("data_header"), GUILayout.MaxWidth(160f)); throttleControllerValue = GUILayout.HorizontalSlider(throttleControllerValue, 0f, 1f, GUILayout.MaxWidth(120f)); GUILayout.Label(throttleControllerValue.ToString("F2"), GUIResources.GetStyle("data_field"), GUILayout.MinWidth(60f)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Atmosphere Depth", GUIResources.GetStyle("data_header"), GUILayout.MaxWidth(160f)); densityControllerValue = GUILayout.HorizontalSlider(densityControllerValue, 0f, 1f, GUILayout.MaxWidth(120f)); GUILayout.Label(densityControllerValue.ToString("F2"), GUIResources.GetStyle("data_field"), GUILayout.MinWidth(60f)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Randomness Min/Max", GUIResources.GetStyle("data_header"), GUILayout.MaxWidth(160f)); string xValue = GUILayout.TextArea(randomControllerValue.x.ToString(), GUILayout.MaxWidth(60f)); string yValue = GUILayout.TextArea(randomControllerValue.y.ToString(), GUILayout.MaxWidth(60f)); float xParsed; float yParsed; if (float.TryParse(xValue, out xParsed) && float.TryParse(yValue, out yParsed)) { if (xParsed != randomControllerValue.x || yParsed != randomControllerValue.y) { randomControllerValue = new Vector2(xParsed, yParsed); } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("RCS Throttle", GUIResources.GetStyle("data_header"), GUILayout.MaxWidth(160f)); rcsControllerValue = GUILayout.HorizontalSlider(rcsControllerValue, 0f, 1f, GUILayout.MaxWidth(120f)); GUILayout.Label(rcsControllerValue.ToString("F2"), GUIResources.GetStyle("data_field"), GUILayout.MinWidth(60f)); GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUILayout.EndHorizontal(); }
void OnUIDraw() { if (AntimatterFactory.Instance != null) { if (showMiniWindow) { miniWindowPos = GUI.Window(windowIdentifier, miniWindowPos, DrawMiniWindow, "", GUIResources.GetStyle("window_toolbar")); } if (showMainWindow) { mainWindowPos = GUILayout.Window(windowIdentifier2, mainWindowPos, DrawMainWindow, new GUIContent(), GUIResources.GetStyle("window_main"), GUILayout.MinHeight(20), GUILayout.ExpandHeight(true)); } } }
void DrawPlottingWindow(int WindowID) { Rect closeRect = new Rect(348f, 10f, 46f, 46f); Rect plotGroupRect = new Rect(10f, 50f, 330f, 155f); GUI.Box(new Rect(10f, 10f, 330f, 32f), "", GUIResources.GetStyle("block_background")); GUI.Label(new Rect(10f, 10f, 330f, 32f), "Spectrometer Profile", GUIResources.GetStyle("header_center")); DrawPlot(plotGroupRect); if (GUI.Button(closeRect, "X", GUIResources.GetStyle("button_basic"))) { showWindow = false; } GUI.DragWindow(); }
protected void DrawAdd() { GUILayout.BeginHorizontal(); GUILayout.Label("Effect Name", GUILayout.Width(120f)); newEffectName = GUILayout.TextArea(newEffectName); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Effect Parent", GUILayout.Width(120f)); parentName = GUILayout.TextArea(parentName); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Effect Model", GUILayout.Width(120f)); modelFlag = GUILayout.SelectionGrid(modelFlag, modelOptions, Mathf.Min(modelOptions.Length, 2), GUIResources.GetStyle("radio_text_button")); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Shader", GUILayout.Width(120f)); shaderFlag = GUILayout.SelectionGrid(shaderFlag, shaderOptions, Mathf.Min(shaderOptions.Length, 2), GUIResources.GetStyle("radio_text_button")); GUILayout.EndHorizontal(); if (GUILayout.Button("Add")) { Transform[] modelXforms = module.GetComponentsInChildren <Transform>(); if (modelXforms.ToList().FindAll(x => x.name == parentName).Any()) { module.AddEffect(CreateNewEffect()); WaterfallUI.Instance.RefreshEffectList(); showWindow = false; } } if (GUILayout.Button("Cancel")) { showWindow = false; } }
/// <summary> /// Draw the header area /// </summary> private void DrawHeaderArea() { GUILayout.BeginHorizontal(); modeFlag = GUILayout.SelectionGrid(modeFlag, modeStrings, 2, GUIResources.GetStyle("radio_text_button")); GUILayout.FlexibleSpace(); GUILayout.Label(windowTitle, GUIResources.GetStyle("window_header"), GUILayout.MaxHeight(26f), GUILayout.MinHeight(26f), GUILayout.MinWidth(350f)); GUILayout.FlexibleSpace(); Rect buttonRect = GUILayoutUtility.GetRect(22f, 22f); GUI.color = resources.GetColor("cancel_color"); if (GUI.Button(buttonRect, "", GUIResources.GetStyle("button_cancel"))) { ToggleWindow(); } GUI.DrawTextureWithTexCoords(buttonRect, GUIResources.GetIcon("cancel").iconAtlas, GUIResources.GetIcon("cancel").iconRect); GUI.color = Color.white; GUILayout.EndHorizontal(); }
void DrawAMContainer(AntimatterContainer tank) { GUILayout.BeginHorizontal(); GUILayout.Label("<b>" + tank.part.partInfo.title + "</b>", GUIResources.GetStyle("text_basic"), GUILayout.MaxWidth(180f)); GUILayout.BeginVertical(); tank.totalAmount = (double)GUILayout.HorizontalSlider((float)tank.totalAmount, 0f, (float)tank.resource.maxAmount, GUIResources.GetStyle("slider"), GUIResources.GetStyle("slider_thumb"), GUILayout.MinWidth(110f), GUILayout.MaxWidth(110f)); tank.requestedAmount = tank.totalAmount - tank.resource.amount; GUILayout.Label(String.Format("{0:F2} / {1:F2}", tank.totalAmount, tank.resource.maxAmount), GUIResources.GetStyle("text_label")); GUILayout.EndVertical(); if (tank.requestedAmount >= 0d) { GUILayout.Label(String.Format("+{0:F2}", tank.requestedAmount), GUIResources.GetStyle("text_label")); } else { GUILayout.Label(String.Format("{0:F2}", tank.requestedAmount), GUIResources.GetStyle("text_label")); } GUILayout.EndHorizontal(); AntimatterLoader.Instance.usedAM += tank.requestedAmount; }
protected void DrawPartsList() { GUILayout.BeginVertical(); GUILayout.Label("<b>FX MODULES ON VESSEL</b>"); partsScrollListPosition = GUILayout.BeginScrollView(partsScrollListPosition, GUILayout.Width(340f)); int selectedModuleChanges = GUILayout.SelectionGrid(selectedModuleIndex, modulesString, Mathf.Min(modulesString.Length, 2), GUIResources.GetStyle("radio_text_button")); if (selectedModuleChanges != selectedModuleIndex) { selectedModuleIndex = selectedModuleChanges; SelectFXModule(effectsModules[selectedModuleIndex]); } GUILayout.EndScrollView(); GUILayout.EndVertical(); }
protected void DrawLightEdit() { float headerWidth = 120f; bool delta = false; float sliderVal; string textVal; GUILayout.Label("<b>Light Parameters</b>"); GUILayout.BeginHorizontal(); GUILayout.Label("Light Color", GUILayout.Width(headerWidth)); GUILayout.Space(10); // Button to set that we are toggling the color picker if (GUILayout.Button("", GUILayout.Width(60))) { colorEdit = !colorEdit; Utils.Log($"[CP] Edit flag state {colorEdit}", LogType.UI); // if yes, open the window if (colorEdit) { WaterfallUI.Instance.OpenColorEditWindow(colorValue); Utils.Log("[CP] Open Window", LogType.UI); } } // If picker open if (colorEdit) { // Close all other pickers Color c = WaterfallUI.Instance.GetColorFromPicker(); if (!c.IsEqualTo(colorValue)) { colorValue = c; delta = true; } if (delta) { colorTexture = MaterialUtils.GenerateColorTexture(64, 32, colorValue); model.SetLightColor(light, colorValue); } } Rect tRect = GUILayoutUtility.GetLastRect(); tRect = new Rect(tRect.x + 3, tRect.y + 3, tRect.width - 6, tRect.height - 6); GUI.DrawTexture(tRect, colorTexture); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Light Type", GUILayout.Width(headerWidth)); int newFlag = GUILayout.SelectionGrid(typeFlag, typeOptions, 2, GUIResources.GetStyle("radio_text_button")); if (newFlag != typeFlag) { typeFlag = newFlag; if (typeFlag == 1) { model.SetLightType(light, LightType.Point); } if (typeFlag == 0) { model.SetLightType(light, LightType.Spot); } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Intensity", GUILayout.Width(headerWidth)); sliderVal = GUILayout.HorizontalSlider(intensityValue, 0f, 10f); if (sliderVal != intensityValue) { intensityValue = sliderVal; intensityString = sliderVal.ToString(); model.SetLightIntensity(light, intensityValue); } textVal = GUILayout.TextArea(intensityString, GUILayout.Width(90f)); if (textVal != intensityString) { float outVal; if (float.TryParse(textVal, out outVal)) { intensityValue = outVal; model.SetLightIntensity(light, intensityValue); } intensityString = textVal; } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Range", GUILayout.Width(headerWidth)); sliderVal = GUILayout.HorizontalSlider(rangeValue, 0f, 100f); if (sliderVal != rangeValue) { rangeValue = sliderVal; rangeString = sliderVal.ToString(); model.SetLightRange(light, rangeValue); } textVal = GUILayout.TextArea(rangeString, GUILayout.Width(90f)); if (textVal != rangeString) { float outVal; if (float.TryParse(textVal, out outVal)) { rangeValue = outVal; model.SetLightRange(light, rangeValue); } rangeString = textVal; } GUILayout.EndHorizontal(); if (typeFlag == 0) { GUILayout.BeginHorizontal(); GUILayout.Label("Spot Angle", GUILayout.Width(headerWidth)); sliderVal = GUILayout.HorizontalSlider(angleValue, 0f, 100f); if (sliderVal != angleValue) { angleValue = sliderVal; angleString = sliderVal.ToString(); model.SetLightAngle(light, angleValue); } textVal = GUILayout.TextArea(angleString, GUILayout.Width(90f)); if (textVal != angleString) { float outVal; if (float.TryParse(textVal, out outVal)) { angleValue = outVal; model.SetLightAngle(light, angleValue); } angleString = textVal; } GUILayout.EndHorizontal(); } }
protected void DrawAdd() { GUILayout.BeginHorizontal(); GUILayout.Label("Modifier name"); newModifierName = GUILayout.TextArea(newModifierName); GUILayout.EndHorizontal(); GUILayout.Label("Modifier type"); int modiferFlagChanged = GUILayout.SelectionGrid(modifierFlag, modifierTypes, Mathf.Min(modifierTypes.Length, 4), GUIResources.GetStyle("radio_text_button")); if (modiferFlagChanged != modifierFlag) { modifierFlag = modiferFlagChanged; if (modifierTypes[modifierFlag].Contains("Material")) { List <Renderer> xFormOptions = effect.GetModelTransforms()[0].GetComponentsInChildren <Renderer>().ToList(); transformOptions = new string[xFormOptions.Count]; for (int i = 0; i < xFormOptions.Count; i++) { transformOptions[i] = xFormOptions[i].gameObject.name; } } else { List <Transform> xFormOptions = effect.GetModelTransforms()[0].GetComponentsInChildren <Transform>().ToList(); transformOptions = new string[xFormOptions.Count]; for (int i = 0; i < xFormOptions.Count; i++) { transformOptions[i] = xFormOptions[i].name; } } } GUILayout.Label("Target transform name"); transformFlag = GUILayout.SelectionGrid(transformFlag, transformOptions, Mathf.Min(transformOptions.Length, 3), GUIResources.GetStyle("radio_text_button")); GUILayout.BeginHorizontal(); GUILayout.Label("Controller name"); controllerFlag = GUILayout.SelectionGrid(controllerFlag, controllerTypes, Mathf.Min(controllerTypes.Length, 4), GUIResources.GetStyle("radio_text_button")); GUILayout.EndHorizontal(); if (GUILayout.Button("Add")) { effect.AddModifier(CreateNewModifier()); showWindow = false; } if (GUILayout.Button("Cancel")) { showWindow = false; } }
protected void DrawControllers() { GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); useControllers = GUILayout.Toggle(useControllers, "Link to Editor", GUILayout.Width(150)); GUILayout.Label("<b>CONTROLLERS</b>"); // GUILayout.BeginHorizontal(); GUILayout.Label("Throttle", GUIResources.GetStyle("data_header"), GUILayout.MaxWidth(120f)); throttleControllerValue = GUILayout.HorizontalSlider(throttleControllerValue, 0f, 1f, GUILayout.MaxWidth(100f)); GUILayout.Label(throttleControllerValue.ToString("F2"), GUIResources.GetStyle("data_field"), GUILayout.MinWidth(40f)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Atmosphere Depth", GUIResources.GetStyle("data_header"), GUILayout.MaxWidth(120f)); densityControllerValue = GUILayout.HorizontalSlider(densityControllerValue, 0f, 1f, GUILayout.MaxWidth(100f)); GUILayout.Label(densityControllerValue.ToString("F2"), GUIResources.GetStyle("data_field"), GUILayout.MinWidth(40f)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Randomness Min/Max", GUIResources.GetStyle("data_header"), GUILayout.MaxWidth(160f)); string xValue = GUILayout.TextArea(randomControllerValue.x.ToString(), GUILayout.MaxWidth(60f)); string yValue = GUILayout.TextArea(randomControllerValue.y.ToString(), GUILayout.MaxWidth(60f)); float xParsed; float yParsed; Vector2 newRand = new Vector2(randomControllerValue.x, randomControllerValue.y); if (float.TryParse(xValue, out xParsed)) { if (xParsed != randomControllerValue.x) { newRand.x = xParsed; } } if (float.TryParse(yValue, out yParsed)) { if (yParsed != randomControllerValue.y) { newRand.y = yParsed; } } if (newRand.x != randomControllerValue.x || newRand.y != randomControllerValue.y) { randomControllerValue = new Vector2(xParsed, yParsed); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("RCS Throttle", GUIResources.GetStyle("data_header"), GUILayout.MaxWidth(120f)); rcsControllerValue = GUILayout.HorizontalSlider(rcsControllerValue, 0f, 1f, GUILayout.MaxWidth(100f)); GUILayout.Label(rcsControllerValue.ToString("F2"), GUIResources.GetStyle("data_field"), GUILayout.MinWidth(40f)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Smoke Control", GUIResources.GetStyle("data_header"), GUILayout.MaxWidth(120f)); if (GUILayout.Button("Open", GUILayout.MaxWidth(100f))) { if (selectedModule) { ModuleWaterfallSmoke smoke = selectedModule.part.GetComponent <ModuleWaterfallSmoke>(); if (smoke) { OpenSmokeEditor(smoke); } } } GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUILayout.EndHorizontal(); }
protected void DrawAdd() { GUILayout.BeginHorizontal(); GUILayout.Label("Effect Name", GUILayout.Width(120f)); newEffectName = GUILayout.TextArea(newEffectName); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Effect Parent", GUILayout.Width(120f)); parentName = GUILayout.TextArea(parentName); GUILayout.EndHorizontal(); GUILayout.Label("<b>SELECT WORKFLOW</b>", GUILayout.Width(120f)); int newFlag = GUILayout.SelectionGrid(workflowFlag, workflowOptions, Mathf.Min(workflowOptions.Length, 4), GUIResources.GetStyle("radio_text_button")); if (newFlag != workflowFlag) { workflowFlag = newFlag; List <string> modelOpts = new List <string>(); models = WaterfallAssets.GetModels((AssetWorkflow)Enum.Parse(typeof(AssetWorkflow), workflowOptions[workflowFlag])); foreach (WaterfallAsset w in models) { modelOpts.Add($"<b>{w.Name}</b>\n{w.Description}\n{w.Path}"); } modelOptions = modelOpts.ToArray(); List <string> shaderOpts = new List <string>(); shaders = WaterfallAssets.GetShaders((AssetWorkflow)Enum.Parse(typeof(AssetWorkflow), workflowOptions[workflowFlag])); foreach (WaterfallAsset w in shaders) { shaderOpts.Add($"<b>{w.Name}</b>\n{w.Description}"); } shaderOptions = shaderOpts.ToArray(); modelFlag = 0; shaderFlag = 0; } GUILayout.BeginVertical(GUI.skin.textArea); GUILayout.BeginHorizontal(); GUILayout.Label("<b>Model</b>", GUILayout.Width(120f)); modelFlag = GUILayout.SelectionGrid(modelFlag, modelOptions, Mathf.Min(modelOptions.Length, 2), GUIResources.GetStyle("radio_text_button")); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("<b>Shader</b>", GUILayout.Width(120f)); shaderFlag = GUILayout.SelectionGrid(shaderFlag, shaderOptions, Mathf.Min(shaderOptions.Length, 2), GUIResources.GetStyle("radio_text_button")); GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUILayout.BeginHorizontal(); randomizeSeed = GUILayout.Toggle(randomizeSeed, "Randomize Effect Seed"); GUILayout.EndHorizontal(); if (GUILayout.Button("Add")) { Transform[] modelXforms = module.GetComponentsInChildren <Transform>(); if (modelXforms.ToList().FindAll(x => x.name == parentName).Any()) { module.AddEffect(CreateNewEffect()); WaterfallUI.Instance.RefreshEffectList(); showWindow = false; } } if (GUILayout.Button("Cancel")) { showWindow = false; } }
void DrawTips() { GUI.skin = HighLogic.Skin; GUILayout.BeginHorizontal(); GUILayout.Label(String.Format("{0}", Localizer.Format("#LOC_FFT_AntimatterFactoryUI_LoadoutWindow_Title"))); GUILayout.EndHorizontal(); GUILayout.Label(Localizer.Format("#LOC_FFT_AntimatterFactoryUI_IntroWindow_Description"), GUIResources.GetStyle("text_basic")); if (GUILayout.Button(Localizer.Format("#LOC_FFT_AntimatterFactoryUI_IntroWindow_Dismiss"), GUIResources.GetStyle("button_basic"))) { showMainWindow = false; AntimatterFactory.Instance.FirstLoad = false; } }
void DrawLaunchMode() { GUI.skin = HighLogic.Skin; GUILayout.BeginHorizontal(); GUILayout.Label(String.Format("{0}", Localizer.Format("#LOC_FFT_AntimatterFactoryUI_LoadoutWindow_Title"))); GUILayout.EndHorizontal(); AntimatterLoader.Instance.availableAM = AntimatterFactory.Instance.Antimatter; AntimatterLoader.Instance.usedAM = 0d; // Fuelling helper buttons GUILayout.BeginVertical(GUIResources.GetStyle("block_background")); GUILayout.BeginHorizontal(); if (GUILayout.Button(Localizer.Format("#LOC_FFT_AntimatterFactoryUI_Loader_FillAllTanks"), GUIResources.GetStyle("button_mini"))) { AntimatterLoader.Instance.FillAllTanks(); } if (GUILayout.Button(Localizer.Format("#LOC_FFT_AntimatterFactoryUI_Loader_EmptyAllTanks"), GUIResources.GetStyle("button_mini"))) { AntimatterLoader.Instance.EmptyAllTanks(); } if (GUILayout.Button(Localizer.Format("#LOC_FFT_AntimatterFactoryUI_Loader_EvenAllTanks"), GUIResources.GetStyle("button_mini"))) { AntimatterLoader.Instance.EvenAllTanks(); } GUILayout.EndHorizontal(); GUILayout.EndVertical(); // Tank display GUILayout.BeginVertical(GUIResources.GetStyle("block_background")); scrollPosition = GUILayout.BeginScrollView(scrollPosition, GUIResources.GetStyle("scroll_bar"), GUIResources.GetStyle("scroll_bar"), GUILayout.MinWidth(370f), GUILayout.MinHeight(250f)); for (int i = 0; i < AntimatterLoader.Instance.antimatterTanks.Count; i++) { DrawAMContainer(AntimatterLoader.Instance.antimatterTanks[i]); } GUILayout.EndScrollView(); GUILayout.EndVertical(); // Results GUILayout.BeginHorizontal(GUIResources.GetStyle("block_background")); GUILayout.Label(Localizer.Format("#LOC_FFT_AntimatterFactoryUI_LoadoutWindow_AvailableAM", availableAM.ToString("F2")), GUIResources.GetStyle("text_basic")); GUILayout.FlexibleSpace(); GUILayout.BeginVertical(); if (AntimatterLoader.Instance.usedAM < 0d) { GUILayout.Label(Localizer.Format("#LOC_FFT_AntimatterFactoryUI_LoadoutWindow_LoadingResult_Refund", (-AntimatterLoader.Instance.usedAM).ToString("F2")), GUIResources.GetStyle("text_label")); } else if (AntimatterLoader.Instance.usedAM > AntimatterLoader.Instance.availableAM) { GUILayout.Label(Localizer.Format("#LOC_FFT_AntimatterFactoryUI_LoadoutWindow_LoadingResult_NotEnough", AntimatterLoader.Instance.usedAM.ToString("F2")), GUIResources.GetStyle("text_label")); } else { GUILayout.Label(Localizer.Format("#LOC_FFT_AntimatterFactoryUI_LoadoutWindow_LoadingResult_Ready", AntimatterLoader.Instance.usedAM.ToString("F2")), GUIResources.GetStyle("text_label")); } GUILayout.EndVertical(); GUILayout.EndHorizontal(); // Actions GUILayout.BeginHorizontal(); if (GUILayout.Button("Close", GUIResources.GetStyle("button_basic"), GUILayout.Width(60f))) { showMainWindow = false; } GUILayout.FlexibleSpace(); // If antimatter used is negative, we will be unloading // If positive but greater than capacity, we cannot do anything // else just consume if (AntimatterLoader.Instance.usedAM < 0d) { GUI.enabled = true; if (GUILayout.Button(Localizer.Format("#LOC_FFT_AntimatterFactoryUI_LoadoutWindow_LoadButton_Refund"), GUIResources.GetStyle("button_basic"), GUILayout.Width(180f))) { AntimatterLoader.Instance.ConsumeAntimatter(); } } else if (AntimatterLoader.Instance.usedAM > AntimatterLoader.Instance.availableAM) { GUI.enabled = false; GUILayout.Button(Localizer.Format("#LOC_FFT_AntimatterFactoryUI_LoadoutWindow_LoadButton_NotEnough"), GUIResources.GetStyle("button_basic"), GUILayout.Width(180f)); } else { GUI.enabled = true; if (GUILayout.Button(Localizer.Format("#LOC_FFT_AntimatterFactoryUI_LoadoutWindow_LoadButton_Ready"), GUIResources.GetStyle("button_basic"), GUILayout.Width(180f))) { AntimatterLoader.Instance.ConsumeAntimatter(); } } GUI.enabled = true; GUILayout.EndHorizontal(); }
void DrawFactoryMode() { GUILayout.BeginHorizontal(); GUILayout.Label(String.Format("{0}", Localizer.Format("#LOC_FFT_AntimatterFactoryUI_LoadoutWindow_Title"))); GUILayout.EndHorizontal(); GUILayout.BeginVertical(); GUILayout.BeginHorizontal(GUIResources.GetStyle("block_background")); GUILayout.Label(Localizer.Format("#LOC_FFT_AntimatterFactoryUI_FactoryWindow_Description"), GUIResources.GetStyle("text_basic")); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); GUILayout.Label(Localizer.Format("#LOC_FFT_AntimatterFactoryUI_FactoryWindow_Level", AntimatterFactory.Instance.FactoryLevel + 1), GUIResources.GetStyle("text_basic")); GUILayout.Label(Localizer.Format("#LOC_FFT_AntimatterFactoryUI_FactoryWindow_Status", AntimatterFactory.Instance.GetStatusString()), GUIResources.GetStyle("text_basic")); GUILayout.EndVertical(); if (!AntimatterFactory.Instance.IsMaxLevel()) { if (GUILayout.Button(Localizer.Format("#LOC_FFT_AntimatterFactoryUI_FactoryWindow_Upgrade", FormatPrice(AntimatterFactory.Instance.GetNextLevelCost())), GUIResources.GetStyle("button_basic"))) { TryUpgradeFactory(AntimatterFactory.Instance.GetNextLevelCost()); } } else { GUILayout.Space(100f); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(GUIResources.GetStyle("block_background")); float curAM = (float)(AntimatterFactory.Instance.Antimatter); float maxAM = (float)(AntimatterFactory.Instance.AntimatterMax); float rateAM = (float)(AntimatterFactory.Instance.AntimatterRate); Rect barAreaRect = GUILayoutUtility.GetRect(280, 68f); Vector2 barBackgroundSize = new Vector2(260, 20f); Vector2 barForegroundSize = new Vector2(Mathf.Max(barBackgroundSize.x * (curAM / maxAM), 8f), 18f); Rect barBackgroundRect = new Rect(10f, 10f, barBackgroundSize.x, barBackgroundSize.y); Rect barForeroundRect = new Rect(10f, 11f, barForegroundSize.x, barForegroundSize.y); Rect storageTextRect = new Rect(barBackgroundSize.x - 80f, 33f, 80f, 40f); Rect rateTextRect = new Rect(0f, 29f, 80f, 20f); GUI.BeginGroup(barAreaRect); GUI.Box(barBackgroundRect, "", GUIResources.GetStyle("bar_background")); GUI.color = GUIResources.GetColor("bar_blue"); GUI.Box(barForeroundRect, "", GUIResources.GetStyle("bar_foreground")); GUI.color = Color.white; GUI.Label(storageTextRect, Localizer.Format("#LOC_FFT_AntimatterFactoryUI_FactoryWindow_Storage", curAM.ToString("F2"), maxAM.ToString("F2")), GUIResources.GetStyle("text_label")); GUI.Label(rateTextRect, Localizer.Format("#LOC_FFT_AntimatterFactoryUI_FactoryWindow_Rate", rateAM.ToString("F2")), GUIResources.GetStyle("text_label")); GUI.EndGroup(); GUILayout.EndHorizontal(); if (GUILayout.Button("Close", GUIResources.GetStyle("button_basic"), GUILayout.Width(60f))) { showMainWindow = false; } GUILayout.EndVertical(); }
protected void DrawModify() { GUILayout.BeginHorizontal(); GUILayout.Label("Controller name"); newControllerName = GUILayout.TextArea(newControllerName); GUILayout.EndHorizontal(); GUILayout.Label("Controller type"); int controllerFlagChanged = GUILayout.SelectionGrid(controllerFlag, controllerTypes, Mathf.Min(controllerTypes.Length, 4), GUIResources.GetStyle("radio_text_button")); if (controllerFlagChanged != controllerFlag) { controllerFlag = controllerFlagChanged; } DrawControllerOptions(); if (GUILayout.Button("Apply")) { fxMod.RemoveController(control); fxMod.AddController(CreateNewController()); showWindow = false; } if (GUILayout.Button("Cancel")) { showWindow = false; } }
public void DrawControllerOptions() { if (controllerTypes[controllerFlag] == "atmosphere_density") { // no special config } else if (controllerTypes[controllerFlag] == "custom") { // no special config } else if (controllerTypes[controllerFlag] == "engineEvent") { GUILayout.Label("Event name"); int eventFlagChanged = GUILayout.SelectionGrid(eventFlag, eventTypes, Mathf.Min(eventTypes.Length, 4), GUIResources.GetStyle("radio_text_button")); if (eventFlagChanged != eventFlag) { eventFlag = eventFlagChanged; } Rect buttonRect = GUILayoutUtility.GetRect(curveButtonDims.x, curveButtonDims.y); Rect imageRect = new Rect(buttonRect.xMin + 10f, buttonRect.yMin + 10, buttonRect.width - 20, buttonRect.height - 20); if (GUI.Button(buttonRect, "")) { EditCurve(eventCurve, eventFun); } GUI.DrawTexture(imageRect, miniCurve); GUILayout.BeginHorizontal(); GUILayout.Label("Event duration", GUIResources.GetStyle("data_header"), GUILayout.MaxWidth(160f)); eventDurationString = GUILayout.TextArea(eventDurationString, GUILayout.MaxWidth(60f)); float floatParsed; if (float.TryParse(eventDurationString, out floatParsed)) { if (eventDuration != floatParsed) { eventDuration = floatParsed; } } GUILayout.EndHorizontal(); } else if (controllerTypes[controllerFlag] == "gimbal") { GUILayout.Label("Gimbal axis"); int axisFlagChanged = GUILayout.SelectionGrid(axisFlag, axisTypes, Mathf.Min(axisTypes.Length, 4), GUIResources.GetStyle("radio_text_button")); if (axisFlagChanged != axisFlag) { axisFlag = axisFlagChanged; } } else if (controllerTypes[controllerFlag] == "light") { } else if (controllerTypes[controllerFlag] == "mach") { // no special config } else if (controllerTypes[controllerFlag] == "random") { GUILayout.Label("Random type"); int randFlagChanged = GUILayout.SelectionGrid(randFlag, randTypes, Mathf.Min(randTypes.Length, 4), GUIResources.GetStyle("radio_text_button")); if (randFlagChanged != randFlag) { randFlag = randFlagChanged; } if (randTypes[randFlag] == "random") { GUILayout.BeginHorizontal(); GUILayout.Label("Min/Max", GUIResources.GetStyle("data_header"), GUILayout.MaxWidth(160f)); randomStrings[0] = GUILayout.TextArea(randomStrings[0], GUILayout.MaxWidth(60f)); randomStrings[1] = GUILayout.TextArea(randomStrings[1], GUILayout.MaxWidth(60f)); float xParsed; float yParsed; Vector2 newRand = new Vector2(randomRange.x, randomRange.y); if (float.TryParse(randomStrings[0], out xParsed)) { if (xParsed != randomRange.x) { newRand.x = xParsed; } } if (float.TryParse(randomStrings[1], out yParsed)) { if (yParsed != randomRange.y) { newRand.y = yParsed; } } if (newRand.x != randomRange.x || newRand.y != randomRange.y) { randomRange = new Vector2(xParsed, yParsed); } GUILayout.EndHorizontal(); } if (randTypes[randFlag] == "perlin") { GUILayout.BeginHorizontal(); GUILayout.Label("Seed", GUIResources.GetStyle("data_header"), GUILayout.MaxWidth(160f)); randomStrings[0] = GUILayout.TextArea(randomStrings[0], GUILayout.MaxWidth(60f)); int intParsed; if (int.TryParse(randomStrings[0], out intParsed)) { if (perlinSeed != intParsed) { perlinSeed = intParsed; } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Minimum", GUIResources.GetStyle("data_header"), GUILayout.MaxWidth(160f)); randomStrings[3] = GUILayout.TextArea(randomStrings[3], GUILayout.MaxWidth(60f)); float floatParsed; if (float.TryParse(randomStrings[3], out floatParsed)) { if (perlinMin != floatParsed) { perlinMin = floatParsed; } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Maximum", GUIResources.GetStyle("data_header"), GUILayout.MaxWidth(160f)); randomStrings[1] = GUILayout.TextArea(randomStrings[1], GUILayout.MaxWidth(60f)); if (float.TryParse(randomStrings[1], out floatParsed)) { if (perlinScale != floatParsed) { perlinScale = floatParsed; } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Speed", GUIResources.GetStyle("data_header"), GUILayout.MaxWidth(160f)); randomStrings[2] = GUILayout.TextArea(randomStrings[2], GUILayout.MaxWidth(60f)); if (float.TryParse(randomStrings[2], out floatParsed)) { if (perlinSpeed != floatParsed) { perlinSpeed = floatParsed; } } GUILayout.EndHorizontal(); } } else if (controllerTypes[controllerFlag] == "rcs") { GUILayout.BeginHorizontal(); GUILayout.Label("Ramp Rate Up", GUIResources.GetStyle("data_header"), GUILayout.MaxWidth(160f)); throttleStrings[0] = GUILayout.TextArea(throttleStrings[0], GUILayout.MaxWidth(60f)); float floatParsed; if (float.TryParse(throttleStrings[0], out floatParsed)) { if (rampRateUp != floatParsed) { rampRateUp = floatParsed; } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Ramp Rate Down", GUIResources.GetStyle("data_header"), GUILayout.MaxWidth(160f)); throttleStrings[1] = GUILayout.TextArea(throttleStrings[1], GUILayout.MaxWidth(60f)); if (float.TryParse(throttleStrings[1], out floatParsed)) { if (rampRateDown != floatParsed) { rampRateDown = floatParsed; } } GUILayout.EndHorizontal(); } else if (controllerTypes[controllerFlag] == "throttle") { GUILayout.BeginHorizontal(); GUILayout.Label("Ramp Rate Up", GUIResources.GetStyle("data_header"), GUILayout.MaxWidth(160f)); throttleStrings[0] = GUILayout.TextArea(throttleStrings[0], GUILayout.MaxWidth(60f)); float floatParsed; if (float.TryParse(throttleStrings[0], out floatParsed)) { if (rampRateUp != floatParsed) { rampRateUp = floatParsed; } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Ramp Rate Down", GUIResources.GetStyle("data_header"), GUILayout.MaxWidth(160f)); throttleStrings[1] = GUILayout.TextArea(throttleStrings[1], GUILayout.MaxWidth(60f)); if (float.TryParse(throttleStrings[1], out floatParsed)) { if (rampRateDown != floatParsed) { rampRateDown = floatParsed; } } GUILayout.EndHorizontal(); } else if (controllerTypes[controllerFlag] == "thrust") { // no special config } }
void OnUIDraw() { if (showWindow) { windowPos = GUI.Window(windowIdentifier, windowPos, DrawPlottingWindow, "", GUIResources.GetStyle("window_toolbar")); } }
protected void DrawTemplateControl() { GUILayout.BeginVertical(); if (selectedModule.Templates != null && selectedModule.Templates.Count > 0) { GUILayout.Label("<b>TEMPLATES</b>"); GUILayout.BeginVertical(GUI.skin.textArea); GUILayout.BeginHorizontal(); int selectedTemplateChanges = GUILayout.SelectionGrid(selectedTemplateIndex, templatesString, 4, GUIResources.GetStyle("radio_text_button")); if (selectedTemplateChanges != selectedTemplateIndex) { selectedTemplateIndex = selectedTemplateChanges; SelectTemplate(selectedModule.Templates[selectedTemplateIndex]); } if (GUILayout.Button("Copy offsets", GUILayout.Width(160f), GUILayout.Height(40))) { string copiedString = ""; copiedString += $"position = {selectedTemplate.position.x},{selectedTemplate.position.y},{selectedTemplate.position.z}\n"; copiedString += $"rotation = {selectedTemplate.rotation.x}, {selectedTemplate.rotation.y}, {selectedTemplate.rotation.z}\n"; copiedString += $"scale = {selectedTemplate.scale.x}, {selectedTemplate.scale.y}, {selectedTemplate.scale.z}"; GUIUtility.systemCopyBuffer = copiedString; } GUILayout.EndHorizontal(); GUILayout.Label(selectedModule.Templates[selectedTemplateIndex].templateName); GUILayout.BeginHorizontal(); GUILayout.Label("Offset"); modelOffset = UIUtils.Vector3InputField(GUILayoutUtility.GetRect(200f, 30f), modelOffset, modelOffsetString, GUI.skin.label, GUI.skin.textArea); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Rotation "); modelRotation = UIUtils.Vector3InputField(GUILayoutUtility.GetRect(200f, 30f), modelRotation, modelRotationString, GUI.skin.label, GUI.skin.textArea); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Scale"); modelScale = UIUtils.Vector3InputField(GUILayoutUtility.GetRect(200f, 30f), modelScale, modelScaleString, GUI.skin.label, GUI.skin.textArea); GUILayout.EndHorizontal(); GUILayout.EndVertical(); } GUILayout.EndVertical(); }
/// <summary> /// Draws the common header area /// </summary> protected virtual void DrawHeader() { GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); GUILayout.Label($"Transform Target {modifier.transformName}"); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Modifier Name"); modifier.fxName = GUILayout.TextArea(modifier.fxName); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Controller"); controllerFlag = GUILayout.SelectionGrid(controllerFlag, controllerNames, controllerNames.Length, GUIResources.GetStyle("radio_text_button")); modifier.controllerName = controllerNames[controllerFlag]; GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Combine Mode"); combineModeFlag = GUILayout.SelectionGrid(combineModeFlag, combineModes, combineModes.Length, GUIResources.GetStyle("radio_text_button")); modifier.effectMode = (EffectModifierMode)combineModeFlag; GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); modifier.useRandomness = GUILayout.Toggle(modifier.useRandomness, "Use Randomness"); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (modifier.useRandomness) { GUILayout.Label("Controller"); modifier.randomnessController = GUILayout.TextArea(modifier.randomnessController); GUILayout.Label("Scale"); randomText = GUILayout.TextArea(randomText); if (float.TryParse(randomText, out modifier.randomScale)) { } } GUILayout.EndHorizontal(); GUILayout.EndVertical(); }