package net.minecraft.inventory; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntityEnderChest; public class InventoryEnderChest extends InventoryBasic { private TileEntityEnderChest associatedChest; private static final String __OBFID = "CL_00001759"; public InventoryEnderChest() { super("container.enderchest", false, 27); } public void setChestTileEntity(TileEntityEnderChest chestTileEntity) { this.associatedChest = chestTileEntity; } public void loadInventoryFromNBT(NBTTagList p_70486_1_) { int var2; for (var2 = 0; var2 < this.getSizeInventory(); ++var2) { this.setInventorySlotContents(var2, (ItemStack)null); } for (var2 = 0; var2 < p_70486_1_.tagCount(); ++var2) { NBTTagCompound var3 = p_70486_1_.getCompoundTagAt(var2); int var4 = var3.getByte("Slot") & 255; if (var4 >= 0 && var4 < this.getSizeInventory()) { this.setInventorySlotContents(var4, ItemStack.loadItemStackFromNBT(var3)); } } } public NBTTagList saveInventoryToNBT() { NBTTagList var1 = new NBTTagList(); for (int var2 = 0; var2 < this.getSizeInventory(); ++var2) { ItemStack var3 = this.getStackInSlot(var2); if (var3 != null) { NBTTagCompound var4 = new NBTTagCompound(); var4.setByte("Slot", (byte)var2); var3.writeToNBT(var4); var1.appendTag(var4); } } return var1; } /** * Do not make give this method the name canInteractWith because it clashes with Container */ public boolean isUseableByPlayer(EntityPlayer playerIn) { return this.associatedChest != null && !this.associatedChest.func_145971_a(playerIn) ? false : super.isUseableByPlayer(playerIn); } public void openInventory(EntityPlayer playerIn) { if (this.associatedChest != null) { this.associatedChest.func_145969_a(); } super.openInventory(playerIn); } public void closeInventory(EntityPlayer playerIn) { if (this.associatedChest != null) { this.associatedChest.func_145970_b(); } super.closeInventory(playerIn); this.associatedChest = null; } }