fix(physics): activate collision generations atomically
This commit is contained in:
parent
3e0f3b6206
commit
be94bc9b06
18 changed files with 1402 additions and 80 deletions
|
|
@ -485,8 +485,21 @@ What exists and is active:
|
|||
collision assets loaded from the validated prepared package. Production
|
||||
retains no parsed DAT collision graph; graph construction is restricted to
|
||||
bake/equivalence tools and explicit test oracles.
|
||||
- `ShadowObjectRegistry` gives movement a broadphase over nearby objects and
|
||||
buildings.
|
||||
- Landblock collision activation is generation-owned by
|
||||
`RuntimePhysicsState`. Graphical and no-window hosts populate a private
|
||||
`PreparedLandblockCollisionGeneration` over bounded cursors; its cache,
|
||||
`CellGraph`, engine landblock, buildings, static shadows, and dynamic-owner
|
||||
refloods are never visible through the borrowed live engine. Runtime validates
|
||||
the exact admission plus every affected dynamic shadow-owner version, seals
|
||||
the complete replacement, and commits it synchronously on the one update
|
||||
thread before emitting `CollisionGenerationCommitted`. A moving, spawned, or
|
||||
deleted owner makes the generation not-ready and returns only that dirty owner
|
||||
to the cursor-budgeted refresh phase. Thus readers see the complete old
|
||||
generation or complete new generation, never a mixed cell/cache/shadow world.
|
||||
- `ShadowObjectRegistry` gives movement a per-cell broadphase over nearby
|
||||
objects and buildings. Streaming reflood is structurally part of the Runtime
|
||||
collision-generation commit; there is no independent post-publication
|
||||
reflood suffix.
|
||||
- `TerrainSurface` uses triangle-aware terrain contact; older "bilinear terrain
|
||||
Z" descriptions are historical B.3 language, not current architecture.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue