From bf90cec6968e9d83538f38123e9c39c3b6c2345b Mon Sep 17 00:00:00 2001 From: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com> Date: Sun, 9 Jul 2023 07:47:53 +1200 Subject: [PATCH] Fix radar text & misc warnings (#17902) --- Content.Client/Shuttles/UI/RadarControl.cs | 49 ++++++++++------------ 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/Content.Client/Shuttles/UI/RadarControl.cs b/Content.Client/Shuttles/UI/RadarControl.cs index 46aa3233ab..4b614cb4d9 100644 --- a/Content.Client/Shuttles/UI/RadarControl.cs +++ b/Content.Client/Shuttles/UI/RadarControl.cs @@ -26,7 +26,7 @@ public sealed class RadarControl : MapGridControl { [Dependency] private readonly IEntityManager _entManager = default!; [Dependency] private readonly IMapManager _mapManager = default!; - private SharedTransformSystem _transform = default!; + private SharedTransformSystem _transform; private const float GridLinesDistance = 32f; @@ -166,26 +166,23 @@ public sealed class RadarControl : MapGridControl var fixturesQuery = _entManager.GetEntityQuery(); var bodyQuery = _entManager.GetEntityQuery(); - var mapPosition = _coordinates.Value.ToMap(_entManager); - - if (mapPosition.MapId == MapId.Nullspace || !xformQuery.TryGetComponent(_coordinates.Value.EntityId, out var xform)) + if (!xformQuery.TryGetComponent(_coordinates.Value.EntityId, out var xform) + || xform.MapID == MapId.Nullspace) { Clear(); return; } + var (pos, rot) = _transform.GetWorldPositionRotation(xform); var offset = _coordinates.Value.Position; - var offsetMatrix = Matrix3.CreateInverseTransform( - mapPosition.Position, - xform.WorldRotation + _rotation.Value); + var offsetMatrix = Matrix3.CreateInverseTransform(pos, rot + _rotation.Value); // Draw our grid in detail - var ourGridId = _coordinates.Value.GetGridUid(_entManager); + var ourGridId = xform.GridUid; if (_entManager.TryGetComponent(ourGridId, out var ourGrid) && - fixturesQuery.TryGetComponent(ourGridId, out var ourFixturesComp)) + fixturesQuery.HasComponent(ourGridId.Value)) { - var ourGridMatrix = xformQuery.GetComponent(ourGridId.Value).WorldMatrix; - + var ourGridMatrix = _transform.GetWorldMatrix(ourGridId.Value); Matrix3.Multiply(in ourGridMatrix, in offsetMatrix, out var matrix); DrawGrid(handle, matrix, ourGrid, Color.MediumSpringGreen, true); @@ -202,20 +199,21 @@ public sealed class RadarControl : MapGridControl var shown = new HashSet(); // Draw other grids... differently - foreach (var grid in _mapManager.FindGridsIntersecting(mapPosition.MapId, - new Box2(mapPosition.Position - MaxRadarRangeVector, mapPosition.Position + MaxRadarRangeVector))) + foreach (var grid in _mapManager.FindGridsIntersecting(xform.MapID, + new Box2(pos - MaxRadarRangeVector, pos + MaxRadarRangeVector))) { - if (grid.Owner == ourGridId || !fixturesQuery.TryGetComponent(grid.Owner, out var fixturesComp)) + var gUid = grid.Owner; + if (gUid == ourGridId || !fixturesQuery.HasComponent(gUid)) continue; - var gridBody = bodyQuery.GetComponent(grid.Owner); + var gridBody = bodyQuery.GetComponent(gUid); if (gridBody.Mass < 10f) { - ClearLabel(grid.Owner); + ClearLabel(gUid); continue; } - _entManager.TryGetComponent(grid.Owner, out var iff); + _entManager.TryGetComponent(gUid, out var iff); // Hide it entirely. if (iff != null && @@ -224,14 +222,13 @@ public sealed class RadarControl : MapGridControl continue; } - shown.Add(grid.Owner); - var name = metaQuery.GetComponent(grid.Owner).EntityName; + shown.Add(gUid); + var name = metaQuery.GetComponent(gUid).EntityName; if (name == string.Empty) name = Loc.GetString("shuttle-console-unknown"); - var gridXform = xformQuery.GetComponent(grid.Owner); - var gridMatrix = gridXform.WorldMatrix; + var gridMatrix = _transform.GetWorldMatrix(gUid); Matrix3.Multiply(in gridMatrix, in offsetMatrix, out var matty); var color = iff?.Color ?? Color.Gold; @@ -246,14 +243,14 @@ public sealed class RadarControl : MapGridControl var gridBounds = grid.LocalAABB; Label label; - if (!_iffControls.TryGetValue(grid.Owner, out var control)) + if (!_iffControls.TryGetValue(gUid, out var control)) { label = new Label() { HorizontalAlignment = HAlignment.Left, }; - _iffControls[grid.Owner] = label; + _iffControls[gUid] = label; AddChild(label); } else @@ -264,7 +261,7 @@ public sealed class RadarControl : MapGridControl label.FontColorOverride = color; var gridCentre = matty.Transform(gridBody.LocalCenter); gridCentre.Y = -gridCentre.Y; - var distance = gridCentre.Length; + var distance = gridCentre.Length(); // y-offset the control to always render below the grid (vertically) var yOffset = Math.Max(gridBounds.Height, gridBounds.Width) * MinimapScale / 1.8f / UIScale; @@ -283,13 +280,13 @@ public sealed class RadarControl : MapGridControl } else { - ClearLabel(grid.Owner); + ClearLabel(gUid); } // Detailed view DrawGrid(handle, matty, grid, color, true); - DrawDocks(handle, grid.Owner, matty); + DrawDocks(handle, gUid, matty); } foreach (var (ent, _) in _iffControls)