From cb1266c2fba083071a15051a7ff7ab79df46c3b5 Mon Sep 17 00:00:00 2001 From: metalgearsloth Date: Fri, 10 Dec 2021 16:51:06 +1100 Subject: [PATCH] overlay cleanup --- .../Administration/AdminNameOverlay.cs | 23 +++++++------------ .../Suspicion/SuspicionRoleComponent.cs | 3 ++- Content.Client/Suspicion/TraitorOverlay.cs | 19 ++++++++------- 3 files changed, 21 insertions(+), 24 deletions(-) diff --git a/Content.Client/Administration/AdminNameOverlay.cs b/Content.Client/Administration/AdminNameOverlay.cs index 16565b6278..60b51dd670 100644 --- a/Content.Client/Administration/AdminNameOverlay.cs +++ b/Content.Client/Administration/AdminNameOverlay.cs @@ -11,13 +11,15 @@ namespace Content.Client.Administration { private readonly AdminSystem _system; private readonly IEntityManager _entityManager; + private readonly IEyeManager _eyeManager; private readonly IEntityLookup _entityLookup; private readonly Font _font; - public AdminNameOverlay(AdminSystem system, IEntityManager entityManager, IResourceCache resourceCache, IEntityLookup entityLookup) + public AdminNameOverlay(AdminSystem system, IEntityManager entityManager, IEyeManager eyeManager, IResourceCache resourceCache, IEntityLookup entityLookup) { _system = system; _entityManager = entityManager; + _eyeManager = eyeManager; _entityLookup = entityLookup; ZIndex = 200; _font = new VectorFont(resourceCache.GetResource("/Fonts/NotoSans/NotoSans-Regular.ttf"), 10); @@ -27,7 +29,7 @@ namespace Content.Client.Administration protected override void Draw(in OverlayDrawArgs args) { - var viewport = args.WorldAABB; + var viewport = _eyeManager.GetWorldViewport(); foreach (var playerInfo in _system.PlayerList) { @@ -39,10 +41,7 @@ namespace Content.Client.Administration } // if not on the same map, continue - if (IoCManager - .Resolve() - .GetComponent(entity) - .MapID != args.Viewport.Eye!.Position.MapId) + if (_entityManager.GetComponent(entity).MapID != _eyeManager.CurrentMap) { continue; } @@ -56,15 +55,9 @@ namespace Content.Client.Administration } var lineoffset = new Vector2(0f, 11f); - var screenCoordinates = args - .ViewportControl! - .WorldToScreen( - aabb.Center + - new Angle(-args.Viewport.Eye!.Rotation) - .RotateVec(aabb.TopRight - aabb.Center) - ) - + new Vector2(1f, 7f); - + var screenCoordinates = _eyeManager.WorldToScreen(aabb.Center + + new Angle(-_eyeManager.CurrentEye.Rotation).RotateVec( + aabb.TopRight - aabb.Center)) + new Vector2(1f, 7f); if (playerInfo.Antag) { args.ScreenHandle.DrawString(_font, screenCoordinates + (lineoffset * 2), "ANTAG", Color.OrangeRed); diff --git a/Content.Client/Suspicion/SuspicionRoleComponent.cs b/Content.Client/Suspicion/SuspicionRoleComponent.cs index fee3b951b8..11a0b410ef 100644 --- a/Content.Client/Suspicion/SuspicionRoleComponent.cs +++ b/Content.Client/Suspicion/SuspicionRoleComponent.cs @@ -3,6 +3,7 @@ using Content.Client.HUD; using Content.Shared.Suspicion; using Robust.Client.GameObjects; using Robust.Client.Graphics; +using Robust.Client.Player; using Robust.Client.ResourceManagement; using Robust.Shared.GameObjects; using Robust.Shared.IoC; @@ -71,7 +72,7 @@ namespace Content.Client.Suspicion } _overlayActive = true; - var overlay = new TraitorOverlay(IoCManager.Resolve(), _resourceCache); + var overlay = new TraitorOverlay(IoCManager.Resolve(), IoCManager.Resolve(), _resourceCache); _overlayManager.AddOverlay(overlay); } diff --git a/Content.Client/Suspicion/TraitorOverlay.cs b/Content.Client/Suspicion/TraitorOverlay.cs index 3d5b912385..3c54b0a667 100644 --- a/Content.Client/Suspicion/TraitorOverlay.cs +++ b/Content.Client/Suspicion/TraitorOverlay.cs @@ -24,9 +24,10 @@ namespace Content.Client.Suspicion public TraitorOverlay( IEntityManager entityManager, + IPlayerManager playerManager, IResourceCache resourceCache) { - _playerManager = IoCManager.Resolve(); + _playerManager = playerManager; _entityManager = entityManager; @@ -56,8 +57,10 @@ namespace Content.Client.Suspicion continue; } + var allyXform = _entityManager.GetComponent(ally); + var entPosition = _entityManager.GetComponent(ent.Value).MapPosition; - var allyPosition = _entityManager.GetComponent(ally).MapPosition; + var allyPosition = allyXform.MapPosition; if (!ExamineSystemShared.InRangeUnOccluded(entPosition, allyPosition, 15, entity => entity == ent || entity == ally)) { @@ -65,15 +68,15 @@ namespace Content.Client.Suspicion } // if not on the same map, continue - if (_entityManager - .GetComponent(physics.Owner) - .MapID != args.Viewport.Eye!.Position.MapId - || physics.Owner.IsInContainer()) + if (allyXform.MapID != args.Viewport.Eye!.Position.MapId + || physics.Owner.IsInContainer()) { continue; } - var worldBox = physics.GetWorldAABB(); + var (allyWorldPos, allyWorldRot) = allyXform.GetWorldPositionRotation(); + + var worldBox = physics.GetWorldAABB(allyWorldPos, allyWorldRot); // if not on screen, or too small, continue if (!worldBox.Intersects(in viewport) || worldBox.IsEmpty()) @@ -81,7 +84,7 @@ namespace Content.Client.Suspicion continue; } - var screenCoordinates = args.ViewportControl!.WorldToScreen(physics.GetWorldAABB().TopLeft + (0, 0.5f)); + var screenCoordinates = args.ViewportControl!.WorldToScreen(worldBox.TopLeft + (0, 0.5f)); args.ScreenHandle.DrawString(_font, screenCoordinates, _traitorText, Color.OrangeRed); } }