Posted January 1, 201411 yr I have set up the block so that I has multiple textures however, there seems to be a bug were it only displays the correct textures when it's clicked you can see what I mean Does anyone know why this is happening The git hubs Block https://github.com/PandaTeam/HydroBlocks/blob/master/src/hydroblocks/blocks/BatteryBlock.java TileEntity https://github.com/PandaTeam/HydroBlocks/blob/master/src/hydroblocks/blocks/tileentities/TileEntityBattery.java
January 1, 201411 yr Umm why do you have 2 methods making tile entities? @Override public TileEntity createTileEntity(World world, int meta) { return new TileEntityBattery(); } @Override public TileEntity createTileEntity(World world, int meta) { return null; }
January 1, 201411 yr Author I missed that, I must have used add unimplemented method at one point. I think that made some progress, it still flickers however it doesn't require to be clicked for it to be seen.
January 1, 201411 yr This probably isn't related, but you have a typo here: if (energyStored >= 0 && energyStored <= 100) { //what happens at 200? worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, 0, 3); } As to your issue: Client-server disparity. You need to implement getDescriptionPacket (if I am recalling the method name correctly) and onPacketData. What's happening is that your server-side tile entity is changing the block metadata to not-zero and the client sided tile entity is changing it back....because it doesn't have the correct energy values! This is why it flickers any time it changes from 10% to 20% or back: changing the metadata to what it already is doesn't send an update packet. Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
January 1, 201411 yr Author This probably isn't related, but you have a typo here: if (energyStored >= 0 && energyStored <= 100) { //what happens at 200? worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, 0, 3); } As to your issue: Client-server disparity. You need to implement getDescriptionPacket (if I am recalling the method name correctly) and onPacketData. What's happening is that your server-side tile entity is changing the block metadata to not-zero and the client sided tile entity is changing it back....because it doesn't have the correct energy values! This is why it flickers any time it changes from 10% to 20% or back: changing the metadata to what it already is doesn't send an update packet. gotta hate typo's I will have a look thought http://www.minecraftforge.net/wiki/Packet_Handling i think that's what your getting at. But for now im off to party, Happy new years (even if it's a bit late / early depending on timezones)
January 1, 201411 yr No no. You don't need to packethandle this yourself. You need this: public Packet getDescriptionPacket() { NBTTagCompound nbtTag = new NBTTagCompound(); this.writeToNBT(nbtTag); //this packet already handles the problem you have. return new Packet132TileEntityData(this.xCoord, this.yCoord, this.zCoord, 1, nbtTag); } public void onDataPacket(INetworkManager net, Packet132TileEntityData packet) { readFromNBT(packet.data); } Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
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.