Guest User

Untitled

a guest
Jan 10th, 2014
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.95 KB | None | 0 0
  1. package us.xvicario.rpglevel;
  2.  
  3. import net.minecraft.entity.player.EntityPlayer;
  4. import net.minecraft.inventory.IInventory;
  5. import net.minecraft.item.ItemStack;
  6. import net.minecraft.nbt.NBTTagCompound;
  7. import net.minecraft.nbt.NBTTagList;
  8. import net.minecraft.tileentity.TileEntity;
  9.  
  10. public class TileEntityLevelUpStation extends TileEntity implements IInventory {
  11.  
  12.     private ItemStack[] inv;
  13.    
  14.     public TileEntityLevelUpStation() {
  15.         inv = new ItemStack[9];
  16.     }
  17.    
  18.     @Override
  19.     public void closeChest() {}
  20.  
  21.     @Override
  22.     public ItemStack decrStackSize(int i, int j) {
  23.         ItemStack stack = getStackInSlot(i);
  24.         if (stack != null) {
  25.             if (stack.stackSize <= j) {
  26.                 setInventorySlotContents(i, null);
  27.             } else {
  28.                 stack = stack.splitStack(j);
  29.                 if (stack.stackSize == 0) {
  30.                     setInventorySlotContents(i,null);
  31.                 }
  32.             }
  33.         }
  34.         return stack;
  35.     }
  36.  
  37.     @Override
  38.     public String getInvName() {
  39.         return "rpglevel.levelUpStation";
  40.     }
  41.  
  42.     @Override
  43.     public int getInventoryStackLimit() {
  44.         return 1;
  45.     }
  46.  
  47.     @Override
  48.     public int getSizeInventory() {
  49.         return inv.length;
  50.     }
  51.  
  52.     @Override
  53.     public ItemStack getStackInSlot(int i) {
  54.         return inv[i];
  55.     }
  56.  
  57.     @Override
  58.     public ItemStack getStackInSlotOnClosing(int i) {
  59.         ItemStack stack = getStackInSlot(i);
  60.         if (stack != null) {
  61.             setInventorySlotContents(i, null);
  62.         }
  63.         return stack;
  64.     }
  65.  
  66.     @Override
  67.     public boolean isInvNameLocalized() {
  68.         // TODO Auto-generated method stub
  69.         return false;
  70.     }
  71.  
  72.     @Override
  73.     public boolean isItemValidForSlot(int i, ItemStack itemstack) {
  74.         // TODO Auto-generated method stub
  75.         return false;
  76.     }
  77.  
  78.     @Override
  79.     public boolean isUseableByPlayer(EntityPlayer entityplayer) {
  80.         return worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) == this && entityplayer.getDistanceSq(xCoord+0.5, yCoord+0.5, zCoord+0.5) < 64;
  81.     }
  82.  
  83.     @Override
  84.     public void openChest() {}
  85.  
  86.     @Override
  87.     public void setInventorySlotContents(int i, ItemStack itemstack) {
  88.         inv[i] = itemstack;
  89.         if (itemstack != null && itemstack.stackSize > getInventoryStackLimit()) {
  90.             itemstack.stackSize = getInventoryStackLimit();
  91.         }
  92.     }
  93.    
  94.     @Override public void readFromNBT(NBTTagCompound tagCompound) {
  95.         super.readFromNBT(tagCompound);
  96.         NBTTagList tagList = tagCompound.getTagList("Inventory");
  97.         for (int i = 0; i < tagList.tagCount(); i++) {
  98.             NBTTagCompound tag = (NBTTagCompound) tagList.tagAt(i);
  99.             byte slot = tag.getByte("Slot");
  100.             if (slot >= 0 && slot < inv.length) {
  101.                 inv[slot] = ItemStack.loadItemStackFromNBT(tag);
  102.             }
  103.         }
  104.     }
  105.    
  106.     @Override public void writeToNBT(NBTTagCompound tagCompound) {
  107.         super.writeToNBT(tagCompound);
  108.         NBTTagList itemList = new NBTTagList();
  109.         for (int i = 0; i < inv.length; i++) {
  110.             ItemStack stack = inv[i];
  111.             if (stack != null) {
  112.                 NBTTagCompound tag = new NBTTagCompound();
  113.                 tag.setByte("Slot", (byte)i);
  114.                 stack.writeToNBT(tag);
  115.                 itemList.appendTag(tag);
  116.             }
  117.         }
  118.         tagCompound.setTag("Inventory", itemList);
  119.     }
  120. }
Advertisement
Add Comment
Please, Sign In to add comment