feat(editor): biome vegetation auto-population system

One-click procedural object placement based on biome rules:

- 10 biome vegetation rulesets with density, scale range, and slope
  constraints per asset type (trees, bushes, rocks, ferns, etc.)
- Grassland: pine trees + bushes + rocks
- Forest: ashenvale trees + ferns + forest rocks (dense canopy)
- Jungle: palm trees + ferns + vines (high density)
- Desert: cacti + desert rocks + bones (sparse)
- Barrens: scattered trees + dry bushes + rocks
- Snow: snow pines + snowdrifts + rocks
- Swamp: dark trees + mushrooms + logs
- Rocky: rock formations + rock piles
- Beach: palm trees + beach rocks
- Volcanic: lava rocks + charred trees

Objects panel > Auto-Populate Biome: select biome, set seed, click
"Populate Zone" to fill the entire tile with biome-appropriate
vegetation at rule-defined densities.
This commit is contained in:
Kelsi 2026-05-05 16:42:41 -07:00
parent 0d401c3eb8
commit 110f250150
4 changed files with 143 additions and 0 deletions

View file

@ -82,6 +82,11 @@ public:
void scatter(const glm::vec3& center, float radius, int count,
float minScale, float maxScale);
// Procedural biome population: auto-place vegetation based on rules
int populateBiome(const struct BiomeVegetation& vegetation,
float tileSize, const glm::vec3& tileOrigin,
uint32_t seed = 42);
private:
uint32_t nextUniqueId();