static void Postfix(Dialog_ManageFoodRestrictions __instance, Rect inRect) { if (Widgets.ButtonText(new Rect(480f, 0f, 150f, 35f), "SaveStorageSettings.LoadAsNew".Translate(), true, false, true)) { FoodRestriction restriction = Current.Game.foodRestrictionDatabase.MakeNewFoodRestriction(); SetSelectedRestriction(__instance, restriction); Find.WindowStack.Add(new LoadRestrictionDialog("foodRestrictions", restriction)); } FoodRestriction selectedRestriction = GetSelectedRestriction(__instance); if (selectedRestriction != null) { Text.Font = GameFont.Small; GUI.BeginGroup(new Rect(220f, 49f, 300, 32f)); if (Widgets.ButtonText(new Rect(0f, 0f, 150f, 32f), "SaveStorageSettings.LoadRestriction".Translate(), true, false, true)) { Find.WindowStack.Add(new LoadRestrictionDialog("foodRestrictions", selectedRestriction)); } if (Widgets.ButtonText(new Rect(160f, 0f, 150f, 32f), "SaveStorageSettings.SaveRestriction".Translate(), true, false, true)) { Find.WindowStack.Add(new SaveRestrictionDialog("foodRestrictions", selectedRestriction)); } GUI.EndGroup(); } }
public void DoFoodHeader(Rect rect) { MouseoverSounds.DoRegion(rect); if (Widgets.ButtonText(new Rect(rect.x, rect.y + (rect.height - 65f), Mathf.Min(rect.width, 360f), 32f), "ManageFoodRestrictions".Translate())) { var window = new Dialog_ManageFoodRestrictions(null); Find.WindowStack.Add(window); } }
static bool DefaultsMenu(Dialog_ManageFoodRestrictions dialog, Rect inRect) { if (!AnimalControls.lookingAtDefaults) { return(false); } var comp = Current.Game.GetComponent <AnimalControlsRestrictions>(); GUI.BeginGroup(inRect); Widgets.Label(new Rect(5f, 8f, 300f, 30f), "AnimalControlsAnimalRestrictionLabel".Translate()); Widgets.DrawHighlightIfMouseover(new Rect(0f, 0f, 460f, 35f)); if (Widgets.ButtonText(new Rect(310f, 0f, 150f, 35f), comp.DefaultRestriction.asText(), true, true, true)) { List <FloatMenuOption> list = new List <FloatMenuOption>(); list.Add(new FloatMenuOption("AnimalControlsDefault".Translate(), delegate() { comp.DefaultRestriction = null; }, MenuOptionPriority.Default, null, null, 0f, null, null)); foreach (FoodRestriction fr in Current.Game.foodRestrictionDatabase.AllFoodRestrictions) { list.Add(new FloatMenuOption(fr.label, delegate() { comp.DefaultRestriction = fr; }, MenuOptionPriority.Default, null, null, 0f, null, null)); } Find.WindowStack.Add(new FloatMenu(list)); } Widgets.Label(new Rect(5f, 48f, 300f, 30f), "AnimalControlsHandlerRestrictionLabel".Translate()); Widgets.DrawHighlightIfMouseover(new Rect(0f, 40f, 460f, 35f)); if (Widgets.ButtonText(new Rect(310f, 40f, 150f, 35f), comp.HandlerRestriction.asText(), true, true, true)) { List <FloatMenuOption> list = new List <FloatMenuOption>(); list.Add(new FloatMenuOption("AnimalControlsDefault".Translate(), delegate() { comp.HandlerRestriction = null; }, MenuOptionPriority.Default, null, null, 0f, null, null)); foreach (FoodRestriction fr in Current.Game.foodRestrictionDatabase.AllFoodRestrictions) { list.Add(new FloatMenuOption(fr.label, delegate() { comp.HandlerRestriction = fr; }, MenuOptionPriority.Default, null, null, 0f, null, null)); } Find.WindowStack.Add(new FloatMenu(list)); } GUI.EndGroup(); return(true); }
static bool Prefix(Dialog_ManageFoodRestrictions __instance, Rect inRect) { if (!AnimalControls.lookingAtDefaults) { return(true); } Rect rect = new Rect(0f, -10f, inRect.width, inRect.height - 40f - Window.CloseButSize.y).ContractedBy(10f); DefaultsMenu(__instance, rect); return(false); }
private void DoAssignFoodRestrictionButtons(Rect rect, ColonistGroup group) { int num = Mathf.FloorToInt((rect.width - 4f) * 0.714285731f); int num2 = Mathf.FloorToInt((rect.width - 4f) * 0.2857143f); float x = rect.x; Rect rect2 = new Rect(x, rect.y + 2f, num, rect.height - 4f); Widgets.Dropdown(rect2, group, (ColonistGroup g) => g.pawns.First().foodRestriction.CurrentFoodRestriction, Button_GenerateFoodMenu, group.pawns.First().foodRestriction.CurrentFoodRestriction.label.Truncate(rect2.width), null, group.pawns.First().foodRestriction.CurrentFoodRestriction.label, null, null, paintable: true); x += (float)num; x += 4f; if (Widgets.ButtonText(new Rect(x, rect.y + 2f, num2, rect.height - 4f), "AssignTabEdit".Translate())) { var window = new Dialog_ManageFoodRestrictions(group.pawns.First().foodRestriction.CurrentFoodRestriction); Find.WindowStack.Add(window); } x += (float)num2; }
static void Postfix(ref Dialog_ManageFoodRestrictions __instance) { ThingFilter f = (ThingFilter)PFoodGlobalFilter.GetValue(__instance); f.SetAllow(AnimalControlsDefOf.Plants, true, null, null); }
private static void SetSelectedRestriction(Dialog_ManageFoodRestrictions dialog, FoodRestriction selectedRestriction) { typeof(Dialog_ManageFoodRestrictions).GetProperty("SelectedFoodRestriction", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetProperty).SetValue(dialog, selectedRestriction, null); }
private static FoodRestriction GetSelectedRestriction(Dialog_ManageFoodRestrictions dialog) { return((FoodRestriction)typeof(Dialog_ManageFoodRestrictions).GetProperty("SelectedFoodRestriction", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetProperty).GetValue(dialog, null)); }