Carpet

Carpet

2M Downloads

unsync Blockstate bug fix

Minepig opened this issue ยท 2 comments

commented

Some Blockstate changes are not sent to client.
Related blocks are: cactus, sugar cane, saplings, hopper, dispenser and dropper.

For dispenser and dropper, the triggered state does not change when it is powered/depowered.
For hopper, the enable state does not change when it is powered/depowered.
For cactus and sugar cane, the age state does not change when it is growing.
For sapling, the stage state does not change when it is growing.

This is because the setBlockState() method (net.minecraft.world.World.setBlockState(), in 1.14.4 forge) is called with a flag of 4, so the changes are not sent to clients, since the 0x2 bit is 0.

This issue doesn't affect the gameplay, but it makes creating a resourcepack to display these blockstates impossible. As a technical player, I like using some kinds of "blockstate displaying resourcepack", but because of this issue, the visualization of these Blockstates is messed.

Mojang don't consider it as a bug, by the way. It will be good if this issue is fixed in carpet mod. With a separated setting, just like other bug fix features.
Bug report link: https://bugs.mojang.com/browse/MC-70127

commented

My initial guess was exactly what grumm responded - that these are internals that should not worry the clients (like lots of sugarcane growing causing increased network traffic). Since its an intended behaviour, I woudn't call it a fix, but feel free to make a PR to carpet-extra yourself if you can do that, or wait until one of us sits down to it.

commented

It should be pretty easy to add this fix (just a couple of @ModifyConstant's) . But idk what to say about grum's comment on the bug report about network traffic.