feat(runtime): atomically replace collision generations
This commit is contained in:
parent
99bf1751bb
commit
9b0f59bd1b
21 changed files with 2435 additions and 408 deletions
|
|
@ -1106,7 +1106,7 @@ public sealed class PhysicsEngine
|
|||
/// Register a landblock with its terrain surface, indoor cells, portal
|
||||
/// planes, and world-space origin offset.
|
||||
/// </summary>
|
||||
public void AddLandblock(uint landblockId, TerrainSurface terrain,
|
||||
internal void AddLandblock(uint landblockId, TerrainSurface terrain,
|
||||
IReadOnlyList<CellSurface> cells, IReadOnlyList<PortalPlane> portals,
|
||||
float worldOffsetX, float worldOffsetY)
|
||||
{
|
||||
|
|
@ -1120,7 +1120,7 @@ public sealed class PhysicsEngine
|
|||
/// <summary>
|
||||
/// Remove a previously registered landblock, including its shadow objects.
|
||||
/// </summary>
|
||||
public void RemoveLandblock(uint landblockId)
|
||||
internal void RemoveLandblock(uint landblockId)
|
||||
{
|
||||
_landblocks.Remove(landblockId);
|
||||
RemoveLandblockSlot(landblockId);
|
||||
|
|
@ -1152,7 +1152,7 @@ public sealed class PhysicsEngine
|
|||
/// owned by this engine. Runtime calls this only at terminal disposal;
|
||||
/// ordinary streaming still uses the typed per-landblock retirement path.
|
||||
/// </summary>
|
||||
public void Clear()
|
||||
internal void Clear()
|
||||
{
|
||||
if (_landblocks.Count != 0)
|
||||
{
|
||||
|
|
@ -1173,7 +1173,7 @@ public sealed class PhysicsEngine
|
|||
/// while preserving its terrain surface and world offset for Far-tier use.
|
||||
/// The corresponding render-side demotion preserves the terrain slot too.
|
||||
/// </summary>
|
||||
public void DemoteLandblockToTerrain(uint landblockId)
|
||||
internal void DemoteLandblockToTerrain(uint landblockId)
|
||||
{
|
||||
uint canonical = (landblockId & 0xFFFF0000u) | 0xFFFFu;
|
||||
if (_landblocks.TryGetValue(canonical, out var landblock))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue