How Trees was built

Raw game files read

Processing

worldgen/treengenproperties.json lists every tree/shrub generator as a climate band (temperature/rain/fertility/forest-density range, each stored 0-255 and normalized to 0-1 here). Each generator's own worldgen/treegen/<Generator>.json file is read just for its log/leaves block codes, and saplings are matched back to their generator via the sapling block's own glob-keyed attributes.treeGenByType -- this is how a species climate band ends up cross-linked to the concrete sapling/log/leaves block codes that actually show up on those blocks' own item pages.

Pipeline code