csharp
public static class FoliageBlockersThe bounds query the growth kernel deliberately cannot name: scene entities as blockers.
Remarks
The seam, and it is one method. FoliageGrowth.Simulate takes a list of FoliageBlocker and never asks where they came from; this is what turns a world into that list, and it lives here because this assembly is already the one that knows about both an ECS and foliage.
⚠ Gathered once per run rather than queried per candidate. A simulation tests every seed against every blocker at every step, so a query that walked the world each time would be an archetype iteration inside three nested loops. A blocker that moves during a run is not a case: a run is a button press.
Methods (2)
public static int Gather(World world, List<FoliageBlocker> into)Every enabled blocker in a world, as the kernel takes them.
public static IReadOnlyList<FoliageBlocker> Gather(World world)Every enabled blocker in a world.
Used by (1)
- FoliageBlockerTestsVixen.Rendering.Terrain.Tests