Advertisement
Corosus

Untitled

Sep 29th, 2013
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.58 KB | None | 0 0
  1. package zombiecraft.Client.gui;
  2.  
  3. import cpw.mods.fml.common.FMLCommonHandler;
  4. import cpw.mods.fml.relauncher.Side;
  5. import net.minecraft.entity.player.EntityPlayer;
  6. import net.minecraft.inventory.IInventory;
  7. import net.minecraft.item.Item;
  8. import net.minecraft.item.ItemStack;
  9. import net.minecraft.nbt.NBTTagCompound;
  10. import net.minecraft.nbt.NBTTagList;
  11.  
  12. public class InventoryWrapper implements IInventory {
  13.  
  14.     public ItemStack[] invList;
  15.    
  16.     public void invInitData(NBTTagList stacks, int bufferSize) {
  17.         System.out.println("invInitData tag");
  18.         invList = new ItemStack[bufferSize];
  19.         for (int i = 0; i < stacks.tagCount(); i++) {
  20.             NBTTagCompound tag = (NBTTagCompound) stacks.tagAt(i);
  21.             byte slot = tag.getByte("Slot");
  22.             if (slot >= 0 && slot < invList.length) {
  23.                 invList[slot] = ItemStack.loadItemStackFromNBT(tag);
  24.                 System.out.println(invList[slot]);
  25.             }
  26.         }
  27.     }
  28.    
  29.     public void invInitData(ItemStack[] stacks) {
  30.         System.out.println("invInitData stack");
  31.         invList = stacks;
  32.     }
  33.    
  34.     public NBTTagList invWriteTagList() {
  35.         System.out.println("invWriteTagList");
  36.         NBTTagList itemList = new NBTTagList();
  37.         for (int i = 0; i < invList.length; i++) {
  38.             ItemStack stack = invList[i];
  39.             if (stack != null) {
  40.                 NBTTagCompound tag = new NBTTagCompound();
  41.                 tag.setByte("Slot", (byte) i);
  42.                 stack.writeToNBT(tag);
  43.                 itemList.appendTag(tag);
  44.             }
  45.         }
  46.         return itemList;
  47.     }
  48.    
  49.     @Override
  50.     public int getSizeInventory() {
  51.         return invList.length;
  52.     }
  53.  
  54.     @Override
  55.     public ItemStack getStackInSlot(int i) {
  56.         if (i < invList.length) {
  57.             return invList[i];
  58.         } else {
  59.             return null;
  60.         }
  61.     }
  62.  
  63.     @Override
  64.     public void setInventorySlotContents(int slot, ItemStack stack) {
  65.         System.out.println("invList: " + invList.length);
  66.         if (FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER) {
  67.             System.out.println(stack);
  68.         }
  69.         invList[slot] = stack;
  70.         if (stack != null && stack.stackSize > getInventoryStackLimit()) {
  71.                 stack.stackSize = getInventoryStackLimit();
  72.         }              
  73.     }
  74.  
  75.     @Override
  76.     public ItemStack decrStackSize(int slot, int amt) {
  77.         ItemStack stack = getStackInSlot(slot);
  78.         if (stack != null) {
  79.                 if (stack.stackSize <= amt) {
  80.                         setInventorySlotContents(slot, null);
  81.                 } else {
  82.                         stack = stack.splitStack(amt);
  83.                         if (stack.stackSize == 0) {
  84.                                 setInventorySlotContents(slot, null);
  85.                         }
  86.                 }
  87.         }
  88.         return stack;
  89.     }
  90.  
  91.     @Override
  92.     public ItemStack getStackInSlotOnClosing(int slot) {
  93.         ItemStack stack = getStackInSlot(slot);
  94.         if (stack != null) {
  95.                 setInventorySlotContents(slot, null);
  96.         }
  97.         return stack;
  98.     }
  99.    
  100.     @Override
  101.     public int getInventoryStackLimit() {
  102.         return 64;
  103.     }
  104.  
  105.     @Override
  106.     public boolean isUseableByPlayer(EntityPlayer player) {
  107.         return true;
  108.     }
  109.  
  110.     @Override
  111.     public void openChest() {}
  112.  
  113.     @Override
  114.     public void closeChest() {}
  115.  
  116.     @Override
  117.     public String getInvName() {
  118.         return "Inventory Wrapper";
  119.     }
  120.  
  121.     @Override
  122.     public boolean isInvNameLocalized() {
  123.         return false;
  124.     }
  125.  
  126.     @Override
  127.     public void onInventoryChanged() {
  128.     }
  129.  
  130.     @Override
  131.     public boolean isItemValidForSlot(int i, ItemStack itemstack) {
  132.         return true;
  133.     }
  134.  
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement