private void DrawList() { if (_mapList.Count == 0) { SetText(DrawNoMaps); _isError = true; return; } if (_isError) { return; } var str = new StringBuilder(); str.AppendClr("[^ / v] SELECT MAP [ENTER] DETAILS", "8dc2ef").AppendLines(2); _selectionHandler.MaxIdx = _pageHandler.ItemsOnScreen - 1; _pageHandler.EnumarateElements((map, idx) => { var isSelected = idx == _selectionHandler.CurrentSelectionIndex; if (isSelected) { str.BeginColor("8dc2ef").Append("> "); } else { str.Append(" "); } str.Append(map.PackageInfo.Descriptor.Name.Clamp(32).PadRight(32)); if (isSelected) { str.EndColor(); } int userCount = MonkeRoomManager.Instance.PlayersOnMap(map.GetLobbyName()); str.Append(userCount >= 1000 ? " >1k" : userCount.ToString().PadLeft(4)); str.AppendLine(); }); str.AppendLine(); _pageHandler.AppendFooter(str); SetText(str); var selectedIdx = _pageHandler.GetAbsoluteIndex(_selectionHandler.CurrentSelectionIndex); _selectedMap = _mapList[selectedIdx]; PreviewOrb.ChangeOrb(_selectedMap); }
private void RefreshMapList(bool force = false) { if ((_mapList == null || _mapList.Count == 0) || force) { LoadMaps(); } _isError = false; DrawList(); var selectedIdx = _pageHandler.GetAbsoluteIndex(_selectionHandler.CurrentSelectionIndex); if (_mapList.Count > 0) { PreviewOrb.ChangeOrb(_mapList[selectedIdx]); } }