From 89ea6eda3e23e7925f48834b81710a1533b4aa2b Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 30 Dec 2022 18:45:13 -0500 Subject: [PATCH] Allows mass scanners and shuttle console radars to resize gracefully (#13241) --- Content.Client/Shuttles/UI/DockingControl.cs | 18 ++++++++-------- .../Shuttles/UI/RadarConsoleWindow.xaml | 8 +++++-- Content.Client/Shuttles/UI/RadarControl.cs | 16 +++++++------- .../Shuttles/UI/ShuttleConsoleWindow.xaml | 21 +++++++++++++++---- 4 files changed, 39 insertions(+), 24 deletions(-) diff --git a/Content.Client/Shuttles/UI/DockingControl.cs b/Content.Client/Shuttles/UI/DockingControl.cs index c4ba06d17c..f50d745ee8 100644 --- a/Content.Client/Shuttles/UI/DockingControl.cs +++ b/Content.Client/Shuttles/UI/DockingControl.cs @@ -16,15 +16,15 @@ public class DockingControl : Control private readonly IEntityManager _entManager; private readonly IMapManager _mapManager; - private const int MinimapMargin = 4; - private float _range = 8f; private float _rangeSquared = 0f; private const float GridLinesDistance = 32f; - private int MidPoint => SizeFull / 2; - private int SizeFull => (int) ((RadarControl.MinimapRadius + MinimapMargin) * 2 * UIScale); - private int ScaledMinimapRadius => (int) (RadarControl.MinimapRadius * UIScale); + private int MinimapRadius => (int) Math.Min(Size.X, Size.Y) / 2; + + private Vector2 MidPoint => Size / 2; + private int SizeFull => (int) (MinimapRadius * 2 * UIScale); + private int ScaledMinimapRadius => (int) (MinimapRadius * UIScale); private float MinimapScale => _range != 0 ? ScaledMinimapRadius / _range : 0f; public EntityUid? ViewedDock; @@ -52,8 +52,8 @@ public class DockingControl : Control var fakeAA = new Color(0.08f, 0.08f, 0.08f); - handle.DrawCircle((MidPoint, MidPoint), ScaledMinimapRadius + 1, fakeAA); - handle.DrawCircle((MidPoint, MidPoint), ScaledMinimapRadius, Color.Black); + handle.DrawCircle((MidPoint.X, MidPoint.Y), ScaledMinimapRadius + 1, fakeAA); + handle.DrawCircle((MidPoint.X, MidPoint.Y), ScaledMinimapRadius, Color.Black); var gridLines = new Color(0.08f, 0.08f, 0.08f); var gridLinesRadial = 8; @@ -61,14 +61,14 @@ public class DockingControl : Control for (var i = 1; i < gridLinesEquatorial + 1; i++) { - handle.DrawCircle((MidPoint, MidPoint), GridLinesDistance * MinimapScale * i, gridLines, false); + handle.DrawCircle((MidPoint.X, MidPoint.Y), GridLinesDistance * MinimapScale * i, gridLines, false); } for (var i = 0; i < gridLinesRadial; i++) { Angle angle = (Math.PI / gridLinesRadial) * i; var aExtent = angle.ToVec() * ScaledMinimapRadius; - handle.DrawLine((MidPoint, MidPoint) - aExtent, (MidPoint, MidPoint) + aExtent, gridLines); + handle.DrawLine((MidPoint.X, MidPoint.Y) - aExtent, (MidPoint.X, MidPoint.Y) + aExtent, gridLines); } if (Coordinates == null || diff --git a/Content.Client/Shuttles/UI/RadarConsoleWindow.xaml b/Content.Client/Shuttles/UI/RadarConsoleWindow.xaml index 9d29f77d47..c808b4032c 100644 --- a/Content.Client/Shuttles/UI/RadarConsoleWindow.xaml +++ b/Content.Client/Shuttles/UI/RadarConsoleWindow.xaml @@ -1,6 +1,10 @@ - + Title="{Loc 'radar-console-window-title'}" + MinSize="256 256"> + diff --git a/Content.Client/Shuttles/UI/RadarControl.cs b/Content.Client/Shuttles/UI/RadarControl.cs index ccf18990a1..6b89cf314b 100644 --- a/Content.Client/Shuttles/UI/RadarControl.cs +++ b/Content.Client/Shuttles/UI/RadarControl.cs @@ -23,9 +23,6 @@ public sealed class RadarControl : Control [Dependency] private readonly IMapManager _mapManager = default!; private const float ScrollSensitivity = 8f; - - public const int MinimapRadius = 320; - private const int MinimapMargin = 4; private const float GridLinesDistance = 32f; /// @@ -49,8 +46,9 @@ public sealed class RadarControl : Control /// public float MaxRadarRange { get; private set; } = 256f * 10f; - private int MidPoint => SizeFull / 2; - private int SizeFull => (int) ((MinimapRadius + MinimapMargin) * 2 * UIScale); + private int MinimapRadius => (int) Math.Min(Size.X, Size.Y) / 2; + private Vector2 MidPoint => Size / 2; + private int SizeFull => (int) (MinimapRadius * 2 * UIScale); private int ScaledMinimapRadius => (int) (MinimapRadius * UIScale); private float MinimapScale => RadarRange != 0 ? ScaledMinimapRadius / RadarRange : 0f; @@ -130,8 +128,8 @@ public sealed class RadarControl : Control var fakeAA = new Color(0.08f, 0.08f, 0.08f); - handle.DrawCircle((MidPoint, MidPoint), ScaledMinimapRadius + 1, fakeAA); - handle.DrawCircle((MidPoint, MidPoint), ScaledMinimapRadius, Color.Black); + handle.DrawCircle((MidPoint.X, MidPoint.Y), ScaledMinimapRadius + 1, fakeAA); + handle.DrawCircle((MidPoint.X, MidPoint.Y), ScaledMinimapRadius, Color.Black); // No data if (_coordinates == null || _rotation == null) @@ -146,14 +144,14 @@ public sealed class RadarControl : Control for (var i = 1; i < gridLinesEquatorial + 1; i++) { - handle.DrawCircle((MidPoint, MidPoint), GridLinesDistance * MinimapScale * i, gridLines, false); + handle.DrawCircle((MidPoint.X, MidPoint.Y), GridLinesDistance * MinimapScale * i, gridLines, false); } for (var i = 0; i < gridLinesRadial; i++) { Angle angle = (Math.PI / gridLinesRadial) * i; var aExtent = angle.ToVec() * ScaledMinimapRadius; - handle.DrawLine((MidPoint, MidPoint) - aExtent, (MidPoint, MidPoint) + aExtent, gridLines); + handle.DrawLine((MidPoint.X, MidPoint.Y) - aExtent, (MidPoint.X, MidPoint.Y) + aExtent, gridLines); } var metaQuery = _entManager.GetEntityQuery(); diff --git a/Content.Client/Shuttles/UI/ShuttleConsoleWindow.xaml b/Content.Client/Shuttles/UI/ShuttleConsoleWindow.xaml index 9e57ba8325..3243863260 100644 --- a/Content.Client/Shuttles/UI/ShuttleConsoleWindow.xaml +++ b/Content.Client/Shuttles/UI/ShuttleConsoleWindow.xaml @@ -1,7 +1,9 @@ + Title="{Loc 'shuttle-console-window-title'}" + SetSize="1180 648" + MinSize="788 320"> @@ -9,6 +11,7 @@ VerticalAlignment="Top" HorizontalAlignment="Left" MinWidth="256" + MaxWidth="256" Align="Center" Orientation="Vertical"> @@ -26,17 +29,27 @@ Orientation="Vertical"/> - + + MouseFilter="Stop" + Margin="4" + HorizontalExpand = "True" + VerticalExpand = "True"/> + MouseFilter="Stop" + Margin="4" + HorizontalExpand = "True" + VerticalExpand = "True"/>