package blusunrize.immersiveengineering.common.gui; import blusunrize.immersiveengineering.common.util.inventory.IIEInventory; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TextComponentString; public class InventoryTile implements IInventory { TileEntity tile; IIEInventory inv; String name; public InventoryTile(TileEntity tile) { this.tile = tile; this.inv = (IIEInventory)tile; this.name = tile.getClass().getName(); this.name = "IE"+(name.substring(name.lastIndexOf("TileEntity")+"TileEntity".length())); } @Override public String getName() { return this.name; } @Override public boolean hasCustomName() { return false; } @Override public ITextComponent getDisplayName() { return new TextComponentString(this.name); } @Override public int getSizeInventory() { return inv.getInventory().length; } @Override public ItemStack getStackInSlot(int index) { return inv.getInventory()[index]; } @Override public ItemStack decrStackSize(int index, int count) { ItemStack stack = inv.getInventory()[index]; if(stack != null) if(stack.stackSize<=count) inv.getInventory()[index] = null; else { stack = stack.splitStack(count); if(stack.stackSize==0) inv.getInventory()[index] = null; } return stack; } @Override public ItemStack removeStackFromSlot(int index) { ItemStack ret = inv.getInventory()[index].copy(); inv.getInventory()[index] = null; return ret; } @Override public void setInventorySlotContents(int index, ItemStack stack) { inv.getInventory()[index] = stack; } @Override public int getInventoryStackLimit() { return 64; } @Override public void markDirty() { tile.markDirty(); } @Override public boolean isUseableByPlayer(EntityPlayer player) { return !tile.isInvalid() && tile.getDistanceSq(player.posX, player.posY, player.posZ)<64; } @Override public void openInventory(EntityPlayer player) { } @Override public void closeInventory(EntityPlayer player) { for(int i=0; i<getSizeInventory(); i++) inv.doGraphicalUpdates(i); } @Override public boolean isItemValidForSlot(int index, ItemStack stack) { return inv.isStackValid(index, stack); } @Override public int getField(int id) { return 0; } @Override public void setField(int id, int value) { } @Override public int getFieldCount() { return 0; } @Override public void clear() { for(int i=0; i<inv.getInventory().length; i++) inv.getInventory()[i] = null; } }