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); } }
public static void Postfix(MenuLightsManager __instance, ref MenuLightsPresetSO preset) { MenuLightsPreset = preset; if (preset.lightIdColorPairs.Length > 0) { BaseColor = preset.lightIdColorPairs[0].baseColor; } LightManager = __instance; }
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; }
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"); }
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); }