Пример #1
0
        protected override void FillTab()
        {
            var components = SelShield.UiComponents.ToList();

            const float buttonHeight  = 30f;
            const float sectionBorder = 4f;
            const float gapHeight     = 12f;

            var viewHeight = components.Aggregate(buttonHeight, (total, component) => total + component.Height + sectionBorder * 2 + gapHeight);

            var outRect  = new Rect(ViewMargin, ViewMargin, size.x - ViewMargin, size.y - ViewMargin);
            var viewRect = new Rect(0, 0, size.x - ViewMargin * 2, viewHeight);

            Widgets.BeginScrollView(outRect, ref _scrollPosition, viewRect, true);

            var list = new Listing_Standard();

            list.Begin(viewRect);

            ResetButton(list);

            foreach (var component in components)
            {
                var section = list.BeginSection_NewTemp(component.Height, sectionBorder, sectionBorder);
                component.Draw(section.GetRect(component.Height));
                list.EndSection(section);
                list.Gap(gapHeight);
            }

            list.End();
            Widgets.EndScrollView();
        }
Пример #2
0
        public void DoWindowContents(Rect wrect)
        {
            Listing_Standard options      = new Listing_Standard();
            Color            defaultColor = GUI.color;

            options.Begin(wrect);
            Rect rect0 = new Rect(0f, 0f, wrect.width - 30f, wrect.height);

            GUI.color   = defaultColor;
            Text.Font   = GameFont.Small;
            Text.Anchor = TextAnchor.UpperLeft;
            options.Gap();
            float lineHeight = Text.LineHeight;
            Rect  rect1a     = options.GetRect(lineHeight);
            Rect  rect1b     = new Rect(rect1a.x + options.ColumnWidth - 275f, rect1a.y, 198f, 24f);
            Rect  rect1c     = new Rect(rect1a.x + options.ColumnWidth - 75f, rect1b.y, 73f, 24f);

            Widgets.Label(rect1a, "AP_PatchTreeDebug".Translate());
            Widgets.Dropdown(rect1b, patchTree, t => t, PatchTreeDebugElements, patchTree?.defName);
            if (patchTree != null)
            {
                var val = patchTreeDebug.TryGetValue(patchTree, int.MinValue);
                Widgets.Dropdown(rect1c, patchTree, t => patchTreeDebug.TryGetValue(t, int.MinValue), PatchTreeDebugValues, val == int.MinValue ? "Default".Translate().ToString() : val.ToString());
            }
            options.Gap();
            Filter = options.TextEntryLabeled("Filter".Translate(), Filter, 1);
#if V11
            var itemsWindow = options.BeginSection(340f);
#else
            var itemsWindow = options.BeginSection_NewTemp(340f);
#endif
            itemsWindow.ColumnWidth = ((rect0.width - 50f) / 3f);
            if (patchTree != null)
            {
                foreach (var node in patchTree?.Nodes)
                {
                    string text = node.ToString();
                    if (text.ToLower().Contains(Filter?.ToLower()))
                    {
                        Rect       rect3  = itemsWindow.GetRect(lineHeight);
                        TextAnchor anchor = Text.Anchor;
                        // Text.Anchor = TextAnchor.MiddleLeft;
                        var val     = nodeDebug.TryGetValue(node, int.MinValue);
                        var valText = val == int.MinValue ? "Default".Translate().ToString() : val.ToString();
                        Widgets.Label(rect3, text);
                        Rect rect4 = new Rect(rect3.x + itemsWindow.ColumnWidth - 75f, rect3.y, 73f, 24f);
                        Widgets.Dropdown(rect4, node, t => nodeDebug.TryGetValue(t, int.MinValue), NodeDebugValues, valText, paintable: true);
                    }
                }
            }
            itemsWindow.End();
            options.End();
            if (flagChanged)
            {
                Mod.GetSettings <Settings>().Write();
                flagChanged = false;
            }
        }
        private static Listing_Standard DrawCustomSectionStart(Listing_Standard listing, float height, string label, string tooltip = null)
        {
            listing.Gap();
            listing.Label(label, -1f, tooltip);
            Listing_Standard listing_Standard = listing.BeginSection_NewTemp(height, 8f, 6f);

            listing_Standard.maxOneColumn = true;
            return(listing_Standard);
        }
        private void DrawCumlist(Rect rect)
        {
            Listing_Standard cumlist = new Listing_Standard
            {
                maxOneColumn = true,
                ColumnWidth  = wombRectWidth - pawnRectWidth
            };

            cumlist.Begin(rect);
            Listing_Standard cumlistsection = cumlist.BeginSection_NewTemp(rect.height - fontheight - 12f);

            foreach (string s in comp.GetCumsInfo)
            {
                cumlistsection.Label(s);
            }
            cumlist.EndSection(cumlistsection);
            cumlist.End();
        }
Пример #5
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);
     }
 }
Пример #6
0
        public void Draw(Rect rect)
        {
            var list = new Listing_Standard();

            list.Begin(rect);

            Text.Font = GameFont.Medium;
            list.Label(Title);
            Text.Font = GameFont.Small;

            foreach (var component in Components)
            {
                var section = list.BeginSection_NewTemp(component.Height, sectionBorder, sectionBorder);
                component.Draw(section.GetRect(component.Height));
                list.EndSection(section);
                list.Gap(gapHeight);
            }
            list.End();
        }
Пример #7
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);
     }
 }
Пример #8
0
        public override void DoSettingsWindowContents(Rect inRect)
        {
            Rect settingsRect             = inRect.TopPart(0.25f).Rounded();
            Rect condenserItemsRect       = inRect.BottomPart(0.5f).Rounded();
            Rect condenserItemsSelectRect = inRect.BottomPart(0.3f).Rounded();
            Rect condenserItemsScrollRect = new Rect(condenserItemsRect)
            {
                height = condenserItemsSelectRect.y - condenserItemsRect.y,
                y      = condenserItemsRect.y + 10,
            };
            Rect condenserItemsSelectScrollRect = new Rect(condenserItemsSelectRect)
            {
                y = condenserItemsSelectRect.y + 10,
            };

            Listing_Standard listingStandard = new Listing_Standard();

            listingStandard.Begin(inRect);

            Listing_Standard settingsSection = listingStandard.BeginSection_NewTemp(settingsRect.height);

            settingsSection.CheckboxLabeled("RimMisc_DefaultDoUntil".Translate(), ref Settings.defaultDoUntil);
            settingsSection.CheckboxLabeled("RimMisc_AutoCloseLetters".Translate(), ref Settings.autoCloseLetters);

            settingsSection.Label("RimMisc_AutoCloseLettersSeconds".Translate(Settings.autoCloseLettersSeconds));
            Settings.autoCloseLettersSeconds = settingsSection.Slider(Settings.autoCloseLettersSeconds, MIN_AUTOCLOSE_SECONDS, MAX_AUTOCLOSE_SECONDS);

            settingsSection.EndSection(settingsSection);
            listingStandard.End();

            DrawSelectedCondenserItems(condenserItemsScrollRect);
            DrawItemSelect(condenserItemsSelectScrollRect);

            Settings.ApplySettings();

            base.DoSettingsWindowContents(inRect);
        }
Пример #9
0
        public override void DoSettingsWindowContents(Rect inRect)
        {
            Rect             outRect  = new Rect(0f, 30f, inRect.width, inRect.height - 30f);
            Rect             mainRect = new Rect(0f, 0f, inRect.width - 30f, inRect.height + 480f);
            Listing_Standard listmain = new Listing_Standard();

            listmain.maxOneColumn = true;
            listmain.BeginScrollView(outRect, ref scroll, ref mainRect);
            listmain.Begin(mainRect);
            listmain.Gap(20f);
            Rect optionrect1 = listmain.GetRect(30f);

            Widgets.CheckboxLabeled(optionrect1.LeftHalf(), Translations.Option1_Label_1, ref Configurations.EnableWombIcon, false, null, null, true);
            Widgets.CheckboxLabeled(optionrect1.RightHalf(), Translations.Option1_Label_2, ref Configurations.EnableButtonInHT, false, null, null, true);
            //listmain.CheckboxLabeled(Translations.Option1_Label, ref Configurations.EnableWombIcon, Translations.Option1_Desc);
            if (Configurations.EnableWombIcon || Configurations.EnableButtonInHT)
            {
                Listing_Standard wombsection = listmain.BeginSection_NewTemp(400);
                wombsection.CheckboxLabeled(Translations.Option9_Label, ref Configurations.DrawWombStatus, Translations.Option9_Desc);
                if (Configurations.DrawWombStatus)
                {
                    wombsection.CheckboxLabeled(Translations.Option18_Label, ref Configurations.DrawEggOverlay, Translations.Option18_Desc);
                }

                wombsection.CheckboxLabeled(Translations.Option10_Label, ref Configurations.DrawVaginaStatus, Translations.Option10_Desc);
                wombsection.CheckboxLabeled(Translations.Option29_Label, ref Configurations.AllowShrinkIcon, Translations.Option29_Desc);
                if (wombsection.ButtonText(Translations.Option11_Label + ": " + Configurations.LevelString(Configurations.InfoDetail)))
                {
                    if (Configurations.InfoDetail == Configurations.DetailLevel.Hide)
                    {
                        Configurations.InfoDetail = Configurations.DetailLevel.All;
                    }
                    else
                    {
                        Configurations.InfoDetail++;
                    }
                }
                switch (Configurations.InfoDetail)
                {
                case Configurations.DetailLevel.All:
                    wombsection.Label(Translations.Option11_Desc_1);
                    break;

                case Configurations.DetailLevel.OnReveal:
                    wombsection.Label(Translations.Option11_Desc_2);
                    break;

                case Configurations.DetailLevel.HideFetusInfo:
                    wombsection.Label(Translations.Option11_Desc_3);
                    break;

                case Configurations.DetailLevel.Hide:
                    wombsection.Label(Translations.Option11_Desc_4);
                    break;
                }
                wombsection.Label(Translations.Option21_Label + " " + Configurations.ShowFlag, -1, Translations.Option21_Desc);
                Rect   flagrect  = wombsection.GetRect(30f);
                Rect[] flagrects = new Rect[5];
                for (int i = 0; i < 5; i++)
                {
                    flagrects[i] = new Rect(flagrect.x + (flagrect.width / 5) * i, flagrect.y, flagrect.width / 5, flagrect.height);
                }

                if (Widgets.ButtonText(flagrects[0], Translations.Option20_Label_1 + ": " + Configurations.ShowFlag.HasFlag(Configurations.PawnFlags.Colonist)))
                {
                    Configurations.ShowFlag ^= Configurations.PawnFlags.Colonist;
                }
                if (Widgets.ButtonText(flagrects[1], Translations.Option20_Label_2 + ": " + Configurations.ShowFlag.HasFlag(Configurations.PawnFlags.Prisoner)))
                {
                    Configurations.ShowFlag ^= Configurations.PawnFlags.Prisoner;
                }
                if (Widgets.ButtonText(flagrects[2], Translations.Option20_Label_3 + ": " + Configurations.ShowFlag.HasFlag(Configurations.PawnFlags.Ally)))
                {
                    Configurations.ShowFlag ^= Configurations.PawnFlags.Ally;
                }
                if (Widgets.ButtonText(flagrects[3], Translations.Option20_Label_4 + ": " + Configurations.ShowFlag.HasFlag(Configurations.PawnFlags.Neutral)))
                {
                    Configurations.ShowFlag ^= Configurations.PawnFlags.Neutral;
                }
                if (Widgets.ButtonText(flagrects[4], Translations.Option20_Label_5 + ": " + Configurations.ShowFlag.HasFlag(Configurations.PawnFlags.Hostile)))
                {
                    Configurations.ShowFlag ^= Configurations.PawnFlags.Hostile;
                }

                int Adjust = (int)(Configurations.NippleTransitionVariance * 1000);
                wombsection.Label(Translations.Option24_Label + " " + Configurations.NippleTransitionVariance * 100 + " / 100", -1, Translations.Option24_Desc);
                Adjust = (int)wombsection.Slider(Adjust, 0, 1000);
                Configurations.NippleTransitionVariance = (float)Adjust / 1000;

                Adjust = (int)(Configurations.NipplePermanentTransitionVariance * 1000);
                wombsection.Label(Translations.Option25_Label + " " + Configurations.NipplePermanentTransitionVariance * 100 + " / 100", -1, Translations.Option25_Desc);
                Adjust = (int)wombsection.Slider(Adjust, 0, 1000);
                Configurations.NipplePermanentTransitionVariance = (float)Adjust / 1000;

                Adjust = (int)(Configurations.NippleMaximumTransition * 1000);
                wombsection.Label(Translations.Option26_Label + " " + Configurations.NippleMaximumTransition * 100 + " / 100", -1, Translations.Option26_Desc);
                Adjust = (int)wombsection.Slider(Adjust, 0, 1000);
                Configurations.NippleMaximumTransition = (float)Adjust / 1000;

                Adjust = (int)(Configurations.NippleTransitionSpeed * 1000);
                wombsection.Label(Translations.Option27_Label + " " + Configurations.NippleTransitionSpeed, -1, Translations.Option27_Desc);
                Adjust = (int)wombsection.Slider(Adjust, 0, 1000);
                Configurations.NippleTransitionSpeed = (float)Adjust / 1000;

                listmain.EndSection(wombsection);
            }

            listmain.CheckboxLabeled(Translations.Option2_Label, ref Configurations.EnableAnimalCycle, Translations.Option2_Desc);

            listmain.CheckboxLabeled(Translations.Option12_Label, ref Configurations.EnableMenopause, Translations.Option12_Desc);

            listmain.Label(Translations.Option3_Label + " " + Configurations.ImplantationChance * 100 + "%", -1, Translations.Option3_Desc);
            Configurations.ImplantationChanceAdjust = (int)listmain.Slider(Configurations.ImplantationChanceAdjust, 0, 1000);
            Configurations.ImplantationChance       = (float)Configurations.ImplantationChanceAdjust / 100;

            listmain.Label(Translations.Option4_Label + " " + Configurations.FertilizeChance * 100 + "%", -1, Translations.Option4_Desc);
            Configurations.FertilizeChanceAdjust = (int)listmain.Slider(Configurations.FertilizeChanceAdjust, 0, 1000);
            Configurations.FertilizeChance       = (float)Configurations.FertilizeChanceAdjust / 1000;

            listmain.Label(Translations.Option5_Label + " " + Configurations.CumDecayRatio * 100 + "%", -1, Translations.Option5_Desc);
            Configurations.CumDecayRatioAdjust = (int)listmain.Slider(Configurations.CumDecayRatioAdjust, 0, 1000);
            Configurations.CumDecayRatio       = (float)Configurations.CumDecayRatioAdjust / 1000;

            int    semenlifespan = (int)(-5 / ((float)Math.Log10((1 - Configurations.CumFertilityDecayRatio) * 10) - 1)) + 1;
            string estimatedlifespan;

            if (semenlifespan < 0)
            {
                estimatedlifespan = String.Format(": Infinite", semenlifespan);
            }
            else
            {
                estimatedlifespan = String.Format(": {0:0}h", semenlifespan);
            }
            listmain.LabelDouble(Translations.Option6_Label + " " + Configurations.CumFertilityDecayRatio * 100 + "%", Translations.EstimatedCumLifespan + estimatedlifespan, Translations.Option6_Desc);
            Configurations.CumFertilityDecayRatioAdjust = (int)listmain.Slider(Configurations.CumFertilityDecayRatioAdjust, 0, 1000);
            Configurations.CumFertilityDecayRatio       = (float)Configurations.CumFertilityDecayRatioAdjust / 1000;

            listmain.Label(Translations.Option7_Label + " x" + Configurations.CycleAcceleration, -1, Translations.Option7_Desc);
            Configurations.CycleAcceleration = (int)listmain.Slider(Configurations.CycleAcceleration, 1, 50);


            float var2 = EstimatedBleedingAmountPerHour;
            float var1 = Math.Max(EstimatedBleedingAmount, var2);

            listmain.LabelDouble(Translations.Option19_Label_1, Translations.Option19_Label_2 + ": " + var1 + "ml, " + var2 + "ml/h", Translations.Option19_Desc);
            Configurations.BleedingAmount = (int)listmain.Slider(Configurations.BleedingAmount, 0, 200);

            listmain.CheckboxLabeled(Translations.Option13_Label, ref Configurations.UseMultiplePregnancy, Translations.Option13_Desc);
            if (Configurations.UseMultiplePregnancy)
            {
                float sectionheight = 75f;
                if (Configurations.EnableEnzygoticTwins)
                {
                    sectionheight += 100;
                }
                Listing_Standard twinsection = listmain.BeginSection_NewTemp(sectionheight);
                Rect             hybridrect  = twinsection.GetRect(25);
                Widgets.CheckboxLabeled(hybridrect.LeftHalf(), Translations.Option22_Label, ref Configurations.UseHybridExtention, false, null, null, true);
                if (Widgets.ButtonText(hybridrect.RightHalf(), Translations.Option28_Label))
                {
                    Dialog_HybridCustom.ToggleWindow();
                    //Configurations.MotherFirst = !Configurations.MotherFirst;
                }
                TooltipHandler.TipRegion(hybridrect, Translations.Option28_Tooltip);

                twinsection.CheckboxLabeled(Translations.Option14_Label, ref Configurations.EnableHeteroOvularTwins, Translations.Option14_Desc);
                twinsection.CheckboxLabeled(Translations.Option15_Label, ref Configurations.EnableEnzygoticTwins, Translations.Option15_Desc);
                if (Configurations.EnableEnzygoticTwins)
                {
                    twinsection.Label(Translations.Option16_Label + " " + Configurations.EnzygoticTwinsChance * 100 + "%", -1, Translations.Option16_Desc);
                    Configurations.EnzygoticTwinsChanceAdjust = (int)twinsection.Slider(Configurations.EnzygoticTwinsChanceAdjust, 0, 1000);
                    Configurations.EnzygoticTwinsChance       = (float)Configurations.EnzygoticTwinsChanceAdjust / 1000;

                    twinsection.Label(Translations.Option17_Label + " " + Configurations.MaxEnzygoticTwins, -1, Translations.Option17_Desc);
                    Configurations.MaxEnzygoticTwins = (int)twinsection.Slider(Configurations.MaxEnzygoticTwins, 2, 100);
                }
                listmain.EndSection(twinsection);
            }


            listmain.EndScrollView(ref mainRect);

            listmain.CheckboxLabeled(Translations.Option8_Label, ref Configurations.Debug, Translations.Option8_Desc);
            if (listmain.ButtonText("reset to default"))
            {
                Configurations.ImplantationChanceAdjust     = Configurations.ImplantationChanceAdjustDefault;
                Configurations.FertilizeChanceAdjust        = Configurations.FertilizeChanceAdjustDefault;
                Configurations.CumDecayRatioAdjust          = Configurations.CumDecayRatioAdjustDefault;
                Configurations.CumFertilityDecayRatioAdjust = Configurations.CumFertilityDecayRatioAdjustDefault;
                Configurations.EnableWombIcon             = true;
                Configurations.EnableAnimalCycle          = false;
                Configurations.CycleAcceleration          = Configurations.CycleAccelerationDefault;
                Configurations.EnzygoticTwinsChanceAdjust = Configurations.EnzygoticTwinsChanceAdjustDefault;
                Configurations.EnableEnzygoticTwins       = true;
                Configurations.EnableHeteroOvularTwins    = true;
                Configurations.UseMultiplePregnancy       = true;
                Configurations.MaxEnzygoticTwins          = Configurations.MaxEnzygoticTwinsDefault;
                Configurations.BleedingAmount             = Configurations.BleedingAmountDefault;
                Configurations.MotherFirst = false;
                Configurations.NippleTransitionVariance          = Configurations.NippleTransitionVarianceDefault;
                Configurations.NipplePermanentTransitionVariance = Configurations.NipplePermanentTransitionVarianceDefault;
                Configurations.NippleMaximumTransition           = Configurations.NippleMaximumTransitionDefault;
                Configurations.NippleTransitionSpeed             = Configurations.NippleTransitionSpeedDefault;
            }

            listmain.End();
        }
Пример #10
0
        public void DoWindowContents(Rect wrect)
        {
            float days;
            float hours;
            // wrect.yMin += 15f;
            // wrect.yMax -= 15f;

            var options = new Listing_Standard();
            //
            var outRect    = new Rect(wrect.x, wrect.y, wrect.width, wrect.height);                             // Size of viewed area
            var scrollRect = new Rect(0f, 0f, wrect.width - 16f, wrect.height * 1.5f);                          // Size of content data
            var rect2      = new Rect(0f, 0f, wrect.width - 30f, 340f);                                         // Size of item list data

            Widgets.BeginScrollView(outRect, ref scrollPosition, scrollRect, true);

            options.Begin(scrollRect);

            Header(options, "Performance_Settings".Translate(), false);

            options.CheckboxLabeled("ST_alertColonistNeedsSurvivalTool".Translate(), ref alertColonistNeedsSurvivalTool, "ST_alertColonistNeedsSurvivalTool_tooltip".Translate());
            if (alertColonistNeedsSurvivalTool)
            {
                options.Gap();
                days  = Mathf.FloorToInt((float)alertColonistNeedsSurvivalTool_Delay / GenDate.TicksPerDay);
                hours = ((float)alertColonistNeedsSurvivalTool_Delay - days * GenDate.TicksPerDay) / GenDate.TicksPerHour;
                options.Label("ST_alertColonistNeedsSurvivalTool_Delay".Translate() + $"\t{days} " + "DaysLower".Translate() +
                              $"  {hours.ToString("F02")} " + "HoursLower".Translate(),
                              tooltip: "ST_alertColonistNeedsSurvivalTool_Delay_tooltip".Translate());
                alertColonistNeedsSurvivalTool_Delay = Mathf.RoundToInt(options.Slider(alertColonistNeedsSurvivalTool_Delay, 1, GenDate.TicksPerDay));
            }

            Header(options, "Gameplay_Settings".Translate());

            options.CheckboxLabeled("ST_noToolWorkPenalty".Translate(), ref noToolWorkPenalty, "ST_noToolWorkPenalty_tooltip".Translate());
            if (noToolWorkPenalty)
            {
                options.Gap();
                options.CheckboxLabeled("ST_disableNoToolWork".Translate(), ref disableNoToolWork, "ST_disableNoToolWork_tooltip".Translate());
                if (!disableNoToolWork)
                {
                    options.Gap();
                    options.Label("ST_noToolWorkFactor".Translate() + $"\tx{noToolWorkFactor.ToString("F02")}", tooltip: "ST_noToolWorkFactor_tooltip".Translate());
                    noToolWorkFactor = options.Slider(noToolWorkFactor, 0.3f, 1.0f);
                    options.Gap();
                    options.Label("ST_noToolWorkOffset".Translate() + $"\tx{noToolWorkOffset.ToString("F02")}", tooltip: "ST_noToolWorkOffset_tooltip".Translate());
                    noToolWorkOffset = options.Slider(noToolWorkOffset, -0.5f, 0.0f);
                }
            }
            options.GapLine(12f);
            var toolTypes = DefDatabase <ToolType> .AllDefsListForReading;

            options.Label("ST_ToolTypes".Translate(toolTypes.Count));
            Filter = options.TextEntryLabeled("Filter".Translate(), Filter, 1);
#if V11
            var itemsWindow = options.BeginSection(340f);
#else
            var itemsWindow = options.BeginSection_NewTemp(340f);
#endif
            itemsWindow.ColumnWidth = ((rect2.width - 50f) / 3f);
            foreach (var toolType in toolTypes)
            {
                string   text = toolType.label.ToLower();
                ThingDef val4 = null;
                if (text.Contains(Filter.ToLower()))
                {
                    float      lineHeight = Text.LineHeight;
                    Rect       rect3      = itemsWindow.GetRect(lineHeight);
                    TextAnchor anchor     = Text.Anchor;
                    // Text.Anchor = TextAnchor.MiddleLeft;
                    var toolType_Type = Dictionaries.SurvivalToolTypes[toolType] ? "ST_SurvivalTool".Translate() : "ST_NormalTool".Translate();
                    Widgets.Label(rect3, toolType.label);
                    Rect rect4 = new Rect(rect3.x + itemsWindow.ColumnWidth - 100f, rect3.y, 98f, 24f);
                    Widgets.Dropdown(rect4, toolType, t => Dictionaries.SurvivalToolTypes[t], SurvivalToolType_GenerateMenu, toolType_Type);
                }
            }
            options.EndSection(itemsWindow);
            options.End();
            Widgets.EndScrollView();
            // Mod.GetSettings<Settings>().Write();
        }
 public static Listing_Standard BeginSection_OnePointTwo(this Listing_Standard listing_Main, float f, float sectionBorder = 4f, float bottomBorder = 4f)
 {
     return(listing_Main.BeginSection_NewTemp(f, sectionBorder, bottomBorder));
 }
Пример #12
0
        public override void DoSettingsWindowContents(Rect inRect)
        {
            base.DoSettingsWindowContents(inRect);
            Listing_Standard leftStandard  = new Listing_Standard();
            Listing_Standard rightStandard = new Listing_Standard();
            var font = Text.Font;

            Text.Font = GameFont.Tiny;
            var leftRect  = inRect.LeftPart(0.45f);
            var rightRect = inRect.RightPart(0.45f);

            {
                leftStandard.Begin(leftRect);
                leftStandard.Gap();
                Text.Font = GameFont.Tiny;
                leftStandard.Label("Locks2SettingsPerformance".Translate());
                {
                    var section = leftStandard.BeginSection_NewTemp(50);
                    Text.Font = GameFont.Tiny;
                    section.Label("Locks2SettingsCache".Translate() + " " + settings.cacheTimeOut, tooltip: "Locks2SettingsCacheTooltip".Translate());
                    settings.cacheTimeOut = (int)section.Slider(settings.cacheTimeOut, 60, 5000);
                    section.EndSection(section);
                }
                leftStandard.Gap();
                Text.Font = GameFont.Tiny;
                leftStandard.Label("Locks2SettingsAccessTab".Translate());
                {
                    var section = leftStandard.BeginSection_NewTemp(95);
                    Text.Font = GameFont.Tiny;
                    section.Label("Locks2SettingsAccessTabX".Translate() + " " + Finder.settings.tabSizeX);
                    Finder.settings.tabSizeX = (int)section.Slider(Finder.settings.tabSizeX, 200, 500);
                    section.Gap(3);

                    section.Label("Locks2SettingsAccessTabY".Translate() + " " + Finder.settings.tabSizeY);
                    Finder.settings.tabSizeY = (int)section.Slider(Finder.settings.tabSizeY, 200, 700);
                    section.EndSection(section);
                }
                leftStandard.Gap();
                Text.Font = GameFont.Tiny;
                leftStandard.Label("Locks2SettingsDefaults".Translate());
                {
                    var section = leftStandard.BeginSection_NewTemp(settings.defaultRules.Count * 35 + 50);
                    Text.Font = GameFont.Tiny;
                    section.Label("Locks2SettingsDefaultsAre".Translate());
                    var removalRules = new List <Type>();
                    foreach (var type in settings.defaultRules)
                    {
                        if (section.ButtonText(type.Name.Translate()))
                        {
                            removalRules.Add(type);
                            break;
                        }
                    }
                    foreach (var type in removalRules)
                    {
                        settings.defaultRules.Remove(type);
                    }
                    if (settings.defaultRules.Count <= 4 && section.ButtonText("+"))
                    {
                        Find.WindowStack.Add(new Selector_RuleSelection((rule) => settings.defaultRules.Add(rule.GetType())));
                    }
                    section.EndSection(section);
                }

                leftStandard.End();
            }
            {
                rightStandard.Begin(rightRect);
                Text.Font = GameFont.Tiny;
                rightStandard.Label("Locks2SettingsOthers".Translate());
                if (rightStandard.ButtonText("Locks2SettingReset".Translate()))
                {
                    ResetSettings();
                }
                rightStandard.Gap();
                {
                    var section = rightStandard.BeginSection_NewTemp(50);
                    Text.Font = GameFont.Tiny;
                    section.CheckboxLabeled("Locks2SettingsEnableDebugging".Translate(), ref Finder.debug, "Locks2SettingsDebuggingTooltip".Translate());
                    rightStandard.EndSection(rightStandard);
                }
                rightStandard.Gap();
                if (Finder.debug)
                {
                    var section = rightStandard.BeginSection_NewTemp(400);
                    Text.Font = GameFont.Small;
                    section.Label("Locks2SettingsDebuggingWarning".Translate());
                    section.Gap(5.0f);
                    Text.Font = GameFont.Tiny;
                    FillDebugSettings(section);
                    rightStandard.EndSection(rightStandard);
                }
                rightStandard.End();
            }
            Text.Font = font;
        }