-
Bug
-
Resolution: Unresolved
-
None
-
23w51b, 24w03a, 24w06a, 24w12a, 24w13a, 1.20.6, 24w18a, 1.21 Pre-Release 2, 1.21, 24w33a, 1.21.1, 24w34a, 24w35a, 24w36a, 24w37a, 24w38a, 24w39a, 1.21.2 Pre-Release 3, 24w44a, 1.21.3, 1.21.4
-
Confirmed
-
Particles
-
Low
-
1158527
-
Expansion B
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 |
Always worked | Not fixed | Fixed by |
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).