Vixen
02b45cc4
csharp
public static class FoliageBlockers

The bounds query the growth kernel deliberately cannot name: scene entities as blockers.

Read the guide page for this →

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