Esempio n. 1
0
        public void OpenSongsList(string songToSelectWhenLoaded = null)
        {
            if (songListViewController == null)
            {
                songListViewController = BeatSaberUI.CreateViewController <SongListViewController>();
            }
            if (_bottomViewController == null)
            {
                _bottomViewController = BeatSaberUI.CreateViewController <BottomViewController>();
            }
            if (_resultsViewController == null)
            {
                _resultsViewController = Resources.FindObjectsOfTypeAll <ResultsViewController>().First();
            }
            if (_playerDataModel == null)
            {
                _playerDataModel = Resources.FindObjectsOfTypeAll <PlayerDataModel>().First();
            }
            if (_menuLightsManager == null)
            {
                _menuLightsManager = Resources.FindObjectsOfTypeAll <MenuLightsManager>().First();
            }
            if (_soloFreePlayFlowCoordinator == null)
            {
                _soloFreePlayFlowCoordinator = Resources.FindObjectsOfTypeAll <SoloFreePlayFlowCoordinator>().First();
            }
            if (_campaignFlowCoordinator == null)
            {
                _campaignFlowCoordinator = Resources.FindObjectsOfTypeAll <CampaignFlowCoordinator>().First();
            }
            if (_alwaysOwnedContent == null)
            {
                _alwaysOwnedContent = Resources.FindObjectsOfTypeAll <AlwaysOwnedContentSO>().First();
            }
            if (_primaryLevelCollection == null)
            {
                _primaryLevelCollection = _alwaysOwnedContent.alwaysOwnedPacks.First(x => x.packID == OstHelper.packs[0].PackID).beatmapLevelCollection as BeatmapLevelCollectionSO;
            }
            if (_secondaryLevelCollection == null)
            {
                _secondaryLevelCollection = _alwaysOwnedContent.alwaysOwnedPacks.First(x => x.packID == OstHelper.packs[1].PackID).beatmapLevelCollection as BeatmapLevelCollectionSO;
            }
            if (_tertiaryLevelCollection == null)
            {
                _tertiaryLevelCollection = _alwaysOwnedContent.alwaysOwnedPacks.First(x => x.packID == OstHelper.packs[2].PackID).beatmapLevelCollection as BeatmapLevelCollectionSO;
            }
            if (_extrasLevelCollection == null)
            {
                _extrasLevelCollection = _alwaysOwnedContent.alwaysOwnedPacks.First(x => x.packID == OstHelper.packs[3].PackID).beatmapLevelCollection as BeatmapLevelCollectionSO;
            }
            if (!songListViewController.isInViewControllerHierarchy || !songListViewController.isActiveAndEnabled)
            {
                SetViewControllersToNavigationController(_mainModNavigationController, new ViewController[] { songListViewController });

                songListViewController.SelectWhenLoaded(songToSelectWhenLoaded);
                songListViewController.SongListRowSelected += SongListRowSelected;
                songListViewController.ReloadPressed       += () => ReloadServerData();
                ReloadServerData();
            }
        }
        protected override void DidActivate(bool firstActivation, bool addedToHierarchy, bool screenSystemEnabling)
        {
            if (firstActivation)
            {
                SetTitle("Qualifier Room", ViewController.AnimationType.None);
                showBackButton = true;

                _playerDataModel             = Resources.FindObjectsOfTypeAll <PlayerDataModel>().First();
                _menuLightsManager           = Resources.FindObjectsOfTypeAll <MenuLightsManager>().First();
                _soloFreePlayFlowCoordinator = Resources.FindObjectsOfTypeAll <SoloFreePlayFlowCoordinator>().First();
                _campaignFlowCoordinator     = Resources.FindObjectsOfTypeAll <CampaignFlowCoordinator>().First();
                _resultsViewController       = Resources.FindObjectsOfTypeAll <ResultsViewController>().First();
                _scoreLights   = _soloFreePlayFlowCoordinator.GetField <MenuLightsPresetSO>("_resultsClearedLightsPreset");
                _redLights     = _soloFreePlayFlowCoordinator.GetField <MenuLightsPresetSO>("_resultsFailedLightsPreset");
                _defaultLights = _soloFreePlayFlowCoordinator.GetField <MenuLightsPresetSO>("_defaultLightsPreset");

                _songSelection = BeatSaberUI.CreateViewController <SongSelection>();
                _songSelection.SongSelected += songSelection_SongSelected;

                _songDetail              = BeatSaberUI.CreateViewController <SongDetail>();
                _songDetail.PlayPressed += songDetail_didPressPlayButtonEvent;
                _songDetail.DisableCharacteristicControl = true;
                _songDetail.DisableDifficultyControl     = true;
                _songDetail.DisablePlayButton            = false;
            }
            if (addedToHierarchy)
            {
                _songSelection.SetSongs(Event.QualifierMaps.ToList());
                ProvideInitialViewControllers(_songSelection);
            }
        }
Esempio n. 3
0
        public static void Postfix(MenuLightsManager __instance, ref MenuLightsPresetSO preset)
        {
            MenuLightsPreset = preset;
            if (preset.lightIdColorPairs.Length > 0)
            {
                BaseColor = preset.lightIdColorPairs[0].baseColor;
            }

            LightManager = __instance;
        }
Esempio n. 4
0
 public MenuColorSwapper(Config.Menu menuConfig, MenuLightsManager menuLightsManager, MainFlowCoordinator mainFlowCoordinator, CampaignFlowCoordinator campaignFlowCoordinator,
                         SoloFreePlayFlowCoordinator soloFreePlayFlowCoordinator, PartyFreePlayFlowCoordinator partyFreePlayFlowCoordinator, CenterStageScreenController centerStageScreenController)
 {
     _menuConfig                   = menuConfig;
     _menuLightsManager            = menuLightsManager;
     _mainFlowCoordinator          = mainFlowCoordinator;
     _campaignFlowCoordinator      = campaignFlowCoordinator;
     _centerStageScreenController  = centerStageScreenController;
     _soloFreePlayFlowCoordinator  = soloFreePlayFlowCoordinator;
     _partyFreePlayFlowCoordinator = partyFreePlayFlowCoordinator;
 }
Esempio n. 5
0
 public MenuLightsManager MenuLightsSO()
 {
     if (_mLSO == null)
     {
         _mLSO         = Resources.FindObjectsOfTypeAll <MenuLightsManager>().First();
         defaultPreset = Resources.FindObjectsOfTypeAll <MenuLightsPresetSO>().First();
         return(_mLSO);
     }
     else
     {
         return(_mLSO);
     }
 }
        public static void ChangeColors()
        {
            colorManager = Resources.FindObjectsOfTypeAll <ColorManager>().FirstOrDefault();

            var playerDataModel = Resources.FindObjectsOfTypeAll <PlayerDataModel>().FirstOrDefault();

            colorSchemesSettings = playerDataModel.playerData.colorSchemesSettings;

            menuLightsManager = Resources.FindObjectsOfTypeAll <MenuLightsManager>().FirstOrDefault();
            bsLightManager    = Resources.FindObjectsOfTypeAll <LightWithIdManager>().FirstOrDefault();

            var overrideColorScheme = colorSchemesSettings.overrideDefaultColors ? colorSchemesSettings.GetSelectedColorScheme() : colorManager.GetField <ColorSchemeSO>("_defaultColorScheme").colorScheme;

            Utils.AdjustColorBW(overrideColorScheme);

            Plugin.Logger.Info("selected:" + overrideColorScheme.colorSchemeName);

            colorManager.SetPrivateField("_colorScheme", overrideColorScheme);

            SetMenuEnvironmentColors(overrideColorScheme);

            SetLogoColors(overrideColorScheme);
            SetMenuPlayersPlaceColors(overrideColorScheme);

            SetPointerColors(overrideColorScheme);

            SetColoredTextIconColors(overrideColorScheme);
            SetColoredImageColors(overrideColorScheme);

            SetSliderColors(overrideColorScheme);
            SetToggleColors(overrideColorScheme);
            SetAnimationClipColors(overrideColorScheme);
            SetButtonColors(overrideColorScheme);
            SetTMPUGUIColors(overrideColorScheme);
            SetMissionToggleColors(overrideColorScheme);
            SetTableCellColors(overrideColorScheme);
            SetFireWorkColors(overrideColorScheme);

            colorManager.Start();
            menuLightsManager.RefreshColors();

            currentColorScheme = overrideColorScheme;

            Plugin.Logger.Info("applied all colors");
        }
Esempio n. 7
0
        protected override void DidActivate(bool firstActivation, ActivationType activationType)
        {
            if (firstActivation)
            {
                //Set up UI
                title          = "Room Screen";
                showBackButton = true;

                _playerDataModel             = Resources.FindObjectsOfTypeAll <PlayerDataModel>().First();
                _menuLightsManager           = Resources.FindObjectsOfTypeAll <MenuLightsManager>().First();
                _soloFreePlayFlowCoordinator = Resources.FindObjectsOfTypeAll <SoloFreePlayFlowCoordinator>().First();
                _campaignFlowCoordinator     = Resources.FindObjectsOfTypeAll <CampaignFlowCoordinator>().First();
                _resultsViewController       = Resources.FindObjectsOfTypeAll <ResultsViewController>().First();
                _scoreLights   = _soloFreePlayFlowCoordinator.GetField <MenuLightsPresetSO>("_resultsLightsPreset");
                _redLights     = _campaignFlowCoordinator.GetField <MenuLightsPresetSO>("_newObjectiveLightsPreset");
                _defaultLights = _soloFreePlayFlowCoordinator.GetField <MenuLightsPresetSO>("_defaultLightsPreset");

                _songSelection = BeatSaberUI.CreateViewController <SongSelection>();
                _songSelection.SongSelected += songSelection_SongSelected;

                _splashScreen = BeatSaberUI.CreateViewController <SplashScreen>();

                _songDetail              = BeatSaberUI.CreateViewController <SongDetail>();
                _songDetail.PlayPressed += songDetail_didPressPlayButtonEvent;
                _songDetail.DifficultyBeatmapChanged += songDetail_didChangeDifficultyBeatmapEvent;

                _playerList = BeatSaberUI.CreateViewController <PlayerList>();
            }
            if (activationType == ActivationType.AddedToHierarchy)
            {
                tournamentMode = Match == null;
                if (tournamentMode)
                {
                    _splashScreen.StatusText = $"Connecting to \"{Host.Name}\"...";
                    ProvideInitialViewControllers(_splashScreen);
                }
                else
                {
                    //If we're not in tournament mode, then a client connection has already been made
                    //by the room selection screen, so we can just assume Plugin.client isn't null
                    //NOTE: This is *such* a hack. Oh my god.
                    isHost = Match.Leader == Plugin.client.Self;
                    _songSelection.SetSongs(SongUtils.masterLevelList);
                    _playerList.Players      = Match.Players;
                    _splashScreen.StatusText = "Waiting for the host to select a song...";

                    if (isHost)
                    {
                        ProvideInitialViewControllers(_songSelection, _playerList);
                    }
                    else
                    {
                        ProvideInitialViewControllers(_splashScreen, _playerList);
                    }
                }
            }

            //The ancestor sets up the server event listeners
            //It would be possible to recieve an event that does a ui update after this call
            //and before the rest of the ui is set up, if we did this at the top.
            //So, we do it last
            base.DidActivate(firstActivation, activationType);
        }