private static bool Prefix(Rect rect, Pawn pawn)
        {
            var num  = Mathf.FloorToInt((rect.width - 4f) * 0.714285731f);
            var num2 = Mathf.FloorToInt((rect.width - 4f) * 0.2857143f);
            var num3 = rect.x;

            var rect2 = new Rect(num3, rect.y + 2f, num, rect.height - 4f);
            var rect3 = rect2;

            var rules       = Registry.GetOrNewRules(pawn);
            var label       = rules.GetDisplayName();
            var buttonLabel = label.Truncate(rect2.width);

            Rules GetPayload(Pawn p) => rules;

            Widgets.Dropdown(rect3, pawn, GetPayload, GenerateMenu, buttonLabel, null, label, null, null, true);

            num3 += num;
            num3 += 4f;

            var rect4 = new Rect(num3, rect.y + 2f, num2, rect.height - 4f);

            if (Widgets.ButtonText(rect4, "AssignTabEdit".Translate()))
            {
                Dialog_Rules.Open(pawn);
            }

            return(false);
        }
Ejemplo n.º 2
0
        public static void OpenRules(Pawn pawn)
        {
            if (!Registry.IsActive)
            {
                return;
            }

            Dialog_Rules.Open(pawn);
        }
Ejemplo n.º 3
0
        private static bool Prefix(Rect rect, PawnTable table)
        {
            ColumnWorker.DoHeaderDummy(rect, table);
            var buttonRect = new Rect(rect.x, rect.y + (rect.height - 65f), Mathf.Min(rect.width, 360f), 32f);

            if (Widgets.ButtonText(buttonRect, Lang.Get("Dialog_Rules.OpenDefaults")))
            {
                Dialog_Rules.OpenDefaults(PawnType.Colonist);
            }

            return(false);
        }
        private static IEnumerable <Widgets.DropdownMenuElement <Rules> > GenerateMenu(Pawn pawn)
        {
            var menu = new List <Widgets.DropdownMenuElement <Rules> >
            {
                new Widgets.DropdownMenuElement <Rules>
                {
                    option = new FloatMenuOption(Lang.Get("Preset.Personalized").Italic(), () =>
                    {
                        Registry.ReplaceRules(pawn, pawn.GetRules().CloneRulesFor(pawn));
                        Dialog_Rules.Open(pawn);
                    })
                }
            };

            menu.AddRange(Registry.GetPresets <Rules>(pawn.GetTargetType()).Select(rule => new Widgets.DropdownMenuElement <Rules> {
                option = new FloatMenuOption(rule.GetDisplayName(), () => Registry.ReplaceRules(pawn, rule)), payload = rule
            }));

            return(menu);
        }
Ejemplo n.º 5
0
        public override void DoCell(Rect rect, Pawn pawn, PawnTable table)
        {
            if (!Registry.IsActive)
            {
                return;
            }

            var rules = Registry.GetOrNewRules(pawn);

            if (rules == null)
            {
                return;
            }

            var selectorRect = new Rect(rect.x, rect.y + 2f, rect.width, rect.height - 4f);

            if (Widgets.ButtonText(selectorRect, rules.GetDisplayName()))
            {
                Dialog_Rules.Open(pawn);
            }
        }
        private static void Postfix(ref float __result, UnityEngine.Rect leftRect, Pawn pawn, float curY)
        {
            if (!Registry.IsActive)
            {
                return;
            }

            FloatMenu overviewWindowStack = Find.WindowStack.FloatMenu;

            if (overviewWindowStack == null)
            {
                return;
            }

            List <FloatMenuOption> overviewWindowStackOptions = (List <FloatMenuOption>) typeof(FloatMenu).GetField("options", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(overviewWindowStack);

            if (overviewWindowStackOptions?.Count > 0 && overviewWindowStackOptions.Last().Label.Equals("ManageFoodRestrictions".Translate()))
            {
                overviewWindowStack.Close(false);
                Dialog_Rules.Open(pawn);
            }
        }