diff --git a/Content.Client/Shuttles/UI/ShuttleNavControl.xaml.cs b/Content.Client/Shuttles/UI/ShuttleNavControl.xaml.cs index 0b8720add2..64ead32586 100644 --- a/Content.Client/Shuttles/UI/ShuttleNavControl.xaml.cs +++ b/Content.Client/Shuttles/UI/ShuttleNavControl.xaml.cs @@ -35,6 +35,7 @@ public sealed partial class ShuttleNavControl : BaseShuttleControl public bool ShowIFF { get; set; } = true; public bool ShowDocks { get; set; } = true; + public bool RotateWithEntity { get; set; } = true; /// /// Raised if the user left-clicks on the radar control with the relevant entitycoordinates. @@ -109,6 +110,8 @@ public sealed partial class ShuttleNavControl : BaseShuttleControl ActualRadarRange = Math.Clamp(ActualRadarRange, WorldMinRange, WorldMaxRange); + RotateWithEntity = state.RotateWithEntity; + _docks = state.Docks; } @@ -138,7 +141,8 @@ public sealed partial class ShuttleNavControl : BaseShuttleControl var mapPos = _transform.ToMapCoordinates(_coordinates.Value); var offset = _coordinates.Value.Position; var posMatrix = Matrix3Helpers.CreateTransform(offset, _rotation.Value); - var (_, ourEntRot, ourEntMatrix) = _transform.GetWorldPositionRotationMatrix(_coordinates.Value.EntityId); + var ourEntRot = RotateWithEntity ? _transform.GetWorldRotation(xform) : _rotation.Value; + var ourEntMatrix = Matrix3Helpers.CreateTransform(_transform.GetWorldPosition(xform), ourEntRot); var ourWorldMatrix = Matrix3x2.Multiply(posMatrix, ourEntMatrix); Matrix3x2.Invert(ourWorldMatrix, out var ourWorldMatrixInvert); diff --git a/Content.Server/Shuttles/Systems/RadarConsoleSystem.cs b/Content.Server/Shuttles/Systems/RadarConsoleSystem.cs index 1de20a8734..2f5815a7fe 100644 --- a/Content.Server/Shuttles/Systems/RadarConsoleSystem.cs +++ b/Content.Server/Shuttles/Systems/RadarConsoleSystem.cs @@ -53,6 +53,8 @@ public sealed class RadarConsoleSystem : SharedRadarConsoleSystem state = _console.GetNavState(uid, docks); } + state.RotateWithEntity = !component.FollowEntity; + _uiSystem.SetUiState(uid, RadarConsoleUiKey.Key, new NavBoundUserInterfaceState(state)); } } diff --git a/Content.Shared/Shuttles/BUIStates/NavInterfaceState.cs b/Content.Shared/Shuttles/BUIStates/NavInterfaceState.cs index a6f4c01657..f6cfe6a2dc 100644 --- a/Content.Shared/Shuttles/BUIStates/NavInterfaceState.cs +++ b/Content.Shared/Shuttles/BUIStates/NavInterfaceState.cs @@ -20,6 +20,8 @@ public sealed class NavInterfaceState public Dictionary> Docks; + public bool RotateWithEntity = true; + public NavInterfaceState( float maxRange, NetCoordinates? coordinates, diff --git a/Resources/Prototypes/Entities/Objects/Tools/handheld_mass_scanner.yml b/Resources/Prototypes/Entities/Objects/Tools/handheld_mass_scanner.yml index 78abedc28a..de45119cdd 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/handheld_mass_scanner.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/handheld_mass_scanner.yml @@ -15,7 +15,7 @@ visible: true map: [ "enum.PowerDeviceVisualLayers.Powered" ] - type: RadarConsole - maxRange: 64 + maxRange: 256 followEntity: true - type: Appearance - type: GenericVisualizer @@ -25,8 +25,7 @@ True: { visible: true } False: { visible: false } - type: PowerCellDraw - drawRate: 3 - useRate: 100 + drawRate: 1.5 - type: ActivatableUI key: enum.RadarConsoleUiKey.Key inHandsOnly: true