Example #1
0
        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);
        }
Example #2
0
        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();
        }
Example #4
0
        // 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", () => {}));
            }
        }
Example #7
0
        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();
        }
Example #8
0
 //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();
     }
 }
Example #9
0
        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);
        }
Example #11
0
        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);
        }
Example #12
0
        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);
        }
Example #13
0
 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();
        }
Example #15
0
        // 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);
                    }
                }
            }
        }
Example #16
0
        // 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();
        }
Example #18
0
 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);
     }
 }
Example #19
0
        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);
        }
Example #20
0
        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();
            }
        }
Example #21
0
        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);
        }
Example #23
0
        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);
        }
Example #24
0
        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);
        }
Example #25
0
        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();
            }
        }
Example #26
0
        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);
        }
Example #27
0
        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();
        }
Example #28
0
        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();
        }
Example #29
0
        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);
        }
Example #30
0
        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();
            }
        }