Cherry placement requires a space check: the second-layer 5×5 area above must consist solely of blocks tagged #minecraft:replaceable_by_trees. However, a Cobweb exists in that area, and Cobweb is not part of this tag or its sub-tags
Call chain:
cherry.json //(data\minecraft\worldgen\template_pool\abandoned_camp\trees\cherry.json)
→ cherry_checked.json
→ feature: "minecraft:cherry"
→ cherry.json //(data\minecraft\worldgen\feature\cherry.json)
→ "type": "minecraft:tree" //(TreeFeature.place())
→ TreeFeature.getMaxFreeTreeHeight() //Scans each layer with radius from getSizeAtHeight(), upper_size=2 yields a 5×5 area per layer
→ minimum_size: minecraft:two_layers_feature_size //(TwoLayersFeatureSize)
config from cherry.json: limit=1 (default), lower_size=0 (default), upper_size=2
→ trunk_placer: minecraft:cherry_trunk_placer //(CherryTrunkPlacer.isFree())
→ TreeFeature.validTreePos()
→ state.isAir() || state.is(BlockTags.REPLACEABLE_BY_TREES) //This is where it checks whether the block is air or tagged #minecraft:replaceable_by_treesgetMaxFreeTreeHeight():
private int getMaxFreeTreeHeight(WorldGenLevel level, int maxTreeHeight, BlockPos treePos) {
BlockPos.MutableBlockPos blockPos = new BlockPos.MutableBlockPos();
for (int y = 0; y <= maxTreeHeight + 1; ++y) {
int r = this.minimumSize.getSizeAtHeight(maxTreeHeight, y);
for (int x = -r; x <= r; ++x) {
for (int z = -r; z <= r; ++z) {
blockPos.setWithOffset(treePos, x, y, z);
if (this.trunkPlacer.isFree(level, blockPos) && (this.ignoreVines || !TreeFeature.isVine(level, blockPos))) continue;
return y - 2;
}
}
}
return maxTreeHeight;
}getSizeAtHeight():
public int getSizeAtHeight(int treeHeight, int yo) {
return yo < this.limit ? this.lowerSize : this.upperSize;
}validTreePos():
public static boolean validTreePos(LevelSimulatedReader level, BlockPos pos) {
return level.isStateAtPosition(pos, state -> state.isAir() || state.is(BlockTags.REPLACEABLE_BY_TREES));
}replaceable_by_trees.json:
{
"values": [
"#minecraft:leaves",
"#minecraft:small_flowers",
"minecraft:pale_moss_carpet",
"minecraft:short_grass",
"minecraft:fern",
"minecraft:dead_bush",
"minecraft:vine",
"minecraft:glow_lichen",
"minecraft:sunflower",
"minecraft:lilac",
"minecraft:rose_bush",
"minecraft:peony",
"minecraft:tall_grass",
"minecraft:large_fern",
"minecraft:hanging_roots",
"minecraft:pitcher_plant",
"minecraft:water",
"minecraft:seagrass",
"minecraft:tall_seagrass",
"minecraft:bush",
"minecraft:firefly_bush",
"minecraft:warped_roots",
"minecraft:nether_sprouts",
"minecraft:crimson_roots",
"minecraft:leaf_litter",
"minecraft:short_dry_grass",
"minecraft:tall_dry_grass"
]
}Attachments
Comments 3
This issue has been reviewed by our team.
Please add new, relevant information if it helps us understand or reproduce the issue. To show that you’re affected, use the vote feature rather than commenting.
If a fix is implemented, it will be listed in our official changelogs.
For major outages or urgent assistance, visit the Minecraft Help Center.
Thank you for helping us improve Minecraft! We saved your files: