Пример #1
0
        IEnumerator WaitForResults()
        {
            yield return(new WaitUntil(delegate() { return Resources.FindObjectsOfTypeAll <ResultsViewController>().Count() > 0; }));

            ResultsViewController results = Resources.FindObjectsOfTypeAll <ResultsViewController>().First();

            results.GetComponentsInChildren <Button>().First(x => x.name == "RestartButton").interactable = false;


            results.resultsViewControllerDidPressContinueButtonEvent += delegate(ResultsViewController viewController) {
                try
                {
                    MultiplayerServerHubViewController hub   = ui.CreateViewController <MultiplayerServerHubViewController>();
                    MultiplayerLobbyViewController     lobby = ui.CreateViewController <MultiplayerLobbyViewController>();

                    viewController.DismissModalViewController(null, true);
                    FindObjectOfType <SongSelectionMasterViewController>().DismissModalViewController(null, true);
                    FindObjectOfType <SoloModeSelectionViewController>().DismissModalViewController(null, true);

                    hub.doNotUpdate = true;
                    FindObjectOfType <MainMenuViewController>().PresentModalViewController(hub, null, true);
                    lobby.selectedServerIP   = lastServerIP;
                    lobby.selectedServerPort = lastServerPort;
                    hub.PresentModalViewController(lobby, null, true);
                }
                catch (Exception e)
                {
                    Console.WriteLine($"RESULTS EXCEPTION: {e}");
                }
            };
        }
        private void CreateMultiplayerButton()
        {
            Button _multiplayerButton = CreateUIButton(_mainMenuRectTransform, "PartyButton");

            _multiplayerButton.transform.SetParent(Resources.FindObjectsOfTypeAll <Button>().First(x => x.name == "SoloButton").transform.parent);

            SetButtonText(ref _multiplayerButton, "Online");
            SetButtonIcon(ref _multiplayerButton, Base64ToSprite(Base64Sprites.onlineIcon));

            _multiplayerButton.onClick.AddListener(delegate()
            {
                try
                {
                    if (_multiplayerServerHubViewController == null)
                    {
                        _multiplayerServerHubViewController = CreateViewController <MultiplayerServerHubViewController>();
                    }
                    _mainMenuViewController.PresentModalViewController(_multiplayerServerHubViewController, null, false);
                }
                catch (Exception e)
                {
                    Console.WriteLine("EXCETPION IN BUTTON: " + e.Message);
                }
            });
        }
Пример #3
0
        IEnumerator WaitForMenu()
        {
            yield return(new WaitUntil(delegate() { return Resources.FindObjectsOfTypeAll <VRUIScreenSystem>().Any(); }));

            VRUIScreenSystem screenSystem = Resources.FindObjectsOfTypeAll <VRUIScreenSystem>().First();

            yield return(new WaitWhile(delegate() { Console.WriteLine("Waiting for mainScreen"); return screenSystem.mainScreen == null; }));

            yield return(new WaitWhile(delegate() { Console.WriteLine("Waiting for rootViewController"); return screenSystem.mainScreen.rootViewController == null; }));

            try
            {
                VRUIViewController root = screenSystem.mainScreen.rootViewController;

                List <VRUIViewController> children = new List <VRUIViewController>();

                children.Add(root);

                while (children.Last().childViewController != null)
                {
                    children.Add(children.Last().childViewController);
                }

                children.Reverse();
                children.Remove(root);
                children.ForEach(x => { Console.WriteLine($"Dismissing {x.name}..."); x.DismissModalViewController(null, true); });

                MultiplayerServerHubViewController hub   = ui.CreateViewController <MultiplayerServerHubViewController>();
                MultiplayerLobbyViewController     lobby = ui.CreateViewController <MultiplayerLobbyViewController>();

                bool serverClosed = (lastCommands != null) ? lastCommands.Any(x => x.commandType == ServerCommandType.Kicked && x.kickReason == "Server closed") : false;

                hub.doNotUpdate = !serverClosed;
                FindObjectOfType <MainMenuViewController>().PresentModalViewController(hub, null, true);
                if (!serverClosed)
                {
                    lobby.selectedServerIP   = lastServerIP;
                    lobby.selectedServerPort = lastServerPort;
                    hub.PresentModalViewController(lobby, null, true);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine($"MENU EXCEPTION: {e}");
            }
        }
        private void CreateMultiplayerButton()
        {
            Button _multiplayerButton = CreateUIButton(_mainMenuRectTransform, "PartyButton");

            Console.ForegroundColor = ConsoleColor.Gray;

            (Resources.FindObjectsOfTypeAll <Button>().First(x => x.name == "SoloButton").transform as RectTransform).anchoredPosition  = new Vector2(-19f, 8f);
            (Resources.FindObjectsOfTypeAll <Button>().First(x => x.name == "PartyButton").transform as RectTransform).anchoredPosition = new Vector2(-18f, 8f);


            try
            {
                (_multiplayerButton.transform as RectTransform).anchoredPosition = new Vector2(19f, 8f);
                (_multiplayerButton.transform as RectTransform).sizeDelta        = new Vector2(36f, 36f);

                SetButtonText(ref _multiplayerButton, "Online");

                SetButtonIcon(ref _multiplayerButton, Base64ToSprite(Base64Sprites.onlineIcon));

                _multiplayerButton.onClick.AddListener(delegate() {
                    try
                    {
                        if (_multiplayerServerHubViewController == null)
                        {
                            _multiplayerServerHubViewController = CreateViewController <MultiplayerServerHubViewController>();
                        }
                        _mainMenuViewController.PresentModalViewController(_multiplayerServerHubViewController, null, false);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("EXCETPION IN BUTTON: " + e.Message);
                    }
                });
            }
            catch (Exception e)
            {
                Console.WriteLine("EXCEPTION: " + e.Message);
            }
        }
Пример #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();
            }
        }
        protected override void DidActivate(bool firstActivation, ActivationType type)
        {
            ui = BSMultiplayerUI._instance;

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

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

            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()
                {
                    _serverTableView.PageScrollUp();
                });
                _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()
                {
                    _serverTableView.PageScrollDown();
                });
                _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);

                ReflectionUtil.SetPrivateField(_serverTableView, "_pageUpButton", _pageUpButton);
                ReflectionUtil.SetPrivateField(_serverTableView, "_pageDownButton", _pageDownButton);

                _serverTableView.didSelectRowEvent += ServerTableView_DidSelectRow;

                _serverTableView.dataSource = this;
            }
            else
            {
                _serverTableView.ReloadData();
            }
        }