Falling concrete poweder turns to a concrete powder block when it has not touched water yet.
- Place web one block above the ground
- Place water with water level 7 below it
- Let a concrete powder block fall into the web
→ You will see that it turns into a concrete powder block as soon as it starts moving out of the web
Based on 17w06a decompiled using JD GUI and cfr and 1.11.2 decompiled using MCP 9.35 rc1
It looks like currently a ray trace result from the previous position of the falling block to the current position of the falling block is done. The problem is that the method net.minecraft.entity.item.EntityFallingBlock.onUpdate() does not test if the hit type of the ray trace result is RayTraceResult.Type.BLOCK. Because of that it currently converts the falling block entity to the block even if the type is MISS.
After that is changed the method net.minecraft.block.BlockLiquid.canCollideCheck(IBlockState, boolean) needs to be corrected because it should probably always return true if the parameter hitIfLiquid is true regardless of the water level.
Additionally the method net.minecraft.block.BlockLiquid.getBoundingBox(IBlockState, IBlockAccess, BlockPos) needs to be corrected to return the correct bounding box based on the water level.