Trees are super complicated in 1.16. I have a solution, but I want a better one if possible.

So, I am making a dimension which is basically a clay version of the overworld. For this, I am making custom biomes as well. I had a problem with the forests. This is long, but please read.

The problem I had was that the tree feature doesn't generate unless the block is "appropriate" for trees (i.e. grass, dirt, etc). So, they didn't spawn because my top block is, well, clay.

SO, I found a complex solution, after working on it FOREVER. I basically used the random patch feature I used for cacti (except only one block tall) to spawn grass blocks everywhere. Then, after the grass blocks, I added the tree feature, trying to get them to cover as much area as possible. From what I can tell, there is no way to make them cover the entire area. If there is, though, please tell me. I used the dark oak tree feature decorator because it has a uniform placement and then I used a randomized one which covers most of the space. Together, this made trees spawn on most of the grass blocks.

But, I ran into an issue where there would still be grass blocks lingering around. So, I made a feature that replaces grass blocks with air. I used two versions, again, with the dark oak decorator and a random decorator so that it covers the most area.

I had to make like 9 of these so that the randomness would eventually cover all of the space. After that, I saw no more grass blocks (im sure its still possible for one to appear but).

This works, and I was very happy. But, there is an issue. Because I didn't wanna keep the block below the tree as grass or air, for obvious reasons, I had the trees use the spawn/replace blocks decorator (the one used for podzol with mega spruce trees) to have them replace the grass with brown terracotta. This resulted in some lingering brown terracotta blocks sitting on their own because they replaced the grass block nearby before the grass was replaced by air. It kinda looks like chopped trees which is okayyy but i'd rather them not be there.

Continue to help post