internal static void InternalTempChangeToPlatform(int index) { if (!GetCurrentEnvironment().name.StartsWith("Menu")) { platformSpawned = true; } Plugin.Log("switching to " + Instance.GetPlatform(index)); // Hide current Platform activePlatform.gameObject.SetActive(false); int oldIndex = platformIndex; // Increment index platformIndex = index % platforms.Length; // Save active platform activePlatform = currentPlatform; platformIndex = oldIndex; // Show new platform activePlatform.gameObject.SetActive(true); // Hide environment for new platform Instance.StartCoroutine(HideForPlatformAfterOneFrame(activePlatform)); // Update lightSwitchEvent TubeLight references TubeLightManager.UpdateEventTubeLightList(); }
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 HandleGameSceneLoaded() { gameEnvHider.FindEnvironment(); gameEnvHider.HideObjectsForPlatform(currentPlatform); EnvironmentArranger.RearrangeEnvironment(); TubeLightManager.CreateAdditionalLightSwitchControllers(); }
private void Awake() { var prefab = Resources.FindObjectsOfTypeAll <TubeBloomPrePassLight>().First(x => x.name == "Neon"); TubeLight[] localDescriptors = GetComponentsInChildren <TubeLight>(true); if (localDescriptors == null) { return; } TubeLight tl = this; tubeBloomLight = Instantiate(prefab); tubeBloomLight.transform.SetParent(tl.transform); tubeBloomLight.transform.localRotation = Quaternion.identity; tubeBloomLight.transform.localPosition = Vector3.zero; tubeBloomLight.transform.localScale = new Vector3(1 / tl.transform.lossyScale.x, 1 / tl.transform.lossyScale.y, 1 / tl.transform.lossyScale.z); if (tl.GetComponent <MeshFilter>().mesh.vertexCount == 0) { tl.GetComponent <MeshRenderer>().enabled = false; } else { // swap for MeshBloomPrePassLight tubeBloomLight.gameObject.SetActive(false); MeshBloomPrePassLight meshbloom = ReflectionUtil.CopyComponent(tubeBloomLight, typeof(TubeBloomPrePassLight), typeof(MeshBloomPrePassLight), tubeBloomLight.gameObject) as MeshBloomPrePassLight; meshbloom.Init(tl.GetComponent <Renderer>()); tubeBloomLight.gameObject.SetActive(true); Destroy(tubeBloomLight); tubeBloomLight = meshbloom; } tubeBloomLight.SetPrivateField("_width", tl.width * 2); tubeBloomLight.SetPrivateField("_length", tl.length); tubeBloomLight.SetPrivateField("_center", tl.center); tubeBloomLight.SetPrivateField("_transform", tubeBloomLight.transform); var parabox = tubeBloomLight.GetComponentInChildren <ParametricBoxController>(); tubeBloomLight.SetPrivateField("_parametricBoxController", parabox); var parasprite = tubeBloomLight.GetComponentInChildren <Parametric3SliceSpriteController>(); tubeBloomLight.SetPrivateField("_dynamic3SliceSprite", parasprite); parasprite.Init(); parasprite.GetComponent <MeshRenderer>().enabled = false; tubeBloomLight.color = tl.color * 0.9f; var prop = typeof(BSLight).GetField("_ID", BindingFlags.NonPublic | BindingFlags.Instance); prop.SetValue(tubeBloomLight, (int)tl.lightsID); //tubeBloomLight.InvokePrivateMethod("OnDisable", new object[0]); tubeBloomLight.Refresh(); TubeLightManager.UpdateEventTubeLightList(); }
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; }
internal static void InternalTempChangeToPlatform(int index) { // Hide current Platform currentPlatform.gameObject.SetActive(false); int oldIndex = platformIndex; // Increment index platformIndex = index % platforms.Length; // Show new platform currentPlatform.gameObject.SetActive(true); // Hide environment for new platform Instance.StartCoroutine(HideForPlatformAfterOneFrame(currentPlatform)); // Update lightSwitchEvent TubeLight references TubeLightManager.UpdateEventTubeLightList(); platformIndex = oldIndex; }
internal void TempChangeToPlatform(int index) { // Hide current Platform currentPlatform.gameObject.SetActive(false); int oldIndex = platformIndex; // Increment index platformIndex = index % platforms.Length; // Show new platform currentPlatform.gameObject.SetActive(true); // Hide environment for new platform menuEnvHider.HideObjectsForPlatform(currentPlatform); gameEnvHider.HideObjectsForPlatform(currentPlatform); // Update lightSwitchEvent TubeLight references TubeLightManager.UpdateEventTubeLightList(); platformIndex = oldIndex; }
public void ChangeToPlatform(int index) { // Hide current Platform currentPlatform.gameObject.SetActive(false); // Increment index platformIndex = index % platforms.Length; // Save path into ModPrefs ModPrefs.SetString(CustomFloorPlugin.PluginName, "CustomPlatformPath", currentPlatform.platName + currentPlatform.platAuthor); // Show new platform currentPlatform.gameObject.SetActive(true); // Hide environment for new platform envHider.HideObjectsForPlatform(currentPlatform); // Update lightSwitchEvent TubeLight references TubeLightManager.UpdateEventTubeLightList(); }
internal void SetPlatform(int index) { // Hide current Platform currentPlatform.gameObject.SetActive(false); // Increment index platformIndex = index % platforms.Length; // Save path into ModPrefs Plugin.config.SetString("Data", "CustomPlatformPath", currentPlatform.platName + currentPlatform.platAuthor); // Show new platform currentPlatform.gameObject.SetActive(true); // Hide environment for new platform EnvHider.HideObjectsForPlatform(currentPlatform); // Update lightSwitchEvent TubeLight references TubeLightManager.UpdateEventTubeLightList(); }
public void ChangeToPlatform(int index) { // Hide current Platform platforms.ElementAt(platformIndex).gameObject.SetActive(false); // Increment index platformIndex = index % platforms.Count; // Save path into ModPrefs ModPrefs.SetString(CustomFloorPlugin.PluginName, "CustomPlatformPath", bundlePaths.ElementAt(platformIndex)); CustomPlatform newPlaform = platforms.ElementAt(platformIndex); // Show new platform newPlaform.gameObject.SetActive(true); // Hide environment for new platform envHider.HideObjectsForPlatform(newPlaform); // Update lightSwitchEvent TubeLight references TubeLightManager.UpdateEventTubeLightList(); }
public void ChangeToPlatform(int index) { // Hide current Platform platforms.ElementAt(platformIndex).gameObject.SetActive(false); // Increment index platformIndex = index % platforms.Count; // Save path into PlayerPrefs PlayerPrefs.SetString("CustomPlatformPath", bundlePaths.ElementAt(platformIndex)); CustomPlatform newPlaform = platforms.ElementAt(platformIndex); // Show new platform newPlaform.gameObject.SetActive(true); // Hide environment for new platform StartCoroutine(envHider.WaitForPlatformAndHideObjects(platforms.ElementAt(platformIndex))); // Update lightSwitchEvent TubeLight references TubeLightManager.UpdateEventTubeLightList(); }
private void AddManagers(GameObject go, GameObject root) { // Replace materials for this object MaterialSwapper.ReplaceMaterialsForGameObject(go); // Add a tube light manager if there are tube light descriptors if (go.GetComponentInChildren <TubeLight>(true) != null) { TubeLightManager tlm = root.GetComponent <TubeLightManager>(); if (tlm == null) { tlm = root.AddComponent <TubeLightManager>(); } tlm.CreateTubeLights(go); } // Rotation effect manager if (go.GetComponentInChildren <RotationEventEffect>(true) != null) { RotationEventEffectManager rotManager = root.GetComponent <RotationEventEffectManager>(); if (rotManager == null) { rotManager = root.AddComponent <RotationEventEffectManager>(); } rotManager.CreateEffects(go); } // Add a trackRing controller if there are track ring descriptors if (go.GetComponentInChildren <TrackRings>(true) != null) { foreach (TrackRings trackRings in go.GetComponentsInChildren <TrackRings>(true)) { GameObject ringPrefab = trackRings.trackLaneRingPrefab; // Add managers to prefabs (nesting) AddManagers(ringPrefab, root); } TrackRingsManagerSpawner trms = root.GetComponent <TrackRingsManagerSpawner>(); if (trms == null) { trms = root.AddComponent <TrackRingsManagerSpawner>(); } trms.CreateTrackRings(go); } // Add spectrogram manager if (go.GetComponentInChildren <Spectrogram>(true) != null) { foreach (Spectrogram spec in go.GetComponentsInChildren <Spectrogram>(true)) { GameObject colPrefab = spec.columnPrefab; AddManagers(colPrefab, root); } SpectrogramColumnManager specManager = go.GetComponent <SpectrogramColumnManager>(); if (specManager == null) { specManager = go.AddComponent <SpectrogramColumnManager>(); } specManager.CreateColumns(go); } if (go.GetComponentInChildren <SpectrogramMaterial>(true) != null) { // Add spectrogram materials manager SpectrogramMaterialManager specMatManager = go.GetComponent <SpectrogramMaterialManager>(); if (specMatManager == null) { specMatManager = go.AddComponent <SpectrogramMaterialManager>(); } specMatManager.UpdateMaterials(); } if (go.GetComponentInChildren <SpectrogramAnimationState>(true) != null) { // Add spectrogram animation state manager SpectrogramAnimationStateManager specAnimManager = go.GetComponent <SpectrogramAnimationStateManager>(); if (specAnimManager == null) { specAnimManager = go.AddComponent <SpectrogramAnimationStateManager>(); } specAnimManager.UpdateAnimationStates(); } // Add Song event manager if (go.GetComponentInChildren <SongEventHandler>(true) != null) { foreach (SongEventHandler handler in go.GetComponentsInChildren <SongEventHandler>()) { SongEventManager manager = handler.gameObject.AddComponent <SongEventManager>(); manager._songEventHandler = handler; } } // Add EventManager if (go.GetComponentInChildren <EventManager>(true) != null) { foreach (EventManager em in go.GetComponentsInChildren <EventManager>()) { PlatformEventManager pem = em.gameObject.AddComponent <PlatformEventManager>(); pem._EventManager = em; } } }