/// <summary> /// Initializes the <see cref="PlatformManager"/> /// </summary> internal static void Init() { EnvironmentSceneOverrider.Init(); Anchor.AddComponent <EasterEggs>(); GSM.transitionDidStartEvent += (float ignored) => { TransitionPrep(); }; GSM.transitionDidFinishEvent += (ScenesTransitionSetupDataSO ignored1, DiContainer ignored2) => { TransitionFinalize(); }; AllPlatforms = PlatformLoader.CreateAllPlatforms(Anchor.transform); CurrentPlatform = AllPlatforms[0]; if (CONFIG.HasKey("Data", "CustomPlatformPath")) { string savedPath = CONFIG.GetString("Data", "CustomPlatformPath"); for (int i = 0; i < AllPlatforms.Count; i++) { if (savedPath == AllPlatforms[i].platName + AllPlatforms[i].platAuthor) { CurrentPlatform = AllPlatforms[i]; break; } } } LoadHeart(); }
public static void TempChangeToPlatform(int index) { Plugin.Log(); Plugin.Log(index); if (kyleBuffer != null) { errBuffer = index; throw new StackedRequestsException(); } else { kyleBuffer = index; } try { if (!GetCurrentEnvironment().name.StartsWith("Menu") && platformSpawned) { DestroyCustomLights(); InternalTempChangeToPlatform(); PlatformLoader.AddManagers(); SpawnCustomLights(); Instance.StartCoroutine(ReplaceAllMaterialsAfterOneFrame()); EnvironmentArranger.RearrangeEnvironment(); } } catch (EnvironmentSceneNotFoundException e) { IPA.Logging.Logger.Level L = IPA.Logging.Logger.Level.Warning; Plugin.Log("TempChangeToPlatform was called out of place. Please send me a bug report.", L); Plugin.Log(e, L); } }
void TransitionFinalize(ScenesTransitionSetupDataSO ignored1, DiContainer ignored2) { try { if (!GetCurrentEnvironment().name.StartsWith("Menu")) { try { FindManager(); if (!Resources.FindObjectsOfTypeAll <PlayerDataModel>()[0].playerData.overrideEnvironmentSettings.overrideEnvironments) { InternalTempChangeToPlatform(); PlatformLoader.AddManagers(); SpawnCustomLights(); Instance.StartCoroutine(ReplaceAllMaterialsAfterOneFrame()); EnvironmentArranger.RearrangeEnvironment(); TubeLightManager.CreateAdditionalLightSwitchControllers(); } } catch (ManagerNotFoundException e) { Plugin.Log(e); } } else { Heart.SetActive(showHeart); Heart.GetComponent <LightWithId>().ColorWasSet(Color.magenta); } } catch (EnvironmentSceneNotFoundException e) { Plugin.Log(e); } }
private void SceneManager_sceneLoaded(Scene arg0, LoadSceneMode arg1) { // Load in the menu scene if (arg0.name == "Menu") { PlatformLoader.OnLoad(); //Application.logMessageReceived += LogCallback; } }
/// <summary> /// Allows dynamic loading of <see cref="CustomPlatform"/>s from files. /// </summary> /// <param name="path">The path of file containing the <see cref="CustomPlatform"/></param> /// <returns>The reference to the loaded <see cref="CustomPlatform"/></returns> public static CustomPlatform AddPlatform(string path) { CustomPlatform newPlatform = PlatformLoader.LoadPlatformBundle(path, Anchor.transform); if (newPlatform != null) { AllPlatforms.Add(newPlatform); } return(newPlatform); }
private void Start() { EnvironmentSceneOverrider.GetSceneInfos(); EnvironmentSceneOverrider.OverrideEnvironmentScene(); EnvHider = new EnvironmentHider(); platformLoader = new PlatformLoader(); RefreshPlatforms(); PlatformUI.OnLoad(); }
/// <summary> /// Called when the GameObject is created. /// /// </summary> private void Awake() { if (Instance != null) { return; } Instance = this; BSSceneManager.activeSceneChanged += BSSceneManagerOnActiveSceneChanged; DontDestroyOnLoad(gameObject); }
public PlatformManager(SiraLog siraLog, PluginConfig config, AssetLoader assetLoader, PlatformLoader platformLoader, [Inject(Id = "CustomPlatforms")] Transform anchor) { _siraLog = siraLog; _config = config; _assetLoader = assetLoader; _platformLoader = platformLoader; _anchor = anchor; _directoryPath = Path.Combine(UnityGame.InstallPath, "CustomPlatforms"); _cacheFilePath = Path.Combine(DirectoryPath, "cache.dat"); DefaultPlatform = CreateDefaultPlatform(); RandomPlatform = CreateRandomPlatform(); AllPlatforms = new ObservableCollection <CustomPlatform> { DefaultPlatform, RandomPlatform }; SingleplayerPlatform = MultiplayerPlatform = A360Platform = MenuPlatform = ActivePlatform = DefaultPlatform; }
internal static void Reload() { AllPlatforms = PlatformLoader.CreateAllPlatforms(Anchor.transform); CurrentPlatform = AllPlatforms[0]; if (CONFIG.HasKey("Data", "CustomPlatformPath")) { string savedPath = CONFIG.GetString("Data", "CustomPlatformPath"); for (int i = 0; i < AllPlatforms.Count; i++) { if (savedPath == AllPlatforms[i].platName + AllPlatforms[i].platAuthor) { CurrentPlatform = AllPlatforms[i]; break; } } } LoadHeart(); }
private void Start() { EnvironmentArranger.arrangement = (EnvironmentArranger.Arrangement)Plugin.config.GetInt("Settings", "EnvironmentArrangement", 0, true); EnvironmentSceneOverrider.overrideMode = (EnvironmentSceneOverrider.EnvOverrideMode)Plugin.config.GetInt("Settings", "EnvironmentOverrideMode", 0, true); EnvironmentSceneOverrider.GetSceneInfos(); EnvironmentSceneOverrider.OverrideEnvironmentScene(); menuEnvHider = new EnvironmentHider(); gameEnvHider = new EnvironmentHider(); platformLoader = new PlatformLoader(); BSEvents.gameSceneLoaded += HandleGameSceneLoaded; BSEvents.menuSceneLoadedFresh += HandleMenuSceneLoadedFresh; BSEvents.menuSceneLoaded += HandleMenuSceneLoaded; RefreshPlatforms(); HandleMenuSceneLoadedFresh(); PlatformUI.OnLoad(); }
private void SceneManager_sceneLoaded(Scene arg0, LoadSceneMode arg1) { // Load in the menu scene if (arg0.name == "Menu" && !init) { init = true; SettingsUI.OnLoad(); BSSceneManager.OnLoad(); PlatformLoader.OnLoad(); // Load from modprefs EnvironmentHider.showFeetOverride = ModPrefs.GetBool(PluginName, "AlwaysShowFeet", false, true); EnvironmentSceneOverrider.overrideMode = (EnvironmentSceneOverrider.EnvOverrideMode)ModPrefs.GetInt(PluginName, "EnvironmentOverrideMode", 0, true); EnvironmentSceneOverrider.GetSceneInfos(); EnvironmentSceneOverrider.OverrideEnvironmentScene(); //Application.logMessageReceived += LogCallback; } }
public PlatformManager(SiraLog siraLog, PluginConfig config, AssetLoader assetLoader, PlatformLoader platformLoader) { _siraLog = siraLog; _config = config; _assetLoader = assetLoader; _platformLoader = platformLoader; _anchor = new GameObject("CustomPlatforms").transform; _cancellationTokenSource = new CancellationTokenSource(); _directoryPath = Path.Combine(UnityGame.InstallPath, "CustomPlatforms"); _cacheFilePath = Path.Combine(DirectoryPath, "cache.dat"); DefaultPlatform = CreateDefaultPlatform(); AllPlatforms = new ObservableCollection <CustomPlatform> { DefaultPlatform }; SingleplayerPlatform = DefaultPlatform; MultiplayerPlatform = DefaultPlatform; A360Platform = DefaultPlatform; ActivePlatform = DefaultPlatform; }