ref: 2c305a89aceb99de504672b0b1dce29d47d09aa2
package btw.community.tsughoggr.gloryholes; import net.minecraft.src.*; public class TSGBlowingStand extends TileEntity implements IInventory{ private ItemStack[] contents = new ItemStack[8]; private ItemStack recipe; /* Blowpipe with a loaded recipe*/ private int progress; /*TileEntity*/ public void readFromNBT(NBTTagCompound nbt){ super.readFromNBT(nbt); contents = new ItemStack[8]; for(int i=0;i<contents.length;++i){ if(nbt.hasKey("inventory_" + i)) contents[i] = ItemStack.loadItemStackFromNBT(nbt.getCompoundTag("inventory_" + i)); } if(nbt.hasKey("recipe")) recipe = ItemStack.loadItemStackFromNBT(nbt.getCompoundTag("recipe")); if(nbt.hasKey("progress")) progress = nbt.getInteger("progress"); else progress = 0; } public void writeToNBT(NBTTagCompound nbt){ super.writeToNBT(nbt); for(int i=0;i<contents.length;++i){ if(contents[i] != null) nbt.setCompoundTag("inventory_" + i, contents[i].writeToNBT(new NBTTagCompound())); } if(recipe != null) nbt.setCompoundTag("recipe", recipe.writeToNBT(new NBTTagCompound())); nbt.setInteger("progress", progress); } /*IInventory*/ public int getSizeInventory(){ return 4; } public ItemStack getStackInSlot(int i){ return contents[i]; } public ItemStack decrStackSize(int i, int amt){ return null; } public ItemStack getStackInSlotOnClosing(int i){ return null; } public void setInventorySlotContents(int i, ItemStack stack){ if(contents[i] == null && stack != null) contents[i] = stack.splitStack(1); } public String getInvName(){ return "Blowing Stand"; } public boolean isInvNameLocalized(){ return false; } public int getInventoryStackLimit(){ return 1; } public void InventoryChanged(){ } public boolean isUseableByPlayer(EntityPlayer player){ return Math.sqrt(((xCoord - player.posX) * (xCoord - player.posX)) + ((yCoord - player.posY) * (yCoord - player.posY)) + ((zCoord - player.posZ) * (zCoord - player.posZ))) < 5; } public void openChest(){}; public void closeChest(){}; public boolean isStackValidForSlot(int i, ItemStack is){ if(contents[i] == null) return true; return false; } public boolean isItemValidForSlot(int i, ItemStack is){ return isStackValidForSlot(i, is); } /*Class Specific*/ //Design: - on neighbor change, if bellows and behind, update recipe. public void updateProgress(int amt){ } }