Vixen
dd8b0a81
csharp
public sealed class TerrainColliders

Rebuilds a terrain's Jolt collision when a sculpt stroke moves the ground: the editor's ITerrainColliders seam, fed by TerrainColliderSystem.

Read the guide page for this →

Remarks

The adapter docs/plan/31 § D10 said nobody had written. ITerrainColliders is what TerrainEdit.Commit calls after every stroke and its only implementation in the tree was a test double; TerrainColliderSystem is what turns a tile's samples into a height-field body. Neither may reference the other — the layer rules fail a Core/ project that references an Editor/ one, and the toolset deliberately links no physics — so the join is a third assembly, which is Vixen.Terrain.Physics' own arrangement one layer up.

⚠ The claim it was "three lines" was nearly right and the missing line is the whole point. The two Rebuild methods return where the interface returns , and a forwarding wrapper that discarded that value would be the exact failure this engine keeps producing: means this system has never heard of this terrain, so every stroke would return successfully having rebuilt nothing. A terrain becomes known through Sync over its ITerrainPlacements, so that is what a refusal is answered with.

⚠ Push and poll do not fight, and it is worth knowing why rather than assuming. TerrainColliderSystem stamps each tile with Terrain.RevisionOf as it builds it, and its per-frame pass skips a tile whose stamp still matches — so a stroke pushed through here is not rebuilt a second time on the next frame. What this adds over the poll is only when: the frame the artist let go of the mouse rather than the one after it.

⚠ Missed is the number that says the wiring is wrong. A stroke whose terrain is in no placement list rebuilds nothing and cannot say so through a — which is how the seam stayed unfed and silent for a year. Zero is the working state; anything else is a terrain being sculpted that the physics world was never told about.

Fields and properties (1)

  • public int Missed

    How many rebuilds named a terrain the collider system had no bodies for.

Methods (3)

  • public TerrainColliders(TerrainColliderSystem colliders)

    Rebuilds a terrain's Jolt collision when a sculpt stroke moves the ground: the editor's ITerrainColliders seam, fed by TerrainColliderSystem.

  • public void Rebuild(Terrain terrain, int tileX, int tileZ)

    Rebuilds one tile's collision shape.

  • public void Rebuild(Terrain terrain, TerrainRect rect)

Used by (3)

  • PlayCollidersVixen.Editor.Terrain.Physics
  • PlayTerrainCollidersVixen.Editor.Terrain.Physics
  • SculptedGroundTestsVixen.Editor.Terrain.Physics.Tests