コード例 #1
0
ファイル: MenuButtonManager.cs プロジェクト: Auros/Actions
 public MenuButtonManager(ISocialPlatform socialPlatform, ActionFlowCoordinator actionFlowCoordinator, MainFlowCoordinator mainFlowCoordinator)
 {
     _socialPlatform        = socialPlatform;
     _mainFlowCoordinator   = mainFlowCoordinator;
     _actionFlowCoordinator = actionFlowCoordinator;
     _menuButton            = new MenuButton(nameof(Actions), ShowFlow);
 }
コード例 #2
0
 [Inject] internal void Construct(MainFlowCoordinator mfc, ModSettingsViewController msvc, ModInfoViewController mivc, ObjectPreviewViewController opvc)
 {
     MainFlowCoordinator = mfc;
     ModSettings         = msvc;
     ModInfo             = mivc;
     PreviewController   = opvc;
 }
コード例 #3
0
        /// <summary>
        /// Creates a FlowCoordinator of type T, and marks it to not be destroyed.
        /// </summary>
        /// <typeparam name="T">The variation of FlowCoordinator you want to create.</typeparam>
        /// <returns>The newly created FlowCoordinator of type T.</returns>
        public static T CreateFlowCoordinator <T>() where T : FlowCoordinator
        {
            T flow = new GameObject(typeof(T).Name).AddComponent <T>();

            flow.SetField <FlowCoordinator, BaseInputModule>("_baseInputModule", MainFlowCoordinator.GetField <BaseInputModule, FlowCoordinator>("_baseInputModule"));
            return(flow);
        }
コード例 #4
0
        /// <summary>
        /// Get a handle to the view controllers we are going to add elements to.
        /// </summary>
        public void AcquireUIElements()
        {
            Logger.Trace("AcquireUIElements()");
            try
            {
                CachedIcons = new Dictionary <String, Sprite>();
                foreach (Sprite sprite in Resources.FindObjectsOfTypeAll <Sprite>())
                {
                    if (CachedIcons.ContainsKey(sprite.name))
                    {
                        continue;
                    }

                    //Logger.Debug("Adding Icon: {0}", sprite.name);
                    CachedIcons.Add(sprite.name, sprite);
                }
                // Append our own event to appropriate events so we can refresh the song list before the user sees it.
                MainFlowCoordinator mainFlow = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().First();
                Button soloFreePlayButton    = Resources.FindObjectsOfTypeAll <Button>().First(x => x.name == "SoloFreePlayButton");
                Button partyFreePlayButton   = Resources.FindObjectsOfTypeAll <Button>().First(x => x.name == "PartyFreePlayButton");

                soloFreePlayButton.onClick.AddListener(HandleSoloModeSelection);
                partyFreePlayButton.onClick.AddListener(HandlePartyModeSelection);
            }
            catch (Exception e)
            {
                Logger.Exception("Exception AcquireUIElements(): ", e);
            }
        }
コード例 #5
0
        private void CreateOnlineButton()
        {
            _newVersionText             = BeatSaberUI.CreateText(_mainMenuRectTransform, "A new version of the mod\nis available!", new Vector2(55.5f, 33f));
            _newVersionText.fontSize    = 5f;
            _newVersionText.lineSpacing = -52;
            _newVersionText.gameObject.SetActive(false);

            Button[] mainButtons = Resources.FindObjectsOfTypeAll <RectTransform>().First(x => x.name == "MainButtons" && x.parent.name == "MainMenuViewController").GetComponentsInChildren <Button>();

            foreach (var item in mainButtons)
            {
                (item.transform as RectTransform).sizeDelta = new Vector2(35f, 30f);
            }

            _multiplayerButton = BeatSaberUI.CreateUIButton(_mainMenuRectTransform, "CampaignButton");
            _multiplayerButton.transform.SetParent(mainButtons.First(x => x.name == "CampaignButton").transform.parent);
            _multiplayerButton.transform.SetSiblingIndex(3);

            _multiplayerButton.SetButtonText("Online");
            _multiplayerButton.SetButtonIcon(Sprites.onlineIcon);

            _multiplayerButton.onClick.AddListener(delegate()
            {
                try
                {
                    MainFlowCoordinator mainFlow = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().First();

                    mainFlow.InvokeMethod("PresentFlowCoordinator", modeSelectionFlowCoordinator, null, false, false);
                }
                catch (Exception e)
                {
                    Misc.Logger.Exception($"Unable to present flow coordinator! Exception: {e}");
                }
            });
        }
コード例 #6
0
        void Awake()
        {
            Instance = this;

            foreach (Sprite sprite in Resources.FindObjectsOfTypeAll <Sprite>())
            {
                Icons.Add(sprite);
            }

            try
            {
                var allButtons = Resources.FindObjectsOfTypeAll <Button>();

                _buttonInstance           = Resources.FindObjectsOfTypeAll <Button>().First(x => x.name == "QuitButton");
                _cogWheelButtonInstance   = allButtons.FirstOrDefault(x => x.name == "SettingsButton");
                _downArrowBtn             = allButtons.First(x => x.name == "PageDownButton");
                _upArrowBtn               = allButtons.First(x => x.name == "PageUpButton");
                _backButtonInstance       = allButtons.First(x => x.name == "BackArrowButton");
                _mainMenuViewController   = Resources.FindObjectsOfTypeAll <MainMenuViewController>().First();
                _menuMasterViewController = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().First();
                _mainMenuRectTransform    = (RectTransform)_buttonInstance.transform.parent;

                AddCustomSaberButton();
            }
            catch (Exception)
            {
            }
        }
コード例 #7
0
 public void Construct(MainFlowCoordinator mainFlow, NoteListViewController noteListView, NoteDetailsViewController noteDetailsView, NotePreviewViewController notePreviewView)
 {
     _mainFlow        = mainFlow;
     _noteListView    = noteListView;
     _noteDetailsView = noteDetailsView;
     _notePreviewView = notePreviewView;
 }
コード例 #8
0
        protected override void DidActivate(bool firstActivation, ActivationType activationType)
        {
            if (firstActivation)
            {
                title = "Select Mode";

                AvatarController.LoadAvatars();

                _multiplayerNavController = BeatSaberUI.CreateViewController <MultiplayerNavigationController>();
                _multiplayerNavController.didFinishEvent += () => {
                    MainFlowCoordinator mainFlow = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().First();
                    mainFlow.InvokeMethod("DismissFlowCoordinator", this, null, false);
                };

                _selectionViewController = BeatSaberUI.CreateViewController <ModeSelectionViewController>();
                _selectionViewController.didSelectRooms += () =>
                {
                    if (!mainScreenViewControllers.Any(x => x.GetPrivateField <bool>("_isInTransition")))
                    {
                        PresentFlowCoordinator(PluginUI.instance.serverHubFlowCoordinator);
                    }
                };
                _selectionViewController.didSelectRadio += () =>
                {
                    if (!mainScreenViewControllers.Any(x => x.GetPrivateField <bool>("_isInTransition")))
                    {
                        PresentFlowCoordinator(PluginUI.instance.channelSelectionFlowCoordinator);
                    }
                };
            }

            SetViewControllerToNavigationConctroller(_multiplayerNavController, _selectionViewController);
            ProvideInitialViewControllers(_multiplayerNavController, null, null);
        }
コード例 #9
0
        void Awake()
        {
            Instance = this;
            //DontDestroyOnLoad(gameObject);

            foreach (Sprite sprite in Resources.FindObjectsOfTypeAll <Sprite>())
            {
                Icons.Add(sprite);
            }

            try
            {
                // Get necessary button instances and main menu VC
                var allButtons = Resources.FindObjectsOfTypeAll <Button>();

                _buttonInstance           = Resources.FindObjectsOfTypeAll <Button>().First(x => x.name == "QuitButton");
                _cogWheelButtonInstance   = allButtons.FirstOrDefault(x => x.name == "SettingsButton");
                _downArrowBtn             = allButtons.First(x => x.name == "PageDownButton");
                _upArrowBtn               = allButtons.First(x => x.name == "PageUpButton");
                _backButtonInstance       = allButtons.First(x => x.name == "BackArrowButton");
                _mainMenuViewController   = Resources.FindObjectsOfTypeAll <MainMenuViewController>().First();
                _menuMasterViewController = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().First();
                _mainMenuRectTransform    = (RectTransform)_buttonInstance.transform.parent;

                AddModMenuButton();
            }
            catch (Exception ex)
            {
            }
        }
コード例 #10
0
        public void Construct(XInfoView infoView, MainFlowCoordinator mainFlowCoordinator, XSettingsNavigationController settingsNavigationView,
                              ClockSettingsInfoView clockSettingsInfoView, ClockSettingsPosColView clockSettingsPosColView, ClockSettingsFormatView clockSettingsFormatView,
                              TimersSettingsInfoView timersSettingsInfoView,
                              BreaktimeSettingsInfoView breaktimeSettingsInfoView, BreaktimeSettingsGlobalView breaktimeSettingsGlobalView, BreaktimeSettingsProfileView breaktimeSettingsProfileView,
                              VolumeSettingsInfoView volumeSettingsInfoView,
                              MiscSettingsInfoView miscSettingsInfoView, ExtraTweaksSettingsView extraTweaksSettingsView)
        {
            _infoView               = infoView;
            _mainFlowCoordinator    = mainFlowCoordinator;
            _settingsNavigationView = settingsNavigationView;

            _clockSettingsInfoView   = clockSettingsInfoView;
            _clockSettingsPosColView = clockSettingsPosColView;
            _clockSettingsFormatView = clockSettingsFormatView;

            _timersSettingsInfoView = timersSettingsInfoView;

            _breaktimeSettingsInfoView    = breaktimeSettingsInfoView;
            _breaktimeSettingsGlobalView  = breaktimeSettingsGlobalView;
            _breaktimeSettingsProfileView = breaktimeSettingsProfileView;

            _volumeSettingsInfoView = volumeSettingsInfoView;

            _miscSettingsInfoView    = miscSettingsInfoView;
            _extraTweaksSettingsView = extraTweaksSettingsView;
        }
コード例 #11
0
        protected override void BackButtonWasPressed(ViewController topViewController)
        {
            // Dismiss ourselves
            MainFlowCoordinator mainFlow = BeatSaberUI.MainFlowCoordinator;

            mainFlow.InvokePrivateMethod("DismissFlowCoordinator", this, null, false);
        }
コード例 #12
0
        private void CreateOnlineButton()
        {
            _newVersionText           = BeatSaberUI.CreateText(_mainMenuRectTransform, "A new version of the mod\nis available!", new Vector2(18.25f, 30f));
            _newVersionText.fontSize  = 6f;
            _newVersionText.alignment = TextAlignmentOptions.Center;
            _newVersionText.gameObject.SetActive(false);

            _multiplayerButton = BeatSaberUI.CreateUIButton(_mainMenuRectTransform, "SoloFreePlayButton");
            _multiplayerButton.transform.SetParent(Resources.FindObjectsOfTypeAll <Button>().First(x => x.name == "SoloFreePlayButton").transform.parent);
            _multiplayerButton.transform.SetSiblingIndex(2);

            _multiplayerButton.SetButtonText("Online");
            _multiplayerButton.SetButtonIcon(Sprites.onlineIcon);

            _multiplayerButton.onClick.AddListener(delegate()
            {
                try
                {
                    MainFlowCoordinator mainFlow = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().First();

                    mainFlow.InvokeMethod("PresentFlowCoordinator", modeSelectionFlowCoordinator, null, false, false);
                }
                catch (Exception e)
                {
                    Misc.Logger.Exception($"Unable to present flow coordinator! Exception: {e}");
                }
            });
        }
コード例 #13
0
 private void Inject(MainFlowCoordinator mainFlowCoordinator, AvatarListViewController avatarListViewController, MirrorViewController mirrorViewController, SettingsViewController settingsViewController)
 {
     _mainFlowCoordinator      = mainFlowCoordinator;
     _avatarListViewController = avatarListViewController;
     _mirrorViewController     = mirrorViewController;
     _settingsViewController   = settingsViewController;
 }
コード例 #14
0
ファイル: SongLoader.cs プロジェクト: nyamimi/LegacyCore
        private void SceneManagerOnActiveSceneChanged(Scene arg0, Scene scene)
        {
            if (AreSongsLoading)
            {
                //Scene changing while songs are loading. Since we are using a separate thread while loading, this is bad and could cause a crash.
                //So we have to stop loading.
                if (_loadingTask != null)
                {
                    _loadingTask.Cancel();
                    _loadingCancelled = true;
                    AreSongsLoading   = false;
                    LoadingProgress   = 0;
                    StopAllCoroutines();
                    _progressBar.ShowMessage("Loading cancelled\n<size=80%>Press Ctrl+R to refresh</size>");
                    Log("Loading was cancelled by player since they loaded another scene.");
                }
            }

            StartCoroutine(WaitRemoveScores());

            if (scene.buildIndex == 1)
            {
                _mainFlowCoordinator = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().FirstOrDefault();
                _mainFlowCoordinator.SetPrivateField("_levelCollectionsForGameplayModes", _customLevelCollectionsForGameplayModes);

                _standardLevelDetailViewController = Resources.FindObjectsOfTypeAll <StandardLevelDetailViewController>().FirstOrDefault();
                if (_standardLevelDetailViewController == null)
                {
                    return;
                }
                _standardLevelDetailViewController.didPressPlayButtonEvent += StandardLevelDetailControllerOnDidPressPlayButtonEvent;

                var standardLevelListViewController = Resources.FindObjectsOfTypeAll <StandardLevelListViewController>().FirstOrDefault();
                if (standardLevelListViewController == null)
                {
                    return;
                }

                standardLevelListViewController.didSelectLevelEvent += StandardLevelListViewControllerOnDidSelectLevelEvent;
            }
            else if (scene.buildIndex == 5)
            {
                if (NoteHitVolumeChanger.PrefabFound)
                {
                    return;
                }
                var mainGameData = Resources.FindObjectsOfTypeAll <MainGameSceneSetupData>().FirstOrDefault();
                if (mainGameData == null)
                {
                    return;
                }
                var level = mainGameData.difficultyLevel.level;
                var song  = CustomLevels.FirstOrDefault(x => x.levelID == level.levelID);
                if (song == null)
                {
                    return;
                }
                NoteHitVolumeChanger.SetVolume(song.customSongInfo.noteHitVolume, song.customSongInfo.noteMissVolume);
            }
        }
コード例 #15
0
 public void Construct(MacroDash macroDash, ActionMainView mainView, ActionMacroView macroView, UserManagerDash userManagerDash, MainFlowCoordinator mainFlowCoordinator)
 {
     _mainView            = mainView;
     _macroView           = macroView;
     _macroDash           = macroDash;
     _userManagerDash     = userManagerDash;
     _mainFlowCoordinator = mainFlowCoordinator;
 }
コード例 #16
0
 public void Init()
 {
     _mainFlowCoordinator = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().FirstOrDefault();
     _mainFlowCoordinator.GetPrivateField <MainMenuViewController>("_mainMenuViewController").didFinishEvent += SongListTweaks_didFinishEvent;
     BSEvents.levelSelected += HandleDidSelectLevel;
     YouTubeDownloader.Instance.downloadProgress += VideoDownloaderDownloadProgress;
     songPreviewPlayer = Resources.FindObjectsOfTypeAll <SongPreviewPlayer>().First();
 }
コード例 #17
0
        public void Hide()
        {
            resultsViewController.continueButtonPressedEvent -= OnContinueButtonPressed;
            resultsViewController.restartButtonPressedEvent  -= OnRestartButtonPressed;

            mainFlowCoordinator = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().First();
            BeatSaberUI.DismissFlowCoordinator(mainFlowCoordinator, this);
        }
コード例 #18
0
ファイル: Plugin.cs プロジェクト: AsoDesu/TournamentAssistant
        private void MenuButtonPressed()
        {
            _mainFlowCoordinator      = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().First();
            _modeSelectionCoordinator = BeatSaberUI.CreateFlowCoordinator <ModeSelectionCoordinator>();
            _modeSelectionCoordinator.DidFinishEvent += modeSelectionCoordinator_DidFinishEvent;

            _mainFlowCoordinator.PresentFlowCoordinatorOrAskForTutorial(_modeSelectionCoordinator);
        }
コード例 #19
0
 public void Construct(DiColorsInfoView infoView, DiColorsMenuColorView menuColorView, DiColorsGameColorView gameColorView, MainFlowCoordinator mainFlowCoordinator)
 {
     _infoView = infoView;
     //_profileView = profileView;
     _menuColorView       = menuColorView;
     _gameColorView       = gameColorView;
     _mainFlowCoordinator = mainFlowCoordinator;
 }
コード例 #20
0
 private void Awake()
 {
     _instance                 = this;
     _mainFlowCoordinator      = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().First();
     SceneManager.sceneLoaded += SceneManager_sceneLoaded;
     DontDestroyOnLoad(gameObject);
     CreatePlatformsButton();
     CreateSettingsUI();
 }
コード例 #21
0
 public MenuButtonManager(MainFlowCoordinator mainFlowCoordinator, PluginConfig pluginConfig, ShadersFlowCoordinator shadersFlowCoordinator, ShaderManager shaderManager)
 {
     _mainFlowCoordinator    = mainFlowCoordinator;
     _pluginConfig           = pluginConfig;
     _shadersFlowCoordinator = shadersFlowCoordinator;
     _shaderManager          = shaderManager;
     _menuButton             = new MenuButton("Shaders", "Inspect Screen Space Shaders Here!", ShowNotesFlow, true);
     //_clearEffectButton = new MenuButton("[SE] Clear", "Clear all camera effects", ClearAllMaterialsButton, true);
 }
コード例 #22
0
 public void Construct(MainFlowCoordinator mainFlow, ShaderListViewController shaderListViewController, ShaderPropertyListViewController shaderPropertyListViewController, ShaderDetailsViewController shaderDetailsViewController, PluginConfig pluginConfig, ShaderManager shaderManager)
 {
     _mainFlow              = mainFlow;
     _shaderListView        = shaderListViewController;
     _shaderProperyListView = shaderPropertyListViewController;
     _shaderDetailsView     = shaderDetailsViewController;
     _pluginConfig          = pluginConfig;
     _shaderManager         = shaderManager;
 }
コード例 #23
0
ファイル: PluginUI.cs プロジェクト: Auros/AlphaTwitch
        private void AlphaTwitchButtonPressed()
        {
            _alphaTwitchFlowCoordinator = new GameObject("AlphaTwitchFlowCoordinator").AddComponent <AlphaTwitchFlowCoordinator>();

            MainFlowCoordinator mainFlow = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().First();

            _alphaTwitchFlowCoordinator.mainFlowCoordinator = mainFlow;
            mainFlow.InvokeMethod("PresentFlowCoordinator", _alphaTwitchFlowCoordinator, null, false, false);
        }
コード例 #24
0
        private void _moreSongsNavigationController_didFinishEvent()
        {
            if (!_downloadQueueViewController.queuedSongs.Any(x => x.songQueueState == SongQueueState.Downloading || x.songQueueState == SongQueueState.Queued))
            {
                MainFlowCoordinator mainFlow = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().First();

                mainFlow.InvokeMethod("DismissFlowCoordinator", this, null, false);
            }
        }
コード例 #25
0
 public void Construct(PlatformListsView platformsListView,
                       ChangelogView changelogView,
                       SettingsView settingsView,
                       MainFlowCoordinator mainFlowCoordinator)
 {
     _platformsListView   = platformsListView;
     _changelogView       = changelogView;
     _settingsView        = settingsView;
     _mainFlowCoordinator = mainFlowCoordinator;
 }
コード例 #26
0
        public void BeatBoardsButtonPressed()
        {
            if (bbmFlowCoordinator == null)
            {
                bbmFlowCoordinator = new GameObject("BeatBoards: Flow Coordinator").AddComponent <BeatBoardsMenuFlowCoordinator>();
            }
            MainFlowCoordinator mainFlow = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().First();

            mainFlow.InvokeMethod("PresentFlowCoordinator", bbmFlowCoordinator, null, false, false);
        }
コード例 #27
0
 private void Construct(MainFlowCoordinator mainFlowCoordinator, ImageListView imageListView,
                        SettingsView settingsView, PluginConfig config, PillowSpawner pillowSpawner, Initializer initializer)
 {
     _mainFlowCoordinator = mainFlowCoordinator;
     _imageListView       = imageListView;
     _settingsView        = settingsView;
     _config        = config;
     _pillowSpawner = pillowSpawner;
     _initializer   = initializer;
 }
コード例 #28
0
ファイル: MenuUI.cs プロジェクト: Pespiri/CountersPlus
        internal static void OnClick()
        {
            if (settingsFC == null)
            {
                settingsFC = new GameObject("Counters+ | Settings Flow Coordinator").AddComponent <CountersPlusSettingsFlowCoordinator>();
            }
            MainFlowCoordinator main = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().First();

            main.InvokeMethod("PresentFlowCoordinator", settingsFC, null, false, false);
        }
コード例 #29
0
        public IEnumerator JoinGameWithSecret(string secret)
        {
            yield return(null);

            MainFlowCoordinator mainFlow = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().First();

            mainFlow.InvokeMethod("PresentFlowCoordinator", modeSelectionFlowCoordinator, null, true, false);

            modeSelectionFlowCoordinator.JoinGameWithSecret(secret);
        }
コード例 #30
0
        public void PlaylistsButtonPressed()
        {
            if (morePlaylistsFlowCoordinator == null)
            {
                morePlaylistsFlowCoordinator = new GameObject("MorePlaylistsFlowCoordinator").AddComponent <MorePlaylistsFlowCoordinator>();
            }

            MainFlowCoordinator mainFlow = Resources.FindObjectsOfTypeAll <MainFlowCoordinator>().First();

            mainFlow.InvokeMethod("PresentFlowCoordinator", morePlaylistsFlowCoordinator, null, false, false);
        }