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();
            }
        }
Exemplo n.º 2
0
 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);
        }
Exemplo n.º 5
0
        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));
 }