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); } }); }
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); } }
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(); } }