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; } }
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(); } }
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; } }