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); } }
/// <summary> /// Changes to a specific <see cref="CustomPlatform"/> /// </summary> /// <param name="index">The index of the new <see cref="CustomPlatform"/> in the list <see cref="AllPlatforms"/></param> internal static void InternalChangeToPlatform(int index) { Log("Switching to " + AllPlatforms[index].name); if (!GetCurrentEnvironment().name.StartsWith("Menu", STR_INV)) { platformSpawned = true; } activePlatform?.gameObject.SetActive(false); NotifyPlatform(activePlatform, NotifyType.Disable); DestroyCustomObjects(); if (index != 0) { activePlatform = AllPlatforms[index % AllPlatforms.Count]; activePlatform.gameObject.SetActive(true); AddManagers(activePlatform); NotifyPlatform(activePlatform, NotifyType.Enable); SpawnCustomObjects(); EnvironmentArranger.RearrangeEnvironment(); MaterialSwapper.ReplaceMaterials(activePlatform.gameObject); } else { activePlatform = null; } EnvironmentHider.HideObjectsForPlatform(AllPlatforms[index]); }
private void HandleGameSceneLoaded() { gameEnvHider.FindEnvironment(); gameEnvHider.HideObjectsForPlatform(currentPlatform); EnvironmentArranger.RearrangeEnvironment(); TubeLightManager.CreateAdditionalLightSwitchControllers(); }
private void HandleGameSceneLoaded() { TubeLightManager.FixUnregisterErrors(); gameEnvHider.FindEnvironment(); gameEnvHider.HideObjectsForPlatform(currentPlatform); EnvironmentArranger.RearrangeEnvironment(); TubeLightManager.CreateAdditionalLightSwitchControllers(); //SceneDumper.DumpScene(); TubeLightManager.UpdateEventTubeLightList(); }
private void SceneManagerOnActiveSceneChanged(Scene arg0, Scene arg1) { envHider.FindEnvironment(); envHider.HideObjectsForPlatform(currentPlatform); if (SceneManager.GetActiveScene().name == "GameCore") { EnvironmentArranger.RearrangeEnvironment(); TubeLightManager.CreateAdditionalLightSwitchControllers(); TubeLightManager.UpdateEventTubeLightList(); } Camera.main.cullingMask &= ~(1 << CameraVisibilityManager.OnlyInThirdPerson); Camera.main.cullingMask |= 1 << CameraVisibilityManager.OnlyInHeadset; }
private static void CreateSettingsUI() { var subMenu = SettingsUI.CreateSubMenu("Platforms"); var feetMenu = subMenu.AddBool("Always Show Feet"); feetMenu.GetValue += delegate { return(EnvironmentHider.showFeetOverride); }; feetMenu.SetValue += delegate(bool value) { EnvironmentHider.showFeetOverride = value; Plugin.config.SetBool("Settings", "AlwaysShowFeet", EnvironmentHider.showFeetOverride); }; var environment = subMenu.AddList("Environment Override", EnvironmentSceneOverrider.OverrideModes()); environment.GetValue += delegate { return((float)EnvironmentSceneOverrider.overrideMode); }; environment.SetValue += delegate(float value) { EnvironmentSceneOverrider.overrideMode = (EnvironmentSceneOverrider.EnvOverrideMode)value; EnvironmentSceneOverrider.OverrideEnvironmentScene(); Plugin.config.SetInt("Settings", "EnvironmentOverrideMode", (int)EnvironmentSceneOverrider.overrideMode); }; environment.FormatValue += delegate(float value) { return(EnvironmentSceneOverrider.Name((EnvironmentSceneOverrider.EnvOverrideMode)value)); }; var arrangement = subMenu.AddList("Environment Arrangement", EnvironmentArranger.RepositionModes()); arrangement.GetValue += delegate { return((float)EnvironmentArranger.arrangement); }; arrangement.SetValue += delegate(float value) { EnvironmentArranger.arrangement = (EnvironmentArranger.Arrangement)value; Plugin.config.SetInt("Settings", "EnvironmentArrangement", (int)EnvironmentArranger.arrangement); }; arrangement.FormatValue += delegate(float value) { return(EnvironmentArranger.Name((EnvironmentArranger.Arrangement)value)); }; }