public static string ToFriendlyString(RenderFeedback type) { switch (type) { case RenderFeedback.None: return("None"); case RenderFeedback.Message: return("Message"); case RenderFeedback.Window: return("Window"); } return("Message"); }
public void DoWindowContents(Rect settingsRect) { if (DoMigrations) { if (!migratedOutputImageSettings) { //Yes, I know for the people who used to use 1080 as scaling and have upgraded this will turn off scaling for them. //Unfortunately I don't think there's a better way to handle this. scaleOutputImage = outputImageFixedHeight > 0 && outputImageFixedHeight != DefaultOutputImageFixedHeight; if (!scaleOutputImage) { outputImageFixedHeight = DefaultOutputImageFixedHeight; } migratedOutputImageSettings = true; Log.Warning("Migrated output image settings"); } if (!migratedInterval) { whichInterval = RenderIntervalHelper.Intervals.IndexOf(interval); if (whichInterval < 0) { whichInterval = RenderIntervalHelper.Intervals.IndexOf(DefaultInterval); } migratedInterval = true; Log.Warning("Migrated interval settings"); } } Listing_Standard ls = new Listing_Standard(); var leftHalf = new Rect(settingsRect.x, settingsRect.y, settingsRect.width / 2 - 12f, settingsRect.height); var rightHalf = new Rect(settingsRect.x + settingsRect.width / 2 + 12f, settingsRect.y, settingsRect.width / 2 - 12f, settingsRect.height); ls.Begin(leftHalf); // Left half (general settings) ls.CheckboxLabeled("LPR_SettingsEnabledLabel".Translate(), ref enabled, "LPR_SettingsEnabledDescription".Translate()); TextAnchor backupAnchor = Text.Anchor; Text.Anchor = TextAnchor.MiddleLeft; if (ls.ButtonTextLabeled("LPR_SettingsRenderFeedbackLabel".Translate(), ("LPR_RenderFeedback_" + renderFeedback).Translate())) { List <FloatMenuOption> menuEntries = new List <FloatMenuOption>(); var feedbackTypes = (RenderFeedback[])Enum.GetValues(typeof(RenderFeedback)); foreach (var type in feedbackTypes) { menuEntries.Add(new FloatMenuOption(("LPR_RenderFeedback_" + EnumUtils.ToFriendlyString(type)).Translate(), delegate { renderFeedback = type; })); } Find.WindowStack.Add(new FloatMenu(menuEntries)); } Text.Anchor = backupAnchor; ls.Gap(); ls.Label("LPR_SettingsRenderSettingsLabel".Translate(), -1, "LPR_SettingsRenderSettingsDescription".Translate()); ls.GapLine(); ls.CheckboxLabeled("LPR_SettingsRenderDesignationsLabel".Translate(), ref renderDesignations, "LPR_SettingsRenderDesignationsDescription".Translate()); ls.CheckboxLabeled("LPR_SettingsRenderThingIconsLabel".Translate(), ref renderThingIcons, "LPR_SettingsRenderThingIconsDescription".Translate()); ls.CheckboxLabeled("LPR_SettingsRenderGameConditionsLabel".Translate(), ref renderGameConditions, "LPR_SettingsRenderGameConditionsDescription".Translate()); ls.CheckboxLabeled("LPR_SettingsRenderWeatherLabel".Translate(), ref renderWeather, "LPR_SettingsRenderWeatherDescription".Translate()); ls.GapLine(); ls.Gap(); ls.Label("LPR_SettingsSmoothRenderAreaStepsLabel".Translate() + smoothRenderAreaSteps.ToString(": #0"), -1, "LPR_SettingsSmoothRenderAreaStepsDescription".Translate()); smoothRenderAreaSteps = (int)ls.Slider(smoothRenderAreaSteps, 0, 30); ls.Label($"{"LPR_SettingsIntervalLabel".Translate()} {RenderIntervalHelper.GetLabel(interval)}", -1, "LPR_SettingsIntervalDescription".Translate()); whichInterval = (int)ls.Slider(whichInterval, 0, RenderIntervalHelper.Intervals.Count - 1); ls.Label("LPR_SettingsTimeOfDayLabel".Translate() + timeOfDay.ToString(" 00H"), -1, "LPR_SettingsTimeOfDayDescription".Translate()); timeOfDay = (int)ls.Slider(timeOfDay, 0, 23); ls.End(); // Right half (file settings) ls.Begin(rightHalf); backupAnchor = Text.Anchor; Text.Anchor = TextAnchor.MiddleLeft; if (ls.ButtonTextLabeled("LPR_SettingsEncodingLabel".Translate(), ("LPR_ImgEncoding_" + EnumUtils.ToFriendlyString(encoding)).Translate())) { List <FloatMenuOption> menuEntries = new List <FloatMenuOption>(); var encodingTypes = (EncodingType[])Enum.GetValues(typeof(EncodingType)); foreach (var encodingType in encodingTypes) { menuEntries.Add(new FloatMenuOption(("LPR_ImgEncoding_" + EnumUtils.ToFriendlyString(encodingType)).Translate(), delegate { encoding = encodingType; })); } Find.WindowStack.Add(new FloatMenu(menuEntries)); } Text.Anchor = backupAnchor; if (encoding == EncodingType.UnityJPG) { ls.Label("LPR_JPGQualityLabel".Translate() + jpgQuality.ToString(": ##0"), -1, "LPR_JPGQualityDescription".Translate()); jpgQuality = (int)ls.Slider(jpgQuality, 1, 100); } ls.Label("LPR_SettingsPixelPerCellLabel".Translate() + pixelPerCell.ToString(": ##0 pcc"), -1, "LPR_SettingsPixelPerCellDescription".Translate()); pixelPerCell = (int)ls.Slider(pixelPerCell, 1, 64); ls.Gap(); ls.CheckboxLabeled("LPR_SettingsScaleOutputImageLabel".Translate(), ref scaleOutputImage, "LPR_SettingsScaleOutputImageDescription".Translate()); if (scaleOutputImage) { ls.Label("LPR_SettingsOutputImageFixedHeightLabel".Translate()); ls.TextFieldNumeric(ref outputImageFixedHeight, ref outputImageFixedHeightBuffer, 1); ls.Gap(); } ls.GapLine(); if (scaleOutputImage) { ls.Gap(); // All about that visual balance } ls.Label("LPR_SettingsExportPathLabel".Translate(), -1, "LPR_SettingsExportPathDescription".Translate()); exportPath = ls.TextEntry(exportPath); ls.Gap(); ls.CheckboxLabeled("LPR_SettingsCreateSubdirsLabel".Translate(), ref createSubdirs, "LPR_SettingsCreateSubdirsDescription".Translate()); backupAnchor = Text.Anchor; Text.Anchor = TextAnchor.MiddleLeft; if (ls.ButtonTextLabeled("LPR_SettingsFileNamePatternLabel".Translate(), ("LPR_FileNamePattern_" + fileNamePattern).Translate())) { List <FloatMenuOption> menuEntries = new List <FloatMenuOption>(); var patterns = (FileNamePattern[])Enum.GetValues(typeof(FileNamePattern)); foreach (var pattern in patterns) { menuEntries.Add(new FloatMenuOption(("LPR_FileNamePattern_" + EnumUtils.ToFriendlyString(pattern)).Translate(), delegate { fileNamePattern = pattern; })); } Find.WindowStack.Add(new FloatMenu(menuEntries)); } Text.Anchor = backupAnchor; ls.End(); }
public void DoWindowContents(Rect rect) { Listing_Standard ls = new Listing_Standard(); ls.Begin(rect); ls.Gap(GapHeight); ls.CheckboxLabeled("LPR_SettingsEnabledLabel".Translate(), ref enabled, "LPR_SettingsEnabledDescription".Translate()); ls.Gap(GapHeight); // Backup original values TextAnchor backupAnchor = Text.Anchor; Text.Anchor = TextAnchor.MiddleLeft; if (ls.ButtonTextLabeled("LPR_SettingsRenderFeedbackLabel".Translate(), ("LPR_RenderFeedback_" + renderFeedback).Translate())) { List <FloatMenuOption> menuEntries = new List <FloatMenuOption>(); menuEntries.Add(new FloatMenuOption(("LPR_RenderFeedback_" + RenderFeedback.None).Translate(), delegate { renderFeedback = RenderFeedback.None; })); menuEntries.Add(new FloatMenuOption(("LPR_RenderFeedback_" + RenderFeedback.Message).Translate(), delegate { renderFeedback = RenderFeedback.Message; })); menuEntries.Add(new FloatMenuOption(("LPR_RenderFeedback_" + RenderFeedback.Window).Translate(), delegate { renderFeedback = RenderFeedback.Window; })); Find.WindowStack.Add(new FloatMenu(menuEntries)); } // Restore original values Text.Anchor = backupAnchor; ls.GapGapLine(GapHeight); ls.CheckboxGroupLabeled("LPR_SettingsRenderSettingsLabel".Translate(), "LPR_SettingsRenderSettingsDescription".Translate(), "LPR_SettingsRenderDesignationsLabel".Translate(), ref renderDesignations, "LPR_SettingsRenderDesignationsDescription".Translate(), "LPR_SettingsRenderThingIconsLabel".Translate(), ref renderThingIcons, "LPR_SettingsRenderThingIconsDescription".Translate()); ls.CheckboxGroupLabeled(null, "LPR_SettingsRenderSettingsDescription".Translate(), "LPR_SettingsRenderGameConditionsLabel".Translate(), ref renderGameConditions, "LPR_SettingsRenderGameConditionsDescription".Translate(), "LPR_SettingsRenderWeatherLabel".Translate(), ref renderWeather, "LPR_SettingsRenderWeatherDescription".Translate()); ls.Gap(GapHeight); ls.SliderLabeled("LPR_SettingsSmoothRenderAreaStepsLabel".Translate(), ref smoothRenderAreaSteps, 0, 30, null, "LPR_SettingsSmoothRenderAreaStepsDescription".Translate()); ls.GapGapLine(GapHeight); ls.FixedFrequencySliderLabeled("LPR_SettingsIntervalLabel".Translate(), ref interval, "LPR_SettingsIntervalDescription".Translate()); ls.Gap(GapHeight); ls.SliderLabeled("LPR_SettingsTimeOfDayLabel".Translate(), ref timeOfDay, 0, 23, "00 h", "LPR_SettingsTimeOfDayDescription".Translate()); ls.GapGapLine(GapHeight); // Backup original values backupAnchor = Text.Anchor; Text.Anchor = TextAnchor.MiddleLeft; if (ls.ButtonTextLabeled("LPR_SettingsEncodingLabel".Translate(), ("LPR_ImgEncoding_" + encoding).Translate())) { List <FloatMenuOption> menuEntries = new List <FloatMenuOption>(); menuEntries.Add(new FloatMenuOption(("LPR_ImgEncoding_" + SupportedEncodings[0]).Translate(), delegate { encoding = SupportedEncodings[0]; })); menuEntries.Add(new FloatMenuOption(("LPR_ImgEncoding_" + SupportedEncodings[1]).Translate(), delegate { encoding = SupportedEncodings[1]; })); menuEntries.Add(new FloatMenuOption(("LPR_ImgEncoding_" + SupportedEncodings[2]).Translate(), delegate { encoding = SupportedEncodings[2]; })); Find.WindowStack.Add(new FloatMenu(menuEntries)); } // Restore original values Text.Anchor = backupAnchor; ls.Gap(GapHeight); ls.SliderLabeled("LPR_SettingsPixelPerCellLabel".Translate(), ref pixelPerCell, 1, 64, "##0 ppc", "LPR_SettingsPixelPerCellDescription".Translate()); ls.Gap(GapHeight); ls.IntegerFieldLabeled("LPR_SettingsOutputImageFixedHeightLabel".Translate(), ref outputImageFixedHeight, ref outputImageFixedHeightBuffer, "LPR_SettingsOutputImageFixedHeightAdditionalInfo".Translate(), "LPR_SettingsOutputImageFixedHeightDescription".Translate()); ls.Gap(GapHeight); ls.TextFieldLabeled("LPR_SettingsExportPathLabel".Translate(), ref exportPath, "LPR_SettingsExportPathDescription".Translate()); ls.Gap(GapHeight); ls.CheckboxLabeled("LPR_SettingsCreateSubdirsLabel".Translate(), ref createSubdirs, "LPR_SettingsCreateSubdirsDescription".Translate()); ls.Gap(GapHeight); // Backup original values backupAnchor = Text.Anchor; Text.Anchor = TextAnchor.MiddleLeft; if (ls.ButtonTextLabeled("LPR_SettingsFileNamePatternLabel".Translate(), ("LPR_FileNamePattern_" + fileNamePattern).Translate())) { List <FloatMenuOption> menuEntries = new List <FloatMenuOption>(); menuEntries.Add(new FloatMenuOption(("LPR_FileNamePattern_" + FileNamePattern.DateTime).Translate(), delegate { fileNamePattern = FileNamePattern.DateTime; })); menuEntries.Add(new FloatMenuOption(("LPR_FileNamePattern_" + FileNamePattern.Numbered).Translate(), delegate { fileNamePattern = FileNamePattern.Numbered; })); menuEntries.Add(new FloatMenuOption(("LPR_FileNamePattern_" + FileNamePattern.BothTmpCopy).Translate(), delegate { fileNamePattern = FileNamePattern.BothTmpCopy; })); Find.WindowStack.Add(new FloatMenu(menuEntries)); } // Restore original values Text.Anchor = backupAnchor; ls.End(); }