Пример #1
0
        public TableCell CellForRow(int row)
        {
            SongListTableCell cell = Instantiate(_serverTableCellInstance);

            Destroy(cell.GetComponentsInChildren <UnityEngine.UI.Image>().First(x => x.name.ToLower().Contains("cover")));
            cell.songName = availableServers[row].Name;
            cell.author   = $"{availableServers[row].IPv4}:{availableServers[row].Port}";

            return(cell);
        }
Пример #2
0
        protected override void DidActivate()
        {
            _modMenuUi            = FindObjectOfType <ModMenuUi>();
            _parentViewController = transform.parent.GetComponent <ModMenuMasterViewController>();

            try
            {
                _toggleSwitch = Resources.FindObjectsOfTypeAll <UnityEngine.UI.Toggle>().First();
                ModMenuPlugin.debugLogger.Log(_toggleSwitch == null ? "Toggle switch null" : "Toggle switch not null!");
                if (_pageDownButton == null)
                {
                    _pageDownButton = _modMenuUi.CreateButton(rectTransform, "PageDownButton");

                    ((RectTransform)_pageDownButton.transform).anchorMin        = new Vector2(0.5f, 0f);
                    ((RectTransform)_pageDownButton.transform).anchorMax        = new Vector2(0.5f, 0f);
                    ((RectTransform)_pageDownButton.transform).anchoredPosition = new Vector2(0f, 10f);
                    _pageDownButton.interactable = true;
                    _pageDownButton.onClick.AddListener(delegate()
                    {
                        _modsTableView.PageScrollDown();
                        ModMenuPlugin.debugLogger.Log("Page down pressed");
                    });
                }
                if (_pageUpButton == null)
                {
                    _pageUpButton = _modMenuUi.CreateButton(rectTransform, "PageUpButton");
                    ((RectTransform)_pageUpButton.transform).anchorMin        = new Vector2(0.5f, 1f);
                    ((RectTransform)_pageUpButton.transform).anchorMax        = new Vector2(0.5f, 1f);
                    ((RectTransform)_pageUpButton.transform).anchoredPosition = new Vector2(0f, -10f);
                    _pageUpButton.interactable = true;
                    _pageUpButton.onClick.AddListener(delegate()
                    {
                        _modsTableView.PageScrollUp();
                        ModMenuPlugin.debugLogger.Log("Page up pressed");
                    });
                }
            }
            catch (Exception ex)
            {
                ModMenuPlugin.debugLogger.Exception(ex.StackTrace + ex.Message);
            }


            _songListTableCellInstance = Resources.FindObjectsOfTypeAll <SongListTableCell>().First(x => (x.name == "SongListTableCell"));

            LoadMods();

            base.DidActivate();
        }
Пример #3
0
        public TableCell CellForRow(int row)
        {
            SongListTableCell _tableCell = Instantiate(_songListTableCellInstance);

            (_tableCell.transform as RectTransform).anchorMin = new Vector2(0f, 1f);
            (_tableCell.transform as RectTransform).anchorMax = new Vector2(0f, 1f);
            (_tableCell.transform as RectTransform).sizeDelta = new Vector2(0f, 10f);

            _tableCell.songName = string.Format("{0}\n<size=80%>{1}</size>", HtmlDecode(_songs[row].songName), HtmlDecode(_songs[row].songSubName));
            _tableCell.author   = HtmlDecode(_songs[row].authorName);
            StartCoroutine(LoadSprite("https://beatsaver.com/img/" + _songs[row].id + "." + _songs[row].img, _tableCell));

            bool alreadyDownloaded = IsSongAlreadyDownloaded(_songs[row]);

            if (alreadyDownloaded)
            {
                _tableCell.GetComponentsInChildren <UnityEngine.UI.Image>()[0].color = Color.gray;
                _tableCell.GetComponentsInChildren <UnityEngine.UI.Image>()[1].color = Color.gray;
                _tableCell.GetComponentsInChildren <UnityEngine.UI.Image>()[2].color = Color.gray;
            }

            return(_tableCell);
        }
Пример #4
0
        public TableCell CellForRow(int row)
        {
            SongListTableCell _tableCell = Instantiate(_songListTableCellInstance);

            _tableCell.songName = string.Format("{0}\n<size=80%>{1}</size>", HTML5Decode.HtmlDecode(_parentMasterViewController._songs[row].songName), HTML5Decode.HtmlDecode(_parentMasterViewController._songs[row].songSubName));
            _tableCell.author   = HTML5Decode.HtmlDecode(_parentMasterViewController._songs[row].authorName);
            StartCoroutine(_parentMasterViewController.LoadSprite("https://beatsaver.com/img/" + _parentMasterViewController._songs[row].id + "." + _parentMasterViewController._songs[row].img, _tableCell));

            bool alreadyDownloaded = _parentMasterViewController.IsSongAlreadyDownloaded(_parentMasterViewController._songs[row]);

            if (alreadyDownloaded)
            {
                foreach (UnityEngine.UI.Image img in _tableCell.GetComponentsInChildren <UnityEngine.UI.Image>())
                {
                    img.color = new Color(1f, 1f, 1f, 0.2f);
                }
                foreach (TextMeshProUGUI text in _tableCell.GetComponentsInChildren <TextMeshProUGUI>())
                {
                    text.faceColor = new Color32(255, 255, 255, 50);
                }
            }

            return(_tableCell);
        }
Пример #5
0
        protected override void DidActivate()
        {
            ui = BSMultiplayerUI._instance;

            _parentMasterViewController = transform.parent.GetComponent <MultiplayerServerHubViewController>();

            _serverTableCellInstance = Resources.FindObjectsOfTypeAll <SongListTableCell>().First(x => (x.name == "SongListTableCell"));

            if (_pageUpButton == null)
            {
                _pageUpButton = Instantiate(Resources.FindObjectsOfTypeAll <Button>().First(x => (x.name == "PageUpButton")), rectTransform, false);
                (_pageUpButton.transform as RectTransform).anchorMin        = new Vector2(0.5f, 1f);
                (_pageUpButton.transform as RectTransform).anchorMax        = new Vector2(0.5f, 1f);
                (_pageUpButton.transform as RectTransform).anchoredPosition = new Vector2(0f, -14f);
                _pageUpButton.interactable = true;
                _pageUpButton.onClick.AddListener(delegate()
                {
                    if (_currentPage > 0)
                    {
                        if (!_parentMasterViewController._loading)
                        {
                            _currentPage -= 1;
                            _parentMasterViewController.GetPage(_currentPage);
                        }
                    }
                });
                _pageUpButton.interactable = false;
            }

            if (_pageDownButton == null)
            {
                _pageDownButton = Instantiate(Resources.FindObjectsOfTypeAll <Button>().First(x => (x.name == "PageDownButton")), rectTransform, false);
                (_pageDownButton.transform as RectTransform).anchorMin        = new Vector2(0.5f, 0f);
                (_pageDownButton.transform as RectTransform).anchorMax        = new Vector2(0.5f, 0f);
                (_pageDownButton.transform as RectTransform).anchoredPosition = new Vector2(0f, 8f);
                _pageDownButton.interactable = true;
                _pageDownButton.onClick.AddListener(delegate()
                {
                    if (!_parentMasterViewController._loading)
                    {
                        _currentPage += 1;
                        Console.WriteLine("Page down");
                        _parentMasterViewController.GetPage(_currentPage);
                    }
                });
                _pageDownButton.interactable = false;
            }

            if (_serverTableView == null)
            {
                _serverTableView = new GameObject().AddComponent <TableView>();

                _serverTableView.transform.SetParent(rectTransform, false);

                Mask viewportMask = Instantiate(Resources.FindObjectsOfTypeAll <Mask>().First(), _serverTableView.transform, false);
                viewportMask.transform.DetachChildren();

                _serverTableView.GetComponentsInChildren <RectTransform>().First(x => x.name == "Content").transform.SetParent(viewportMask.rectTransform, false);

                (_serverTableView.transform as RectTransform).anchorMin        = new Vector2(0f, 0.5f);
                (_serverTableView.transform as RectTransform).anchorMax        = new Vector2(1f, 0.5f);
                (_serverTableView.transform as RectTransform).sizeDelta        = new Vector2(0f, 60f);
                (_serverTableView.transform as RectTransform).position         = new Vector3(0f, 0f, 2.4f);
                (_serverTableView.transform as RectTransform).anchoredPosition = new Vector3(0f, -3f);

                _serverTableView.DidSelectRowEvent += ServerTableView_DidSelectRow;

                _serverTableView.dataSource = this;
            }
            else
            {
                _serverTableView.ReloadData();
            }
        }
Пример #6
0
        protected override void DidActivate()
        {
            ui              = BSMultiplayerUI._instance;
            _songLoader     = FindObjectOfType <SongLoader>();
            localPlayerInfo = new PlayerInfo(GetUserInfo.GetUserName(), GetUserInfo.GetUserID());

            if (_songPreviewPlayer == null)
            {
                ObjectProvider[] providers = Resources.FindObjectsOfTypeAll <ObjectProvider>().Where(x => x.name == "SongPreviewPlayerProvider").ToArray();

                if (providers.Length > 0)
                {
                    _songPreviewPlayer = providers[0].GetProvidedObject <SongPreviewPlayer>();
                }
            }

            if (_backButton == null)
            {
                _backButton = ui.CreateBackButton(rectTransform);

                _backButton.onClick.AddListener(delegate()
                {
                    BSMultiplayerClient._instance.DataReceived -= DataReceived;
                    BSMultiplayerClient._instance.DisconnectFromServer();
                    _songPreviewPlayer.CrossfadeToDefault();
                    try
                    {
                        transform.parent.GetComponent <MultiplayerServerHubViewController>().UpdatePage();
                    } catch (Exception e)
                    {
                        Console.WriteLine($"ServerHub exception: {e}");
                    }
                    foreach (AvatarController avatar in _avatars)
                    {
                        Destroy(avatar.gameObject);
                    }
                    DismissModalViewController(null, false);
                });
            }

            if (_timerText == null)
            {
                _timerText           = ui.CreateText(rectTransform, "", new Vector2(0f, -5f));
                _timerText.fontSize  = 8f;
                _timerText.alignment = TextAlignmentOptions.Center;
                _timerText.rectTransform.sizeDelta = new Vector2(20f, 6f);
            }

            if (_selectText == null)
            {
                _selectText           = ui.CreateText(rectTransform, "", new Vector2(0f, -36f));
                _selectText.fontSize  = 7f;
                _selectText.alignment = TextAlignmentOptions.Center;
                _selectText.rectTransform.sizeDelta = new Vector2(120f, 6f);
            }

            if (_loadingIndicator == null)
            {
                try
                {
                    _loadingIndicator = ui.CreateLoadingIndicator(rectTransform);
                    (_loadingIndicator.transform as RectTransform).anchorMin        = new Vector2(0.5f, 0.5f);
                    (_loadingIndicator.transform as RectTransform).anchorMax        = new Vector2(0.5f, 0.5f);
                    (_loadingIndicator.transform as RectTransform).anchoredPosition = new Vector2(0f, 0f);
                    _loadingIndicator.SetActive(true);
                }
                catch (Exception e)
                {
                    Console.WriteLine("EXCEPTION: " + e);
                }
            }

            if (_selectedSongCell == null)
            {
                _selectedSongCell = Instantiate(Resources.FindObjectsOfTypeAll <SongListTableCell>().First(x => x.name == "SongListTableCell"), rectTransform, false);

                (_selectedSongCell.transform as RectTransform).anchorMin        = new Vector2(0.5f, 0.5f);
                (_selectedSongCell.transform as RectTransform).anchorMax        = new Vector2(0.5f, 0.5f);
                (_selectedSongCell.transform as RectTransform).anchoredPosition = new Vector2(-25f, 0);

                _selectedSongCell.gameObject.SetActive(false);
            }
            else
            {
                _selectedSongCell.gameObject.SetActive(false);
            }

            if (_multiplayerLeaderboard == null)
            {
                _multiplayerLeaderboard = ui.CreateViewController <MultiplayerLeaderboardViewController>();
                _multiplayerLeaderboard.rectTransform.anchorMin = new Vector2(0.3f, 0f);
                _multiplayerLeaderboard.rectTransform.anchorMax = new Vector2(0.7f, 1f);

                PushViewController(_multiplayerLeaderboard, true);
            }
            else
            {
                if (_viewControllers.IndexOf(_multiplayerLeaderboard) < 0)
                {
                    PushViewController(_multiplayerLeaderboard, true);
                }
            }

            Console.WriteLine($"Connecting to {selectedServerIP}:{selectedServerPort}");
            if (BSMultiplayerClient._instance.ConnectToServer(selectedServerIP, selectedServerPort))
            {
                BSMultiplayerClient._instance.SendString(JsonUtility.ToJson(new ClientCommand(ClientCommandType.GetServerState)));
                BSMultiplayerClient._instance.SendString(JsonUtility.ToJson(new ClientCommand(ClientCommandType.GetAvailableSongs)));
                StartCoroutine(BSMultiplayerClient._instance.ReceiveFromServerCoroutine());
                BSMultiplayerClient._instance.DataReceived += DataReceived;
            }
            else
            {
                _loading = false;
                TextMeshProUGUI _errorText = ui.CreateText(rectTransform, String.Format("Can't connect to server!"), new Vector2(0f, -48f));
                _errorText.alignment = TextAlignmentOptions.Center;
                Destroy(_errorText.gameObject, 5f);
            }
        }
Пример #7
0
        protected override void DidActivate()
        {
            Debug.Log("Activated!");

            ui          = FindObjectOfType <CustomUI>();
            _songLoader = FindObjectOfType <SongLoader>();

            UpdateAlreadyDownloadedSongs();

            try
            {
                _pageUpButton = Instantiate(Resources.FindObjectsOfTypeAll <Button>().Where(x => (x.name == "PageUpButton")).First(), rectTransform, false);
                (_pageUpButton.transform as RectTransform).anchorMin        = new Vector2(0.5f, 1f);
                (_pageUpButton.transform as RectTransform).anchorMax        = new Vector2(0.5f, 1f);
                (_pageUpButton.transform as RectTransform).anchoredPosition = new Vector2(0f, -10f);
                _pageUpButton.interactable = true;
                _pageUpButton.onClick.AddListener(delegate()
                {
                    if (_currentPage > 0)
                    {
                        if (!_loading)
                        {
                            _loading          = true;
                            _loadingText.text = "Loading...";
                            _selectedRow      = -1;
                            _downloadButton.gameObject.SetActive(false);
                            StartCoroutine(GetSongs(_currentPage - 1));
                        }
                    }
                });


                _pageDownButton = Instantiate(Resources.FindObjectsOfTypeAll <Button>().Where(x => (x.name == "PageDownButton")).First(), rectTransform, false);
                (_pageDownButton.transform as RectTransform).anchorMin        = new Vector2(0.5f, 0f);
                (_pageDownButton.transform as RectTransform).anchorMax        = new Vector2(0.5f, 0f);
                (_pageDownButton.transform as RectTransform).anchoredPosition = new Vector2(0f, 10f);
                _pageDownButton.interactable = true;
                _pageDownButton.onClick.AddListener(delegate()
                {
                    if (!_loading)
                    {
                        _loading          = true;
                        _loadingText.text = "Loading...";
                        _selectedRow      = -1;
                        _downloadButton.gameObject.SetActive(false);
                        StartCoroutine(GetSongs(_currentPage + 1));
                    }
                });

                _songListTableCellInstance = Resources.FindObjectsOfTypeAll <SongListTableCell>().Where(x => (x.name == "SongListTableCell")).First();
            }
            catch (Exception e)
            {
                Debug.Log("EXCEPTION IN DidActivate: " + e);
            }

            Button _backButton = ui.CreateBackButton(rectTransform);


            _backButton.onClick.AddListener(delegate() {
                try
                {
                    _songLoader.RefreshSongs();
                }catch (Exception e)
                {
                    Debug.Log("Can't refresh songs!");
                }
                DismissModalViewController(null, false);
            });

            _downloadButton = ui.CreateUIButton(rectTransform);

            (_downloadButton.transform as RectTransform).anchorMin        = new Vector2(0.5f, 1f);
            (_downloadButton.transform as RectTransform).anchorMax        = new Vector2(0.5f, 1f);
            (_downloadButton.transform as RectTransform).anchoredPosition = new Vector2(-66f, -50f);
            (_downloadButton.transform as RectTransform).sizeDelta        = new Vector2(32f, 10f);

            ui.SetButtonText(ref _downloadButton, "Download");
            ui.SetButtonIcon(ref _downloadButton, CustomUI.icons.Where(x => x.name == "PlayIcon").First());

            _downloadButton.onClick.AddListener(delegate() {
                if (_selectedRow != -1 && !_loading)
                {
                    DownloadSong(_selectedRow);
                }
            });

            _downloadButton.gameObject.SetActive(false);


            _loadingText = ui.CreateText(rectTransform, "Loading songs from BeatSaver...", new Vector2(-34f, -32f));
            StartCoroutine(GetSongs(0));

            base.DidActivate();
        }
Пример #8
0
        protected override void DidActivate()
        {
            ui = BeatSaverUI._instance;
            _parentMasterViewController = transform.parent.GetComponent <BeatSaverMasterViewController>();

            try
            {
                if (_pageUpButton == null)
                {
                    _pageUpButton = Instantiate(Resources.FindObjectsOfTypeAll <Button>().First(x => (x.name == "PageUpButton")), rectTransform, false);
                    (_pageUpButton.transform as RectTransform).anchorMin        = new Vector2(0.5f, 1f);
                    (_pageUpButton.transform as RectTransform).anchorMax        = new Vector2(0.5f, 1f);
                    (_pageUpButton.transform as RectTransform).anchoredPosition = new Vector2(0f, -14f);
                    _pageUpButton.interactable = true;
                    _pageUpButton.onClick.AddListener(delegate()
                    {
                        if (_currentPage > 0)
                        {
                            if (!_parentMasterViewController._loading)
                            {
                                _parentMasterViewController._loading = true;
                                _currentPage -= 1;
                                _parentMasterViewController.GetPage(_currentPage);
                            }
                        }
                    });
                }

                if (_pageDownButton == null)
                {
                    _pageDownButton = Instantiate(Resources.FindObjectsOfTypeAll <Button>().First(x => (x.name == "PageDownButton")), rectTransform, false);
                    (_pageDownButton.transform as RectTransform).anchorMin        = new Vector2(0.5f, 0f);
                    (_pageDownButton.transform as RectTransform).anchorMax        = new Vector2(0.5f, 0f);
                    (_pageDownButton.transform as RectTransform).anchoredPosition = new Vector2(0f, 8f);
                    _pageDownButton.interactable = true;
                    _pageDownButton.onClick.AddListener(delegate()
                    {
                        if (!_parentMasterViewController._loading)
                        {
                            _parentMasterViewController._loading = true;
                            _currentPage += 1;
                            _parentMasterViewController.GetPage(_currentPage);
                        }
                    });
                }

                if (_sortByButton == null)
                {
                    _sortByButton = ui.CreateUIButton(rectTransform, "ApplyButton");
                    ui.SetButtonText(ref _sortByButton, "Sort by");
                    ui.SetButtonTextSize(ref _sortByButton, 3f);
                    (_sortByButton.transform as RectTransform).sizeDelta        = new Vector2(30f, 6f);
                    (_sortByButton.transform as RectTransform).anchoredPosition = new Vector2(0f, 73f);
                    _sortByButton.onClick.RemoveAllListeners();
                    _sortByButton.onClick.AddListener(delegate() {
                        SelectTopButtons(TopButtonsState.SortBy);
                    });
                }

                if (_sortByText == null)
                {
                    _sortByText          = ui.CreateText(rectTransform, "SORT BY", new Vector2(-36f, -4.75f));
                    _sortByText.fontSize = 3.5f;
                    _sortByText.rectTransform.sizeDelta = new Vector2(10f, 6f);
                    _sortByText.gameObject.SetActive(false);
                }

                if (_topButton == null)
                {
                    _topButton = ui.CreateUIButton(rectTransform, "ApplyButton");
                    ui.SetButtonText(ref _topButton, "Downloads");
                    ui.SetButtonTextSize(ref _topButton, 3f);
                    (_topButton.transform as RectTransform).sizeDelta        = new Vector2(20f, 6f);
                    (_topButton.transform as RectTransform).anchoredPosition = new Vector2(-30f, 73f);
                    _topButton.onClick.RemoveAllListeners();
                    _topButton.onClick.AddListener(delegate() {
                        if (!_parentMasterViewController._loading)
                        {
                            _parentMasterViewController._loading = true;
                            _parentMasterViewController._sortBy  = "top";
                            _currentPage = 0;
                            _parentMasterViewController.ClearSearchInput();
                            _parentMasterViewController.GetPage(_currentPage);
                            SelectTopButtons(TopButtonsState.Select);
                        }
                    });
                    _topButton.gameObject.SetActive(false);
                }

                if (_newButton == null)
                {
                    _newButton = ui.CreateUIButton(rectTransform, "ApplyButton");
                    ui.SetButtonText(ref _newButton, "Upload Time");
                    ui.SetButtonTextSize(ref _newButton, 3f);
                    (_newButton.transform as RectTransform).sizeDelta        = new Vector2(20f, 6f);
                    (_newButton.transform as RectTransform).anchoredPosition = new Vector2(-10f, 73f);
                    _newButton.onClick.RemoveAllListeners();
                    _newButton.onClick.AddListener(delegate() {
                        if (!_parentMasterViewController._loading)
                        {
                            _parentMasterViewController._loading = true;
                            _parentMasterViewController._sortBy  = "new";
                            _currentPage = 0;
                            _parentMasterViewController.ClearSearchInput();
                            _parentMasterViewController.GetPage(_currentPage);
                            SelectTopButtons(TopButtonsState.Select);
                        }
                    });
                    _newButton.gameObject.SetActive(false);
                }

                if (_starButton == null)
                {
                    _starButton = ui.CreateUIButton(rectTransform, "ApplyButton");
                    ui.SetButtonText(ref _starButton, "Plays");
                    ui.SetButtonTextSize(ref _starButton, 3f);
                    (_starButton.transform as RectTransform).sizeDelta        = new Vector2(20f, 6f);
                    (_starButton.transform as RectTransform).anchoredPosition = new Vector2(10f, 73f);
                    _starButton.onClick.RemoveAllListeners();
                    _starButton.onClick.AddListener(delegate() {
                        if (!_parentMasterViewController._loading)
                        {
                            _parentMasterViewController._sortBy = "plays";
                            _currentPage = 0;
                            _parentMasterViewController.ClearSearchInput();
                            _parentMasterViewController.GetPage(_currentPage);
                            SelectTopButtons(TopButtonsState.Select);
                        }
                    });
                    _starButton.gameObject.SetActive(false);
                }

                if (_searchButton == null)
                {
                    _searchButton = ui.CreateUIButton(rectTransform, "ApplyButton");
                    ui.SetButtonText(ref _searchButton, "Search");
                    ui.SetButtonTextSize(ref _searchButton, 3f);
                    (_searchButton.transform as RectTransform).sizeDelta        = new Vector2(30f, 6f);
                    (_searchButton.transform as RectTransform).anchoredPosition = new Vector2(-30f, 73f);
                    _searchButton.onClick.RemoveAllListeners();
                    _searchButton.onClick.AddListener(delegate() {
                        _parentMasterViewController.ShowSearchKeyboard();
                        SelectTopButtons(TopButtonsState.Search);
                        _currentPage = 0;
                    });
                }


                if (_loadingIndicator == null)
                {
                    try
                    {
                        _loadingIndicator = ui.CreateLoadingIndicator(rectTransform);
                        (_loadingIndicator.transform as RectTransform).anchorMin        = new Vector2(0.5f, 0.5f);
                        (_loadingIndicator.transform as RectTransform).anchorMax        = new Vector2(0.5f, 0.5f);
                        (_loadingIndicator.transform as RectTransform).anchoredPosition = new Vector2(0f, 0f);
                        _loadingIndicator.SetActive(true);
                    }catch (Exception e)
                    {
                        log.Exception("EXCEPTION: " + e);
                    }
                }


                _songListTableCellInstance = Resources.FindObjectsOfTypeAll <SongListTableCell>().First(x => (x.name == "SongListTableCell"));

                if (_songsTableView == null)
                {
                    _songsTableView = new GameObject().AddComponent <TableView>();

                    _songsTableView.transform.SetParent(rectTransform, false);

                    _songsTableView.dataSource = this;

                    (_songsTableView.transform as RectTransform).anchorMin        = new Vector2(0f, 0.5f);
                    (_songsTableView.transform as RectTransform).anchorMax        = new Vector2(1f, 0.5f);
                    (_songsTableView.transform as RectTransform).sizeDelta        = new Vector2(0f, 60f);
                    (_songsTableView.transform as RectTransform).position         = new Vector3(0f, 0f, 2.4f);
                    (_songsTableView.transform as RectTransform).anchoredPosition = new Vector3(0f, -3f);

                    _songsTableView.DidSelectRowEvent += _songsTableView_DidSelectRowEvent;
                }
                else
                {
                    _songsTableView.ReloadData();
                }
            }
            catch (Exception e)
            {
                log.Exception("EXCEPTION IN DidActivate: " + e);
            }
        }
Пример #9
0
        protected override void DidActivate()
        {
            ui          = BSMultiplayerUI._instance;
            _songLoader = FindObjectOfType <SongLoader>();

            if (_songPreviewPlayer == null)
            {
                ObjectProvider[] providers = Resources.FindObjectsOfTypeAll <ObjectProvider>().Where(x => x.name == "SongPreviewPlayerProvider").ToArray();

                if (providers.Length > 0)
                {
                    _songPreviewPlayer = providers[0].GetProvidedObject <SongPreviewPlayer>();
                }
            }

            if (_backButton == null)
            {
                _backButton = ui.CreateBackButton(rectTransform);

                _backButton.onClick.AddListener(delegate()
                {
                    BSMultiplayerMain._instance.DataReceived -= DataReceived;
                    BSMultiplayerMain._instance.DisconnectFromServer();
                    DismissModalViewController(null, false);
                });
            }

            if (_timerText == null)
            {
                _timerText           = ui.CreateText(rectTransform, "", new Vector2(0f, -5f));
                _timerText.fontSize  = 8f;
                _timerText.alignment = TextAlignmentOptions.Center;
                _timerText.rectTransform.sizeDelta = new Vector2(20f, 6f);
            }

            if (_selectText == null)
            {
                _selectText           = ui.CreateText(rectTransform, "", new Vector2(0f, -36f));
                _selectText.fontSize  = 7f;
                _selectText.alignment = TextAlignmentOptions.Center;
                _selectText.rectTransform.sizeDelta = new Vector2(40f, 6f);
            }

            if (_loadingIndicator == null)
            {
                try
                {
                    _loadingIndicator = ui.CreateLoadingIndicator(rectTransform);
                    (_loadingIndicator.transform as RectTransform).anchorMin        = new Vector2(0.5f, 0.5f);
                    (_loadingIndicator.transform as RectTransform).anchorMax        = new Vector2(0.5f, 0.5f);
                    (_loadingIndicator.transform as RectTransform).anchoredPosition = new Vector2(0f, 0f);
                    _loadingIndicator.SetActive(true);
                }
                catch (Exception e)
                {
                    Console.WriteLine("EXCEPTION: " + e);
                }
            }

            if (_selectedSongCell == null)
            {
                _selectedSongCell = Instantiate(Resources.FindObjectsOfTypeAll <SongListTableCell>().First(x => x.name == "SongListTableCell"), rectTransform, false);

                (_selectedSongCell.transform as RectTransform).anchorMin        = new Vector2(0.5f, 0.5f);
                (_selectedSongCell.transform as RectTransform).anchorMax        = new Vector2(0.5f, 0.5f);
                (_selectedSongCell.transform as RectTransform).anchoredPosition = new Vector2(-25f, 0);

                _selectedSongCell.gameObject.SetActive(false);
            }
            else
            {
                _selectedSongCell.gameObject.SetActive(false);
            }



            if (BSMultiplayerMain._instance.ConnectToServer())
            {
                BSMultiplayerMain._instance.SendString(JsonUtility.ToJson(new ClientCommand(ClientCommandType.GetServerState)));
                BSMultiplayerMain._instance.SendString(JsonUtility.ToJson(new ClientCommand(ClientCommandType.GetAvailableSongs)));
                StartCoroutine(BSMultiplayerMain._instance.ReceiveFromServerCoroutine());
                BSMultiplayerMain._instance.DataReceived += DataReceived;
            }
            else
            {
                _loading = false;
                TextMeshProUGUI _errorText = ui.CreateText(rectTransform, String.Format("Can't connect to server!"), new Vector2(0f, -48f));
                _errorText.alignment = TextAlignmentOptions.Center;
                Destroy(_errorText.gameObject, 5f);
            }
        }