The bug
The surface of a bubble column acts slightly differently; an entity at the surface of a bubble column will be launched at a greater velocity than the other portions of a bubble column.
However, the check for this behavior is flawed; the surface is determined by whether the bubble column block is below an air block. As a result, non-air blocks without collision such as signs and torches will prevent this behavior from occurring.
To reproduce
To reproduce, throw two splash potions in two bubble columns; one with a sign at the surface, and one with air at the surface. Observe that the latter potion will be launched higher than the former potion.
Code analysis (Yarn mappings)
The BubbleColumnBlock#onEntityCollision method checks for air in the position above the bubble column block:
@Override
public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity) {
BlockState aboveState = world.getBlockState(pos.up());
if (aboveState.isAir()) {
entity.onBubbleColumnSurfaceCollision(state.get(DRAG));
// ...Comments 0
No comments.