fix(ui): bind radar to streamed world state

Resolve the live-entity spatial broadphase at snapshot time so retained UI construction cannot capture GameWindow's empty bootstrap GpuWorldState. Add a replacement-owner regression test covering the exact compass-without-blips failure.

Co-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-21 06:24:05 +02:00
parent e02acb870c
commit f4cf802330
5 changed files with 90 additions and 17 deletions

View file

@ -2264,7 +2264,7 @@ public sealed class GameWindow : IDisposable
coordinatesOnRadar: () => _persistedGameplay.CoordinatesOnRadar,
uiLocked: () => _persistedGameplay.LockUI,
playerEntities: () => _entitiesByServerGuid,
copySpatialCandidates: _worldState.CopyLiveEntitiesNearLandblock);
spatialQuery: () => _worldState);
var retailChatVm = new AcDream.UI.Abstractions.Panels.Chat.ChatVM(Chat, displayLimit: 200);
_retailChatVm = retailChatVm;
AcDream.App.UI.RetailUiPersistenceBindings? persistence = _settingsStore is null