]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fix dock radar colours (#38942)
authorUpAndLeaves <92269094+Alpha-Two@users.noreply.github.com>
Tue, 12 Aug 2025 20:09:00 +0000 (21:09 +0100)
committerGitHub <noreply@github.com>
Tue, 12 Aug 2025 20:09:00 +0000 (13:09 -0700)
* Fix docking colours

* Add comments and fallback

* Better comments!

Content.Client/Shuttles/UI/ShuttleDockControl.xaml.cs
Content.Client/Shuttles/UI/ShuttleNavControl.xaml.cs
Content.Server/Shuttles/Systems/ShuttleConsoleSystem.cs
Content.Shared/Shuttles/BUIStates/DockingPortState.cs

index 2b575b480596fa2d3ae7dbc5f8296e5251493ad0..449323c74677216d9f4f8a41747352c9241e3bc0 100644 (file)
@@ -40,6 +40,8 @@ public sealed partial class ShuttleDockControl : BaseShuttleControl
     private readonly HashSet<DockingPortState> _drawnDocks = new();
     private readonly Dictionary<DockingPortState, Button> _dockButtons = new();
 
+    private readonly Color _fallbackHighlightedColor = Color.Magenta;
+
     /// <summary>
     /// Store buttons for every other dock
     /// </summary>
@@ -213,11 +215,11 @@ public sealed partial class ShuttleDockControl : BaseShuttleControl
 
                 if (HighlightedDock == dock.Entity)
                 {
-                    otherDockColor = Color.ToSrgb(Color.Magenta);
+                    otherDockColor = Color.ToSrgb(dock.HighlightedColor);
                 }
                 else
                 {
-                    otherDockColor = Color.ToSrgb(Color.Purple);
+                    otherDockColor = Color.ToSrgb(dock.Color);
                 }
 
                 /*
@@ -311,7 +313,7 @@ public sealed partial class ShuttleDockControl : BaseShuttleControl
             ScalePosition(Vector2.Transform(new Vector2(-0.5f, 0.5f), rotation)),
             ScalePosition(Vector2.Transform(new Vector2(0.5f, -0.5f), rotation)));
 
-        var dockColor = Color.Magenta;
+        var dockColor = _viewedState?.HighlightedColor ?? _fallbackHighlightedColor;
         var connectionColor = Color.Pink;
 
         handle.DrawRect(ourDockConnection, connectionColor.WithAlpha(0.2f));
index 2dcec6b44ad96ff8426e8aa61b153566426b9c2e..7899a5ef3e487543675e410ee5c3f185083a690b 100644 (file)
@@ -308,7 +308,7 @@ public sealed partial class ShuttleNavControl : BaseShuttleControl
             -dockRadius * UIScale,
             (Size.X + dockRadius) * UIScale,
             (Size.Y + dockRadius) * UIScale);
-        
+
         if (_docks.TryGetValue(nent, out var docks))
         {
             foreach (var state in docks)
@@ -321,7 +321,7 @@ public sealed partial class ShuttleNavControl : BaseShuttleControl
                     continue;
                 }
 
-                var color = Color.ToSrgb(Color.Magenta);
+                var color = Color.ToSrgb(state.HighlightedColor);
 
                 var verts = new[]
                 {
index 049e14913548f3b39c948e1f0e84b1694c54eb73..cbd6abe9f58e23ca03d199e7ecde1a3fc1ad4bbe 100644 (file)
@@ -235,6 +235,8 @@ public sealed partial class ShuttleConsoleSystem : SharedShuttleConsoleSystem
                     _xformQuery.TryGetComponent(comp.DockedWith, out var otherDockXform) ?
                     GetNetEntity(otherDockXform.GridUid) :
                     null,
+                Color = comp.RadarColor,
+                HighlightedColor = comp.HighlightedRadarColor
             };
 
             gridDocks.Add(state);
index a605c2ea77ddc41bff347074004079e5af8292c1..a058831545bb2df96469280027cf72567d979932 100644 (file)
@@ -17,4 +17,14 @@ public sealed class DockingPortState
     public bool Connected => GridDockedWith != null;
 
     public NetEntity? GridDockedWith;
+
+    /// <summary>
+    /// The default colour used to shade a dock on a radar screen
+    /// </summary>
+    public Color Color;
+
+    /// <summary>
+    /// The colour used to shade a dock on a radar screen if it is highlighted (hovered over/selected on docking screen/shown in the main ship radar)
+    /// </summary>
+    public Color HighlightedColor;
 }