public override void DoSettingsWindowContents(Rect inRect) { var ls = new Listing_Standard(); ls.Begin(inRect); CreateRegularSettings(ls); CreateOpenConfigFolderButton(); ls.GapLine(); float drillableScrollStart_Y = CreateDrillableButtons(ls) + 12f + ROW_HEIGHT; CreateRebootNote(ls); #region Drillables Scroll View ls.BeginScrollView(new Rect(0, drillableScrollStart_Y, inRect.width, inRect.height - drillableScrollStart_Y - ROW_HEIGHT), ref ScrollPosition, ref ViewRect); CreateDrillableHeaders(); int rowIdx = 1; foreach (DrillData dd in Settings.Drillables.Values) { CreateDrillableSettingsFields(dd, rowIdx++); } ls.GetRect(Table.TableRect.height); ls.EndScrollView(ref ViewRect); #endregion ls.End(); Global.ApplySettingsToDefs(); base.DoSettingsWindowContents(inRect); }
public void DoWindowContents(Rect inRect) { Listing_Standard listing_Standard = new Listing_Standard(); Rect viewRect = new Rect(0f, 0f, inRect.width - 16f, scrollViewHeight); listing_Standard.BeginScrollView(inRect, ref scrollPosition, ref viewRect); Widgets.Label(listing_Standard.GetRect(25f), "Total worker threads (recommendation 1-2 per CPU core):"); Widgets.IntEntry(listing_Standard.GetRect(37f), ref maxThreads, ref maxThreadsBuffer); Widgets.Label(listing_Standard.GetRect(25f), "Timeout (in miliseconds) waiting for threads (default: 8000):"); Widgets.IntEntry(listing_Standard.GetRect(37f), ref timeoutMS, ref timeoutMSBuffer, 100); Widgets.Label(listing_Standard.GetRect(25f), "Timespeed Normal (multiply by 60 for Max TPS):"); Widgets.TextFieldNumeric(listing_Standard.GetRect(30f), ref timeSpeedNormal, ref timeSpeedNormalBuffer); Widgets.Label(listing_Standard.GetRect(25f), "Timespeed Fast (multiply by 60 for Max TPS):"); Widgets.TextFieldNumeric(listing_Standard.GetRect(30f), ref timeSpeedFast, ref timeSpeedFastBuffer); Widgets.Label(listing_Standard.GetRect(25f), "Timespeed Superfast (multiply by 60 for Max TPS):"); Widgets.TextFieldNumeric(listing_Standard.GetRect(30f), ref timeSpeedSuperfast, ref timeSpeedSuperfastBuffer); Widgets.Label(listing_Standard.GetRect(25f), "Timespeed Ultrafast (multiply by 60 for Max TPS):"); Widgets.TextFieldNumeric(listing_Standard.GetRect(30f), ref timeSpeedUltrafast, ref timeSpeedUltrafastBuffer); Widgets.CheckboxLabeled(listing_Standard.GetRect(27f), "Disable alert updates at 4x speed:", ref disablesomealerts); Widgets.CheckboxLabeled(listing_Standard.GetRect(27f), "Disable thread/worker limit (debugging):", ref disablelimits); Widgets.CheckboxLabeled(listing_Standard.GetRect(27f), "Disable slowdown on combat:", ref disableforcedslowdowns); Widgets.CheckboxLabeled(listing_Standard.GetRect(27f), "Show alert when conflicting mods are detected:", ref showModConflictsAlert); Widgets.CheckboxLabeled(listing_Standard.GetRect(27f), "Show console warning when thread took over 200ms:", ref show200mswarning); Widgets.TextAreaScrollable(listing_Standard.GetRect(300f), modsText, ref scrollPos); listing_Standard.EndScrollView(ref viewRect); scrollViewHeight = viewRect.height; }
public override void DoWindowContents(Rect inRect) { Listing_Standard listing = new Listing_Standard(); List <VotingIncident> allVotes = DefDatabase <VotingIncident> .AllDefs.ToList(); Rect outRect = new Rect(0, 0, inRect.width, inRect.height - 50f); Rect viewRect = new Rect(0f, 0f, outRect.width - 20, allVotes.Count * 31f); listing.Begin(inRect); listing.BeginScrollView(outRect, ref scrollPosition, ref viewRect); listing.Label("Change the weights given to votes. Setting to 0% disables it."); listing.Gap(12); if (ToolkitSettings.VoteWeights != null) { foreach (VotingIncident vote in allVotes) { int index = vote.index; listing.SliderLabeled(vote.defName, ref vote.voteWeight, vote.voteWeight.ToString(), 0, 100); ToolkitSettings.VoteWeights[vote.defName] = vote.voteWeight; listing.Gap(6); } } listing.EndScrollView(ref viewRect); listing.End(); }
// I like putting the 'render function' for settings in the settings class, vanilla would put it in the mod class. public void DoWindowContents(Rect canvas) { // listing_standard is the simplest way to make an interface. It's not pretty, but it works. // I use it for most of my settings, as people shouldn't be spending much time there anyway. var options = new Listing_Standard(); // tells the listing where it can render options.Begin(canvas); options.Label("Game has to be restarted in order for the changes to be applied!"); options.Label("Check the github for an exact list of what each setting changes."); options.Label(""); options.Label("Choose what should be enabled:"); options.BeginScrollView(options.GetRect(400), ref scrollPosition, ref viewRect); // for each patch in the list of patches, render a checkbox. // this is one of the things that is super easy to do in options. // NOTE: if you have a lot of patches, you may want to try out // options.BeginScrollView foreach (var patch in PatchDisablerMod.Patches) { // we can't use ref on a dictionary value, so pull it out for a sec. var status = PatchDisabled[patch]; options.CheckboxLabeled(patch.label, ref status, patch.tooltip); PatchDisabled[patch] = status; } options.EndScrollView(ref viewRect); // see also other functions on `options`, for textboxes, radio buttons, etc. options.End(); }
public static void DoSettingsWindowContents(Rect inRect) { Listing_Standard listing_Standard = new Listing_Standard(); Rect viewRect = new Rect(0f, 0f, inRect.width, 36f * 26f); viewRect.xMax *= 0.9f; listing_Standard.BeginScrollView(inRect, ref ScrollPos, ref viewRect); listing_Standard.Label("fulfill_needs_head".Translate()); listing_Standard.CheckboxLabeled("fulfill_outdoors_label".Translate(), ref fulfill_outdoors, "fulfill_outdoors_note".Translate()); listing_Standard.CheckboxLabeled("drugs_use_potential_mood_label".Translate(), ref drugs_use_potential_mood, "drugs_use_potential_mood_note".Translate()); listing_Standard.CheckboxLabeled("pick_proper_amount_label".Translate(), ref pick_proper_amount, "pick_proper_amount_note".Translate()); listing_Standard.CheckboxLabeled("fun_police_label".Translate(), ref fun_police, "fun_police_note".Translate()); listing_Standard.CheckboxLabeled("give_sick_joy_drugs_label".Translate(), ref give_sick_joy_drugs, "give_sick_joy_drugs_note".Translate()); listing_Standard.CheckboxLabeled("social_relax_economy_label".Translate(), ref social_relax_economy, "social_relax_economy_note".Translate()); listing_Standard.GapLine(); listing_Standard.Label("clean_head".Translate()); listing_Standard.CheckboxLabeled("clean_before_working_label".Translate(), ref clean_before_work, "clean_before_working_note".Translate()); listing_Standard.CheckboxLabeled("clean_after_tending_label".Translate(), ref clean_after_tending, "clean_after_tending_note".Translate()); listing_Standard.CheckboxLabeled("hauling_over_bills_label".Translate(), ref hauling_over_bills, "hauling_over_bills_note".Translate()); listing_Standard.CheckboxLabeled("prefer_spoiling_ingredients_label".Translate(), ref prefer_spoiling_ingredients, "prefer_spoiling_ingredients_note".Translate()); listing_Standard.CheckboxLabeled("prefer_spoiling_meals_label".Translate(), ref prefer_spoiling_meals, "prefer_spoiling_meals_note".Translate()); //listing_Standard.CheckboxLabeled("allow_feeding_with_plants_label".Translate(), ref allow_feeding_with_plants, "allow_feeding_with_plants_note".Translate()); listing_Standard.CheckboxLabeled("put_back_to_inv_label".Translate(), ref put_back_to_inv, "put_back_to_inv_note".Translate()); listing_Standard.CheckboxLabeled("skip_snow_clean_label".Translate(), ref skip_snow_clean, "skip_snow_clean_note".Translate()); listing_Standard.GapLine(); listing_Standard.Label("meal_stacking_head".Translate()); listing_Standard.CheckboxLabeled("meal_stacking_label".Translate(), ref separate_meals, "meal_stacking_note".Translate()); listing_Standard.CheckboxLabeled("dont_count_odd_label".Translate(), ref odd_is_normal, "dont_count_odd_note".Translate()); listing_Standard.GapLine(); listing_Standard.Label("advanced_head".Translate()); listing_Standard.CheckboxLabeled("advanced_inbetween_cleaning_label".Translate(), ref adv_cleaning, "advanced_inbetween_cleaning_note".Translate()); listing_Standard.CheckboxLabeled("advanced_haul_all_ings_label".Translate(), ref adv_haul_all_ings, "advanced_haul_all_ings_note".Translate()); listing_Standard.CheckboxLabeled("advanced_cleaning_ingest_label".Translate(), ref adv_cleaning_ingest, "advanced_cleaning_ingest_note".Translate()); listing_Standard.CheckboxLabeled("safe_wander_label".Translate(), ref safe_wander, "safe_wander_note".Translate()); listing_Standard.GapLine(); listing_Standard.Label("miscellaneous_head".Translate()); listing_Standard.CheckboxLabeled("gen_ingredients_label".Translate(), ref add_meal_ingredients, "gen_ingredients_note".Translate()); listing_Standard.CheckboxLabeled("extended_recipe_label".Translate(), ref gui_extended_recipe, "extended_recipe_note".Translate()); listing_Standard.CheckboxLabeled("manual_unload_label".Translate(), ref gui_manual_unload, "manual_unload_note".Translate()); listing_Standard.CheckboxLabeled("mood_regen_label".Translate(), ref mood_regen, "mood_regen_note".Translate()); listing_Standard.GapLine(); listing_Standard.Label("numbers_head".Translate()); string op_clean_num_str = op_clean_num.ToString(); listing_Standard.TextFieldNumericLabeled("op_clean_number_label".Translate(), ref op_clean_num, ref op_clean_num_str); string adv_clean_num_str = adv_clean_num.ToString(); listing_Standard.TextFieldNumericLabeled("adv_clean_number_label".Translate(), ref adv_clean_num, ref adv_clean_num_str); string doc_clean_num_str = doc_clean_num.ToString(); listing_Standard.TextFieldNumericLabeled("doc_clean_number_label".Translate(), ref doc_clean_num, ref doc_clean_num_str); listing_Standard.EndScrollView(ref viewRect); }
public void DoWindowContents(Rect canvas) { Listing_Standard list = new Listing_Standard { ColumnWidth = canvas.width - 20, }; list.BeginScrollView( new Rect(canvas.x, canvas.y, canvas.width, canvas.height - 40), ref scroll, ref viewRect); Text.Font = GameFont.Tiny; list.Label("RFC.factionNotes".Translate()); Text.Font = GameFont.Small; list.Gap(); DrawSlider(list, "RFC.factionCount".Translate(), ref factionCount, ref strFacCnt, 0, 100); list.Gap(24); DrawSlider(list, "RFC.outlanderCivilMin".Translate(), ref outlanderCivilMin, ref strOutCiv, 0, 20); list.Gap(); DrawSlider(list, "RFC.outlanderRoughMin".Translate(), ref outlanderHostileMin, ref strOutHos, 0, 20); list.Gap(); list.Gap(); DrawSlider(list, "RFC.tribalCivilMin".Translate(), ref tribalCivilMin, ref strTriCiv, 0, 20); list.Gap(); DrawSlider(list, "RFC.tribalRoughMin".Translate(), ref tribalHostileMin, ref strTriHos, 0, 20); list.Gap(); DrawSlider(list, "RFC.tribalSavageMin".Translate(), ref tribalSavageMin, ref strTriSav, 0, 20); list.Gap(); list.Gap(); DrawSlider(list, "RFC.pirateMin".Translate(), ref pirateMin, ref strPir, 0, 20); if (ModsConfig.RoyaltyActive) { list.Gap(); list.Gap(); DrawSlider(list, "RFC.empireMin".Translate(), ref empireMin, ref strEmp, 0, 20); } list.EndScrollView(ref viewRect); if (Widgets.ButtonText(new Rect(canvas.x, canvas.yMax - 30, 100, 30), "Default Values")) { Find.WindowStack.Add(new Dialog_MessageBox( "Reset all values to default?", "Yes", () => { this.Reset(); }, "No", () => {})); } }
protected void DoMainContents(Rect inRect) { Rect buttonRect = new Rect(inRect.xMax - 120, 0, 100, 30); Rect titleRect = new Rect(inRect.x, 0, 200, 30); Widgets.Label(titleRect, Translations.CustomHybrid_List_Title); Widgets.DrawLineHorizontal(titleRect.x, titleRect.yMax + 12f, inRect.width); if (Widgets.ButtonText(buttonRect, "Add")) { if (!raceList.NullOrEmpty()) { Find.WindowStack.Add(new FloatMenu(raceList)); } } if (!removeList.NullOrEmpty()) { buttonRect.x -= 100; if (Widgets.ButtonText(buttonRect, "Undo")) { var element = removeList.Last(); Configurations.HybridOverride.Add(element); Configurations.HybridOverride.SortBy(x => x.GetDef?.label ?? "Undefined"); removeList.Remove(element); } foreach (HybridInformations extension in removeList) { Configurations.HybridOverride.Remove(extension); } raceList.SortBy(x => x.Label); } Rect outRect = new Rect(inRect.x, inRect.y + 30f, inRect.width, inRect.height - 30f); Rect mainRect = new Rect(inRect.x, inRect.y + 30f, inRect.width - 30f, Math.Max(24f * Configurations.HybridOverride?.Count() ?? 1, 10f)); Listing_Standard listmain = new Listing_Standard(); listmain.BeginScrollView(outRect, ref scroll, ref mainRect); listmain.Begin(mainRect); int i = 0; if (!Configurations.HybridOverride.NullOrEmpty()) { foreach (HybridInformations extension in Configurations.HybridOverride) { if (extension.GetDef != null) { DoRow(listmain.GetRect(24f), extension, i++); } } } listmain.EndScrollView(ref mainRect); listmain.End(); }
//public override void End() public static void EndScroll(Listing_Standard listing) { if (Mod.settings.areasUnlimited) { listing.EndScrollView(ref viewRect); scrollViewHeight = viewRect.height; } else { listing.End(); } }
public override void DoSettingsWindowContents(Rect inRect) { Listing_Standard listing_Standard = new Listing_Standard(); float num = 800f; Rect rect = new Rect(inRect.x, inRect.y - 50, num, MenuLength); listing_Standard.BeginScrollView(inRect, ref pos, ref rect); listing_Standard.Label("AMA_ModName".Translate() + " Settings"); ModOptions(ref listing_Standard, rect, inRect, num, MenuLength); listing_Standard.EndScrollView(ref rect); PostModOptions(listing_Standard, inRect, num, MenuLength); }
private void DrawThingsList(Listing_Standard holder) { Listing_Standard list = new Listing_Standard(); Rect outRect = holder.GetRect(280f); Rect viewRect = new Rect(outRect.x, outRect.y, outRect.width - 16f, task.ThingFilter.AvaliableThings.Count() * (Text.LineHeight + holder.verticalSpacing)); list.BeginScrollView(outRect, ref thingFilterScrollPosition, ref viewRect); foreach (ThingDef def in task.ThingFilter.AvaliableThings) { bool isAllowed = task.ThingFilter.Allows(def); list.CheckboxLabeled(def.LabelCap, ref isAllowed); task.ThingFilter.SetAllowance(def, isAllowed); } list.EndScrollView(ref viewRect); }
public override void DoSettingsWindowContents(Rect canvas) { Listing_Standard lister = new Listing_Standard(); // lister.ColumnWidth = canvas.width - 80f; float height = canvas.y + 800f; // set height here Rect viewRect = new Rect(0f, 0f, canvas.width - 260f, height); lister.Begin(canvas); lister.BeginScrollView(new Rect(120f, 0f, canvas.width - 240f, canvas.height), ref scrollPosition, ref viewRect); lister.Settings_Header("YieldsHeader".Translate(), Color.clear, GameFont.Medium, TextAnchor.MiddleLeft); lister.GapLine(); lister.Gap(12f); lister.Settings_SliderLabeled(AddFlooredResultToLabel("OYMultiplyAmountLabelSilver".Translate(), OreYieldsSettings.multiplySilverYield, OreYieldsSettings.yieldSilver), "%", ref OreYieldsSettings.multiplySilverYield, 0.0f, 10f, 1f, 1); lister.Settings_SliderLabeled(AddFlooredResultToLabel("OYMultiplyAmountLabelGold".Translate(), OreYieldsSettings.multiplyGoldYield, OreYieldsSettings.yieldGold), "%", ref OreYieldsSettings.multiplyGoldYield, 0.0f, 10f, 1f, 1, -1f); lister.Settings_SliderLabeled(AddFlooredResultToLabel("OYMultiplyAmountLabelSteel".Translate(), OreYieldsSettings.multiplySteelYield, OreYieldsSettings.yieldSteel), "%", ref OreYieldsSettings.multiplySteelYield, 0.0f, 10f, 1f, 1); lister.Settings_SliderLabeled(AddFlooredResultToLabel("OYMultiplyAmountLabelPlasteel".Translate(), OreYieldsSettings.multiplyPlasteelYield, OreYieldsSettings.yieldPlasteel), "%", ref OreYieldsSettings.multiplyPlasteelYield, 0.0f, 10f, 1f, 1); lister.Settings_SliderLabeled(AddFlooredResultToLabel("OYMultiplyAmountLabelUranium".Translate(), OreYieldsSettings.multiplyUraniumYield, OreYieldsSettings.yieldUranium), "%", ref OreYieldsSettings.multiplyUraniumYield, 0.0f, 10f, 1f, 1); lister.Settings_SliderLabeled(AddFlooredResultToLabel("OYMultiplyAmountLabelJade".Translate(), OreYieldsSettings.multiplyJadeYield, OreYieldsSettings.yieldJade), "%", ref OreYieldsSettings.multiplyJadeYield, 0.0f, 10f, 1f, 1); lister.Settings_SliderLabeled(AddFlooredResultToLabel("OYMultiplyAmountLabelComps".Translate(), OreYieldsSettings.multiplyCompsYield, OreYieldsSettings.yieldComps), "%", ref OreYieldsSettings.multiplyCompsYield, 0.0f, 10f, 1f, 1); if (OreYieldsSettings.yieldSilver * OreYieldsSettings.multiplySilverYield >= 75.0 || OreYieldsSettings.yieldGold * OreYieldsSettings.multiplyGoldYield >= 75.0 || (OreYieldsSettings.yieldSteel * OreYieldsSettings.multiplySteelYield >= 75.0 || OreYieldsSettings.yieldPlasteel * OreYieldsSettings.multiplyPlasteelYield >= 75.0) || (OreYieldsSettings.yieldUranium * OreYieldsSettings.multiplyUraniumYield >= 75.0 || OreYieldsSettings.yieldJade * OreYieldsSettings.multiplyJadeYield >= 75.0) || OreYieldsSettings.yieldComps * OreYieldsSettings.multiplyCompsYield >= 75.0) { lister.Label("OYStackWarning".Translate(), -1f, null); } lister.Gap(36f); lister.Settings_Header("MassHeader".Translate(), Color.clear, GameFont.Medium, TextAnchor.MiddleLeft); lister.GapLine(); lister.Gap(12); lister.Settings_SliderLabeled(AddResultToLabel("multiplySilverMass".Translate(), OreYieldsSettings.multiplySilverMass, OreYieldsSettings.massSilver), "%", ref OreYieldsSettings.multiplySilverMass, 0.0f, 3f, 1f, 1); lister.Settings_SliderLabeled(AddResultToLabel("multiplyGoldMass".Translate(), OreYieldsSettings.multiplyGoldMass, OreYieldsSettings.massGold), "%", ref OreYieldsSettings.multiplyGoldMass, 0.0f, 3f, 1f, 1); lister.Settings_SliderLabeled(AddResultToLabel("multiplySteelMass".Translate(), OreYieldsSettings.multiplySteelMass, OreYieldsSettings.massSteel), "%", ref OreYieldsSettings.multiplySteelMass, 0.0f, 3f, 1f, 1); lister.Settings_SliderLabeled(AddResultToLabel("multiplyPlasteelMass".Translate(), OreYieldsSettings.multiplyPlasteelMass, OreYieldsSettings.massPlasteel), "%", ref OreYieldsSettings.multiplyPlasteelMass, 0.0f, 3f, 1f, 1); lister.Settings_SliderLabeled(AddResultToLabel("multiplyUraniumMass".Translate(), OreYieldsSettings.multiplyUraniumMass, OreYieldsSettings.massUranium), "%", ref OreYieldsSettings.multiplyUraniumMass, 0.0f, 3f, 1f, 1); lister.Settings_SliderLabeled(AddResultToLabel("multiplyJadeMass".Translate(), OreYieldsSettings.multiplyJadeMass, OreYieldsSettings.massJade), "%", ref OreYieldsSettings.multiplyJadeMass, 0.0f, 3f, 1f, 1); lister.Settings_SliderLabeled(AddResultToLabel("multiplyCompsMass".Translate(), OreYieldsSettings.multiplyCompsMass, OreYieldsSettings.massComps), "%", ref OreYieldsSettings.multiplyCompsMass, 0.0f, 3f, 1f, 1); lister.Gap(24f); //resetDefaults = lister.ButtonText("ResetValues".Translate()); lister.End(); lister.EndScrollView(ref viewRect); base.DoSettingsWindowContents(canvas); }
public override void DoSettingsWindowContents(Rect inRect) { Listing_Standard listing_Standard = new Listing_Standard(); float num = 800f; float num2 = 500f + (settings.ShowSpecialRules ? 30 : 0) + (settings.ShowWeaponSpecialRules ? 120 : 0) + (settings.ShowAllowedWeapons ? 120 : 0); PreModOptions(listing_Standard, inRect, num, ref num2); Rect rect = new Rect(inRect.x, inRect.y - 50, num, num2); listing_Standard.BeginScrollView(inRect, ref pos, ref rect); listing_Standard.Label("AMA_ModName".Translate() + " Settings"); ModOptions(ref listing_Standard, rect, inRect, num, num2); listing_Standard.EndScrollView(ref rect); PostModOptions(listing_Standard, inRect, num, num2); }
public override void FillContents(Listing_Standard standard, Rect inRect) { if (Find.Selector.selected.Count == 0) { Close(); return; } { var rect = standard.GetRect(30); Text.Font = GameFont.Tiny; var searchRect = new Rect(0, 0, rect.width, 20); if (Widgets.ButtonImage(searchRect.LeftPartPixels(20), TexButton.CloseXSmall)) { Close(); } searchString = Widgets.TextField(new Rect(searchRect.position + new Vector2(25, 0), searchRect.size - new Vector2(55, 0)), searchString).ToLower(); } { standard.Gap(5); var scrollRect = new Rect(inRect.position + new Vector2(0, 50), inRect.size - new Vector2(0, 50)); var section = standard.BeginSection_NewTemp(scrollRect.height); standard.EndSection(section); standard.BeginScrollView(new Rect(scrollRect.position + new Vector2(5, 0), scrollRect.size - new Vector2(10, 10)), ref scrollPosition, ref viewRect); Text.Font = GameFont.Tiny; foreach (Pawn pawn in pawns) { var name = pawn.Name.ToString(); if (name.Contains(searchString)) { var rect = standard.GetRect(50); Widgets.DrawHighlightIfMouseover(rect); Widgets.DrawTextureFitted(rect.LeftPartPixels(50), PortraitsCache.Get(pawn, new Vector2(50, 50)), 1); Text.Anchor = TextAnchor.MiddleLeft; Widgets.Label(new Rect(rect.position + new Vector2(60, 0), rect.size - new Vector2(60, 0)), name); if (Widgets.ButtonInvisible(rect)) { onSelect(pawn); Close(); } } } standard.EndScrollView(ref viewRect); } }
public override void DoSettingsWindowContents(Rect inRect) { Listing_Standard ls = new Listing_Standard(); ls.Begin(inRect); CreateTopButtons(inRect.width); Widgets.Label(new Rect(0f, BUTTON_HEIGHT, inRect.width, ROW_HEIGHT), "SECRS_AllSettingsAppliedLive".TC()); ls.BeginScrollView(new Rect(0, SCROLL_AREA_OFFSET_TOP, inRect.width, inRect.height - SCROLL_AREA_OFFSET_TOP), ref ScrollPosition, ref ViewRect); ls.GetRect(Table.Bottom); // Ensures the scrollview works. CreateAllSettings(); ls.EndScrollView(ref ViewRect); ls.End(); Main.ApplySettingsToDefs(); }
// Token: 0x06000024 RID: 36 RVA: 0x0000333C File Offset: 0x0000153C public static void Draw_Hediffs_Race(Listing_Standard gui, Rect inRect, Dictionary <string, int> Hediffs) { gui.Label("Hediffs > Race\n* Select which race will be affected by the selected hediff.", -1f, null); gui.Label("Hediff: [" + Settings.Hediff_Selected.defName + "] " + Settings.Hediff_Selected.label, -1f, null); float num = gui.CurHeight + 10f; gui.ColumnWidth /= 2f; gui.BeginScrollView(new Rect(0f, num, gui.ColumnWidth + 20f, inRect.height - num - 20f), ref Settings.ScrollVector, ref Settings.ScrollRect); foreach (BodyDef bodyDef in DefDatabase <BodyDef> .AllDefs) { try { bool flag = gui.ButtonText("[" + bodyDef.defName + "] " + bodyDef.label, null); if (flag) { Settings.Body_Selected = bodyDef; Settings.ScrollVector = Vector2.zero; Settings.ScrollRect = Rect.zero; } } catch { } } gui.EndScrollView(ref Settings.ScrollRect); gui.ColumnWidth += 20f; gui.NewColumn(); gui.Gap(num); gui.ColumnWidth = 240f; bool flag2 = gui.ButtonText("Clear this Hediff from All Races", null); if (flag2) { foreach (string text in Hediffs.Keys.ToArray <string>()) { bool flag3 = text.Contains(Settings.Hediff_Selected.defName + "\n"); if (flag3) { Hediffs.Remove(text); } } } }
// Token: 0x06000023 RID: 35 RVA: 0x000031C8 File Offset: 0x000013C8 public static void Draw_Hediffs(Listing_Standard gui, Rect inRect, ref Dictionary <string, int> Hediffs) { bool flag = Hediffs == null; if (flag) { Hediffs = new Dictionary <string, int>(); } gui.Label("Hediffs\n* Allows you to give the pawns a chance to have any hediffs to the designated body part upon spawning.", -1f, null); float num = gui.CurHeight + 10f; gui.ColumnWidth /= 2f; gui.BeginScrollView(new Rect(0f, num, gui.ColumnWidth + 20f, inRect.height - num - 20f), ref Settings.ScrollVector, ref Settings.ScrollRect); foreach (HediffDef hediffDef in DefDatabase <HediffDef> .AllDefs) { try { string label = "[" + hediffDef.defName + "] " + hediffDef.label; bool flag2 = gui.ButtonText(label, null); if (flag2) { Settings.Hediff_Selected = hediffDef; Settings.ScrollVector = Vector2.zero; Settings.ScrollRect = Rect.zero; } } catch { } } gui.EndScrollView(ref Settings.ScrollRect); gui.ColumnWidth += 20f; gui.NewColumn(); gui.Gap(num); gui.ColumnWidth = 120f; bool flag3 = gui.ButtonText("Clear All", null); if (flag3) { Hediffs.Clear(); } }
public override void DoSettingsWindowContents(Rect inRect) { Listing_Standard ls = new Listing_Standard(); ls.Begin(inRect); CreateTheAllSetting(); Widgets.Label(new Rect(10f, 20f + ROW_HEIGHT, inRect.width, ROW_HEIGHT), "SECBC_SettingInfo".TC()); ls.BeginScrollView(new Rect(0, SCROLL_AREA_OFFSET_TOP, inRect.width, inRect.height - SCROLL_AREA_OFFSET_TOP), ref ScrollPosition, ref ViewRect); CreateHeaders(); CreateFields(); ls.GetRect(Table.Bottom); // Ensures the scrollview works. ls.EndScrollView(ref ViewRect); ls.End(); Main.ApplySettingsToDefs(); }
public override void FillContents(Listing_Standard standard, Rect inRect) { if (Find.Selector.selected.Count == 0) { Close(); return; } { var rect = standard.GetRect(30); Text.Font = GameFont.Tiny; var searchRect = new Rect(0, 0, rect.width, 20); if (Widgets.ButtonImage(searchRect.LeftPartPixels(20), TexButton.CloseXSmall)) { Close(); } searchString = Widgets.TextField(new Rect(searchRect.position + new Vector2(25, 0), searchRect.size - new Vector2(55, 0)), searchString).ToLower(); } { standard.Gap(5); var scrollRect = new Rect(inRect.position + new Vector2(0, 50), inRect.size - new Vector2(0, 50)); var section = standard.BeginSection_NewTemp(scrollRect.height); standard.EndSection(section); standard.BeginScrollView(new Rect(scrollRect.position + new Vector2(5, 0), scrollRect.size - new Vector2(10, 10)), ref scrollPosition, ref viewRect); Text.Font = GameFont.Tiny; foreach (Def def in defs) { if (def.label.ToLower().Contains(searchString)) { var rect = standard.GetRect(50); Widgets.DefLabelWithIcon(rect, def); if (Widgets.ButtonInvisible(rect)) { onSelect(def); Close(); } } } standard.EndScrollView(ref viewRect); } }
public override void DoSettingsWindowContents(Rect canvas) { Listing_Standard lister = new Listing_Standard(); // lister.ColumnWidth = canvas.width - 80f; float height = canvas.y + 800f; // set height here Rect viewRect = new Rect(0f, 0f, canvas.width - 260f, height); lister.Begin(canvas); lister.BeginScrollView(new Rect(120f, 0f, canvas.width - 240f, canvas.height), ref scrollPosition, ref viewRect); lister.Settings_Header("YieldsHeader".Translate(), Color.clear, GameFont.Medium, TextAnchor.MiddleLeft); lister.GapLine(); lister.Gap(12f); lister.Settings_SliderLabeled(AddFlooredResultToLabel("OYMultiplyAmountLabelSilver".Translate(), Settings.multiplySilverYield, Settings.yieldSilver), "%", ref Settings.multiplySilverYield, 0.0f, 10f, 1f, 1); lister.End(); lister.EndScrollView(ref viewRect); base.DoSettingsWindowContents(canvas); }
public override void DoContent() { base.DoContent(); bool showScrollBar = IsScrollBarVisible(); if (showScrollBar) { #if rw_1_2_or_earlier listing.BeginScrollView(BoundsRounded, ref scrollPosition, ref innerRect); #else listing.Begin(BoundsRounded); #endif } else { listing.Begin(BoundsRounded); } foreach (var element in rows) { var rect = listing.GetRect(element.Bounds.height); element.DoElementContent(); } if (showScrollBar) { #if rw_1_2_or_earlier listing.EndScrollView(ref innerRect); #else listing.End(); #endif } else { listing.End(); } }
public override void DoSettingsWindowContents(Rect inRect) { Listing_Standard listing = new Listing_Standard(); ToolkitPatchLogger.Log("Mod", $"SettingsLoading"); IEnumerable <ThingDef> AllAnimals = DefDatabase <ThingDef> .AllDefs.Where(x => x.race?.Animal ?? false).OrderByDescending(x => x.defName); Rect outRect = new Rect(0, 0, inRect.width, inRect.height - 50f); Rect viewRect = new Rect(0f, 0f, outRect.width - 20, AllAnimals.Count() * 31f); listing.Begin(inRect); listing.BeginScrollView(outRect, ref scrollPosition, ref viewRect); listing.Label("Assign animals to show up in the manhunter event"); listing.Gap(12); foreach (ThingDef animal in AllAnimals) { bool shouldUse = false; if (Settings.AnimalMap.ContainsKey(animal.defName)) { shouldUse = Settings.AnimalMap[animal.defName]; } listing.CheckboxLabeled($"{animal.defName}", ref shouldUse, animal.description); Settings.AnimalMap[animal.defName] = shouldUse; listing.Gap(6); } listing.EndScrollView(ref viewRect); listing.End(); base.DoSettingsWindowContents(inRect); }
public override void DoSettingsWindowContents(Rect canvas) { Listing_Standard lister = new Listing_Standard(); float height = canvas.y + 240f; // set height here Rect viewRect = new Rect(0f, 0f, canvas.width - 260f, height); lister.Begin(canvas); lister.BeginScrollView(new Rect(120f, 0f, canvas.width - 240f, canvas.height), ref scrollPosition, ref viewRect); lister.Settings_Header("PGSHeader".Translate(), Color.clear, GameFont.Medium, TextAnchor.MiddleLeft); lister.GapLine(); lister.Gap(12f); string dayExplain = " " + "SecondsExplain".Translate() + " (" + (PGSModSettings.TimeBetweenChecks / 60 / 15).ToString() + " " + "Speed3Explain".Translate() + ")"; string timeChecks = AddToLabel("TimeBetweenChecks".Translate(), PGSModSettings.TimeBetweenChecks, divideBy: 60, postLabel: dayExplain); lister.Settings_SliderLabeled("SyncRatePerFullGrowth".Translate(), "%", ref PGSModSettings.SyncRatePerFullGrowth, 0f, 0.5f, roundNumber: RoundFloat.Hundredth); lister.Settings_SliderLabeled(timeChecks, string.Empty, ref PGSModSettings.TimeBetweenChecks, 600, 3600, roundNumber: RoundFloat.Tenth); lister.End(); lister.EndScrollView(ref viewRect); base.DoSettingsWindowContents(canvas); }
public static void DoWindowContents(Rect rect) { if (AssignEveryoneWorkTypes == null) { AssignEveryoneWorkTypes = new List <AssignEveryoneWorkType>(DefaultAssignEveryoneWorkTypes); } if (UpdateFrequency == 0) { UpdateFrequency = 24; } var listing = new Listing_Standard(); const int boolSettingsCount = 15; const int numericSettingsCount = 3; var staticSettingsHeight = boolSettingsCount * (Text.LineHeight + listing.verticalSpacing) + numericSettingsCount * (Text.LineHeight * 1.5f + listing.verticalSpacing); var viewRectHeight = staticSettingsHeight + 12f + Text.LineHeight + 35f + Text.LineHeight * 2 + Text.SpaceBetweenLines + AssignEveryoneWorkTypes.Count * 35f; var viewRect = new Rect(rect.x, 0, rect.width - 16f, viewRectHeight); listing.BeginScrollView(rect, ref _scrollPosition, ref viewRect); var optionRect = listing.GetRect(Text.LineHeight * 1.5f); var fieldRect = optionRect; var labelRect = optionRect; fieldRect.xMin = optionRect.xMax - optionRect.width * (1 / 2f); labelRect.xMax = fieldRect.xMin; TooltipHandler.TipRegion(optionRect, Resources.Strings.UpdateIntervalTooltip); Widgets.DrawHighlightIfMouseover(optionRect); Widgets.Label(labelRect, Resources.Strings.UpdateInterval); UpdateFrequency = (int)Widgets.HorizontalSlider(fieldRect.ContractedBy(4f), UpdateFrequency, 1f, 120f, true, UpdateFrequency.ToString(), roundTo: 1); listing.Gap(listing.verticalSpacing); listing.CheckboxLabeled(Resources.Strings.UsePawnLearningRateThresholds, ref UsePawnLearningRateThresholds, Resources.Strings.UsePawnLearningRateThresholdsTooltip); optionRect = listing.GetRect(Text.LineHeight * 1.5f); fieldRect = optionRect; labelRect = optionRect; fieldRect.xMin = optionRect.xMax - optionRect.width * (1 / 2f); labelRect.xMax = fieldRect.xMin; TooltipHandler.TipRegion(optionRect, Resources.Strings.MajorLearningRateThresholdTooltip); Widgets.DrawHighlightIfMouseover(optionRect); Widgets.Label(labelRect, Resources.Strings.MajorLearningRateThreshold); MajorLearningRateThreshold = Widgets.HorizontalSlider(fieldRect.ContractedBy(4f), MajorLearningRateThreshold, MinorLearningRateThreshold, UsePawnLearningRateThresholds ? 1f : 2f, true, MajorLearningRateThreshold.ToStringPercent()); listing.Gap(listing.verticalSpacing); optionRect = listing.GetRect(Text.LineHeight * 1.5f); fieldRect = optionRect; labelRect = optionRect; fieldRect.xMin = optionRect.xMax - optionRect.width * (1 / 2f); labelRect.xMax = fieldRect.xMin; TooltipHandler.TipRegion(optionRect, Resources.Strings.MinorLearningRateThresholdTooltip); Widgets.DrawHighlightIfMouseover(optionRect); Widgets.Label(labelRect, Resources.Strings.MinorLearningRateThreshold); MinorLearningRateThreshold = Widgets.HorizontalSlider(fieldRect.ContractedBy(4f), MinorLearningRateThreshold, 0.01f, MajorLearningRateThreshold, true, MinorLearningRateThreshold.ToStringPercent()); listing.Gap(listing.verticalSpacing); listing.CheckboxLabeled(Resources.Strings.UseDedicatedWorkers, ref UseDedicatedWorkers, Resources.Strings.UseDedicatedWorkersTooltip); listing.CheckboxLabeled(Resources.Strings.RecoveringPawnsUnfitForWork, ref RecoveringPawnsUnfitForWork, Resources.Strings.RecoveringPawnsUnfitForWorkTooltip); listing.CheckboxLabeled(Resources.Strings.AssignAllWorkTypes, ref AssignAllWorkTypes, Resources.Strings.AssignAllWorkTypesTooltip); listing.CheckboxLabeled(Resources.Strings.AssignWorkToIdlePawns, ref AssignWorkToIdlePawns, Resources.Strings.AssignWorkToIdlePawnsTooltip); listing.CheckboxLabeled(Resources.Strings.SpecialRulesForDoctors, ref SpecialRulesForDoctors, Resources.Strings.SpecialRulesForDoctorsTooltip); listing.Indent(16f); listing.ColumnWidth -= 16f; optionRect = listing.GetRect(Text.LineHeight); Widgets.DrawHighlightIfMouseover(optionRect); TooltipHandler.TipRegion(optionRect, Resources.Strings.AssignMultipleDoctorsTooltip); Widgets.CheckboxLabeled(optionRect, Resources.Strings.AssignMultipleDoctors, ref AssignMultipleDoctors, !SpecialRulesForDoctors); listing.Gap(listing.verticalSpacing); listing.Indent(16f); listing.ColumnWidth -= 16f; optionRect = listing.GetRect(Text.LineHeight); Widgets.DrawHighlightIfMouseover(optionRect); TooltipHandler.TipRegion(optionRect, Resources.Strings.CountDownedColonistsTooltip); Widgets.CheckboxLabeled(optionRect, Resources.Strings.CountDownedColonists, ref CountDownedColonists, !(SpecialRulesForDoctors && AssignMultipleDoctors)); listing.Gap(listing.verticalSpacing); optionRect = listing.GetRect(Text.LineHeight); Widgets.DrawHighlightIfMouseover(optionRect); TooltipHandler.TipRegion(optionRect, Resources.Strings.CountDownedGuestsTooltip); Widgets.CheckboxLabeled(optionRect, Resources.Strings.CountDownedGuests, ref CountDownedGuests, !(SpecialRulesForDoctors && AssignMultipleDoctors)); listing.Gap(listing.verticalSpacing); optionRect = listing.GetRect(Text.LineHeight); Widgets.DrawHighlightIfMouseover(optionRect); TooltipHandler.TipRegion(optionRect, Resources.Strings.CountDownedPrisonersTooltip); Widgets.CheckboxLabeled(optionRect, Resources.Strings.CountDownedPrisoners, ref CountDownedPrisoners, !(SpecialRulesForDoctors && AssignMultipleDoctors)); listing.Gap(listing.verticalSpacing); optionRect = listing.GetRect(Text.LineHeight); Widgets.DrawHighlightIfMouseover(optionRect); TooltipHandler.TipRegion(optionRect, Resources.Strings.CountDownedAnimalsTooltip); Widgets.CheckboxLabeled(optionRect, Resources.Strings.CountDownedAnimals, ref CountDownedAnimals, !(SpecialRulesForDoctors && AssignMultipleDoctors)); listing.Gap(listing.verticalSpacing); listing.Outdent(32f); listing.ColumnWidth += 32f; listing.CheckboxLabeled(Resources.Strings.SpecialRulesForHunters, ref SpecialRulesForHunters, Resources.Strings.SpecialRulesForHuntersTooltip); listing.Indent(16f); listing.ColumnWidth -= 16f; optionRect = listing.GetRect(Text.LineHeight); Widgets.DrawHighlightIfMouseover(optionRect); TooltipHandler.TipRegion(optionRect, Resources.Strings.AllowMeleeHuntersTooltip); Widgets.CheckboxLabeled(optionRect, Resources.Strings.AllowMeleeHunters, ref AllowMeleeHunters, !SpecialRulesForHunters); listing.Gap(listing.verticalSpacing); listing.Outdent(16f); listing.ColumnWidth += 16f; listing.CheckboxLabeled(Resources.Strings.ManageWorkSchedule, ref ManageWorkSchedule, Resources.Strings.ManageWorkScheduleTooltip); listing.CheckboxLabeled(Resources.Strings.VerboseLogging, ref VerboseLogging, Resources.Strings.VerboseLoggingTooltip); listing.GapLine(); DoAssignEveryoneWorkTypesArea(listing); listing.EndScrollView(ref viewRect); }
private static Rect viewRect = new Rect(0, 0, 100f, 10000f); // OMG OMG OMG I got scrollView in Listing_Standard to work! public static void DoSettingsWindowContents(Rect inRect) { Rect outerRect = inRect.ContractedBy(10f); Widgets.DrawHighlight(outerRect); Listing_Standard l = new Listing_Standard(GameFont.Medium); // my tiny high-resolution monitor :p l.BeginScrollView(outerRect, ref scrollPosition, ref viewRect); //l.GapLine(); // Who can haul to Deep Storage (robots, animals, etc) l.Label("LWMDShaulToStorageExplanation".Translate()); l.CheckboxLabeled("LWMDSrobotsCanUse".Translate(), ref robotsCanUse, "LWMDSrobotsCanUseDesc".Translate()); string [] intLabels = { "LWM_DS_Int_Animal".Translate(), "LWM_DS_Int_ToolUser".Translate(), "LWM_DS_Int_Humanlike".Translate(), }; // Setting to allow bionic racoons to haul to Deep Storage: l.EnumRadioButton <Intelligence>(ref Patch_IsGoodStoreCell.NecessaryIntelligenceToUseDeepStorage, "LWM_DS_IntTitle".Translate(), "LWM_DS_IntDesc".Translate(), false, intLabels); l.GapLine(); //Storing Delay Settings l.Label("LWMDSstoringDelaySettings".Translate()); l.Label("LWMDSstoringDelayExplanation".Translate()); l.CheckboxLabeled("LWMDSstoringTakesTimeLabel".Translate(), ref storingTakesTime, "LWMDSstoringTakesTimeDesc".Translate()); l.Label("LWMDSstoringGlobalScale".Translate((storingGlobalScale * 100f).ToString("0."))); storingGlobalScale = l.Slider(storingGlobalScale, 0f, 2f); l.CheckboxLabeled("LWMDSstoringTimeConsidersStackSize".Translate(), ref storingTimeConsidersStackSize, "LWMDSstoringTimeConsidersStackSizeDesc".Translate()); // Reset storing delay settings to defaults if (l.ButtonText("LWMDSstoringDelaySettings".Translate() + ": " + "ResetBinding".Translate() /*Reset to Default*/)) { storingTakesTime = true; storingGlobalScale = 1f; storingTimeConsidersStackSize = true; } l.GapLine(); // default Storing Priority if (l.ButtonTextLabeled("LWM_DS_defaultStoragePriority".Translate(), defaultStoragePriority.Label())) { List <FloatMenuOption> mlist = new List <FloatMenuOption>(); foreach (StoragePriority p in Enum.GetValues(typeof(StoragePriority))) { mlist.Add(new FloatMenuOption(p.Label(), delegate() { defaultStoragePriority = p; foreach (ThingDef d in AllDeepStorageUnits) { d.building.defaultStorageSettings.Priority = p; } })); } Find.WindowStack.Add(new FloatMenu(mlist)); } l.GapLine(); l.Label("LWM_DS_userInterface".Translate()); l.CheckboxLabeled("LWM_DS_useEjectButton".Translate(), ref useEjectButton, "LWM_DS_useEjectButtonDesc".Translate()); //TODO:: l.CheckboxLabeled("LWM_DS_useDSRightClick".Translate(), ref useDeepStorageRightClickLogic, "LWM_DS_useDSRightClickDesc".Translate()); // Architect Menu: l.GapLine(); //Architect Menu location /* * // string archLabel= * // if (archLabel==n * // l.Label("LWMDSarchitectMenuSettings".Translate()); * if (architectMenuDesigCatDef==architectMenuDefaultDesigCatDef) { * // if (architectLWM_DS_Storage_DesignationCatDef==null) { * // Log.Error("LWM.DeepStorage: architectLWM_DS_Storage_DesignationCatDef was null; this should never happen."); * // tmp="ERROR"; * // } else { * // tmp=architectCurrentDesignationCatDef.LabelCap; // todo: (default) * // } * archLabel+=" ("+ * } else { * var x=DefDatabase<DesignationCategoryDef>.GetNamed(architectMenuDesignationCatDefDefName, false); * if (x==null) { * // TODO * } * tmp=x.LabelCap; // todo: (<menuname>) * }*/ if (l.ButtonTextLabeled((architectMenuDefaultDesigCatDef + "_ArchitectMenuSettings").Translate(), // Label // value of dropdown button: DefDatabase <DesignationCategoryDef> .GetNamed(architectMenuDesigCatDef)?.LabelCap ?? "--ERROR--")) // error display text // , DefDatabase<DesigarchitectMenuDesigCatDef) ) { // Float menu for architect Menu choice: { List <FloatMenuOption> alist = new List <FloatMenuOption>(); var arl = DefDatabase <DesignationCategoryDef> .AllDefsListForReading; //all reading list //oops: // alist.Add(new FloatMenuOption(DefDatabase<DesignationCategoryDef>.GetNamed(architectMenuDefaultDesigCatDef).LabelCap alist.Add(new FloatMenuOption(architectMenuActualDef.LabelCap + " (" + "default".Translate() + " - " + architectMenuActualDef.defName + ")", delegate() { Utils.Mess(Utils.DBF.Settings, "Architect Menu placement set to default Storage"); ArchitectMenu_ChangeLocation(architectMenuDefaultDesigCatDef); // architectCurrentDesignationCatDef=architectLWM_DS_Storage_DesignationCatDef; // architectMenuDesignationCatDefDefName="LWM_DS_Storage"; // // SettingsChanged(); }, MenuOptionPriority.Default, null, null, 0f, null, null)); // Architect Menu: You may remove the "Furniture" references here if you wish alist.Add(new FloatMenuOption(DefDatabase <DesignationCategoryDef> .GetNamed("Furniture").LabelCap + " (Furniture)", // I know what this one's defName is! delegate() { Utils.Mess(Utils.DBF.Settings, "Architect Menu placement set to Furniture."); ArchitectMenu_ChangeLocation("Furniture"); }, MenuOptionPriority.Default, null, null, 0f, null, null)); foreach (var adcd in arl) //architect designation cat def { if (adcd.defName != architectMenuDefaultDesigCatDef && adcd.defName != "Furniture") { alist.Add(new FloatMenuOption(adcd.LabelCap + " (" + adcd.defName + ")", delegate() { Utils.Mess(Utils.DBF.Settings, "Architect Menu placement set to " + adcd); ArchitectMenu_ChangeLocation(adcd.defName); }, MenuOptionPriority.Default, null, null, 0f, null, null)); } } Find.WindowStack.Add(new FloatMenu(alist)); } l.CheckboxLabeled((architectMenuDefaultDesigCatDef + "_ArchitectMenuAlwaysShowCategory").Translate(), ref architectMenuAlwaysShowCategory, (architectMenuDefaultDesigCatDef + "_ArchitectMenuAlwaysShowDesc").Translate()); // Do we always display? If so, display: if (architectMenuAlwaysShowCategory != architectMenuAlwaysShowTmp) { if (architectMenuAlwaysShowCategory) { ArchitectMenu_Show(); } else if (architectMenuDesigCatDef != architectMenuDefaultDesigCatDef) { ArchitectMenu_Hide(); } architectMenuAlwaysShowTmp = architectMenuAlwaysShowCategory; } l.CheckboxLabeled((architectMenuDefaultDesigCatDef + "_ArchitectMenuMoveALL").Translate(), ref architectMenuMoveALLStorageItems, (architectMenuDefaultDesigCatDef + "_ArchitectMenuMoveALLDesc").Translate()); if (architectMenuMoveALLStorageItems != architectMenuMoveALLTmp) { // If turning off "all things in Storage", make sure to // dump all the items into Furniture, to make sure they // can at least be found somewhere. string ctmp = architectMenuDesigCatDef; if (architectMenuMoveALLStorageItems == false) { architectMenuMoveALLStorageItems = true; ArchitectMenu_ChangeLocation("Furniture"); architectMenuMoveALLStorageItems = false; } ArchitectMenu_ChangeLocation(ctmp); architectMenuMoveALLTmp = architectMenuMoveALLStorageItems; } // finished drawing settings for Architect Menu // ------------------- // Allow player to turn of Over-Capacity check. // Turn it off automatically for Project RimFactory and Extended Storage // Note: should turn it off automatically for any other storage mods, too l.GapLine(); Color origColor = GUI.color; // make option gray if ignored var tmpMod = ModLister.GetActiveModWithIdentifier("spdskatr.projectrimfactory"); if (tmpMod != null) { GUI.color = Color.gray; // This setting is disabled due to mod Extended Storage l.Label("LWMDSignoredDueTo".Translate(tmpMod.Name)); } if ((tmpMod = ModLister.GetActiveModWithIdentifier("Skullywag.ExtendedStorage")) != null) { GUI.color = Color.gray; l.Label("LWMDSignoredDueTo".Translate(tmpMod.Name)); } l.CheckboxLabeled("LWMDSoverCapacityCheck".Translate(), ref checkOverCapacity, "LWMDSoverCapacityCheckDesc".Translate()); GUI.color = origColor; // Per DSU settings - let players change them around... l.GapLine(); if (allowPerDSUSettings) { if (l.ButtonText("LWMDSperDSUSettings".Translate())) { Find.WindowStack.Add(new Dialog_DS_Settings()); } } else { l.CheckboxLabeled("LWMDSperDSUturnOn".Translate(), ref allowPerDSUSettings, "LWMDSperDSUturnOnDesc".Translate()); } l.GapLine(); // End. Finis. Looks pretty having a line at the end. l.EndScrollView(ref viewRect); }
public override void DoWindowContents(Rect inRect) { try { Text.Font = GameFont.Small; GUI.color = Color.white; Widgets.Label(new Rect(0, 0, 200, 50), "ChangeDresser.CustomOutfits".Translate()); int y = HEIGHT + Y_BUFFER; int x = 0; x = this.DrawPawnSelection(x, y); x = this.DrawOutfitSelection(x, y); // New Outfit button if (this.outfitTracker != null && Widgets.ButtonText(new Rect(x, y, 75, 30), "ChangeDresser.New".Translate())) { this.customOutfit = new CustomOutfit(); this.customOutfit.Name = ""; this.UpdateAvailableApparel(); } y += HEIGHT + Y_BUFFER; if (this.customOutfit != null) { Widgets.Label(new Rect(0, y, 60, 30), "ChangeDresser.OutfitName".Translate() + ":"); this.customOutfit.Name = Widgets.TextField(new Rect(70, y, 100, 30), this.customOutfit.Name); x = this.DrawUseInBattle(200, y); x = this.DrawBaseOutfit(x, y); y += HEIGHT + Y_BUFFER; } float height = inRect.height - y; height -= HEIGHT * 3; height -= Y_BUFFER * 2; this.DrawAvailableApparel(0, y, 350, height); this.DrawOutfitApparel(360, y, 710, height); y += (int)height; this.DrawBottomButtons(x, (int)inRect.yMax - 40, inRect.width); // Filter start y = 50; Widgets.Label(new Rect(750, y, 100, 32), "Filter".Translate()); y += 40; Widgets.Label(new Rect(775, y, 75, 32), "ChangeDresser.Name".Translate()); this.apparelFilter.Name = Widgets.TextField(new Rect(855, y - 3, 120, 32), this.apparelFilter.Name); y += 35; if (Widgets.ButtonText(new Rect(775, y, 200, 32), this.apparelFilter.LayerString)) { List <FloatMenuOption> options = new List <FloatMenuOption>(); options.Add(new FloatMenuOption(this.apparelFilter.GetLayerLabel("ChangeDresser.All".Translate()), delegate { this.apparelFilter.Layer = null; this.apparelFilter.LayerString = this.apparelFilter.GetLayerLabel("ChangeDresser.All".Translate()); }, MenuOptionPriority.Default, null, null, 0f, null, null)); foreach (ApparelLayerDef d in DefDatabase <ApparelLayerDef> .AllDefs) { options.Add(new FloatMenuOption(d.defName.Translate(), delegate { this.apparelFilter.Layer = d; this.apparelFilter.LayerString = this.apparelFilter.GetLayerLabel(d.defName.Translate()); }, MenuOptionPriority.Default, null, null, 0f, null, null)); } Find.WindowStack.Add(new FloatMenu(options)); } y += 35; if (Widgets.ButtonText(new Rect(775, y, 200, 32), this.apparelFilter.QualityString)) { List <FloatMenuOption> options = new List <FloatMenuOption>(); options.Add(new FloatMenuOption(this.apparelFilter.GetQualityLabel("ChangeDresser.All".Translate()), delegate { this.apparelFilter.Quality = QualityRange.All; this.apparelFilter.QualityString = this.apparelFilter.GetQualityLabel("ChangeDresser.All".Translate()); }, MenuOptionPriority.Default, null, null, 0f, null, null)); foreach (QualityCategory q in Enum.GetValues(typeof(QualityCategory))) { options.Add(new FloatMenuOption(q.ToString(), delegate { this.apparelFilter.Quality.min = q; this.apparelFilter.QualityString = this.apparelFilter.GetQualityLabel(q.GetLabel()); }, MenuOptionPriority.Default, null, null, 0f, null, null)); } Find.WindowStack.Add(new FloatMenu(options)); } y += 35; Listing_Standard ls = new Listing_Standard(); ls.Begin(new Rect(775, y, 216, inRect.height - y)); Rect view = new Rect(0, 0, 200, 64 * this.apparelFilter.StatDefs.Count); ls.BeginScrollView( new Rect(0, 0, 216, inRect.height - y), ref filterScrollPosition, ref view); ls.Label("HitPointsBasic".ToString() + " " + (int)this.apparelFilter.HP); this.apparelFilter.HP = ls.Slider(this.apparelFilter.HP, 0, 100); for (int i = 0; i < this.apparelFilter.StatDefs.Count; ++i) { StatDefValue sdv = this.apparelFilter.StatDefs[i]; ls.Label(sdv.Def.label + " " + sdv.Value.ToString("n2"), 28); float f = sdv.Value; f = ls.Slider(f, 0, sdv.Max); if (sdv.Value != f) { sdv.Value = f; this.apparelFilter.StatDefs[i] = sdv; } } ls.EndScrollView(ref view); ls.End(); } catch (Exception e) { Log.Error(this.GetType().Name + " closed due to: " + e.GetType().Name + " " + e.Message); Messages.Message(this.GetType().Name + " closed due to: " + e.GetType().Name + " " + e.Message, MessageTypeDefOf.NegativeEvent); base.Close(); } }
public override void DoSettingsWindowContents(Rect rect) { GUI.BeginGroup(new Rect(0, 60, 600, 200)); { Text.Font = GameFont.Medium; Widgets.Label(new Rect(0, 0, 300, 40), "ChangeResearchSpeed.Global".Translate()); Text.Font = GameFont.Small; Widgets.Label(new Rect(0, 40, 300, 20), "ChangeResearchSpeed.Factor".Translate() + ":"); Settings.GlobalFactor.AsString = Widgets.TextField(new Rect(320, 40, 100, 20), Settings.GlobalFactor.AsString); if (Widgets.ButtonText(new Rect(320, 65, 100, 20), "ChangeResearchSpeed.Apply".Translate())) { if (Settings.GlobalFactor.ValidateInput()) { base.GetSettings <Settings>().Write(); Messages.Message("ChangeResearchSpeed.Global".Translate() + " " + "ChangeResearchSpeed.ResearchTimesUpdated".Translate(), MessageTypeDefOf.PositiveEvent); } } if (Current.Game != null) { Text.Font = GameFont.Medium; Widgets.Label(new Rect(0, 90, 300, 40), "ChangeResearchSpeed.CurrentGame".Translate()); Text.Font = GameFont.Small; Widgets.Label(new Rect(0, 130, 300, 20), "ChangeResearchSpeed.Factor".Translate() + ":"); Settings.GameFactor.AsString = Widgets.TextField(new Rect(320, 130, 100, 20), Settings.GameFactor.AsString); if (Widgets.ButtonText(new Rect(320, 155, 100, 20), "ChangeResearchSpeed.Apply".Translate())) { if (Settings.GameFactor.ValidateInput()) { WorldComp.UpdateFactor(Settings.GameFactor.AsFloat); Messages.Message( "ChangeResearchSpeed.CurrentGame".Translate() + " " + "ChangeResearchSpeed.ResearchTimesUpdated".Translate(), MessageTypeDefOf.PositiveEvent); } } } } GUI.EndGroup(); Listing_Standard l = new Listing_Standard(GameFont.Small); l.BeginScrollView(new Rect(0, 300, rect.width, rect.height - 300), ref scroll, ref view); //l.Begin(new Rect(0, 300, 400, 300)); l.ColumnWidth = rect.width - 100; l.CheckboxLabeled( "ChangeResearchSpeed.AllowTechAdvance".Translate(), ref Settings.AllowTechAdvance, "ChangeResearchSpeed.AllowTechAdvanceToolTip".Translate()); if (Settings.AllowTechAdvance) { l.CheckboxLabeled("ChangeResearchSpeed.StaticNumberResearchPerTier".Translate(), ref Settings.StaticNumberResearchPerTier); if (Settings.StaticNumberResearchPerTier) { neolithicInput = l.TextEntryLabeled("ChangeResearchSpeed.NeolithicNeeded".Translate() + ": ", neolithicInput); medievalInput = l.TextEntryLabeled("ChangeResearchSpeed.MedievalNeeded".Translate() + ": ", medievalInput); industrialInput = l.TextEntryLabeled("ChangeResearchSpeed.IndustrialNeeded".Translate() + ": ", industrialInput); spacerInput = l.TextEntryLabeled("ChangeResearchSpeed.SpacerNeeded".Translate() + ": ", spacerInput); } Rect c = l.GetRect(32f); if (Widgets.ButtonText(new Rect(c.xMin, c.yMin, 100, c.height), "Confirm".Translate())) { if (!int.TryParse(neolithicInput, out Settings.NeolithicNeeded)) { Messages.Message("ChangeResearchSpeed.InvalidNeolithicInput".Translate(), MessageTypeDefOf.RejectInput); return; } if (!int.TryParse(medievalInput, out Settings.MedievalNeeded)) { Messages.Message("ChangeResearchSpeed.InvalidMedievalInput".Translate(), MessageTypeDefOf.RejectInput); return; } if (!int.TryParse(industrialInput, out Settings.IndustrialNeeded)) { Messages.Message("ChangeResearchSpeed.InvalidIndustrialInput".Translate(), MessageTypeDefOf.RejectInput); return; } if (!int.TryParse(spacerInput, out Settings.SpacerNeeded)) { Messages.Message("ChangeResearchSpeed.InvalidSpacerInput".Translate(), MessageTypeDefOf.RejectInput); return; } Messages.Message("ChangeResearchSpeed.ResearchNeededSet".Translate(), MessageTypeDefOf.PositiveEvent); } if (Widgets.ButtonText(new Rect(c.xMax - 100, c.yMin, 100, c.height), "ChangeResearchSpeed.Default".Translate())) { Settings.NeolithicNeeded = Settings.DEFAULT_NEOLITHIC_NEEDED; Settings.MedievalNeeded = Settings.DEFAULT_MEDIEVAL_NEEDED; Settings.IndustrialNeeded = Settings.DEFAULT_INDUSTRIAL_NEEDED; Settings.SpacerNeeded = Settings.DEFAULT_SPACER_NEEDED; neolithicInput = Settings.NeolithicNeeded.ToString(); medievalInput = Settings.MedievalNeeded.ToString(); industrialInput = Settings.IndustrialNeeded.ToString(); spacerInput = Settings.SpacerNeeded.ToString(); Messages.Message("ChangeResearchSpeed.ResearchNeededDefaulted".Translate(), MessageTypeDefOf.PositiveEvent); } } l.CheckboxLabeled( "ChangeResearchSpeed.ChangeBaseCosts".Translate(), ref Settings.ChangeBaseCosts, "ChangeResearchSpeed.ChangeBaseCostsToolTip".Translate()); if (Settings.ChangeBaseCosts) { if (techValues == null) { techValues = new Dictionary <string, string>(); } var techs = ResearchTimeUtil.GetResearchBaseCosts(); foreach (var tech in techs.Keys) { var techDef = ResearchTimeUtil.GetResearchDef(tech); if (techDef != null) { float cost; string value; if ((value = techValues.TryGetValue(tech, null)) == null) { if (Settings.ResearchBaseCosts.TryGetValue(tech, out cost)) { value = ((int)cost).ToString(); } else { value = techDef.baseCost.ToString(); } techValues.Add(tech, value); } value = l.TextEntryLabeled(techDef.LabelCap + "(default: " + techs[tech] + ")", value); int costInt; if (int.TryParse(value, out costInt) && costInt >= 100) { if (costInt != (int)techDef.baseCost) { ResearchTimeUtil.ChangeBaseCost(techDef, costInt); } if (Settings.ResearchBaseCosts.ContainsKey(tech)) { Settings.ResearchBaseCosts[tech] = costInt; } else { Settings.ResearchBaseCosts.Add(tech, costInt); } } techValues[tech] = value; } } } //l.End(); l.EndScrollView(ref view); }
public void DoWindowContents(Rect rect) { Listing_Standard options = new Listing_Standard(); Color defaultColor = new Color(100, 65, 164); options.Begin(rect); Text.Font = GameFont.Medium; Text.Anchor = TextAnchor.MiddleCenter; GUI.color = Color.magenta; options.Label("TwitchToolkitSettingsTitle".Translate()); GUI.color = defaultColor; Text.Font = GameFont.Small; Text.Anchor = TextAnchor.UpperLeft; options.GapLine(); options.Gap(); options.ColumnWidth = (rect.width / 3) - 20f; // Left column if (options.ButtonText("TwitchToolkitChat".Translate())) { currentTab = SettingsTab.Chat; } if (options.ButtonText("TwitchToolkitCoins".Translate())) { currentTab = SettingsTab.Coins; } if (options.ButtonText("Storyteller")) { currentTab = SettingsTab.Storyteller; } if (options.ButtonText("Patches")) { currentTab = SettingsTab.Patches; } options.Gap(); if (options.ButtonText("Wiki")) { Application.OpenURL("https://github.com/hodldeeznuts/twitchtoolkit/wiki"); } // Middle column options.NewColumn(); options.Gap(53f); if (options.ButtonText("TwitchToolkitStore".Translate())) { currentTab = SettingsTab.Store; } if (options.ButtonText("TwitchToolkitKarma".Translate())) { currentTab = SettingsTab.Karma; } if (options.ButtonText("TwitchToolkitCommands".Translate())) { currentTab = SettingsTab.Commands; } if (options.ButtonText("TwitchToolkitCooldowns".Translate())) { currentTab = SettingsTab.Cooldowns; } // Right Column options.NewColumn(); options.Gap(53f); if (options.ButtonText("")) { currentTab = SettingsTab.Options; } if (options.ButtonText("TwitchToolkitViewers".Translate())) { currentTab = SettingsTab.Viewers; } if (options.ButtonText("")) { currentTab = SettingsTab.Integrations; } if (options.ButtonText("")) { currentTab = SettingsTab.Votes; } options.End(); Listing_Standard gapline = new Listing_Standard(); Rect gapliRect = new Rect(rect.x, rect.y, rect.width, rect.height); gapline.Begin(gapliRect); gapline.Gap(); gapline.End(); Rect optionsRect = rect; optionsRect.y = 145; optionsRect.height = 620f; optionsRect.yMax = 765f; Rect scrollViewer = new Rect(optionsRect); scrollViewer.height -= 145f; scrollViewer.yMax -= 145f; Rect viewRect = new Rect(0, 0, rect.width - 125f, 430f); if (currentTab == SettingsTab.Chat) { viewRect.height += 150f; } if (currentTab == SettingsTab.Storyteller) { viewRect.height += 400f; } if (currentTab == SettingsTab.Karma) { viewRect.height += 250f; } if (currentTab == SettingsTab.Viewers) { viewRect.height += 80f; } Listing_Standard optionsListing = new Listing_Standard(); optionsListing.Begin(optionsRect); optionsListing.BeginScrollView(scrollViewer, ref scrollVector2, ref viewRect); switch (currentTab) { case SettingsTab.Coins: Settings_Coins.DoWindowContents(viewRect, optionsListing); break; case SettingsTab.Storyteller: Settings_Storyteller.DoWindowContents(viewRect, optionsListing); break; case SettingsTab.Patches: Settings_Patches.DoWindowContents(viewRect, optionsListing); break; case SettingsTab.Store: Settings_Store.DoWindowContents(viewRect, optionsListing); break; case SettingsTab.Karma: Settings_Karma.DoWindowContents(viewRect, optionsListing); break; case SettingsTab.Commands: Settings_Commands.DoWindowContents(viewRect, optionsListing); break; case SettingsTab.Cooldowns: Settings_Cooldowns.DoWindowContents(viewRect, optionsListing); break; //case SettingsTab.Options: // Settings_Options.DoWindowContents(viewRect, optionsListing); // break; case SettingsTab.Viewers: Settings_Viewers.DoWindowContents(viewRect, optionsListing); break; //case SettingsTab.Integrations: // Settings_Integrations.DoWindowContents(viewRect, optionsListing); // break; //case SettingsTab.Votes: // Settings_VoteWeights.DoWindowContents(viewRect, optionsListing); // break; default: Settings_Chat.DoWindowContents(viewRect, optionsListing); break; } optionsListing.EndScrollView(ref viewRect); optionsListing.End(); }
public static void DoWindowContents(Rect inRect) { //30f for top page description and bottom close button Rect outRect = new Rect(0f, 30f, inRect.width, inRect.height - 30f); //-16 for slider, height_modifier - additional height for options Rect viewRect = new Rect(0f, 0f, inRect.width - 16f, inRect.height + height_modifier); Listing_Standard listingStandard = new Listing_Standard(); listingStandard.maxOneColumn = true; listingStandard.ColumnWidth = viewRect.width / 2.05f; listingStandard.BeginScrollView(outRect, ref scrollPosition, ref viewRect); listingStandard.Begin(viewRect); listingStandard.Gap(4f); listingStandard.CheckboxLabeled("RJWH_pregnancy".Translate(), ref humanlike_pregnancy_enabled, "RJWH_pregnancy_desc".Translate()); if (humanlike_pregnancy_enabled) { listingStandard.Gap(5f); listingStandard.CheckboxLabeled(" " + "genetic_trait_filter".Translate(), ref trait_filtering_enabled, "genetic_trait_filter_desc".Translate()); } else { trait_filtering_enabled = false; } listingStandard.Gap(5f); listingStandard.CheckboxLabeled("RJWA_pregnancy".Translate(), ref animal_pregnancy_enabled, "RJWA_pregnancy_desc".Translate()); listingStandard.Gap(5f); listingStandard.CheckboxLabeled("RJWB_pregnancy".Translate(), ref bestial_pregnancy_enabled, "RJWB_pregnancy_desc".Translate()); listingStandard.Gap(5f); listingStandard.CheckboxLabeled("RJWI_pregnancy".Translate(), ref insect_pregnancy_enabled, "RJWI_pregnancy_desc".Translate()); listingStandard.Gap(5f); listingStandard.CheckboxLabeled("egg_pregnancy_implant_anyone".Translate(), ref egg_pregnancy_implant_anyone, "egg_pregnancy_implant_anyone_desc".Translate()); listingStandard.Gap(5f); listingStandard.CheckboxLabeled("egg_pregnancy_fertilize_anyone".Translate(), ref egg_pregnancy_fertilize_anyone, "egg_pregnancy_fertilize_anyone_desc".Translate()); listingStandard.Gap(12f); listingStandard.CheckboxLabeled("UseParentMethod".Translate(), ref use_parent_method, "UseParentMethod_desc".Translate()); listingStandard.Gap(5f); if (use_parent_method) { if (humanlike_DNA_from_mother == 0.0f) { listingStandard.Label(" " + "OffspringLookLikeTheirMother".Translate() + ": " + "AlwaysFather".Translate(), -1f, "OffspringLookLikeTheirMother_desc".Translate()); humanlike_DNA_from_mother = listingStandard.Slider(humanlike_DNA_from_mother, 0.0f, 1.0f); } else if (humanlike_DNA_from_mother == 1.0f) { listingStandard.Label(" " + "OffspringLookLikeTheirMother".Translate() + ": " + "AlwaysMother".Translate(), -1f, "OffspringLookLikeTheirMother_desc".Translate()); humanlike_DNA_from_mother = listingStandard.Slider(humanlike_DNA_from_mother, 0.0f, 1.0f); } else { int value = (int)(humanlike_DNA_from_mother * 100); listingStandard.Label(" " + "OffspringLookLikeTheirMother".Translate() + ": " + value + "%", -1f, "OffspringLookLikeTheirMother_desc".Translate()); humanlike_DNA_from_mother = listingStandard.Slider(humanlike_DNA_from_mother, 0.0f, 1.0f); } if (bestial_DNA_from_mother == 0.0f) { listingStandard.Label(" " + "OffspringIsHuman".Translate() + ": " + "AlwaysFather".Translate(), -1f, "OffspringIsHuman_desc".Translate()); bestial_DNA_from_mother = listingStandard.Slider(bestial_DNA_from_mother, 0.0f, 1.0f); } else if (bestial_DNA_from_mother == 1.0f) { listingStandard.Label(" " + "OffspringIsHuman".Translate() + ": " + "AlwaysMother".Translate(), -1f, "OffspringIsHuman_desc".Translate()); bestial_DNA_from_mother = listingStandard.Slider(bestial_DNA_from_mother, 0.0f, 1.0f); } else { int value = (int)(bestial_DNA_from_mother * 100); listingStandard.Label(" " + "OffspringIsHuman".Translate() + ": " + value + "%", -1f, "OffspringIsHuman_desc".Translate()); bestial_DNA_from_mother = listingStandard.Slider(bestial_DNA_from_mother, 0.0f, 1.0f); } if (bestiality_DNA_inheritance == 0.0f) { listingStandard.Label(" " + "OffspringIsHuman2".Translate() + ": " + "AlwaysBeast".Translate(), -1f, "OffspringIsHuman2_desc".Translate()); bestiality_DNA_inheritance = listingStandard.Slider(bestiality_DNA_inheritance, 0.0f, 1.0f); } else if (bestiality_DNA_inheritance == 1.0f) { listingStandard.Label(" " + "OffspringIsHuman2".Translate() + ": " + "AlwaysHumanlike".Translate(), -1f, "OffspringIsHuman2_desc".Translate()); bestiality_DNA_inheritance = listingStandard.Slider(bestiality_DNA_inheritance, 0.0f, 1.0f); } else { listingStandard.Label(" " + "OffspringIsHuman2".Translate() + ": <--->", -1f, "OffspringIsHuman2_desc".Translate()); bestiality_DNA_inheritance = listingStandard.Slider(bestiality_DNA_inheritance, 0.0f, 1.0f); } } else { humanlike_DNA_from_mother = 100; } listingStandard.CheckboxLabeled("MechanoidImplanting".Translate(), ref mechanoid_pregnancy_enabled, "MechanoidImplanting_desc".Translate()); listingStandard.Gap(5f); listingStandard.CheckboxLabeled("ComplexImpregnation".Translate(), ref complex_interspecies, "ComplexImpregnation_desc".Translate()); listingStandard.Gap(10f); GUI.contentColor = Color.cyan; listingStandard.Label("Base pregnancy chances:"); listingStandard.Gap(5f); if (humanlike_pregnancy_enabled) { listingStandard.Label(" Humanlike/Humanlike (same race): " + humanlike_impregnation_chance + "%"); } else { listingStandard.Label(" Humanlike/Humanlike (same race): -DISABLED-"); } if (humanlike_pregnancy_enabled && !(humanlike_impregnation_chance * interspecies_impregnation_modifier <= 0.0f) && !complex_interspecies) { listingStandard.Label(" Humanlike/Humanlike (different race): " + Math.Round(humanlike_impregnation_chance * interspecies_impregnation_modifier, 1) + "%"); } else if (complex_interspecies) { listingStandard.Label(" Humanlike/Humanlike (different race): -DEPENDS ON SPECIES-"); } else { listingStandard.Label(" Humanlike/Humanlike (different race): -DISABLED-"); } if (animal_pregnancy_enabled) { listingStandard.Label(" Animal/Animal (same race): " + animal_impregnation_chance + "%"); } else { listingStandard.Label(" Animal/Animal (same race): -DISABLED-"); } if (animal_pregnancy_enabled && !(animal_impregnation_chance * interspecies_impregnation_modifier <= 0.0f) && !complex_interspecies) { listingStandard.Label(" Animal/Animal (different race): " + Math.Round(animal_impregnation_chance * interspecies_impregnation_modifier, 1) + "%"); } else if (complex_interspecies) { listingStandard.Label(" Animal/Animal (different race): -DEPENDS ON SPECIES-"); } else { listingStandard.Label(" Animal/Animal (different race): -DISABLED-"); } if (RJWSettings.bestiality_enabled && bestial_pregnancy_enabled && !(animal_impregnation_chance * interspecies_impregnation_modifier <= 0.0f) && !complex_interspecies) { listingStandard.Label(" Humanlike/Animal: " + Math.Round(animal_impregnation_chance * interspecies_impregnation_modifier, 1) + "%"); } else if (complex_interspecies) { listingStandard.Label(" Humanlike/Animal: -DEPENDS ON SPECIES-"); } else { listingStandard.Label(" Humanlike/Animal: -DISABLED-"); } if (RJWSettings.bestiality_enabled && bestial_pregnancy_enabled && !(animal_impregnation_chance * interspecies_impregnation_modifier <= 0.0f) && !complex_interspecies) { listingStandard.Label(" Animal/Humanlike: " + Math.Round(humanlike_impregnation_chance * interspecies_impregnation_modifier, 1) + "%"); } else if (complex_interspecies) { listingStandard.Label(" Animal/Humanlike: -DEPENDS ON SPECIES-"); } else { listingStandard.Label(" Animal/Humanlike: -DISABLED-"); } GUI.contentColor = Color.white; listingStandard.NewColumn(); listingStandard.Gap(4f); listingStandard.Label("PregnantCoeffecientForHuman".Translate() + ": " + humanlike_impregnation_chance + "%", -1f, "PregnantCoeffecientForHuman_desc".Translate()); humanlike_impregnation_chance = (int)listingStandard.Slider(humanlike_impregnation_chance, 0.0f, 100f); listingStandard.Label("PregnantCoeffecientForAnimals".Translate() + ": " + animal_impregnation_chance + "%", -1f, "PregnantCoeffecientForAnimals_desc".Translate()); animal_impregnation_chance = (int)listingStandard.Slider(animal_impregnation_chance, 0.0f, 100f); if (!complex_interspecies) { switch (interspecies_impregnation_modifier) { case 0.0f: GUI.contentColor = Color.grey; listingStandard.Label("InterspeciesImpregnantionModifier".Translate() + ": " + "InterspeciesDisabled".Translate(), -1f, "InterspeciesImpregnantionModifier_desc".Translate()); GUI.contentColor = Color.white; break; case 1.0f: GUI.contentColor = Color.cyan; listingStandard.Label("InterspeciesImpregnantionModifier".Translate() + ": " + "InterspeciesMaximum".Translate(), -1f, "InterspeciesImpregnantionModifier_desc".Translate()); GUI.contentColor = Color.white; break; default: listingStandard.Label("InterspeciesImpregnantionModifier".Translate() + ": " + Math.Round(interspecies_impregnation_modifier * 100, 1) + "%", -1f, "InterspeciesImpregnantionModifier_desc".Translate()); break; } interspecies_impregnation_modifier = listingStandard.Slider(interspecies_impregnation_modifier, 0.0f, 1.0f); } listingStandard.Label("RJW_fertility_endAge_male".Translate() + ": " + (int)(fertility_endage_male * 80) + "In_human_years".Translate(), -1f, "RJW_fertility_endAge_male_desc".Translate()); fertility_endage_male = listingStandard.Slider(fertility_endage_male, 0.1f, 3.0f); listingStandard.Label("RJW_fertility_endAge_female_humanlike".Translate() + ": " + (int)(fertility_endage_female_humanlike * 80) + "In_human_years".Translate(), -1f, "RJW_fertility_endAge_female_humanlike_desc".Translate()); fertility_endage_female_humanlike = listingStandard.Slider(fertility_endage_female_humanlike, 0.1f, 3.0f); listingStandard.Label("RJW_fertility_endAge_female_animal".Translate() + ": " + (int)(fertility_endage_female_animal * 100) + "XofLifeExpectancy".Translate(), -1f, "RJW_fertility_endAge_female_animal_desc".Translate()); fertility_endage_female_animal = listingStandard.Slider(fertility_endage_female_animal, 0.1f, 3.0f); listingStandard.EndScrollView(ref viewRect); listingStandard.End(); }
public static void DoSettingsWindowContents(Rect inRect) { Listing_Standard ls = new Listing_Standard(); Rect rect = new Rect(0, 0, 0.9f * inRect.width, 2000f); void simpleField <T>(string label, ref T num, float min, float max) where T : struct { string ss = num.ToString(); ls.TextFieldNumericLabeled(label.Translate(), ref num, ref ss, min, max); } ls.BeginScrollView(inRect, ref ScrollerPos, ref rect); if (ls.ButtonText("PES_setting_default".Translate())) { SetToDefault(); } ls.CheckboxLabeled("Debug Mode", ref DebugModeOn, "DONT turn this on plz, this is only for the developer of this mod."); ls.Label("PES_setting_notes".Translate()); //coefficient ls.GapLine(20f); Text.Font = GameFont.Medium; ls.Label("PE_setting_detectionMechanism".Translate()); Text.Font = GameFont.Small; ls.Gap(10f); ls.Label("PES_setting_detectionFormula".Translate(), -1, "PES_setting_detectionExplain".Translate()); simpleField("PES_setting_detectioncoefficient", ref DetectionCoefficient, 0f, 10f); //moving speed string s2 = TickForIncidentCaravanCoverOneTile.ToString(); ls.TextFieldNumericLabeled("PES_setting_caravanSpeed".Translate(), ref TickForIncidentCaravanCoverOneTile, ref s2, 500, 12500); //Sky objects ls.Gap(10f); ls.Label("PES_setting_skyObject".Translate()); simpleField("PES_setting_skyObject_Large_a", ref LargeSkyFallerDuration, 500, 12500); simpleField("PES_setting_skyObject_Large_b", ref LargeSkyFallerIdentificationTime, 500, 12500); simpleField("PES_setting_skyObject_Small_a", ref SmallSkyFallerDuration, 500, 12500); simpleField("PES_setting_skyObject_Small_b", ref SmallSkyFallerIdentificationTime, 500, 12500); ls.Gap(10f); simpleField("PES_setting_infestation", ref InfestationDuration, 500, 12500); //Negotiations ls.GapLine(20f); Text.Font = GameFont.Medium; ls.Label("PES_setting_negotiationProb".Translate()); Text.Font = GameFont.Small; ls.Gap(10f); ls.Label("PES_setting_negotiationIntro".Translate(), -1, "PES_setting_negotiationTip".Translate()); ls.Gap(10f); ls.Label("PES_setting_negintro".Translate()); ls.Label("PES_setting_neg_delay".Translate()); simpleField("PES_setting_delay_persuasion", ref BaseDelayPersuasionChance, 0f, 1f); simpleField("PES_setting_delay_intimidation_s", ref BaseDelayIntimidationSuccessChance, 0f, 1f); simpleField("PES_setting_delay_intimidation_b", ref BaseDelayIntimidationSmiteChance, 0f, 1f); simpleField("PES_setting_delay_beguilment", ref BaseDelayBeguilementChance, 0f, 1f); ls.Label("PES_setting_neg_bargain".Translate()); simpleField("PES_setting_bargain_persuasion", ref BaseBargainPersuasionChance, 0f, 1f); simpleField("PES_setting_bargain_intimidation_s", ref BaseBargainIntimidationSuccessChance, 0f, 1f); simpleField("PES_setting_bargain_intimidation_b", ref BaseBargainIntimidationSmiteChance, 0f, 1f); simpleField("PES_setting_bargain_beguilment", ref BaseBargainBeguilementChance, 0f, 1f); ls.Label("PES_setting_neg_remedy".Translate()); simpleField("PES_setting_remedy_persuasion", ref BaseRemedyPersuasionChance, 0f, 1f); simpleField("PES_setting_remedy_intimidation_s", ref BaseRemedyIntimidationSuccessChance, 0f, 1f); simpleField("PES_setting_remedy_intimidation_b", ref BaseRemedyIntimidationSmiteChance, 0f, 1f); simpleField("PES_setting_remedy_beguilment", ref BaseRemedyBeguilementChance, 0f, 1f); ls.Gap(10f); ls.Label("PES_setting_commintro".Translate()); simpleField("PES_setting_commpersuation_friend", ref BasePersuadeChance_Friendly, 0f, 1f); simpleField("PES_setting_commpersuation_hostile", ref BasePersuadeChance_Hostile, 0f, 1f); simpleField("PES_setting_commintimidation_contact_friend", ref BaseIntimidationFrightenChance_Friendly, 0f, 1f); simpleField("PES_setting_commintimidation_frighten_friend", ref BaseIntimidationContactChance_Friendly, 0f, 1f); simpleField("PES_setting_commintimidation_contact_Hostile", ref BaseIntimidationFrightenChance_Hostile, 0f, 1f); simpleField("PES_setting_commintimidation_frighten_Hostile", ref BaseIntimidationContactChance_Hostile, 0f, 1f); simpleField("PES_setting_commbeguilment_friend", ref BaseBeguilementFrightenChance_Friendly, 0f, 1f); simpleField("PES_setting_commbeguilment_Contact_hostile", ref BaseBeguilementFrightenChance_Hostile, 0f, 1f); simpleField("PES_setting_commbeguildment_frighten_hostile", ref BaseBeguilementContactChance_Hostile, 0f, 1f); ls.Label("PES_setting_mesintro".Translate()); ls.Label("PES_setting_mesExp".Translate(), -1, "PES_setting_megTip".Translate()); simpleField("PES_setting_mesOffset", ref MessageRecieveOffset, 0f, 1f); ls.EndScrollView(ref rect); }
public override void DoWindowContents(Rect canvas) { Listing_Standard list = new Listing_Standard { ColumnWidth = canvas.width - 20, }; list.BeginScrollView( new Rect(canvas.x, canvas.y, canvas.xMax, canvas.yMax - 40), ref scroll, ref viewRect); list.Gap(); Settings_FactionOptions.DrawSlider(list, "RFC.factionDensity".Translate() + " " + Settings.GetFactionDensityLabel(Controller.Settings.factionDensity), ref Controller.Settings.factionDensity, ref Controller.Settings.strFacDen, 0.01f, 8f); list.Gap(24); list.Label("RFC.factionGrouping".Translate() + " " + Settings.GetFactionGroupingLabel(Controller.Settings.factionGrouping));// + "(" + factionGrouping.ToString("n2") + ")"); Controller.Settings.factionGrouping = list.Slider(Controller.Settings.factionGrouping, 0.5f, 5f); list.Gap(24); list.CheckboxLabeled("RFC.AllowMechanoids".Translate(), ref Controller.Settings.allowMechanoids, "RFC.AllowMechanoidsTip".Translate()); list.Gap(24); list.CheckboxLabeled("RFC.EnableFactionRandomGoodwill".Translate(), ref Controller.Settings.randomGoodwill, "RFC.EnableFactionRandomGoodwillToolTip".Translate()); list.Gap(24); list.CheckboxLabeled("RFC.EnableFactionDynamicColors".Translate(), ref Controller.Settings.dynamicColors, "RFC.EnableFactionDynamicColorsTip".Translate()); list.Gap(24); list.CheckboxLabeled("RFC.SpreadPirates".Translate(), ref Controller.Settings.spreadPirates); list.Gap(24); list.CheckboxLabeled("RFC.RelationChangesOverTime".Translate(), ref Controller.Settings.relationsChangeOverTime); list.Gap(40); Settings_FactionOptions.DrawSlider(list, "RFC.factionCount".Translate(), ref Controller_FactionOptions.Settings.factionCount, ref Controller_FactionOptions.Settings.strFacCnt, 0, 100); list.Gap(24); Settings_FactionOptions.DrawSlider(list, "RFC.outlanderCivilMin".Translate(), ref Controller_FactionOptions.Settings.outlanderCivilMin, ref Controller_FactionOptions.Settings.strOutCiv, 0, 20); list.Gap(); Settings_FactionOptions.DrawSlider(list, "RFC.outlanderRoughMin".Translate(), ref Controller_FactionOptions.Settings.outlanderHostileMin, ref Controller_FactionOptions.Settings.strOutHos, 0, 20); list.Gap(); Settings_FactionOptions.DrawSlider(list, "RFC.tribalCivilMin".Translate(), ref Controller_FactionOptions.Settings.tribalCivilMin, ref Controller_FactionOptions.Settings.strTriCiv, 0, 20); list.Gap(); Settings_FactionOptions.DrawSlider(list, "RFC.tribalRoughMin".Translate(), ref Controller_FactionOptions.Settings.tribalHostileMin, ref Controller_FactionOptions.Settings.strTriHos, 0, 20); list.Gap(); Settings_FactionOptions.DrawSlider(list, "RFC.tribalSavageMin".Translate(), ref Controller_FactionOptions.Settings.tribalSavageMin, ref Controller_FactionOptions.Settings.strTriSav, 0, 20); list.Gap(); Settings_FactionOptions.DrawSlider(list, "RFC.pirateMin".Translate(), ref Controller_FactionOptions.Settings.pirateMin, ref Controller_FactionOptions.Settings.strPir, 0, 20); if (ModsConfig.RoyaltyActive) { list.Gap(); Settings_FactionOptions.DrawSlider(list, "RFC.empireMin".Translate(), ref Controller_FactionOptions.Settings.empireMin, ref Controller_FactionOptions.Settings.strEmp, 0, 20); } if (Main.CustomFactions?.Count > 0) { list.Gap(40); foreach (CustomFaction f in Main.CustomFactions) { string b = f.RequiredCount.ToString(); Settings_FactionOptions.DrawSlider(list, f.FactionDefName, ref f.RequiredCount, ref b, 0, 20); list.Gap(); } } list.EndScrollView(ref viewRect); if (Widgets.ButtonText(new Rect(0, canvas.yMax - 36, 100, 30), "Close".Translate())) { this.Close(); } }