private void OverlayHeader(Listing_Standard listing, MiniMap.MiniMapOverlay overlay) { var str = overlay.LabelCap; listing.DoLabel(str); listing.DoGap(6); listing.Indent(); }
private void MinimapHeader(Listing_Standard listing, MiniMap.MiniMap minimap) { var str = minimap.LabelCap; listing.DoLabel(str); listing.DoGap(6); listing.Indent(); }
private void FillPageMain(Listing_Standard listing) { if (listing.DoTextButton("PSI.Settings.IconSet".Translate() + PSI.Settings.iconSet)) { var options = PSI.IconSets.Select(setname => new FloatMenuOption(setname, () => { PSI.Settings.iconSet = setname; PSI.Materials = new Materials(setname); PSI.Materials.ReloadTextures(true); })).ToList(); Find.WindowStack.Add(new FloatMenu(options)); } if (listing.DoTextButton("PSI.Settings.LoadPresetButton".Translate())) { var strArray = new string[0]; var path = _modPath + "/Presets/Complete/"; if (Directory.Exists(path)) { strArray = Directory.GetFiles(path, "*.cfg"); } var options = strArray.Select(setname => new FloatMenuOption(Path.GetFileNameWithoutExtension(setname), () => { try { PSI.Settings = XmlLoader.ItemFromXmlFile <ModSettings>(setname); PSI.SaveSettings(); PSI.Reinit(); } catch (IOException) { Log.Error("PSI.Settings.LoadPreset.UnableToLoad".Translate() + setname); } })).ToList(); Find.WindowStack.Add(new FloatMenu(options)); } listing.DoGap(); DoHeading(listing, "PSI.Settings.Advanced"); if (listing.DoTextButton("PSI.Settings.VisibilityButton".Translate())) { Page = "showhide"; } if (listing.DoTextButton("PSI.Settings.ArrangementButton".Translate())) { Page = "arrange"; } if (!listing.DoTextButton("PSI.Settings.SensitivityButton".Translate())) { return; } Page = "limits"; }
protected void fillPageMain(Listing_Standard listing) { //listing.DoHeading("General settings"); if (listing.DoTextButton( Translator.Translate("PSI.Settings.IconSet") + PSI.settings.iconSet)) { List<FloatMenuOption> options = new List<FloatMenuOption>(); foreach (string setname in PSI.iconSets) { options.Add(new FloatMenuOption(setname, () => { PSI.settings.iconSet = setname; PSI.materials = new Materials(setname); PSI.materials.reloadTextures(true); })); } Find.LayerStack.Add((Layer)new Layer_FloatMenu(options, false)); } if (listing.DoTextButton(Translator.Translate("PSI.Settings.LoadPresetButton"))) { string[] presetList = {}; String path2 = GenFilePaths.CoreModsFolderPath + "/Pawn State Icons/Presets/Complete/"; 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 { PSI.settings = XmlLoader.ItemFromXmlFile<ModSettings>(setname, true); PSI.saveSettings(); PSI.reinit(); } catch (IOException) { Log.Error(Translator.Translate("PSI.Settings.LoadPreset.UnableToLoad") + setname); } })); } Find.LayerStack.Add((Layer)new Layer_FloatMenu(options, false)); } listing.DoGap(); DoHeading(listing,"PSI.Settings.Advanced"); if (listing.DoTextButton(Translator.Translate("PSI.Settings.VisibilityButton"))) page = "showhide"; if (listing.DoTextButton(Translator.Translate("PSI.Settings.ArrangementButton"))) page = "arrange"; if (listing.DoTextButton(Translator.Translate("PSI.Settings.SensitivityButton"))) page = "limits"; }
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 fillPageMain(Listing_Standard listing) { //listing.DoHeading("General settings"); if (listing.DoTextButton(Translator.Translate("PSI.Settings.IconSet") + PSI.settings.iconSet)) { List <FloatMenuOption> options = new List <FloatMenuOption>(); foreach (string setname in PSI.iconSets) { options.Add(new FloatMenuOption(setname, () => { PSI.settings.iconSet = setname; PSI.materials = new Materials(setname); PSI.materials.reloadTextures(true); })); } Find.LayerStack.Add((Layer) new Layer_FloatMenu(options, false)); } if (listing.DoTextButton(Translator.Translate("PSI.Settings.LoadPresetButton"))) { string[] presetList = {}; String path2 = GenFilePaths.CoreModsFolderPath + "/Pawn State Icons/Presets/Complete/"; 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 { PSI.settings = XmlLoader.ItemFromXmlFile <ModSettings>(setname, true); PSI.saveSettings(); PSI.reinit(); } catch (IOException) { Log.Error(Translator.Translate("PSI.Settings.LoadPreset.UnableToLoad") + setname); } })); } Find.LayerStack.Add((Layer) new Layer_FloatMenu(options, false)); } listing.DoGap(); DoHeading(listing, "PSI.Settings.Advanced"); if (listing.DoTextButton(Translator.Translate("PSI.Settings.VisibilityButton"))) { page = "showhide"; } if (listing.DoTextButton(Translator.Translate("PSI.Settings.ArrangementButton"))) { page = "arrange"; } if (listing.DoTextButton(Translator.Translate("PSI.Settings.SensitivityButton"))) { page = "limits"; } }
protected override void FillTab() { ConceptDatabase.KnowledgeDemonstrated(ConceptDefOf.PrisonerTab, KnowledgeAmount.GuiFrame); Text.Font = GameFont.Small; var rect1 = new Rect(0.0f, 0.0f, this.size.x, this.size.y).ContractedBy(10f); var listingStandard = new Listing_Standard(rect1); { var getsFood = this.SelPawn.guest.GetsFood; listingStandard.DoLabelCheckbox("GetsFood".Translate(), ref getsFood, (string)null); this.SelPawn.guest.GetsFood = getsFood; var rect2 = listingStandard.GetRect(28f); rect2.width = 140f; MedicalCareUtility.MedicalCareSetter(rect2, ref this.SelPawn.playerSettings.medCare); listingStandard.DoGap(4f); listingStandard.DoLabel("RecruitmentDifficulty".Translate() + ": " + this.SelPawn.guest.RecruitDifficulty.ToString("##0")); if (Prefs.DevMode) { listingStandard.DoLabel("Dev: Prison break MTB days: " + (object)(int)PrisonBreakUtility.InitiatePrisonBreakMtbDays(this.SelPawn)); } var rect3 = listingStandard.GetRect(200f); Widgets.DrawMenuSection(rect3, true); var position = rect3.ContractedBy(10f); GUI.BeginGroup(position); { var rect4 = new Rect(0.0f, 0.0f, position.width, 30f); foreach (PrisonerInteractionMode mode in Enum.GetValues(typeof(PrisonerInteractionMode))) { if (Widgets.LabelRadioButton(rect4, mode.GetLabel(), this.SelPawn.guest.interactionMode == mode)) { this.SelPawn.guest.interactionMode = mode; } rect4.y += 28f; } if (Widgets.LabelRadioButton(rect4, "PI_Enslave".Translate(), this.SelPawn.guest.interactionMode == (PrisonerInteractionMode)Data.PIM_EnslavePrisoner)) { this.SelPawn.guest.interactionMode = (PrisonerInteractionMode)Data.PIM_EnslavePrisoner; } } GUI.EndGroup(); var compSlave = this.SelPawn.TryGetComp <CompSlave>(); if (compSlave != null) { listingStandard.DoGap(4f); var rect5 = listingStandard.GetRect(30f); if (!compSlave.ShouldBeTransfered) { if (Widgets.TextButton(rect5, "PI_TransferPrisoner".Translate())) { var list = this.GenOptions(); if ( (list.Count == 0) || ( (list.Count == 1) && (list[0].label == "PI_Prison_Cell".Translate()) && (this.SelPawn.GetRoom() == this.SelPawn.ownership.OwnedBed.GetRoom()) ) ) { list.Add(new FloatMenuOption("PI_InstallCamera".Translate(), (Action)null)); } Find.WindowStack.Add((Window) new FloatMenu(list, false)); } else { this.cached = null; } } else { if (Widgets.TextButton(rect5, "PI_CancelTransfer".Translate())) { compSlave.haulTarget = null; } listingStandard.DoGap(4f); var rect7 = listingStandard.GetRect(30f); var style = new GUIStyle(Text.CurTextFieldStyle); style.alignment = TextAnchor.MiddleCenter; string label = string.Empty; if (compSlave.haulTarget is Building_PrisonMarker) { label = ((Building_PrisonMarker)compSlave.haulTarget).markerName; } else if (compSlave.haulTarget is Building_Bed) { label = "PI_Prison_Cell".Translate(); } GUI.Label(rect7, label, style); } } } listingStandard.End(); }
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); } }
/// <summary> /// Draws the mod configuration window contents. /// </summary> /// <returns>The final height of the window rect.</returns> /// <param name="rect">Rect</param> public override float DoWindowContents(Rect rect) { var listing = new Listing_Standard(rect); { listing.OverrideColumnWidth = rect.width - 4f; #region Main Toggle var toggleLabel = "MiniMap.MCMToggleMain".Translate(); listing.DoLabelCheckbox(toggleLabel, ref MiniMap.MiniMapController.visible); listing.DoGap(); #endregion #region Handle all MiniMaps and Overlays foreach (var minimap in Controller.Data.MiniMaps) { if (minimap.IsOrHasIConfigurable) { var iMinimap = minimap as IConfigurable; #region Minimap Header MinimapHeader(listing, minimap); #endregion #region Handle MiniMap IConfigurable if (iMinimap != null) { #region Minimap IConfigurable var iMinimapRect = new Rect(listing.Indentation(), listing.CurHeight, listing.ColumnWidth(), 9999f); GUI.BeginGroup(iMinimapRect); var iMinimapHeight = iMinimap.DrawMCMRegion(iMinimapRect.AtZero()); GUI.EndGroup(); listing.DoGap(iMinimapHeight + 6f); #endregion } #endregion #region Handle all MiniMap Overlays foreach (var overlay in minimap.overlayWorkers) { var iOverlay = overlay as IConfigurable; #region Handle Overlay IConfigurable if (iOverlay != null) { #region Overlay Header OverlayHeader(listing, overlay); #endregion #region Overlay IConfigurable var iOverlayRect = new Rect(listing.Indentation(), listing.CurHeight, listing.ColumnWidth(), 9999f); GUI.BeginGroup(iOverlayRect); var iOverlayHeight = iOverlay.DrawMCMRegion(iOverlayRect.AtZero()); GUI.EndGroup(); listing.DoGap(iOverlayHeight + 6f); listing.Undent(); #endregion } #endregion } #endregion #region Final Undentation listing.DoGap(); listing.Undent(); #endregion } } #endregion } listing.End(); return(listing.CurHeight); }
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"; }
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(); }
public void DrawBillGiverConfig(ref Listing_Standard listing) { listing.DoGap(); // workstation info listing.DoLabel("FMP.BillGivers".Translate()); listing.DoLabel("FMP.BillGiversCount".Translate(GetPotentialBillGivers.Count, GetAssignedBillGivers.Count)); string potentialString = String.Join("\n", GetPotentialBillGivers.Select(b => b.LabelCap).ToArray()); string assignedString = String.Join("\n", GetAssignedBillGivers.Select(b => b.LabelCap).ToArray()); string stationsTooltip = "FMP.BillGiversTooltip".Translate(potentialString, assignedString); // todo, fix that tooltip. Possible? // TooltipHandler.TipRegion(stations, stationsTooltip); // workstation selector if (listing.DoTextButton("FMP.BillGiversDetails".Translate())) { Find.WindowStack.Add(DetailsWindow); } }
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"; }