The bug
The required free area for 2 × 2 trees to grow is larger in the negative directions.
How to reproduce
Build a 2 × 2 area of dirt
Build a stone tower one block away in the positive x- or z-direction, see
Place jungle saplings on the dirt and increase the
randomTickSpeed
gamerule value/gamerule randomTickSpeed 1000
→ The tree grows
Repeat steps 1 to 3 but this time build the stone tower in the negative x- or z-direction, see
→ The tree does not grow
Note: Some blocks like logs and leaves don't obstruct tree growth. Saplings however do.
Code analysis
Based on 1.12 decompiled using MCP 9.40 PRE 1
2 × 2 trees generate beginning at the sapling in the negative x- and z-direction, however the free area checks (jungle and spruce: net.minecraft.world.gen.feature.WorldGenHugeTrees.isSpaceAt(World, BlockPos, int)
, dark oak: net.minecraft.world.gen.feature.WorldGenCanopyTree.placeTreeOfHeight(World, BlockPos, int)
) offset the sapling position equally in negative and positive directions instead of offsetting it further in the positive directions.
Related issues
is duplicated by
Attachments
Comments


Affects 1.21.3. Also would like to request ownership of this report to maintain it