From: DrSmugleaf Date: Wed, 13 Sep 2023 07:12:35 +0000 (-0700) Subject: Fix entities getting shuffled in the map renderer (#20100) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=5c15f5270324c5794f2df3592ca46ef877d40ddb;p=space-station-14.git Fix entities getting shuffled in the map renderer (#20100) --- diff --git a/Content.MapRenderer/Painters/GridPainter.cs b/Content.MapRenderer/Painters/GridPainter.cs index ffa1439413..3079db436b 100644 --- a/Content.MapRenderer/Painters/GridPainter.cs +++ b/Content.MapRenderer/Painters/GridPainter.cs @@ -9,7 +9,6 @@ using Robust.Client.GameObjects; using Robust.Shared.GameObjects; using Robust.Shared.Map; using Robust.Shared.Map.Components; -using Robust.Shared.Maths; using Robust.Shared.Timing; using Robust.Shared.Utility; using SixLabors.ImageSharp; @@ -23,7 +22,6 @@ namespace Content.MapRenderer.Painters private readonly DecalPainter _decalPainter; private readonly IEntityManager _cEntityManager; - private readonly IMapManager _cMapManager; private readonly IEntityManager _sEntityManager; private readonly IMapManager _sMapManager; @@ -37,7 +35,6 @@ namespace Content.MapRenderer.Painters _decalPainter = new DecalPainter(client, server); _cEntityManager = client.ResolveDependency(); - _cMapManager = client.ResolveDependency(); _sEntityManager = server.ResolveDependency(); _sMapManager = server.ResolveDependency(); @@ -73,26 +70,27 @@ namespace Content.MapRenderer.Painters var components = new ConcurrentDictionary>(); - foreach (var entity in _sEntityManager.GetEntities()) + foreach (var serverEntity in _sEntityManager.GetEntities()) { - if (!_cEntityManager.TryGetComponent(entity, out SpriteComponent? sprite)) + var clientEntity = _cEntityManager.GetEntity(_sEntityManager.GetNetEntity(serverEntity)); + if (!_cEntityManager.TryGetComponent(clientEntity, out SpriteComponent? sprite)) { continue; } - var prototype = _sEntityManager.GetComponent(entity).EntityPrototype; + var prototype = _sEntityManager.GetComponent(serverEntity).EntityPrototype; if (prototype == null) { continue; } - var transform = _sEntityManager.GetComponent(entity); + var transform = _sEntityManager.GetComponent(serverEntity); if (_sMapManager.TryGetGrid(transform.GridUid, out var grid)) { var position = transform.LocalPosition; var (x, y) = TransformLocalPosition(position, grid); - var data = new EntityData(entity, sprite, x, y); + var data = new EntityData(serverEntity, sprite, x, y); components.GetOrAdd(transform.GridUid.Value, _ => new List()).Add(data); }