]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Shuttle map button tweaks (#29757)
authormetalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Sat, 6 Jul 2024 03:51:55 +0000 (13:51 +1000)
committerGitHub <noreply@github.com>
Sat, 6 Jul 2024 03:51:55 +0000 (13:51 +1000)
- Avoids adding pending objects we can never show so the list should fill much faster.

Content.Client/Shuttles/UI/MapScreen.xaml.cs

index 10800b8c5f780cb4caf79c474fa3eef341a6e46b..489dbc8c90c87990f3c4991ee1fef32c994b9c0a 100644 (file)
@@ -261,7 +261,7 @@ public sealed partial class MapScreen : BoxContainer
             ourMap = shuttleXform.MapID;
         }
 
-        while (mapComps.MoveNext(out var mapComp, out var mapXform, out var mapMetadata))
+        while (mapComps.MoveNext(out var mapUid, out var mapComp, out var mapXform, out var mapMetadata))
         {
             if (_console != null && !_shuttles.CanFTLTo(_shuttleEntity.Value, mapComp.MapId, _console.Value))
             {
@@ -327,8 +327,10 @@ public sealed partial class MapScreen : BoxContainer
                 {
                     AddMapObject(mapComp.MapId, gridObj);
                 }
-                else if (!_shuttles.IsBeaconMap(_mapManager.GetMapEntityId(mapComp.MapId)) && (iffComp == null ||
-                         (iffComp.Flags & IFFFlags.Hide) == 0x0))
+                // If we can show it then add it to pending.
+                else if (!_shuttles.IsBeaconMap(mapUid) && (iffComp == null ||
+                         (iffComp.Flags & IFFFlags.Hide) == 0x0) &&
+                         !gridObj.HideButton)
                 {
                     _pendingMapObjects.Add((mapComp.MapId, gridObj));
                 }
@@ -336,11 +338,17 @@ public sealed partial class MapScreen : BoxContainer
 
             foreach (var (beacon, _) in _shuttles.GetExclusions(mapComp.MapId, _exclusions))
             {
+                if (beacon.HideButton)
+                    continue;
+
                 _pendingMapObjects.Add((mapComp.MapId, beacon));
             }
 
             foreach (var (beacon, _) in _shuttles.GetBeacons(mapComp.MapId, _beacons))
             {
+                if (beacon.HideButton)
+                    continue;
+
                 _pendingMapObjects.Add((mapComp.MapId, beacon));
             }
 
@@ -425,9 +433,6 @@ public sealed partial class MapScreen : BoxContainer
         var existing = _mapObjects.GetOrNew(mapId);
         existing.Add(mapObj);
 
-        if (mapObj.HideButton)
-            return;
-
         var gridContents = _mapHeadings[mapId];
 
         var gridButton = new Button()