diff --git a/Content.Client/UserInterface/Systems/Viewport/ViewportUIController.cs b/Content.Client/UserInterface/Systems/Viewport/ViewportUIController.cs index 613f71e79b..ffee14ad9a 100644 --- a/Content.Client/UserInterface/Systems/Viewport/ViewportUIController.cs +++ b/Content.Client/UserInterface/Systems/Viewport/ViewportUIController.cs @@ -3,6 +3,7 @@ using Content.Client.UserInterface.Systems.Gameplay; using Content.Shared.CCVar; using Robust.Client.Graphics; using Robust.Client.Player; +using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controllers; using Robust.Shared.Configuration; using Robust.Shared.Timing; @@ -15,6 +16,7 @@ public sealed class ViewportUIController : UIController [Dependency] private readonly IPlayerManager _playerMan = default!; [Dependency] private readonly IEntityManager _entMan = default!; [Dependency] private readonly IConfigurationManager _configurationManager = default!; + [UISystemDependency] private readonly SharedTransformSystem? _transformSystem = default!; public static readonly Vector2i ViewportSize = (EyeManager.PixelsPerMeter * 21, EyeManager.PixelsPerMeter * 15); public const int ViewportHeight = 15; private MainViewport? Viewport => UIManager.ActiveScreen?.GetWidget(); @@ -93,7 +95,7 @@ public sealed class ViewportUIController : UIController _entMan.TryGetComponent(ent, out EyeComponent? eye); if (eye?.Eye == _eyeManager.CurrentEye - && _entMan.GetComponent(ent.Value).WorldPosition == default) + && (_transformSystem is null || _transformSystem.GetWorldPosition(ent.Value) == default)) return; // nothing to worry about, the player is just in null space... actually that is probably a problem? // Currently, this shouldn't happen. This likely happened because the main eye was set to null. When this