Jump to content

Flickering Texture bug


jibbity

Recommended Posts

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

 

 

 

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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)

 

 

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

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