private string FormatTabTitle(ItemList.Item li, PlayerInfo?pl = default) { pl ??= (PlayerInfo)li.Metadata !; var sb = new StringBuilder(); sb.Append(pl.Connected ? '●' : '○'); sb.Append(' '); if (_bwoinkSystem.TryGetChannel(pl.SessionId, out var panel) && panel.Unread > 0) { if (panel.Unread < 11) { sb.Append(new Rune('➀' + (panel.Unread - 1))); } else { sb.Append(new Rune(0x2639)); // ☹ } sb.Append(' '); } if (pl.Antag) { sb.Append(new Rune(0x1F5E1)); // 🗡 } sb.AppendFormat("\"{0}\"", pl.CharacterName) .Append(' ') .Append(pl.Username); return(sb.ToString()); }
private void PopulateList(IReadOnlyList <PlayerInfo> _ = null !) { PlayerItemList.Clear(); foreach (var info in _adminSystem.PlayerList) { var displayName = $"{info.CharacterName} ({info.Username})"; if (info.IdentityName != info.CharacterName) { displayName += $" [{info.IdentityName}]"; } if (!string.IsNullOrEmpty(FilterLineEdit.Text) && !displayName.ToLowerInvariant().Contains(FilterLineEdit.Text.Trim().ToLowerInvariant())) { continue; } var item = new ItemList.Item(PlayerItemList) { Metadata = info, Text = displayName }; DecoratePlayer?.Invoke(info, item); PlayerItemList.Add(item); } Sort(); }
public void UpdateState(SignalPortsState state) { ButtonContainer.Clear(); foreach (var port in state.Ports) { var portBtn = new ItemList.Item(ButtonContainer) { Text = port.Key, Disabled = !port.Value }; portBtn.OnSelected += _ => _bui.OnPortSelected(port.Key); ButtonContainer.Add(portBtn); } }