public void ExchangeItemStacks(IItemStackSlot @from, IItemStackSlot to) { if (!to.CanFit(from.ItemStack)) { return; } if (from.Controller != to.Controller) { CrossControllerExchange(from, to); } else if (from.Inventory != to.Inventory) { CrossInventoryExchange(from, to); } else if (from.ItemStack.Item == to.ItemStack.Item) { to.Inventory.CombineStacks(from.InventoryIndex, to.InventoryIndex); } else { to.Inventory.SwapSlots(from.InventoryIndex, to.InventoryIndex, out var _, out var _); } from.UpdateUi(); to.UpdateUi(); }
public void ClearSlot(IItemStackSlot slot) { slot.Inventory.RemoveStackAtSlot(slot.InventoryIndex); slot.UpdateUi(); }