public void CreateCheckbox() { if (_pauseMenuManager == null) { return; } var canvas = _pauseMenuManager.GetField <LevelBar, PauseMenuManager>("_levelBar") .transform .parent .parent .GetComponent <Canvas>(); if (!canvas) { return; } var toggleObject = new ToggleSettingTag().CreateObject(canvas.transform); (toggleObject.transform as RectTransform).anchoredPosition = new Vector2(26, -15); (toggleObject.transform as RectTransform).sizeDelta = new Vector2(-130, 7); toggleObject.transform.Find("NameText").GetComponent <CurvedTextMeshPro>().text = "Tricksaber Enabled"; var toggleSetting = toggleObject.GetComponent <ToggleSetting>(); toggleSetting.Value = _config.TrickSaberEnabled; toggleSetting.toggle.onValueChanged.AddListener(enabled => { _config.TrickSaberEnabled = enabled; }); }
private void UpdatePauseMenu() { var currInitData = pauseManager.GetField <PauseMenuManager.InitData, PauseMenuManager>("_initData"); PauseMenuManager.InitData newData = new PauseMenuManager.InitData(currInitData.backButtonText, nextSongInfo, nextDifficulty, nextCharacteristic, true, true); pauseManager.SetField("_initData", newData); pauseManager.Start(); }
public IEnumerator PauseOnStart() { //If we've disabled pause, we need to reenable it so we can pause for stream sync if (Plugin.DisablePause) { //We know pausecontroller will be guaranteed true here since we've already waited for it when disabling pause var guaranteedPauseController = pauseController; guaranteedPauseController.canPauseEvent -= AntiPause.HandlePauseControllerCanPause_AlwaysFalse; guaranteedPauseController.canPauseEvent += standardLevelGameplayManager.HandlePauseControllerCanPause; } else { yield return(new WaitUntil(() => standardLevelGameplayManager.GetField <StandardLevelGameplayManager.GameState>("_gameState") == StandardLevelGameplayManager.GameState.Playing)); yield return(new WaitUntil(() => standardLevelGameplayManager.GetField <PauseController>("_pauseController").GetProperty <bool>("canPause"))); } //Prevent players from unpausing with their menu buttons pauseMenuManager.didPressContinueButtonEvent -= pauseController.HandlePauseMenuManagerDidPressContinueButton; pauseController.Pause(); //Wait for the pauseMenuManager to have started and set the pause menu text //The text we're checking for is the default text for that field yield return(new WaitUntil(() => pauseMenuManager.GetField <TextMeshProUGUI>("_levelNameText").text != @"Super Long Song Name\n<size=80%>ft great artist</size>")); pauseMenuManager.GetField <Button>("_restartButton").gameObject.SetActive(false); pauseMenuManager.GetField <Button>("_continueButton").gameObject.SetActive(false); pauseMenuManager.GetField <Button>("_backButton").gameObject.SetActive(false); pauseMenuManager.GetField <TextMeshProUGUI>("_beatmapDifficultyText").gameObject.SetActive(false); oldLevelText = pauseMenuManager.GetField <TextMeshProUGUI>("_levelNameText").text; pauseMenuManager.GetField <TextMeshProUGUI>("_levelNameText").text = "Please wait!\n<size=80%>Setting up synchronized streams!</size>"; }
public IEnumerator PauseOnStart() { //If we've disabled pause, we need to reenable it so we can pause for stream sync if (Plugin.DisablePause) { //We know pausecontroller will be guaranteed true here since we've already waited for it when disabling pause var guaranteedPauseController = pauseController; guaranteedPauseController.canPauseEvent -= AntiPause.HandlePauseControllerCanPause_AlwaysFalse; guaranteedPauseController.canPauseEvent += standardLevelGameplayManager.HandlePauseControllerCanPause; } else { yield return(new WaitUntil(() => standardLevelGameplayManager.GetField <StandardLevelGameplayManager.GameState>("_gameState") == StandardLevelGameplayManager.GameState.Playing)); yield return(new WaitUntil(() => standardLevelGameplayManager.GetField <PauseController>("_pauseController").GetProperty <bool>("canPause"))); } //Prevent players from unpausing with their menu buttons pauseMenuManager.didPressContinueButtonEvent -= pauseController.HandlePauseMenuManagerDidPressContinueButton; pauseController.Pause(); var levelBar = pauseMenuManager.GetField <LevelBar>("_levelBar"); //Wait for the pauseMenuManager to have started and set the pause menu text //The text we're checking for is the default text for that field yield return(new WaitUntil(() => levelBar.GetField <TextMeshProUGUI>("_songNameText").text != "!Not Defined!")); pauseMenuManager.GetField <Button>("_restartButton").gameObject.SetActive(false); pauseMenuManager.GetField <Button>("_continueButton").gameObject.SetActive(false); pauseMenuManager.GetField <Button>("_backButton").gameObject.SetActive(false); levelBar.hide = false; levelBar.GetField <TextMeshProUGUI>("_difficultyText").gameObject.SetActive(false); oldLevelText = levelBar.GetField <TextMeshProUGUI>("_songNameText").text; oldAuthorText = levelBar.GetField <TextMeshProUGUI>("_authorNameText").text; levelBar.GetField <TextMeshProUGUI>("_songNameText").text = "请稍等"; levelBar.GetField <TextMeshProUGUI>("_authorNameText").text = "正在同步直播信号"; }
public void Start() { gameplayCoreSceneSetupData = gameplayCoreSceneSetup.GetProperty <GameplayCoreSceneSetupData>("sceneSetupData"); noteCutSoundEffectManager = gameplayCoreSceneSetup.GetField <NoteCutSoundEffectManager>("_noteCutSoundEffectManager"); levelDetailViewController = Resources.FindObjectsOfTypeAll <StandardLevelDetailViewController>().First(); if (preferredDifficulty == null) { preferredDifficulty = gameplayCoreSceneSetupData.difficultyBeatmap.difficulty; } //Listen for restarts so that we can set up the playlist properly on restart var restartButton = pauseMenuManager.GetField <Button>("_restartButton"); buttonBinder = new ButtonBinder(); buttonBinder.AddBinding(restartButton, () => { playlist = new Queue <IPreviewBeatmapLevel>(playlist.Prepend(gameplayCoreSceneSetupData.difficultyBeatmap.level)); Plugin.instance.loadedLevels = playlist; }); }
public void CreateCheckbox() { var canvas = _pauseMenuManager.GetField <LevelBar, PauseMenuManager>("_levelBar") .transform .parent .parent .GetComponent <Canvas>(); if (!canvas) { return; } var buttonObj = new ButtonTag().CreateObject(canvas.transform); (buttonObj.transform as RectTransform).anchoredPosition = new Vector2(26, -15); (buttonObj.transform as RectTransform).sizeDelta = new Vector2(-130, 7); buttonObj.GetComponent <Button>().onClick.AddListener(ButtonClick); }