private void DrawExtras(Rect rect) { Widgets.DrawMenuSection(rect); Listing_Standard listing = new Listing_Standard(rect.ContractedBy(5f)); listing.DoLabelCheckbox("ExplodeOnDeath".Translate(), ref _bp.ExplodeOnDeath); if (_bp.ExplodeOnDeath) { listing.DoLabel("ExplosionRadius".Translate(_bp.ExplosionRadius.ToString("0.0"))); _bp.ExplosionRadius = listing.DoSlider(_bp.ExplosionRadius, 0.9f, 3.9f); } listing.DoLabel("StartingSkill".Translate(_bp.StartingSkillLevel)); _bp.StartingSkillLevel = (int)listing.DoSlider(_bp.StartingSkillLevel, 1, 20); if (listing.DoTextButtonLabeled("SkillPassion".Translate(), _bp.SkillPassion.ToString())) { List <FloatMenuOption> list = new List <FloatMenuOption>(); foreach (Passion p in Enum.GetValues(typeof(Passion))) { if (p != _bp.SkillPassion) { FloatMenuOption option = new FloatMenuOption(p.ToString(), () => _bp.SkillPassion = p); list.Add(option); } } Find.LayerStack.Add(new Layer_FloatMenu(list)); } listing.End(); }
protected void fillPageLimits(Listing_Standard listing) { DoHeading(listing, "PSI.Settings.Sensitivity.Header"); if (listing.DoTextButton(Translator.Translate("PSI.Settings.LoadPresetButton"))) { string[] presetList = { }; String path2 = GenFilePaths.CoreModsFolderPath + "/Pawn State Icons/Presets/Sensitivity/"; if (Directory.Exists(path2)) { presetList = Directory.GetFiles(path2, "*.cfg"); } List <FloatMenuOption> options = new List <FloatMenuOption>(); foreach (string setname in presetList) { options.Add(new FloatMenuOption(Path.GetFileNameWithoutExtension(setname), () => { try { ModSettings settings = XmlLoader.ItemFromXmlFile <ModSettings>(setname, true); PSI.settings.limit_bleedMult = settings.limit_bleedMult; PSI.settings.limit_diseaseLess = settings.limit_diseaseLess; PSI.settings.limit_EfficiencyLess = settings.limit_EfficiencyLess; PSI.settings.limit_FoodLess = settings.limit_FoodLess; PSI.settings.limit_MoodLess = settings.limit_MoodLess; PSI.settings.limit_RestLess = settings.limit_RestLess; PSI.settings.limit_apparelHealthLess = settings.limit_apparelHealthLess; PSI.settings.limit_tempComfortOffset = settings.limit_tempComfortOffset; } catch (IOException) { Log.Error(Translator.Translate("PSI.Settings.LoadPreset.UnableToLoad") + setname); } })); } Find.LayerStack.Add((Layer) new Layer_FloatMenu(options, false)); } listing.DoGap(); listing.DoLabel(Translator.Translate("PSI.Settings.Sensitivity.Bleeding") + Translator.Translate("PSI.Settings.Sensitivity.Bleeding." + Math.Round(PSI.settings.limit_bleedMult - 0.25))); PSI.settings.limit_bleedMult = listing.DoSlider(PSI.settings.limit_bleedMult, 0.5f, 5.0f); listing.DoLabel(Translator.Translate("PSI.Settings.Sensitivity.Injured") + ((int)(PSI.settings.limit_EfficiencyLess * 100)) + "%"); PSI.settings.limit_EfficiencyLess = listing.DoSlider(PSI.settings.limit_EfficiencyLess, 0.01f, 0.99f); listing.DoLabel(Translator.Translate("PSI.Settings.Sensitivity.Food") + ((int)(PSI.settings.limit_FoodLess * 100)) + "%"); PSI.settings.limit_FoodLess = listing.DoSlider(PSI.settings.limit_FoodLess, 0.01f, 0.99f); listing.DoLabel(Translator.Translate("PSI.Settings.Sensitivity.Mood") + ((int)(PSI.settings.limit_MoodLess * 100)) + "%"); PSI.settings.limit_MoodLess = listing.DoSlider(PSI.settings.limit_MoodLess, 0.01f, 0.99f); listing.DoLabel(Translator.Translate("PSI.Settings.Sensitivity.Rest") + ((int)(PSI.settings.limit_RestLess * 100)) + "%"); PSI.settings.limit_RestLess = listing.DoSlider(PSI.settings.limit_RestLess, 0.01f, 0.99f); listing.DoLabel(Translator.Translate("PSI.Settings.Sensitivity.ApparelHealth") + ((int)(PSI.settings.limit_apparelHealthLess * 100)) + "%"); PSI.settings.limit_apparelHealthLess = listing.DoSlider(PSI.settings.limit_apparelHealthLess, 0.01f, 0.99f); listing.DoLabel(Translator.Translate("PSI.Settings.Sensitivity.Temperature") + ((int)(PSI.settings.limit_tempComfortOffset)) + "C"); PSI.settings.limit_tempComfortOffset = listing.DoSlider(PSI.settings.limit_tempComfortOffset, -10f, 10f); if (listing.DoTextButton(Translator.Translate("PSI.Settings.ReturnButton"))) { page = "main"; } }
protected void fillPageArrangement(Listing_Standard listing) { DoHeading(listing, "PSI.Settings.Arrangement.Header"); if (listing.DoTextButton(Translator.Translate("PSI.Settings.LoadPresetButton"))) { string[] presetList = { }; String path2 = GenFilePaths.CoreModsFolderPath + "/Pawn State Icons/Presets/Position/"; if (Directory.Exists(path2)) { presetList = Directory.GetFiles(path2, "*.cfg"); } List <FloatMenuOption> options = new List <FloatMenuOption>(); foreach (string setname in presetList) { options.Add(new FloatMenuOption(Path.GetFileNameWithoutExtension(setname), () => { try { ModSettings settings = XmlLoader.ItemFromXmlFile <ModSettings>(setname, true); PSI.settings.iconDistanceX = settings.iconDistanceX; PSI.settings.iconDistanceY = settings.iconDistanceY; PSI.settings.iconOffsetX = settings.iconOffsetX; PSI.settings.iconOffsetY = settings.iconOffsetY; PSI.settings.iconsHorizontal = settings.iconsHorizontal; PSI.settings.iconsScreenScale = settings.iconsScreenScale; PSI.settings.iconsInColumn = settings.iconsInColumn; PSI.settings.iconSize = settings.iconSize; } catch (IOException) { Log.Error(Translator.Translate("PSI.Settings.LoadPreset.UnableToLoad") + setname); } })); } Find.LayerStack.Add((Layer) new Layer_FloatMenu(options, false)); } int labelNum = (int)(PSI.settings.iconSize * 4.5f); if (labelNum > 8) { labelNum = 8; } else if (labelNum < 0) { labelNum = 0; } listing.DoLabel(Translator.Translate("PSI.Settings.Arrangement.IconSize") + Translator.Translate("PSI.Settings.SizeLabel." + labelNum)); PSI.settings.iconSize = listing.DoSlider(PSI.settings.iconSize, 0.5f, 2.0f); listing.DoLabel(Translator.Translate("PSI.Settings.Arrangement.IconPosition") + (int)(PSI.settings.iconDistanceX * 100) + " , " + (int)(PSI.settings.iconDistanceY * 100)); PSI.settings.iconDistanceX = listing.DoSlider(PSI.settings.iconDistanceX, -2.0f, 2.0f); PSI.settings.iconDistanceY = listing.DoSlider(PSI.settings.iconDistanceY, -2.0f, 2.0f); listing.DoLabel(Translator.Translate("PSI.Settings.Arrangement.IconOffset") + (int)(PSI.settings.iconOffsetX * 100) + " , " + (int)(PSI.settings.iconOffsetY * 100)); PSI.settings.iconOffsetX = listing.DoSlider(PSI.settings.iconOffsetX, -2.0f, 2.0f); PSI.settings.iconOffsetY = listing.DoSlider(PSI.settings.iconOffsetY, -2.0f, 2.0f); listing.DoLabelCheckbox(Translator.Translate("PSI.Settings.Arrangement.Horizontal"), ref PSI.settings.iconsHorizontal); listing.DoLabelCheckbox(Translator.Translate("PSI.Settings.Arrangement.ScreenScale"), ref PSI.settings.iconsScreenScale); listing.DoLabel(Translator.Translate("PSI.Settings.Arrangement.IconsPerColumn") + PSI.settings.iconsInColumn); PSI.settings.iconsInColumn = (int)listing.DoSlider(PSI.settings.iconsInColumn, 1.0f, 9.0f); if (listing.DoTextButton(Translator.Translate("PSI.Settings.ReturnButton"))) { page = "main"; } }
public override void DrawThresholdConfig(ref Listing_Standard listing) { // target threshold listing.DoGap(); listing.DoLabel("FMP.Threshold".Translate() + ":"); listing.DoLabel("FMP.ThresholdCount".Translate(CurCount, Count)); // TODO: implement trade screen sliders - they're so pretty! :D Count = Mathf.RoundToInt(listing.DoSlider(Count, 0, MaxUpperThreshold)); listing.DoGap(6f); if (listing.DoTextButton("FMP.ThresholdDetails".Translate())) { Find.WindowStack.Add(DetailsWindow); } }
protected void fillPageLimits(Listing_Standard listing) { DoHeading(listing, "PSI.Settings.Sensitivity.Header"); if (listing.DoTextButton(Translator.Translate("PSI.Settings.LoadPresetButton"))) { string[] presetList = { }; String path2 = GenFilePaths.CoreModsFolderPath + "/Pawn State Icons/Presets/Sensitivity/"; if (Directory.Exists(path2)) presetList = Directory.GetFiles(path2, "*.cfg"); List<FloatMenuOption> options = new List<FloatMenuOption>(); foreach (string setname in presetList) { options.Add(new FloatMenuOption(Path.GetFileNameWithoutExtension(setname), () => { try { ModSettings settings = XmlLoader.ItemFromXmlFile<ModSettings>(setname, true); PSI.settings.limit_bleedMult = settings.limit_bleedMult; PSI.settings.limit_diseaseLess = settings.limit_diseaseLess; PSI.settings.limit_EfficiencyLess = settings.limit_EfficiencyLess; PSI.settings.limit_FoodLess = settings.limit_FoodLess; PSI.settings.limit_MoodLess = settings.limit_MoodLess; PSI.settings.limit_RestLess = settings.limit_RestLess; PSI.settings.limit_apparelHealthLess = settings.limit_apparelHealthLess; PSI.settings.limit_tempComfortOffset = settings.limit_tempComfortOffset; } catch (IOException) { Log.Error(Translator.Translate("PSI.Settings.LoadPreset.UnableToLoad") + setname); } })); } Find.LayerStack.Add((Layer)new Layer_FloatMenu(options, false)); } listing.DoGap(); listing.DoLabel(Translator.Translate("PSI.Settings.Sensitivity.Bleeding") + Translator.Translate("PSI.Settings.Sensitivity.Bleeding." + Math.Round( PSI.settings.limit_bleedMult - 0.25 ))); PSI.settings.limit_bleedMult = listing.DoSlider(PSI.settings.limit_bleedMult, 0.5f, 5.0f); listing.DoLabel(Translator.Translate("PSI.Settings.Sensitivity.Injured") + ((int)(PSI.settings.limit_EfficiencyLess * 100)) + "%"); PSI.settings.limit_EfficiencyLess = listing.DoSlider(PSI.settings.limit_EfficiencyLess, 0.01f, 0.99f); listing.DoLabel(Translator.Translate("PSI.Settings.Sensitivity.Food") + ((int)(PSI.settings.limit_FoodLess * 100)) + "%"); PSI.settings.limit_FoodLess = listing.DoSlider(PSI.settings.limit_FoodLess, 0.01f, 0.99f); listing.DoLabel(Translator.Translate("PSI.Settings.Sensitivity.Mood") + ((int)(PSI.settings.limit_MoodLess * 100)) + "%"); PSI.settings.limit_MoodLess = listing.DoSlider(PSI.settings.limit_MoodLess, 0.01f, 0.99f); listing.DoLabel(Translator.Translate("PSI.Settings.Sensitivity.Rest") + ((int)(PSI.settings.limit_RestLess * 100)) + "%"); PSI.settings.limit_RestLess = listing.DoSlider(PSI.settings.limit_RestLess, 0.01f, 0.99f); listing.DoLabel(Translator.Translate("PSI.Settings.Sensitivity.ApparelHealth") + ((int)(PSI.settings.limit_apparelHealthLess * 100)) + "%"); PSI.settings.limit_apparelHealthLess = listing.DoSlider(PSI.settings.limit_apparelHealthLess, 0.01f, 0.99f); listing.DoLabel(Translator.Translate("PSI.Settings.Sensitivity.Temperature") + ((int)(PSI.settings.limit_tempComfortOffset)) + "C"); PSI.settings.limit_tempComfortOffset = listing.DoSlider(PSI.settings.limit_tempComfortOffset, -10f, 10f); if (listing.DoTextButton(Translator.Translate("PSI.Settings.ReturnButton"))) page = "main"; }
protected void fillPageArrangement(Listing_Standard listing) { DoHeading(listing, "PSI.Settings.Arrangement.Header"); if (listing.DoTextButton(Translator.Translate("PSI.Settings.LoadPresetButton"))) { string[] presetList = { }; String path2 = GenFilePaths.CoreModsFolderPath + "/Pawn State Icons/Presets/Position/"; if (Directory.Exists(path2)) presetList = Directory.GetFiles(path2, "*.cfg"); List<FloatMenuOption> options = new List<FloatMenuOption>(); foreach (string setname in presetList) { options.Add(new FloatMenuOption(Path.GetFileNameWithoutExtension(setname), () => { try { ModSettings settings = XmlLoader.ItemFromXmlFile<ModSettings>(setname, true); PSI.settings.iconDistanceX = settings.iconDistanceX; PSI.settings.iconDistanceY = settings.iconDistanceY; PSI.settings.iconOffsetX = settings.iconOffsetX; PSI.settings.iconOffsetY = settings.iconOffsetY; PSI.settings.iconsHorizontal = settings.iconsHorizontal; PSI.settings.iconsScreenScale = settings.iconsScreenScale; PSI.settings.iconsInColumn = settings.iconsInColumn; PSI.settings.iconSize = settings.iconSize; } catch (IOException) { Log.Error(Translator.Translate("PSI.Settings.LoadPreset.UnableToLoad") + setname); } })); } Find.LayerStack.Add((Layer)new Layer_FloatMenu(options, false)); } int labelNum = (int)(PSI.settings.iconSize * 4.5f); if (labelNum > 8) labelNum = 8; else if (labelNum < 0) labelNum = 0; listing.DoLabel(Translator.Translate("PSI.Settings.Arrangement.IconSize") + Translator.Translate("PSI.Settings.SizeLabel."+labelNum)); PSI.settings.iconSize = listing.DoSlider(PSI.settings.iconSize, 0.5f, 2.0f); listing.DoLabel(Translator.Translate("PSI.Settings.Arrangement.IconPosition") + (int)(PSI.settings.iconDistanceX * 100) + " , " + (int)(PSI.settings.iconDistanceY * 100)); PSI.settings.iconDistanceX = listing.DoSlider(PSI.settings.iconDistanceX, -2.0f, 2.0f); PSI.settings.iconDistanceY = listing.DoSlider(PSI.settings.iconDistanceY, -2.0f, 2.0f); listing.DoLabel(Translator.Translate("PSI.Settings.Arrangement.IconOffset") + (int)(PSI.settings.iconOffsetX * 100) + " , " + (int)(PSI.settings.iconOffsetY * 100)); PSI.settings.iconOffsetX = listing.DoSlider(PSI.settings.iconOffsetX, -2.0f, 2.0f); PSI.settings.iconOffsetY = listing.DoSlider(PSI.settings.iconOffsetY, -2.0f, 2.0f); listing.DoLabelCheckbox(Translator.Translate("PSI.Settings.Arrangement.Horizontal"), ref PSI.settings.iconsHorizontal); listing.DoLabelCheckbox(Translator.Translate("PSI.Settings.Arrangement.ScreenScale"), ref PSI.settings.iconsScreenScale); listing.DoLabel(Translator.Translate("PSI.Settings.Arrangement.IconsPerColumn") + PSI.settings.iconsInColumn); PSI.settings.iconsInColumn = (int)listing.DoSlider(PSI.settings.iconsInColumn, 1.0f, 9.0f); if (listing.DoTextButton(Translator.Translate("PSI.Settings.ReturnButton"))) page = "main"; }
public void DoContent(Rect canvas) { Widgets.DrawMenuSection(canvas); if (Job != null) { // leave some space for bottom buttons. float bottomButtonsHeight = 30f; float bottomButtonsGap = 6f; canvas.height = canvas.height - bottomButtonsHeight - bottomButtonsGap; // bottom buttons Rect bottomButtons = new Rect(canvas.xMin, canvas.height + bottomButtonsGap, canvas.width, bottomButtonsHeight); GUI.BeginGroup(bottomButtons); // add / remove to the stack Rect add = new Rect(bottomButtons.width * .75f, 0f, bottomButtons.width / 4f - 6f, bottomButtons.height); if (Source == SourceOptions.Current) { if (Widgets.TextButton(add, "FM.Delete".Translate())) { Manager.JobStack.Delete(Job); Job = null; RefreshSourceList(); return; // hopefully that'll just skip to the next tick without any further errors? } TooltipHandler.TipRegion(add, "FMP.DeleteBillTooltip".Translate()); } else { if (Job.Trigger.IsValid) { if (Widgets.TextButton(add, "FM.Manage".Translate())) { Manager.JobStack.Add(Job); Source = SourceOptions.Current; RefreshSourceList(); SourceFilter = ""; } TooltipHandler.TipRegion(add, "FMP.ManageBillTooltip".Translate()); } else { TextAnchor oldAnchor = Text.Anchor; Color oldColor = GUI.color; Text.Anchor = TextAnchor.MiddleCenter; GUI.color = new Color(.6f, .6f, .6f); Widgets.DrawBox(add); GUI.Label(add, "FMP.NoThreshold".Translate()); Text.Anchor = oldAnchor; GUI.color = oldColor; TooltipHandler.TipRegion(add, "FMP.NoThresholdTooltip".Translate()); } } GUI.EndGroup(); GUI.BeginGroup(canvas); Text.Anchor = TextAnchor.MiddleCenter; Text.Font = GameFont.Medium; Rect recta = new Rect(0f, 0f, canvas.width, 50f); Widgets.Label(recta, Job.Bill.LabelCap); Text.Anchor = TextAnchor.UpperLeft; Text.Font = GameFont.Small; Rect rect2 = new Rect(6f, 50f, canvas.width * .3f, canvas.height - 50f); Listing_Standard listingStandard = new Listing_Standard(rect2); if (Job.Bill.suspended) { if (listingStandard.DoTextButton("Suspended".Translate())) { Job.Bill.suspended = false; } } else if (listingStandard.DoTextButton("NotSuspended".Translate())) { Job.Bill.suspended = true; } string billStoreModeLabel = ("BillStoreMode_" + Job.Bill.storeMode).Translate(); if (listingStandard.DoTextButton(billStoreModeLabel)) { List<FloatMenuOption> list = (from BillStoreMode mode in Enum.GetValues(typeof (BillStoreMode)) select new FloatMenuOption(("BillStoreMode_" + mode).Translate(), delegate { Job.Bill.storeMode = mode; })).ToList(); Find.WindowStack.Add(new FloatMenu(list)); } // other stuff listingStandard.DoGap(); listingStandard.DoLabel("IngredientSearchRadius".Translate() + ": " + Job.Bill.ingredientSearchRadius.ToString("#####0")); Job.Bill.ingredientSearchRadius = Mathf.RoundToInt(listingStandard.DoSlider(Job.Bill.ingredientSearchRadius, 0f, 250f)); if (Job.Bill.recipe.workSkill != null) { listingStandard.DoLabel("MinimumSkillLevel".Translate(Job.Bill.recipe.workSkill.label.ToLower()) + ": " + Job.Bill.minSkillLevel.ToString("#####0")); Job.Bill.minSkillLevel = Mathf.RoundToInt(listingStandard.DoSlider(Job.Bill.minSkillLevel, 0f, 20f)); } // draw threshold config Job.Trigger.DrawThresholdConfig(ref listingStandard); Job.BillGivers.DrawBillGiverConfig(ref listingStandard); listingStandard.End(); // ingredient picker Rect rect3 = new Rect(rect2.xMax + 6f, 50f, canvas.width * .4f, canvas.height - 50f); ThingFilterUI.DoThingFilterConfigWindow(rect3, ref BillScrollPosition, Job.Bill.ingredientFilter, Job.Bill.recipe.fixedIngredientFilter, 4); // description Rect rect4 = new Rect(rect3.xMax + 6f, rect3.y + 30f, canvas.width - rect3.xMax - 12f, canvas.height - 50f); StringBuilder stringBuilder = new StringBuilder(); // add mainproduct line stringBuilder.AppendLine("FMP.MainProduct".Translate(Job.MainProduct.Label, Job.MainProduct.Count)); stringBuilder.AppendLine(); if (Job.Bill.recipe.description != null) { stringBuilder.AppendLine(Job.Bill.recipe.description); stringBuilder.AppendLine(); } stringBuilder.AppendLine("WorkAmount".Translate() + ": " + Job.Bill.recipe.WorkAmountTotal(null).ToStringWorkAmount()); stringBuilder.AppendLine(); foreach (IngredientCount ingredientCount in Job.Bill.recipe.ingredients) { if (!ingredientCount.filter.Summary.NullOrEmpty()) { stringBuilder.AppendLine(Job.Bill.recipe.IngredientValueGetter.BillRequirementsDescription(ingredientCount)); } } stringBuilder.AppendLine(); string text4 = Job.Bill.recipe.IngredientValueGetter.ExtraDescriptionLine(); if (text4 != null) { stringBuilder.AppendLine(text4); stringBuilder.AppendLine(); } stringBuilder.AppendLine("MinimumSkills".Translate()); stringBuilder.AppendLine(Job.Bill.recipe.MinSkillString); Text.Font = GameFont.Small; string text5 = stringBuilder.ToString(); if (Text.CalcHeight(text5, rect4.width) > rect4.height) { Text.Font = GameFont.Tiny; } Widgets.Label(rect4, text5); Text.Font = GameFont.Small; if (Job.Bill.recipe.products.Count == 1) { Widgets.InfoCardButton(rect4.x, rect3.y, Job.Bill.recipe.products[0].thingDef); } } GUI.EndGroup(); }
private void DrawExtras(Rect rect) { Widgets.DrawMenuSection(rect); Listing_Standard listing = new Listing_Standard(rect.ContractedBy(5f)); listing.DoLabelCheckbox("ExplodeOnDeath".Translate(), ref _bp.ExplodeOnDeath); if (_bp.ExplodeOnDeath) { listing.DoLabel("ExplosionRadius".Translate(_bp.ExplosionRadius.ToString("0.0"))); _bp.ExplosionRadius = listing.DoSlider(_bp.ExplosionRadius, 0.9f, 3.9f); } listing.DoLabel("StartingSkill".Translate(_bp.StartingSkillLevel)); _bp.StartingSkillLevel = (int)listing.DoSlider(_bp.StartingSkillLevel, 1, 20); if (listing.DoTextButtonLabeled("SkillPassion".Translate(), _bp.SkillPassion.ToString())) { List<FloatMenuOption> list = new List<FloatMenuOption>(); foreach (Passion p in Enum.GetValues(typeof(Passion))) { if (p != _bp.SkillPassion) { FloatMenuOption option = new FloatMenuOption(p.ToString(), () => _bp.SkillPassion = p); list.Add(option); } } Find.LayerStack.Add(new Layer_FloatMenu(list)); } listing.End(); }
private void FillPageLimits(Listing_Standard listing) { DoHeading(listing, "PSI.Settings.Sensitivity.Header"); if (listing.DoTextButton("PSI.Settings.LoadPresetButton".Translate())) { var strArray = new string[0]; var path = _modPath + "/Presets/Sensitivity/"; Log.Message(path); if (Directory.Exists(path)) { strArray = Directory.GetFiles(path, "*.cfg"); } var options = strArray.Select(setname => new FloatMenuOption(Path.GetFileNameWithoutExtension(setname), () => { try { var settings = XmlLoader.ItemFromXmlFile <ModSettings>(setname); PSI.Settings.limit_BleedMult = settings.limit_BleedMult; PSI.Settings.limit_DiseaseLess = settings.limit_DiseaseLess; PSI.Settings.limit_EfficiencyLess = settings.limit_EfficiencyLess; PSI.Settings.limit_FoodLess = settings.limit_FoodLess; PSI.Settings.limit_MoodLess = settings.limit_MoodLess; PSI.Settings.limit_RestLess = settings.limit_RestLess; PSI.Settings.limit_ApparelHealthLess = settings.limit_ApparelHealthLess; PSI.Settings.limit_TempComfortOffset = settings.limit_TempComfortOffset; } catch (IOException) { Log.Error("PSI.Settings.LoadPreset.UnableToLoad".Translate() + setname); } })).ToList(); Find.WindowStack.Add(new FloatMenu(options)); } listing.DoGap(); listing.DoLabel("PSI.Settings.Sensitivity.Bleeding".Translate() + ("PSI.Settings.Sensitivity.Bleeding." + Math.Round(PSI.Settings.limit_BleedMult - 0.25)).Translate()); PSI.Settings.limit_BleedMult = listing.DoSlider(PSI.Settings.limit_BleedMult, 0.5f, 5f); listing.DoLabel("PSI.Settings.Sensitivity.Injured".Translate() + (int)(PSI.Settings.limit_EfficiencyLess * 100.0) + "%"); PSI.Settings.limit_EfficiencyLess = listing.DoSlider(PSI.Settings.limit_EfficiencyLess, 0.01f, 0.99f); listing.DoLabel("PSI.Settings.Sensitivity.Food".Translate() + (int)(PSI.Settings.limit_FoodLess * 100.0) + "%"); PSI.Settings.limit_FoodLess = listing.DoSlider(PSI.Settings.limit_FoodLess, 0.01f, 0.99f); listing.DoLabel("PSI.Settings.Sensitivity.Mood".Translate() + (int)(PSI.Settings.limit_MoodLess * 100.0) + "%"); PSI.Settings.limit_MoodLess = listing.DoSlider(PSI.Settings.limit_MoodLess, 0.01f, 0.99f); listing.DoLabel("PSI.Settings.Sensitivity.Rest".Translate() + (int)(PSI.Settings.limit_RestLess * 100.0) + "%"); PSI.Settings.limit_RestLess = listing.DoSlider(PSI.Settings.limit_RestLess, 0.01f, 0.99f); listing.DoLabel("PSI.Settings.Sensitivity.ApparelHealth".Translate() + (int)(PSI.Settings.limit_ApparelHealthLess * 100.0) + "%"); PSI.Settings.limit_ApparelHealthLess = listing.DoSlider(PSI.Settings.limit_ApparelHealthLess, 0.01f, 0.99f); listing.DoLabel("PSI.Settings.Sensitivity.Temperature".Translate() + (int)PSI.Settings.limit_TempComfortOffset + "C"); PSI.Settings.limit_TempComfortOffset = listing.DoSlider(PSI.Settings.limit_TempComfortOffset, -10f, 10f); if (!listing.DoTextButton("PSI.Settings.ReturnButton".Translate())) { return; } Page = "main"; }
private void FillPageArrangement(Listing_Standard listing) { DoHeading(listing, "PSI.Settings.Arrangement.Header"); if (listing.DoTextButton("PSI.Settings.LoadPresetButton".Translate())) { var strArray = new string[0]; var path = _modPath + "/Presets/Position/"; if (Directory.Exists(path)) { strArray = Directory.GetFiles(path, "*.cfg"); } var options = strArray.Select(setname => new FloatMenuOption(Path.GetFileNameWithoutExtension(setname), () => { try { var settings = XmlLoader.ItemFromXmlFile <ModSettings>(setname); PSI.Settings.iconDistanceX = settings.iconDistanceX; PSI.Settings.iconDistanceY = settings.iconDistanceY; PSI.Settings.iconOffsetX = settings.iconOffsetX; PSI.Settings.iconOffsetY = settings.iconOffsetY; PSI.Settings.iconsHorizontal = settings.iconsHorizontal; PSI.Settings.iconsScreenScale = settings.iconsScreenScale; PSI.Settings.iconsInColumn = settings.iconsInColumn; PSI.Settings.iconSize = settings.iconSize; } catch (IOException) { Log.Error("PSI.Settings.LoadPreset.UnableToLoad".Translate() + setname); } })).ToList(); Find.WindowStack.Add(new FloatMenu(options)); } var num = (int)(PSI.Settings.iconSize * 4.5); if (num > 8) { num = 8; } else if (num < 0) { num = 0; } listing.DoLabel("PSI.Settings.Arrangement.IconSize".Translate() + ("PSI.Settings.SizeLabel." + num).Translate()); PSI.Settings.iconSize = listing.DoSlider(PSI.Settings.iconSize, 0.5f, 2f); listing.DoLabel(string.Concat("PSI.Settings.Arrangement.IconPosition".Translate(), (int)(PSI.Settings.iconDistanceX * 100.0), " , ", (int)(PSI.Settings.iconDistanceY * 100.0))); PSI.Settings.iconDistanceX = listing.DoSlider(PSI.Settings.iconDistanceX, -2f, 2f); PSI.Settings.iconDistanceY = listing.DoSlider(PSI.Settings.iconDistanceY, -2f, 2f); listing.DoLabel(string.Concat("PSI.Settings.Arrangement.IconOffset".Translate(), (int)(PSI.Settings.iconOffsetX * 100.0), " , ", (int)(PSI.Settings.iconOffsetY * 100.0))); PSI.Settings.iconOffsetX = listing.DoSlider(PSI.Settings.iconOffsetX, -2f, 2f); PSI.Settings.iconOffsetY = listing.DoSlider(PSI.Settings.iconOffsetY, -2f, 2f); listing.DoLabelCheckbox("PSI.Settings.Arrangement.Horizontal".Translate(), ref PSI.Settings.iconsHorizontal); listing.DoLabelCheckbox("PSI.Settings.Arrangement.ScreenScale".Translate(), ref PSI.Settings.iconsScreenScale); listing.DoLabel("PSI.Settings.Arrangement.IconsPerColumn".Translate() + PSI.Settings.iconsInColumn); PSI.Settings.iconsInColumn = (int)listing.DoSlider(PSI.Settings.iconsInColumn, 1f, 9f); if (!listing.DoTextButton("PSI.Settings.ReturnButton".Translate())) { return; } Page = "main"; }