mirror of
https://github.com/Caraxi/mare.client.git
synced 2025-12-12 16:57:22 +01:00
fix pausing/resuming for local groups
This commit is contained in:
parent
68ae87878a
commit
959803a57c
1 changed files with 9 additions and 8 deletions
|
|
@ -28,16 +28,17 @@ namespace MareSynchronos.UI.Components
|
||||||
// Only render those tags that actually have pairs in them, otherwise
|
// Only render those tags that actually have pairs in them, otherwise
|
||||||
// we can end up with a bunch of useless pair groups
|
// we can end up with a bunch of useless pair groups
|
||||||
var tagsWithPairsInThem = _tagHandler.GetAllTagsSorted();
|
var tagsWithPairsInThem = _tagHandler.GetAllTagsSorted();
|
||||||
UiShared.DrawWithID("$group-VisibleCustomTag", () => DrawCategory(TagHandler.CustomVisibleTag, visibleUsers));
|
var allUsers = visibleUsers.Concat(onlineUsers).Concat(offlineUsers).ToList();
|
||||||
|
UiShared.DrawWithID("$group-VisibleCustomTag", () => DrawCategory(TagHandler.CustomVisibleTag, visibleUsers, allUsers));
|
||||||
foreach (var tag in tagsWithPairsInThem)
|
foreach (var tag in tagsWithPairsInThem)
|
||||||
{
|
{
|
||||||
UiShared.DrawWithID($"group-{tag}", () => DrawCategory(tag, onlineUsers, visibleUsers));
|
UiShared.DrawWithID($"group-{tag}", () => DrawCategory(tag, onlineUsers, allUsers, visibleUsers));
|
||||||
}
|
}
|
||||||
UiShared.DrawWithID($"group-OnlineCustomTag", () => DrawCategory(TagHandler.CustomOnlineTag, onlineUsers.Where(u => !_tagHandler.HasAnyTag(u.UserPair!)).ToList()));
|
UiShared.DrawWithID($"group-OnlineCustomTag", () => DrawCategory(TagHandler.CustomOnlineTag, onlineUsers.Where(u => !_tagHandler.HasAnyTag(u.UserPair!)).ToList(), allUsers));
|
||||||
UiShared.DrawWithID($"group-OfflineCustomTag", () => DrawCategory(TagHandler.CustomOfflineTag, offlineUsers));
|
UiShared.DrawWithID($"group-OfflineCustomTag", () => DrawCategory(TagHandler.CustomOfflineTag, offlineUsers, allUsers));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DrawCategory(string tag, List<Pair> users, List<Pair>? visibleUsers = null)
|
private void DrawCategory(string tag, List<Pair> onlineUsers, List<Pair> allUsers, List<Pair>? visibleUsers = null)
|
||||||
{
|
{
|
||||||
List<Pair> usersInThisTag;
|
List<Pair> usersInThisTag;
|
||||||
HashSet<string>? otherUidsTaggedWithTag = null;
|
HashSet<string>? otherUidsTaggedWithTag = null;
|
||||||
|
|
@ -45,13 +46,13 @@ namespace MareSynchronos.UI.Components
|
||||||
int visibleInThisTag = 0;
|
int visibleInThisTag = 0;
|
||||||
if (tag is TagHandler.CustomOfflineTag or TagHandler.CustomOnlineTag or TagHandler.CustomVisibleTag)
|
if (tag is TagHandler.CustomOfflineTag or TagHandler.CustomOnlineTag or TagHandler.CustomVisibleTag)
|
||||||
{
|
{
|
||||||
usersInThisTag = users;
|
usersInThisTag = onlineUsers;
|
||||||
isSpecialTag = true;
|
isSpecialTag = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
otherUidsTaggedWithTag = _tagHandler.GetOtherUidsForTag(tag);
|
otherUidsTaggedWithTag = _tagHandler.GetOtherUidsForTag(tag);
|
||||||
usersInThisTag = users
|
usersInThisTag = onlineUsers
|
||||||
.Where(pair => otherUidsTaggedWithTag.Contains(pair.UserData.UID))
|
.Where(pair => otherUidsTaggedWithTag.Contains(pair.UserData.UID))
|
||||||
.ToList();
|
.ToList();
|
||||||
visibleInThisTag = visibleUsers?.Count(p => otherUidsTaggedWithTag.Contains(p.UserData.UID)) ?? 0;
|
visibleInThisTag = visibleUsers?.Count(p => otherUidsTaggedWithTag.Contains(p.UserData.UID)) ?? 0;
|
||||||
|
|
@ -61,7 +62,7 @@ namespace MareSynchronos.UI.Components
|
||||||
|
|
||||||
DrawName(tag, isSpecialTag, visibleInThisTag, usersInThisTag.Count, otherUidsTaggedWithTag?.Count);
|
DrawName(tag, isSpecialTag, visibleInThisTag, usersInThisTag.Count, otherUidsTaggedWithTag?.Count);
|
||||||
if (!isSpecialTag)
|
if (!isSpecialTag)
|
||||||
UiShared.DrawWithID($"group-{tag}-buttons", () => DrawButtons(tag, usersInThisTag));
|
UiShared.DrawWithID($"group-{tag}-buttons", () => DrawButtons(tag, allUsers.Where(p => otherUidsTaggedWithTag!.Contains(p.UserData.UID)).ToList()));
|
||||||
|
|
||||||
if (!_tagHandler.IsTagOpen(tag)) return;
|
if (!_tagHandler.IsTagOpen(tag)) return;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue