示例#1
0
 private void OnMenuChanged(object sender, StardewModdingAPI.Events.MenuChangedEventArgs menuChangedEventArgs)
 {
     if (IsGoToSleepDialog(menuChangedEventArgs.NewMenu))
     {
         foreach (Buildings.AnimalBuilding eligibleAnimalBuilding in this.EligibleAnimalBuildings)
         {
             eligibleAnimalBuilding.SendAllAnimalsHome();
         }
     }
 }
        static void Display_MenuChanged(object sender, StardewModdingAPI.Events.MenuChangedEventArgs e)
        {
            if (e.NewMenu is CarpenterMenu carpenterMenu)
            {
                //blueprints are setup on first button press to avoid problems with mods adding new blueprints
                setupBlueprints = false;

                SetupButtons(carpenterMenu);

                Helper.Events.Display.RenderingActiveMenu += Display_RenderingActiveMenu;
                Helper.Events.Display.RenderedActiveMenu  += Display_RenderedActiveMenu;
                Helper.Events.Input.ButtonPressed         += Input_ButtonPressed;
            }
            else if (e.OldMenu is CarpenterMenu oldCarpenterMenu)
            {
                Helper.Events.Display.RenderingActiveMenu -= Display_RenderingActiveMenu;
                Helper.Events.Display.RenderedActiveMenu  -= Display_RenderedActiveMenu;
                Helper.Events.Input.ButtonPressed         -= Input_ButtonPressed;
            }
        }
示例#3
0
        void Display_MenuChanged(object sender, StardewModdingAPI.Events.MenuChangedEventArgs e)
        {
            if (e.NewMenu is CarpenterMenu menu)
            {
                Helper.Events.Input.ButtonReleased += CarpenterMenu_ButtonReleased;
                Composting.AddBlueprint(menu);
            }
            else if (e.OldMenu is CarpenterMenu oldmenu)
            {
                Helper.Events.Input.ButtonReleased -= CarpenterMenu_ButtonReleased;
                Game1.getFarm().buildings.Set(new List <Building>(Game1.getFarm().buildings).Select((Building building) => building is ShippingBin bin && Composting.IsComposter(bin) ? CompostingBin.FromShippingBin(bin) : building).ToList());
            }

            if (e.NewMenu is ComposterMenu compMenu)
            {
            }
            else if (e.OldMenu is ComposterMenu oldCompMenu)
            {
                oldCompMenu.SaveCompostItems();
            }
        }
示例#4
0
        static void Display_MenuChanged(object sender, StardewModdingAPI.Events.MenuChangedEventArgs e)
        {
            if (e.NewMenu is CarpenterMenu carpenterMenu)
            {
                if (Helper.ModRegistry.IsLoaded("Pathoschild.TractorMod"))
                {
                    Monitor.Log("TractorMod was detected.", LogLevel.Debug);
                    int stableCount = Helper.Reflection.GetField <List <BluePrint> >(carpenterMenu, "blueprints").GetValue().FindAll((BluePrint blueprint) => blueprint.name.Equals("Stable")).Count;
                    if (stableCount == 1)//garage not added
                    {
                        Monitor.Log("CarpenterMenu: TractorMod hasn't changed blueprints yet.", LogLevel.Trace);
                        setupBlueprints = false;
                    }
                    else
                    {
                        Monitor.Log("CarpenterMenu: TractorMod changed blueprints already.", LogLevel.Trace);
                        SetupBlueprints(carpenterMenu);
                    }
                }
                else
                {
                    SetupBlueprints(carpenterMenu);
                }

                SetupButtons(carpenterMenu);

                Helper.Events.Display.RenderingActiveMenu += Display_RenderingActiveMenu;
                Helper.Events.Display.RenderedActiveMenu  += Display_RenderedActiveMenu;
                Helper.Events.Input.ButtonPressed         += Input_ButtonPressed;
            }
            else if (e.OldMenu is CarpenterMenu oldCarpenterMenu)
            {
                Helper.Events.Display.RenderingActiveMenu -= Display_RenderingActiveMenu;
                Helper.Events.Display.RenderedActiveMenu  -= Display_RenderedActiveMenu;
                Helper.Events.Input.ButtonPressed         -= Input_ButtonPressed;
                Monitor.Log("CarpenterMenu: setting vanillaBlueprint", LogLevel.Trace);
                Helper.Reflection.GetField <List <BluePrint> >(oldCarpenterMenu, "blueprints").SetValue(vanillaBlueprints);
                oldCarpenterMenu.setNewActiveBlueprint();
            }
        }
        static void Display_MenuChanged(object sender, StardewModdingAPI.Events.MenuChangedEventArgs e)
        {
            if (e.NewMenu is CarpenterMenu carpenterMenu)
            {
                //blueprints are setup on first button press to avoid problems with mods adding new blueprints
                setupBlueprints = false;

                SetupButtons(carpenterMenu);

                //if (Helper.Translation.Locale.StartsWith("fr", System.StringComparison.Ordinal))

                Helper.Events.Display.RenderingActiveMenu += Display_RenderingActiveMenu;
                Helper.Events.Display.RenderedActiveMenu  += Display_RenderedActiveMenu;
                Helper.Events.Input.ButtonPressed         += Input_ButtonPressed;
            }
            else if (e.OldMenu is CarpenterMenu oldCarpenterMenu)
            {
                Helper.Events.Display.RenderingActiveMenu -= Display_RenderingActiveMenu;
                Helper.Events.Display.RenderedActiveMenu  -= Display_RenderedActiveMenu;
                Helper.Events.Input.ButtonPressed         -= Input_ButtonPressed;
            }
        }