]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fix styles for group button in loadout menu (#38488)
authorqrwas <aleksandr.vernigora93@gmail.com>
Sat, 21 Jun 2025 22:20:34 +0000 (01:20 +0300)
committerGitHub <noreply@github.com>
Sat, 21 Jun 2025 22:20:34 +0000 (00:20 +0200)
* Fix styles color for group button in loadout menu

* Show selected item count in loadout group UI

Updated the loadout group container to display the number of selected items in a group. Added a new localization string to support this feature in the UI.

* Resolve required changes

Content.Client/Lobby/UI/Loadouts/LoadoutGroupContainer.xaml.cs
Resources/Locale/en-US/preferences/loadouts.ftl

index 0e18bf1ab5d0449f42b6dcdbcc1b545c1d283ae1..b06e7e41d1fc62d3fd47e40116b5591e4e9713d1 100644 (file)
@@ -144,8 +144,8 @@ public sealed partial class LoadoutGroupContainer : BoxContainer
                 {
                     subList.AddChild(proto);
                 }
-
-                UpdateToggleColor(toggle, subList);
+                var itemName = firstElement.Text ?? "";
+                UpdateSubGroupSelectedInfo(firstElement, itemName, subList);
             }
             else
             {
@@ -164,12 +164,14 @@ public sealed partial class LoadoutGroupContainer : BoxContainer
         };
 
         toggle.Text = subContainer.Visible ? OpenedGroupMark : ClosedGroupMark;
+        toggle.Pressed = subContainer.Visible;
 
         toggle.OnPressed += _ =>
         {
             var willOpen = !subContainer.Visible;
             subContainer.Visible = willOpen;
             toggle.Text = willOpen ? OpenedGroupMark : ClosedGroupMark;
+            toggle.Pressed = willOpen;
             _openedGroups[kvp.Key] = willOpen;
         };
 
@@ -178,15 +180,16 @@ public sealed partial class LoadoutGroupContainer : BoxContainer
         return toggle;
     }
 
-    private void UpdateToggleColor(Button toggle, BoxContainer subList)
+    private void UpdateSubGroupSelectedInfo(LoadoutContainer loadout, string itemName, BoxContainer subList)
     {
-        var anyActive = subList.Children
+        var countSubSelected = subList.Children
             .OfType<LoadoutContainer>()
-            .Any(c => c.Select.Pressed);
+            .Count(c => c.Select.Pressed);
 
-        toggle.Modulate = anyActive
-            ? Color.Green
-            : Color.White;
+        if (countSubSelected > 0)
+        {
+            loadout.Text = Loc.GetString("loadouts-count-items-in-group", ("item", itemName), ("count", countSubSelected));
+        }
     }
 
     /// <summary>
index f32c65eb24319d1eb925313e44174426b686c97f..2db7424fb1921f56eb051aaed4bcf71010da705d 100644 (file)
@@ -9,4 +9,9 @@ loadouts-min-limit = Min count: {$count}
 loadouts-max-limit = Max count: {$count}
 loadouts-points-limit = Points: {$count} / {$max}
 
+loadouts-count-items-in-group = {$item} and {$count} other {$count ->
+[1] item
+*[other] items
+}
+
 loadouts-points-restriction = Insufficient points