Because the issue of trees and terrains are coming up from time to time i think it is time for extra thread to this.
Just a few words about the current implementation:
- There are 3 values related to each terrain which are called "terrain affnitys" (temperature, humidity, fertility)
- Therea are 4 values related to each tree (preferred_temperature, preferred_humidity, preferred_fertility, pickiness)
Depending on this values a calculation is made if a tree grows very good or a tree grows not as good on a specific terrain. And this values are needed form a forester to plant a tree which is one of the best for a specific terrain.
The problems of current implementation, from my point of view, are described in this bug where the main problem is related to the mapmaker:
1.a It is not clear, which terrain affect treegrowing in which way. He may place f.e. mushroom trees (from blackland) on desert and while testing the map all the trees will probably dy before they get old
1.b. He may mix terrains from different worlds in one place nearby and treegrowing isn't as suspected.
Palm trees are another issue, because with the current implementation they are planted by foresters on meadow, which looks annoying (to some people ).
Some ideas to solve the current problems:
- king_of_nowhere proposed an additional value to the current 4 values
- Tibor suggested a complete new implementation of "biome" types
My personal (current) favorit implementation would be a "mapmakers decision" thing. If a mapmaker decide to plant whatever tree on whatever terrain, this is the rule. Automatic seeding of new trees depends then on the trees which are already in this area, independent form the terrain type (except "dry" and "dead" terrains). A problem with this idea are foresters who wants to plant trees where formerly no trees are growing (which sort of tree should they plant there? -> maybe one of the trees which are already found in this map?).
If you thinking about another solution please keep in mind:
backwards compatibility: We'd like to be able to still load maps from b18 and earlier