private void OnSellButtonPressed(object sender, ButtonPressedEventArgs e) { Item item = ModPlayer.GetHoveredItem(); if (item == null) { ModLogger.Trace("Item was null."); return; } ModLogger.Trace($"{Game1.player.Name} pressed {e.Button} and has selected {item}."); if (Config.CheckIfItemsCanBeShipped == true && ModPlayer.CheckIfItemCanBeShipped(item) == false) { ModLogger.Info("Item can't be shipped."); return; } ModPlayer.AddItemToShippingBin(item); ModPlayer.OrganizeShippingBin(); ModPlayer.RemoveItemFromPlayerInventory(item); ModUtils.SendHUDMessage($"Sent {item.Stack} {item.DisplayName} to the Shipping Bin!"); Game1.playSound("Ship"); }
public static Item GetHoveredItem() { IClickableMenu currentMenu = (Game1.activeClickableMenu as GameMenu)?.GetCurrentPage() ?? Game1.activeClickableMenu; Item currentItem = null; switch (currentMenu) { // Chests //case MenuWithInventory menu: // currentItem = Game1.player.CursorSlotItem ?? menu.heldItem ?? menu.hoveredItem; // break; //case ProfileMenu menu: // currentItem = menu.hoveredItem; // break; case InventoryPage menu: currentItem = Game1.player.CursorSlotItem ?? ModEntry.Helper.Reflection.GetField <Item>(menu, "hoveredItem").GetValue(); break; default: string message = "You are not in the inventory!"; ModLogger.Trace(message); ModUtils.SendHUDMessage(message, HUDMessage.error_type); break; } return(currentItem); }