Jump to content

Varogh

Members
  • Posts

    7
  • Joined

  • Last visited

Everything posted by Varogh

  1. Simple chest, and it contains things EDIT: I don't know why, but initializing IInventory inpInventory = null; before assigning its vaule to (IInventory) inpTile fixes the problem... thanks everyone anyway.
  2. My objective is to make a machine that gets a chest's inventory and puts it into its own inventory, that's why I'm calling to another inventory. The code you wrote is identical to the code I had before looking at the TileEntityHopper class, and it's not working, so I looked how the hopper did that, and I saw it has special code for chests, so I copied the extra bit, but it's still not working. I followed the code step by step for both my TE and the Hopper, and the only difference seems to be that, when I call getStackInSlot I get null, while the hopper gets the itemStack, as it should
  3. public void updateEntity() { TileEntity inpTile = worldObj.getBlockTileEntity(xCoord, yCoord, zCoord+1); if ((inpTile != null) && (inpTile instanceof IInventory)){ IInventory inpInventory = (IInventory) inpTile; if (inpInventory instanceof TileEntityChest) { int l = this.getWorldObj().getBlockId(xCoord, yCoord, zCoord+1); Block block = Block.blocksList[l]; if (block instanceof BlockChest) { inpInventory = ((BlockChest)block).getInventory(this.getWorldObj(), xCoord, yCoord, zCoord+1); } } for (int i=0; i<inpInventory.getSizeInventory();i++){ if (inpInventory.getStackInSlot(i)!=null){ ItemStack incomingStack = inpInventory.getStackInSlot(i); //stub } } } } But I can't really see what you would need to know why zCoord+1, since it has absolutely nothing to do with my problem. PS: before you ask, yes, there is a chest at (xCoord, yCoord, zCoord + 1), and the tileentity returned by getBlockTileEntity is not null, it's a TileEntityChest instance.
  4. They would be both xCoord, yCoord, zCoord+1 , I changed that in the code I posted to make it more clear that those were the coordinates I'm getting the chest from, but I forgot to change them in the getInventory method. Anyway, they're the same in my code, so that's not the problem.
  5. I can't get the getStackInSlot function to work on a chest. I even tried to copy the code of hoppers but it's still not working. This is the code to get the inventory: public void updateEntity() { TileEntity inpTile = worldObj.getBlockTileEntity(xCoord, yCoord, zCoord+1); if ((inpTile != null) && (inpTile instanceof IInventory)){ IInventory inpInventory = (IInventory) inpTile; if (inpInventory instanceof TileEntityChest) { int l = this.getWorldObj().getBlockId(xCoord, yCoord, zCoord+1); Block block = Block.blocksList[l]; if (block instanceof BlockChest) { inpInventory = ((BlockChest)block).getInventory(this.getWorldObj(), xCoord, yCoord, zCoord+1); } } for (int i=0; i<inpInventory.getSizeInventory();i++){ if (inpInventory.getStackInSlot(i)!=null){ ItemStack incomingStack = inpInventory.getStackInSlot(i); //always returns null //stub } } } } The problem is, from what I can see from the debug, that inpInventory.getStackInSlot(i) always returns null. inpInventory and inpTile aren't null and are instance of TileEntityChest, and inpInventory.getSizeInventory() correctly returns 27. Could you tell me what's wrong?
  6. I have no intention on doing animations, so the first method should be enough. It also looks quite simple to use and kinda lightweight, so it's perfect. Thanks!
  7. I'm writing a machine that should change its textures on each side according to what the user sets it to (kinda like TE machines). I saw how the standard minecraft furnace does it but metadata are not an option, as there would be more than 16 possible states. Any idea an how to do it?
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.