Guest User

StackHelper.java

a guest
Oct 24th, 2014
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.84 KB | None | 0 0
  1. public static boolean addToInv(IInventory inv, ItemStack par1ItemStack)
  2.     {
  3.         ArrayList<ItemStack> inventorySlots = JavaHelp.newArrayList();
  4.         boolean flag1 = false;
  5.         int k = 0;
  6.         ItemStack itemstack1 = null;
  7.         for (int i = 0; i < inv.getSizeInventory(); i++)
  8.         {
  9.             inventorySlots.add(inv.getStackInSlot(i));
  10.         }
  11.         if (par1ItemStack == null) return false;
  12.         if (par1ItemStack.isStackable())
  13.         {
  14.             while (par1ItemStack.stackSize > 0 && k < inv.getSizeInventory())
  15.             {
  16.                 itemstack1 = inventorySlots.get(k);
  17.                 if (itemstack1 != null && itemstack1.getItem() == par1ItemStack.getItem() && (!par1ItemStack.getHasSubtypes() || par1ItemStack.getItemDamage() == itemstack1.getItemDamage()) && ItemStack.areItemStackTagsEqual(par1ItemStack, itemstack1))
  18.                 {
  19.                     int l = itemstack1.stackSize + par1ItemStack.stackSize;
  20.                     if (l <= par1ItemStack.getMaxStackSize())
  21.                     {
  22.                         par1ItemStack.stackSize = 0;
  23.                         itemstack1.stackSize = l;
  24.                         inv.markDirty();
  25.                         flag1 = true;
  26.                     }
  27.                     else if (itemstack1.stackSize < par1ItemStack.getMaxStackSize())
  28.                     {
  29.                         par1ItemStack.stackSize -= par1ItemStack.getMaxStackSize() - itemstack1.stackSize;
  30.                         itemstack1.stackSize = par1ItemStack.getMaxStackSize();
  31.                         inv.markDirty();
  32.                         flag1 = true;
  33.                     }
  34.                 }
  35.                 ++k;
  36.             }
  37.         }
  38.         if (par1ItemStack.stackSize > 0)
  39.         {
  40.             k = 0;
  41.             while (k < inv.getSizeInventory())
  42.             {
  43.                 itemstack1 = inventorySlots.get(k);
  44.                 if (itemstack1 == null)
  45.                 {
  46.                     inv.setInventorySlotContents(k, par1ItemStack.copy());
  47.                     inv.markDirty();
  48.                     par1ItemStack.stackSize = 0;
  49.                     flag1 = true;
  50.                     break;
  51.                 }
  52.                 ++k;
  53.             }
  54.         }
  55.         if (itemstack1 != null && itemstack1.stackSize == 0)
  56.         {
  57.             itemstack1 = null;
  58.         }
  59.         if (par1ItemStack != null && par1ItemStack.stackSize == 0)
  60.         {
  61.             par1ItemStack = null;
  62.         }
  63.         return flag1;
  64.     }
Advertisement
Add Comment
Please, Sign In to add comment