Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.63 KB | None | 0 0
  1. package com.walkingdead.walkingdeadmod.items.backpack;
  2.  
  3. import com.walkingdead.walkingdeadmod.items.ItemSmallBackPack;
  4.  
  5. import net.minecraft.entity.player.EntityPlayer;
  6. import net.minecraft.inventory.IInventory;
  7. import net.minecraft.item.ItemStack;
  8. import net.minecraft.nbt.NBTTagCompound;
  9. import net.minecraft.nbt.NBTTagList;
  10. import net.minecraft.util.text.ITextComponent;
  11. import net.minecraftforge.common.util.Constants;
  12.  
  13. public class InventoryItem implements IInventory{
  14.    
  15.    
  16.    
  17.     private String name = "Inventory Item";
  18.     private final ItemStack invItem;
  19.     public static final int INV_SIZE = 8;
  20.     private ItemStack[] inventory = new ItemStack[INV_SIZE];
  21.    
  22.     public InventoryItem(ItemStack stack)
  23.     {
  24.         invItem = stack;
  25.  
  26.         if (!stack.hasTagCompound()) {
  27.             stack.setTagCompound(new NBTTagCompound());
  28.         }
  29.         readFromNBT(stack.getTagCompound());
  30.     }
  31.    
  32.    
  33.     @Override
  34.     public String getName() {
  35.         return name;
  36.     }
  37.  
  38.     @Override
  39.     public boolean hasCustomName() {
  40.         return name.length() > 0;
  41.     }
  42.  
  43.     @Override
  44.     public ITextComponent getDisplayName() {
  45.         return null;
  46.     }
  47.  
  48.     @Override
  49.     public int getSizeInventory() {
  50.         return inventory.length;
  51.     }
  52.  
  53.     @Override
  54.     public boolean isEmpty() {
  55.         return false;
  56.     }
  57.  
  58.     @Override
  59.     public ItemStack getStackInSlot(int index) {
  60.         return inventory[index];
  61.     }
  62.  
  63.     @Override
  64.     public ItemStack decrStackSize(int slot, int amount) {
  65.         ItemStack stack = getStackInSlot(slot);
  66.         if(stack != null)
  67.         {
  68.             if(stack.getCount() > amount)
  69.             {
  70.                 stack = stack.splitStack(amount);
  71.                 markDirty();
  72.             }
  73.             else
  74.             {
  75.                 setInventorySlotContents(slot, null);
  76.             }
  77.         }
  78.         return stack;
  79.     }
  80.  
  81.     @Override
  82.     public ItemStack removeStackFromSlot(int index) {
  83.         // TODO Auto-generated method stub
  84.         return null;
  85.     }
  86.  
  87.     @Override
  88.     public void setInventorySlotContents(int slot, ItemStack stack) {
  89.         inventory[slot] = stack;
  90.  
  91.         if (stack != null && stack.getCount() > getInventoryStackLimit())
  92.         {
  93.             stack.setCount(getInventoryStackLimit());
  94.         }
  95.  
  96.         markDirty();
  97.        
  98.     }
  99.  
  100.     @Override
  101.     public int getInventoryStackLimit() {
  102.         return 64;
  103.     }
  104.  
  105.     @Override
  106.     public void markDirty() {
  107.         for (int i = 0; i < getSizeInventory(); ++i)
  108.         {
  109.             if (getStackInSlot(i) != null && getStackInSlot(i).getCount() == 0) {
  110.                 inventory[i] = null;
  111.             }
  112.         }  
  113.         writeToNBT(invItem.getTagCompound());
  114.     }
  115.  
  116.     @Override
  117.     public boolean isUsableByPlayer(EntityPlayer player) {
  118.         return true;
  119.     }
  120.  
  121.     @Override
  122.     public void openInventory(EntityPlayer player) {
  123.     }
  124.  
  125.     @Override
  126.     public void closeInventory(EntityPlayer player) {
  127.     }
  128.  
  129.     @Override
  130.     public boolean isItemValidForSlot(int index, ItemStack stack) {
  131.         return !(stack.getItem() instanceof ItemSmallBackPack);
  132.     }
  133.  
  134.     @Override
  135.     public int getField(int id) {
  136.         return id;
  137.     }
  138.  
  139.     @Override
  140.     public void setField(int id, int value) {
  141.     }
  142.  
  143.     @Override
  144.     public int getFieldCount() {
  145.         return 0;
  146.     }
  147.  
  148.     @Override
  149.     public void clear() {
  150.     }
  151.    
  152.     public void readFromNBT(NBTTagCompound compound)
  153.     {
  154.         NBTTagList items = compound.getTagList("ItemInventory", Constants.NBT.TAG_COMPOUND);
  155.  
  156.         for (int i = 0; i < items.tagCount(); ++i)
  157.         {
  158.             NBTTagCompound item = (NBTTagCompound) items.getCompoundTagAt(i);
  159.             int slot = item.getInteger("Slot");
  160.         }
  161.     }
  162.  
  163.  
  164.     public void writeToNBT(NBTTagCompound tagcompound)
  165.     {
  166.         NBTTagList items = new NBTTagList();
  167.  
  168.         for (int i = 0; i < getSizeInventory(); ++i)
  169.         {
  170.             if (getStackInSlot(i) != null)
  171.             {
  172.                 NBTTagCompound item = new NBTTagCompound();
  173.                 item.setInteger("Slot", i);
  174.  
  175.                 getStackInSlot(i).writeToNBT(item);
  176.  
  177.  
  178.                 items.appendTag(items);
  179.             }
  180.         }
  181.         tagcompound.setTag("ItemInventory", items);
  182.     }
  183.  
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement