コード例 #1
0
        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; });
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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>";
        }
コード例 #4
0
        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 = "正在同步直播信号";
        }
コード例 #5
0
        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;
            });
        }
コード例 #6
0
        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);
        }