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]); } }
public override void OnKeyPressed(EKeyboardKey key) { if (_isFirstView) { _isFirstView = false; RefreshMapList(); return; } if (_isError) { _isError = false; ReturnToMainMenu(); return; } if (_selectionHandler.HandleKeypress(key)) { DrawList(); return; } if (_pageHandler.HandleKeyPress(key)) { _selectionHandler.CurrentSelectionIndex = 0; DrawList(); return; } switch (key) { case EKeyboardKey.Back: PreviewOrb.HideOrb(); MapLoader.HideTreeTeleporter(); ReturnToMainMenu(); break; case EKeyboardKey.Option1: RefreshMapList(true); break; } }