Пример #1
0
        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();
        }
Пример #2
0
 public void ClearSlot(IItemStackSlot slot)
 {
     slot.Inventory.RemoveStackAtSlot(slot.InventoryIndex);
     slot.UpdateUi();
 }