using System.Numerics; namespace AcDream.App.Physics; /// /// Session-scoped observation timestamps used to infer when a remote /// locomotion cycle has stopped. Canonical live identity remains in /// LiveEntityRuntime; this owner contains only derived observer state. /// internal sealed class RemoteMovementObservationTracker { private readonly Dictionary _lastMove = new(); internal (Vector3 Pos, DateTime Time) this[uint serverGuid] { set => _lastMove[serverGuid] = value; } internal bool TryGetValue( uint serverGuid, out (Vector3 Pos, DateTime Time) observation) => _lastMove.TryGetValue(serverGuid, out observation); internal bool Remove(uint serverGuid) => _lastMove.Remove(serverGuid); internal void Clear() => _lastMove.Clear(); }