+ if (diff == 1) {
+ for (int i = 0; i < NUM_TREES; i++) {
+ TreeDef *def = &tree_definitions[i];
+
+ if (def->condition(pos, humidity, temperature, biome, factor, block, row_data, block_data)
+ && noise2d(pos.x, pos.z, 0, seed + def->offset) * 0.5 + 0.5 < def->probability
+ && smooth2d(U32(pos.x) / def->spread, U32(pos.z) / def->spread, 0, seed + def->area_offset) * 0.5 + 0.5 < def->area_probability) {
+ def->generate(pos, changed_blocks);
+ break;
+ }
+ }
+ }
+