fix syncing..

This commit is contained in:
2025-12-28 10:48:40 +09:00
parent 8f32b375dd
commit f69effb8a3
4 changed files with 95 additions and 6 deletions

View File

@@ -352,6 +352,7 @@ public sealed class TransientResourceManager : DisposableMediatorSubscriberBase
private void RefreshPlayerRelatedAddressMap()
{
_playerRelatedByAddress.Clear();
var updatedFrameAddresses = new ConcurrentDictionary<nint, ObjectKind>();
lock (_playerRelatedLock)
{
foreach (var handler in _playerRelatedPointers)
@@ -360,9 +361,12 @@ public sealed class TransientResourceManager : DisposableMediatorSubscriberBase
if (address != nint.Zero)
{
_playerRelatedByAddress[address] = handler;
updatedFrameAddresses[address] = handler.ObjectKind;
}
}
}
_cachedFrameAddresses = updatedFrameAddresses;
}
private void HandleActorTracked(ActorObjectService.ActorDescriptor descriptor)
@@ -498,7 +502,14 @@ public sealed class TransientResourceManager : DisposableMediatorSubscriberBase
var gameObjectAddress = msg.GameObject;
if (!_cachedFrameAddresses.TryGetValue(gameObjectAddress, out var objectKind))
{
return;
if (_actorObjectService.TryGetOwnedKind(gameObjectAddress, out var ownedKind))
{
objectKind = ownedKind;
}
else
{
return;
}
}
var gamePath = NormalizeGamePath(msg.GamePath);