Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-114128

Falling concrete powder turns too early to concrete powder block

XMLWordPrintable

    • Confirmed

      The bug

      Falling concrete poweder turns to a concrete powder block when it has not touched water yet.

      How to reproduce

      1. Place web one block above the ground
        /setblock ~2 ~1 ~ web
        
      2. Place water with water level 7 below it
        /setblock ~2 ~ ~ water level=7
        
      3. 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

      Code analyis

      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.

            Unassigned Unassigned
            marcono1234 Marcono1234
            Votes:
            3 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved:
              CHK: