Vixen
02b45cc4
csharp
public readonly record struct FoliageBlocker

A box that nothing grows inside.

Read the guide page for this →

Remarks

[docs/plan/31 § T9]'s blocking volumes. A road, a building footprint, a clearing an author wants — anywhere the simulation must leave alone.

⚠ A box and not a shape, because this assembly has no physics world. A caller with one converts; a caller without still gets the feature. The same reason IFoliageSurface is an interface rather than a terrain.

⚠ It blocks rather than removes. A seed inside is refused, so re-running with the volume moved regrows what it used to cover — which is the whole point of the simulation being re-runnable. A blocker that deleted would make its own removal irreversible.

Fields and properties (2)

  • public Vector3 Centre

    Where it is.

  • public Vector3 Extent

    Half its size on each axis.

Methods (3)

  • public FoliageBlocker(Vector3 Centre, Vector3 Extent)

    A box that nothing grows inside.

  • public static FoliageBlocker Around(Vector2 centre, float radius)

    A blocker covering a horizontal circle at any height.

  • public bool Contains(Vector3 position)

    Whether a position is inside.

Used by (4)

  • FoliageBlockerTestsVixen.Rendering.Terrain.Tests
  • FoliageBlockersVixen.Rendering.Terrain
  • FoliageGrowthVixen.Foliage
  • FoliageGrowthTestsVixen.Foliage.Tests