The bug
Waterlogged blocks retain their waterlogged state when moved with sticky pistons with short redstone pulse. Screenshots attached.
Code analysis
The same code that fixed MC-127474 in TileEntityPiston.update()
needs to be added to TileEntityPiston.clearPistonTileEntity()
to ensure pistons that update faster than 2 ticks (or are quick-pulsed) also set their waterlogged
state to false
.
if(iblockstate.hasProperty(BlockStateProperties.WATERLOGGED) && iblockstate.getProperty(BlockStateProperties.WATERLOGGED))
{
iblockstate = (IBlockState) iblockstate.withProperty(BlockStateProperties.WATERLOGGED, Boolean.valueOf(false));
}
Linked issues
is duplicated by 1
relates to 1
Attachments
Comments 4
This shouldn't be a bug. When sticky pistons are powered with a 0 tick pulse, the block they push is teleported. Water should remain in it. It is coherent with the behavior.
I hope this function won't be removed either. I expect it will be useful for technical players.