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); }
public static void OpenRules(Pawn pawn) { if (!Registry.IsActive) { return; } Dialog_Rules.Open(pawn); }
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); }
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); } }