refactor(world): canonicalize live physics host ownership

This commit is contained in:
Erik 2026-07-21 14:05:34 +02:00
parent 5882b308c1
commit fcb66198fc
21 changed files with 1546 additions and 323 deletions

View file

@ -352,6 +352,8 @@ internal sealed class RemoteChaseHarness
public double PhysicsTimerTime => _h.Now;
public IPhysicsObjHost? GetObjectA(uint id)
=> id == PlayerGuid ? _h._playerHost : null;
public IPhysicsObjHost? GetRelationshipTarget(uint objectId)
=> GetObjectA(objectId);
public void HandleUpdateTarget(TargetInfo info)
{
@ -373,9 +375,9 @@ internal sealed class RemoteChaseHarness
}
public void ClearTarget() => _h._targetArmed = false;
public void ReceiveTargetUpdate(TargetInfo info) { }
public void AddVoyeur(uint watcherId, float radius, double quantum) { }
public void RemoveVoyeur(uint watcherId) { }
public void ReceiveTargetUpdate(TargetInfo info, IPhysicsObjHost sender) { }
public void AddVoyeur(IPhysicsObjHost watcher, float radius, double quantum) { }
public void RemoveVoyeur(uint watcherId, IPhysicsObjHost expectedWatcher) { }
}
private sealed class TargetHost : IPhysicsObjHost
@ -391,13 +393,14 @@ internal sealed class RemoteChaseHarness
public double CurTime => _h.Now;
public double PhysicsTimerTime => _h.Now;
public IPhysicsObjHost? GetObjectA(uint id) => null;
public IPhysicsObjHost? GetRelationshipTarget(uint objectId) => null;
public void HandleUpdateTarget(TargetInfo info) { }
public void InterruptCurrentMovement() { }
public void SetTarget(uint contextId, uint objectId, float radius, double quantum) { }
public void ClearTarget() { }
public void ReceiveTargetUpdate(TargetInfo info) { }
public void AddVoyeur(uint watcherId, float radius, double quantum) { }
public void RemoveVoyeur(uint watcherId) { }
public void ReceiveTargetUpdate(TargetInfo info, IPhysicsObjHost sender) { }
public void AddVoyeur(IPhysicsObjHost watcher, float radius, double quantum) { }
public void RemoveVoyeur(uint watcherId, IPhysicsObjHost expectedWatcher) { }
}
// ── The per-tick pipeline (GameWindow.TickAnimations order) ────────────