Exemple #1
0
        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);
        }
Exemple #2
0
        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]);
            }
        }
Exemple #3
0
        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;
            }
        }