protected override void DidActivate(bool firstActivation, ActivationType activationType) { _beatmapCharacteristics = Resources.FindObjectsOfTypeAll <BeatmapCharacteristicSO>(); _beatmapLevelsModel = Resources.FindObjectsOfTypeAll <BeatmapLevelsModelSO>().FirstOrDefault(); _contentModelSO = Resources.FindObjectsOfTypeAll <AdditionalContentModelSO>().FirstOrDefault(); if (firstActivation && activationType == ActivationType.AddedToHierarchy) { _playerManagementViewController = BeatSaberUI.CreateViewController <PlayerManagementViewController>(); _playerManagementViewController.gameplayModifiersChanged += UpdateLevelOptions; _playerManagementViewController.transferHostButtonPressed += TransferHostConfirmation; var dialogOrig = ReflectionUtil.GetPrivateField <SimpleDialogPromptViewController>(FindObjectOfType <MainFlowCoordinator>(), "_simpleDialogPromptViewController"); _passHostDialog = Instantiate(dialogOrig.gameObject).GetComponent <SimpleDialogPromptViewController>(); _hostLeaveDialog = Instantiate(dialogOrig.gameObject).GetComponent <SimpleDialogPromptViewController>(); _quickSettingsViewController = BeatSaberUI.CreateViewController <QuickSettingsViewController>(); _roomNavigationController = BeatSaberUI.CreateViewController <RoomNavigationController>(); _roomNavigationController.didFinishEvent += () => { LeaveRoom(); }; _searchKeyboard = BeatSaberUI.CreateViewController <CustomKeyboardViewController>(); _searchKeyboard.enterButtonPressed += SearchPressed; _searchKeyboard.backButtonPressed += () => { DismissViewController(_searchKeyboard); }; _searchKeyboard.allowEmptyInput = true; } ProvideInitialViewControllers(_roomNavigationController, _playerManagementViewController, _quickSettingsViewController); }
public void JoinRoom(string ip, int port, uint roomId, bool usePassword, string password = "") { this.password = password; this.ip = ip; this.port = port; this.roomId = roomId; this.usePassword = usePassword; if (usePassword && string.IsNullOrEmpty(password)) { if (_passwordKeyboard == null) { _passwordKeyboard = BeatSaberUI.CreateViewController <CustomKeyboardViewController>(); _passwordKeyboard.enterButtonPressed += PasswordEntered; _passwordKeyboard.backButtonPressed += () => { DismissViewController(_passwordKeyboard); didFinishEvent?.Invoke(); }; } _passwordKeyboard.inputString = ""; PresentViewController(_passwordKeyboard, null); } else { if (!Client.Instance.connected || (Client.Instance.ip != ip || Client.Instance.port != port)) { Client.Instance.Disconnect(); Client.Instance.Connect(ip, port); Client.Instance.ConnectedToServerHub -= ConnectedToServerHub; Client.Instance.ConnectedToServerHub += ConnectedToServerHub; } else { ConnectedToServerHub(); } } }
protected override void DidActivate(bool firstActivation, ActivationType activationType) { _beatmapCharacteristics = Resources.FindObjectsOfTypeAll <BeatmapCharacteristicSO>(); _standardCharacteristic = _beatmapCharacteristics.First(x => x.characteristicName == "Standard"); if (firstActivation && activationType == ActivationType.AddedToHierarchy) { _lastCharacteristic = _standardCharacteristic; _playerManagementViewController = BeatSaberUI.CreateViewController <PlayerManagementViewController>(); _playerManagementViewController.gameplayModifiersChanged += UpdateLevelOptions; _quickSettingsViewController = BeatSaberUI.CreateViewController <QuickSettingsViewController>(); _roomNavigationController = BeatSaberUI.CreateViewController <RoomNavigationController>(); _roomNavigationController.didFinishEvent += () => { LeaveRoom(); }; _searchKeyboard = BeatSaberUI.CreateViewController <CustomKeyboardViewController>(); _searchKeyboard.enterButtonPressed += SearchPressed; _searchKeyboard.backButtonPressed += () => { DismissViewController(_searchKeyboard); }; _searchKeyboard.allowEmptyInput = true; } ProvideInitialViewControllers(_roomNavigationController, _playerManagementViewController, _quickSettingsViewController); }
protected override void DidActivate(bool firstActivation, ActivationType activationType) { _beatmapCharacteristics = Resources.FindObjectsOfTypeAll <BeatmapCharacteristicSO>(); _standardCharacteristic = _beatmapCharacteristics.First(x => x.characteristicName == "Standard"); _levelCollection = SongLoader.CustomLevelCollectionSO; if (firstActivation && activationType == ActivationType.AddedToHierarchy) { _lastCharacteristic = _standardCharacteristic; _roomManagementViewController = BeatSaberUI.CreateViewController <RoomManagementViewController>(); _roomManagementViewController.DestroyRoomPressed += DestroyRoomPressed; _roomNavigationController = BeatSaberUI.CreateViewController <RoomNavigationController>(); _roomNavigationController.didFinishEvent += () => { LeaveRoom(); }; _searchKeyboard = BeatSaberUI.CreateViewController <CustomKeyboardViewController>(); _searchKeyboard.enterButtonPressed += SearchPressed; _searchKeyboard.backButtonPressed += () => { DismissViewController(_searchKeyboard); }; _searchKeyboard.allowEmptyInput = true; } ProvideInitialViewControllers(_roomNavigationController, _roomManagementViewController, null); }
private void _mainRoomCreationViewController_keyboardDidFinishEvent(CustomKeyboardViewController keyboardViewController) { DismissViewController(keyboardViewController, null, false); }
public void PresentKeyboard(CustomKeyboardViewController keyboardViewController) { PresentViewController(keyboardViewController, null, false); }
protected override void DidActivate(bool firstActivation, ActivationType activationType) { if (firstActivation) { _backButton = BeatSaberUI.CreateBackButton(rectTransform); _backButton.onClick.AddListener(delegate() { didFinishEvent?.Invoke(); }); _nameKeyboard = BeatSaberUI.CreateViewController <CustomKeyboardViewController>(); _nameKeyboard.enterButtonPressed += NameEntered; _nameKeyboard.backButtonPressed += () => { keyboardDidFinishEvent?.Invoke(_nameKeyboard); }; _passwordKeyboard = BeatSaberUI.CreateViewController <CustomKeyboardViewController>(); _passwordKeyboard.allowEmptyInput = true; _passwordKeyboard.enterButtonPressed += PasswordEntered; _passwordKeyboard.backButtonPressed += () => { keyboardDidFinishEvent?.Invoke(_passwordKeyboard); }; _presetNameKeyboard = BeatSaberUI.CreateViewController <CustomKeyboardViewController>(); _presetNameKeyboard.enterButtonPressed += PresetNameEntered; _presetNameKeyboard.backButtonPressed += () => { keyboardDidFinishEvent?.Invoke(_presetNameKeyboard); }; _usePasswordToggle = CustomSettingsHelper.AddToggleSetting <OnOffViewController>(rectTransform, "Use Password", new Vector2(0f, 11f)); _usePasswordToggle.ValueChanged += UsePasswordToggle_ValueChanged; _usePasswordToggle.Value = _usePassword; _songSelectionList = CustomSettingsHelper.AddListSetting <MultiplayerListViewController>(rectTransform, "Song Selection", new Vector2(0f, 3f)); _songSelectionList.ValueChanged += SongSelection_ValueChanged; _songSelectionList.maxValue = 1; _songSelectionList.Value = (int)_songSelectionType; _songSelectionList.textForValues = new string[] { "Manual", "Random" }; _songSelectionList.UpdateText(); _maxPlayersList = CustomSettingsHelper.AddListSetting <MultiplayerListViewController>(rectTransform, "Max Players", new Vector2(0f, -5f)); _maxPlayersList.ValueChanged += MaxPlayers_ValueChanged; _maxPlayersList.Value = _maxPlayers; _maxPlayersList.maxValue = 16; _maxPlayersList.textForValues = new string[] { "No limit" }; _maxPlayersList.UpdateText(); _resultsShowTimeList = CustomSettingsHelper.AddListSetting <MultiplayerListViewController>(rectTransform, "Results Show Time", new Vector2(0f, -13f)); _resultsShowTimeList.ValueChanged += ResultsShowTime_ValueChanged; _resultsShowTimeList.minValue = 5; _resultsShowTimeList.maxValue = 45; _resultsShowTimeList.Value = _resultsShowTime; _perPlayerDifficultyToggle = CustomSettingsHelper.AddToggleSetting <OnOffViewController>(rectTransform, "Per player difficulty", new Vector2(0f, -21f)); _perPlayerDifficultyToggle.ValueChanged += PerPlayerDifficultyToggle_ValueChanged; _perPlayerDifficultyToggle.Value = _allowPerPlayerDifficulty; _roomName = $"{GetUserInfo.GetUserName()}'s room".ToUpper(); _nameText = BeatSaberUI.CreateText(rectTransform, _roomName, new Vector2(-22.5f, 30f)); _nameText.fontSize = 5f; _editNameButton = BeatSaberUI.CreateUIButton(rectTransform, "CancelButton"); _editNameButton.SetButtonText("EDIT NAME"); (_editNameButton.transform as RectTransform).sizeDelta = new Vector2(34f, 8f); (_editNameButton.transform as RectTransform).anchoredPosition = new Vector2(34f, 32f); _editNameButton.onClick.RemoveAllListeners(); _editNameButton.onClick.AddListener(delegate() { _nameKeyboard.inputString = _roomName; presentKeyboardEvent?.Invoke(_nameKeyboard); }); _roomPassword = ""; _passwordText = BeatSaberUI.CreateText(rectTransform, "ENTER PASSWORD", new Vector2(-22.5f, 20f)); _passwordText.fontSize = 5f; _editPasswordButton = BeatSaberUI.CreateUIButton(rectTransform, "CancelButton"); _editPasswordButton.SetButtonText("EDIT PASS"); (_editPasswordButton.transform as RectTransform).sizeDelta = new Vector2(34f, 8f); (_editPasswordButton.transform as RectTransform).anchoredPosition = new Vector2(34f, 22f); _editPasswordButton.onClick.RemoveAllListeners(); _editPasswordButton.onClick.AddListener(delegate() { _passwordKeyboard.inputString = _roomPassword; presentKeyboardEvent?.Invoke(_passwordKeyboard); }); _createRoomButton = BeatSaberUI.CreateUIButton(rectTransform, "CancelButton"); _createRoomButton.SetButtonText("Create Room"); (_createRoomButton.transform as RectTransform).sizeDelta = new Vector2(30f, 10f); (_createRoomButton.transform as RectTransform).anchoredPosition = new Vector2(0f, -32.5f); _createRoomButton.onClick.RemoveAllListeners(); _createRoomButton.onClick.AddListener(delegate() { CreatedRoom?.Invoke(new RoomSettings() { Name = _roomName, UsePassword = _usePassword, Password = _roomPassword, PerPlayerDifficulty = _allowPerPlayerDifficulty, MaxPlayers = _maxPlayers, SelectionType = _songSelectionType, ResultsShowTime = _resultsShowTime }); }); _createRoomButton.interactable = PluginUI.instance.roomCreationFlowCoordinator.CheckRequirements(); _savePresetButton = BeatSaberUI.CreateUIButton(rectTransform, "CancelButton"); _savePresetButton.SetButtonText("Save Preset"); (_savePresetButton.transform as RectTransform).sizeDelta = new Vector2(30f, 10f); (_savePresetButton.transform as RectTransform).anchoredPosition = new Vector2(-32f, -32.5f); _savePresetButton.onClick.RemoveAllListeners(); _savePresetButton.onClick.AddListener(delegate() { _presetNameKeyboard.inputString = "NEW PRESET"; presentKeyboardEvent?.Invoke(_presetNameKeyboard); }); _loadPresetButton = BeatSaberUI.CreateUIButton(rectTransform, "CancelButton"); _loadPresetButton.SetButtonText("Load Preset"); (_loadPresetButton.transform as RectTransform).sizeDelta = new Vector2(30f, 10f); (_loadPresetButton.transform as RectTransform).anchoredPosition = new Vector2(32f, -32.5f); _loadPresetButton.onClick.RemoveAllListeners(); _loadPresetButton.onClick.AddListener(delegate() { LoadPresetPressed?.Invoke(); }); } else { _songSelectionList.textForValues = new string[] { "Manual", "Random" }; _songSelectionList.UpdateText(); _maxPlayersList.textForValues = new string[] { "No limit" }; _maxPlayersList.UpdateText(); _createRoomButton.interactable = PluginUI.instance.roomCreationFlowCoordinator.CheckRequirements(); } }
protected override void DidActivate(bool firstActivation, ActivationType activationType) { if (firstActivation && activationType == ActivationType.AddedToHierarchy) { _backButton = BeatSaberUI.CreateBackButton(rectTransform); _backButton.onClick.AddListener(delegate() { didFinishEvent?.Invoke(); }); _nameKeyboard = BeatSaberUI.CreateViewController <CustomKeyboardViewController>(); _nameKeyboard.enterButtonPressed += NameEntered; _nameKeyboard.backButtonPressed += () => { keyboardDidFinishEvent?.Invoke(_nameKeyboard); }; _passwordKeyboard = BeatSaberUI.CreateViewController <CustomKeyboardViewController>(); _passwordKeyboard.enterButtonPressed += PasswordEntered; _passwordKeyboard.backButtonPressed += () => { keyboardDidFinishEvent?.Invoke(_passwordKeyboard); }; _presetNameKeyboard = BeatSaberUI.CreateViewController <CustomKeyboardViewController>(); _presetNameKeyboard.enterButtonPressed += PresetNameEntered; _presetNameKeyboard.backButtonPressed += () => { keyboardDidFinishEvent?.Invoke(_presetNameKeyboard); }; _usePasswordToggle = CustomSettingsHelper.AddToggleSetting <OnOffViewController>(rectTransform, "Use Password"); (_usePasswordToggle.transform as RectTransform).anchorMin = new Vector2(0.5f, 0.5f); (_usePasswordToggle.transform as RectTransform).anchorMax = new Vector2(0.5f, 0.5f); (_usePasswordToggle.transform as RectTransform).anchoredPosition = new Vector2(0f, 10f); _usePasswordToggle.ValueChanged += UsePasswordToggle_ValueChanged; _usePasswordToggle.Value = _usePassword; _songSelectionList = CustomSettingsHelper.AddListSetting <MultiplayerListViewController>(rectTransform, "Song Selection"); (_songSelectionList.transform as RectTransform).anchorMin = new Vector2(0.5f, 0.5f); (_songSelectionList.transform as RectTransform).anchorMax = new Vector2(0.5f, 0.5f); (_songSelectionList.transform as RectTransform).anchoredPosition = new Vector2(0f, 0f); _songSelectionList.ValueChanged += SongSelection_ValueChanged; _songSelectionList.maxValue = 2; _songSelectionList.Value = (int)_songSelectionType; _songSelectionList.textForValues = new string[] { "Manual", "Random", "Voting" }; _songSelectionList.UpdateText(); _maxPlayersList = CustomSettingsHelper.AddListSetting <MultiplayerListViewController>(rectTransform, "Max Players"); (_maxPlayersList.transform as RectTransform).anchorMin = new Vector2(0.5f, 0.5f); (_maxPlayersList.transform as RectTransform).anchorMax = new Vector2(0.5f, 0.5f); (_maxPlayersList.transform as RectTransform).anchoredPosition = new Vector2(0f, -10f); _maxPlayersList.ValueChanged += MaxPlayers_ValueChanged; _maxPlayersList.Value = _maxPlayers; _maxPlayersList.maxValue = 16; _noFailToggle = CustomSettingsHelper.AddToggleSetting <OnOffViewController>(rectTransform, "No Fail Mode"); (_noFailToggle.transform as RectTransform).anchorMin = new Vector2(0.5f, 0.5f); (_noFailToggle.transform as RectTransform).anchorMax = new Vector2(0.5f, 0.5f); (_noFailToggle.transform as RectTransform).anchoredPosition = new Vector2(0f, -20f); _noFailToggle.ValueChanged += NoFailToggle_ValueChanged; _noFailToggle.Value = _noFailMode; _roomName = $"{GetUserInfo.GetUserName()}'s room".ToUpper(); _nameText = BeatSaberUI.CreateText(rectTransform, _roomName, new Vector2(-22.5f, 25f)); _nameText.fontSize = 5f; _editNameButton = BeatSaberUI.CreateUIButton(rectTransform, "CreditsButton"); _editNameButton.SetButtonText("EDIT NAME"); (_editNameButton.transform as RectTransform).sizeDelta = new Vector2(34f, 8f); (_editNameButton.transform as RectTransform).anchoredPosition = new Vector2(34f, 25f); _editNameButton.onClick.RemoveAllListeners(); _editNameButton.onClick.AddListener(delegate() { _nameKeyboard.inputString = _roomName; PluginUI.instance.roomCreationFlowCoordinator.PresentKeyboard(_nameKeyboard); }); _roomPassword = ""; _passwordText = BeatSaberUI.CreateText(rectTransform, "ENTER PASSWORD", new Vector2(-22.5f, 15f)); _passwordText.fontSize = 5f; _editPasswordButton = BeatSaberUI.CreateUIButton(rectTransform, "CreditsButton"); _editPasswordButton.SetButtonText("EDIT PASS"); (_editPasswordButton.transform as RectTransform).sizeDelta = new Vector2(34f, 8f); (_editPasswordButton.transform as RectTransform).anchoredPosition = new Vector2(34f, 15f); _editPasswordButton.onClick.RemoveAllListeners(); _editPasswordButton.onClick.AddListener(delegate() { _passwordKeyboard.inputString = _roomPassword; PluginUI.instance.roomCreationFlowCoordinator.PresentKeyboard(_passwordKeyboard); }); _createRoomButton = BeatSaberUI.CreateUIButton(rectTransform, "CreditsButton"); _createRoomButton.SetButtonText("Create Room"); (_createRoomButton.transform as RectTransform).sizeDelta = new Vector2(30f, 10f); (_createRoomButton.transform as RectTransform).anchoredPosition = new Vector2(0f, -32.5f); _createRoomButton.onClick.RemoveAllListeners(); _createRoomButton.onClick.AddListener(delegate() { CreatedRoom?.Invoke(new RoomSettings() { Name = _roomName, UsePassword = _usePassword, Password = _roomPassword, NoFail = _noFailMode, MaxPlayers = _maxPlayers, SelectionType = _songSelectionType }); }); _createRoomButton.interactable = PluginUI.instance.roomCreationFlowCoordinator.CheckRequirements(); _savePresetButton = BeatSaberUI.CreateUIButton(rectTransform, "CreditsButton"); _savePresetButton.SetButtonText("Save Preset"); (_savePresetButton.transform as RectTransform).sizeDelta = new Vector2(30f, 10f); (_savePresetButton.transform as RectTransform).anchoredPosition = new Vector2(-32f, -32.5f); _savePresetButton.onClick.RemoveAllListeners(); _savePresetButton.onClick.AddListener(delegate() { _presetNameKeyboard.inputString = "NEW PRESET"; PluginUI.instance.roomCreationFlowCoordinator.PresentKeyboard(_presetNameKeyboard); }); _loadPresetButton = BeatSaberUI.CreateUIButton(rectTransform, "CreditsButton"); _loadPresetButton.SetButtonText("Load Preset"); (_loadPresetButton.transform as RectTransform).sizeDelta = new Vector2(30f, 10f); (_loadPresetButton.transform as RectTransform).anchoredPosition = new Vector2(32f, -32.5f); _loadPresetButton.onClick.RemoveAllListeners(); _loadPresetButton.onClick.AddListener(delegate() { LoadPresetPressed?.Invoke(); }); } else { _songSelectionList.textForValues = new string[] { "Manual", "Random", "Voting" }; _songSelectionList.UpdateText(); _createRoomButton.interactable = PluginUI.instance.roomCreationFlowCoordinator.CheckRequirements(); } }