Blocks that connect to each other/their surrounding loose their connections while being moved by a piston.
This issue can be shown well by putting an entity on top of a row of fences and moving the fences below it.
[media]Video: https://www.youtube.com/watch?v=dnZHW9URLvQ
As the connection is lost (all fences have a small collision box) the entity can fall through between the fences while they are moving.
[media](Collision boxes while the fences are moving)
Cause
It turns out there is already code in place to make block keep the state it had when it starts moving¹.
However the methods that get the bounding box(es) make sure to calculate the actual state again, so they calculate it from the surrounding blocks of the moving block which leads to the wrong values.
To fix this it somehow needs to be made sure that when the piston gets the bounding boxes the state is not recalculated, but instead the values that were set when the piston started moving are used.
1) That actual state would be forgotten when reloading the tileentity, but that's another tiny bug.
Linked issues
relates to 2
Attachments
Comments 2
Yes, but I accidentally had two issues in MC-108673, so I decided to split them up.
MC-108673 is that entities don't get moved by the upper part of fences now while this issue is that the connection of fences is lost while they are moving.
One can be fixed without affecting the other.
Sorry for the mix up 🙂
Isn't this MC-108673?Nevermind, tickets were separated.