public sealed override bool TrackChanges(object newValue, SyncContext context) { if (newValue != value) { value = newValue; if (value == null) { PoolID = 0; EntityID = SyncHandle.NullEntityID; } else { SyncHandle handle = context.GetLinkedHandleByObject(value, out ushort poolID); if (handle != null) { EntityID = handle.EntityID; PoolID = poolID; } else { EntityID = SyncHandle.NullEntityID; PoolID = 0; } } Synchronised = false; Revision = context.Revision; return(true); } return(false); }