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());
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
 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);
     }
 }