Posted February 10, 201312 yr Hi, I've made a block with a single inventory slot (according to this tutorial: http://www.minecraftforge.net/wiki/Containers_and_GUIs) and everything works fine. Know I want to change the appearance of the block based on the item in the inventory. I implemented the ISimpleBlockRenderingHandler interface and in the renderWorldBlock method I want to get the item stored in the inventory like this: TileEntityTiny tileEntity = (TileEntityTiny) world.getBlockTileEntity(x, y, z); ItemStack itemStack = tileEntity.getStackInSlot(0); The problem with this is: itemStack is null, until I opened the GUI once. The readFromNBT() method of the TileEntity gets called correctly, so I assume it might be a synching problem with the client, but I have no clue, where to look at. Thanks for your help!
February 10, 201312 yr Author Thanks a lot! This is my solution: @Override public Packet getDescriptionPacket() { NBTTagCompound tagCompound = new NBTTagCompound(); this.writeToNBT(tagCompound); return new Packet132TileEntityData(xCoord, yCoord, zCoord, 0, tagCompound); } @Override public void onDataPacket(INetworkManager net, Packet132TileEntityData pkt) { this.readFromNBT(pkt.customParam1); }
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.