mojira.dev
MC-267407

Breeze spawns particles when floating above a non-full block

A breeze that occupies a non-full block, such as a slab, will use the block at the position below its feet(?) to determine the spawned particles, even if the breeze is off the ground and spawning particles wouldn't make sense.

The fix for MC-266430 only covers the situation in which the block position used for particles was wrong. This bug concerns when the block position is right (because the breeze isn't actually standing in air, but rather the slab or other non-full block) but the breeze is still positioned off of the ground.

Visual analysis

Based on the attached image:

Case 1

Case 2

Case 3

Case 4

Breeze directly on slab

Breeze directly on full block

Breeze above slab

Breeze above full block

Fixed by MC-266430

Always worked

Not fixed

Fixed by MC-266430

Code analysis (Yarn mappings)

Minecraft 23w51a switched the block position used from particles from the block position below the entity's block position to the block position directly below the entity's feet (or the block position of the entity if the entity is occupying non-air).

// Before
BlockState state = this.getWorld().getBlockState(this.getBlockPos().down());

// After
BlockState state = !this.getBlockStateAtPos().isAir() ? this.getBlockStateAtPos() : this.getSteppingBlockState();

This code should presumably test against the actual shape of the block, though such a fix could possibly break the fact that breezes currently produce the particles of pressure plates they stand on (inside due to pressure plates not having collision).

Linked issues

Attachments

Comments 0

No comments.

haykam

(Unassigned)

1158527

Confirmed

Expansion B

Low

Particles

breeze

23w51b, 24w03a, 24w06a, 24w12a, 24w13a, ..., 1.21.5, 25w17a, 1.21.6 Pre-Release 3, 1.21.8, 25w34b

Retrieved