void SceneManagerOnActiveSceneChanged(Scene arg0, Scene scene) { safe = false; gameScene = false; ReadPreferences(); GetObjects(); InvalidateColors(); if (scene.name == "GameCore" || scene.name == "MenuCore") { safe = true; } if (CustomSabersPresent && scene.name == "MenuCore") { _customsInit = true; } if (scene.name == "GameCore") { gameScene = true; } if (disablePlugin) { var colorManager = Resources.FindObjectsOfTypeAll <ColorManager>().FirstOrDefault(); if (colorManager == null) { return; } var leftColor = ReflectionUtil.GetPrivateField <SimpleColorSO>(colorManager, "_colorA"); var rightColor = ReflectionUtil.GetPrivateField <SimpleColorSO>(colorManager, "_colorB"); foreach (var scriptableColor in _scriptableColors) { if (scriptableColor != null) { // Log(scriptableColor.name + " " + scriptableColor.color.ToString()); if (scriptableColor.name == "Color0") { scriptableColor.SetColor(new Color(1, 0, 0)); } if (scriptableColor.name == "Color1") { scriptableColor.SetColor(new Color(0, .706f, 1)); } // Log("TWO " + scriptableColor.name + " " + scriptableColor.color.ToString()); } } } }
private void setupColors() { _colorInit = false; if (colManager != null) { ReflectionUtil.SetPrivateField(colManager, "_colorA", _colorLeft); ReflectionUtil.SetPrivateField(colManager, "_colorB", _colorRight); } foreach (SimpleColorSO colorSO in colorSOs) { var oldCol = ReflectionUtil.GetPrivateField <Color>(colorSO, "_color"); if (oldCol.r == 1.0f) { ReflectionUtil.SetPrivateField(colorSO, "_color", _colorLeft); } else { ReflectionUtil.SetPrivateField(colorSO, "_color", _colorRight); } } var _blueSaberMat = source.FirstOrDefault((Material x) => x.name == "BlueSaber"); _blueSaberMat.SetColor("_Color", _colorRight); _blueSaberMat.SetColor("_EmissionColor", _colorRight); var _redSaberMat = source.FirstOrDefault((Material x) => x.name == "RedSaber"); _redSaberMat.SetColor("_Color", _colorLeft); _redSaberMat.SetColor("_EmissionColor", _colorLeft); foreach (Saber saber in sabers) { MeshRenderer lineRenderer = saber.gameObject.transform.Find("Handle/Ornament").GetComponent <MeshRenderer>(); if (saber.saberType == Saber.SaberType.SaberA) { lineRenderer.sharedMaterial = _redSaberMat; lineRenderer.material = _redSaberMat; } else { lineRenderer.sharedMaterial = _blueSaberMat; lineRenderer.material = _blueSaberMat; } } }
public void OnUpdate() { if (_colorInit && _overrideCustomSabers) { EnsureCustomSabersOverridden(); } if (_colorInit) { return; } var colorManager = Resources.FindObjectsOfTypeAll <ColorManager>().FirstOrDefault(); if (colorManager == null) { return; } var leftColor = ReflectionUtil.GetPrivateField <SimpleColorSO>(colorManager, "_colorA"); var rightColor = ReflectionUtil.GetPrivateField <SimpleColorSO>(colorManager, "_colorB"); leftColor.SetColor(_colorLeft); rightColor.SetColor(_colorRight); _protectedScriptableColors.Add(leftColor); _protectedScriptableColors.Add(rightColor); Log("ColorManager colors set!"); foreach (var scriptableColor in _scriptableColors.Except(_protectedScriptableColors)) { if (scriptableColor.name.Contains("-CustomColorApplied")) { continue; } scriptableColor.SetColor(scriptableColor.color.r > 0.5 ? _colorLeft : _colorRight); scriptableColor.name += "-CustomColorApplied"; Log($"Scriptable color: {scriptableColor.name}"); } Log("ScriptableColors modified!"); foreach (var prePassLight in _prePassLights) { var oldCol = ReflectionUtil.GetPrivateField <Color>(prePassLight, "_color"); ReflectionUtil.SetPrivateField(prePassLight, "_color", oldCol.r > 0.5 ? _colorLeft : _colorRight); } Log("PrePassLight colors set!"); foreach (var light in _environmentLights) { light.SetColor("_Color", new Color(_colorRight.r * 0.5f, _colorRight.g * 0.5f, _colorRight.b * 0.5f, 1.0f)); } Log("Environment light colors set!"); if (SceneManager.GetActiveScene().name == "Menu") { var texts = UnityEngine.Object.FindObjectsOfType <TextMeshPro>(); foreach (var text in texts) { if (text.name.Contains("-CustomColorApplied")) { continue; } var oldCol = ReflectionUtil.GetPrivateField <Color>(text, "m_fontColor"); ReflectionUtil.SetPrivateField(text, "m_fontColor", oldCol.r > 0.5 ? _colorLeft : _colorRight); text.name += "-CustomColorApplied"; Log($"text: {text.name}"); } var flickeringLetter = UnityEngine.Object.FindObjectOfType <FlickeringNeonSign>(); if (flickeringLetter != null) { ReflectionUtil.SetPrivateField(flickeringLetter, "_onColor", _colorRight); } Log("Menu colors set!"); } _colorInit = true; }
public void ApplyColors() { if (_colorInit && _overrideCustomSabers && safeSaberOverride) { EnsureCustomSabersOverridden(); } if (SceneManager.GetActiveScene().name == "MenuCore" && CustomSabersPresent && _overrideCustomSabers) { EnsureCustomSabersOverridden(); } if (disablePlugin == false || queuedDisable) { // [CustomColorsEdit] Mesh renderer material name is ObstacleCore(Instance) //[CustomColorsEdit] Mesh renderer material name is ObstacleCoreInside(Instance) //[CustomColorsEdit] Mesh renderer material name is ObstacleFrame(Instance) if (_colorInit) { return; } var colorManager = Resources.FindObjectsOfTypeAll <ColorManager>().FirstOrDefault(); if (colorManager == null) { return; } var leftColor = ReflectionUtil.GetPrivateField <SimpleColorSO>(colorManager, "_colorA"); var rightColor = ReflectionUtil.GetPrivateField <SimpleColorSO>(colorManager, "_colorB"); leftColor.SetColor(ColorLeft); rightColor.SetColor(ColorRight); Log("ColorManager colors set!"); foreach (var scriptableColor in _scriptableColors) { if (scriptableColor != null) { // Log(scriptableColor.name); // Log(scriptableColor.color.ToString()); /* * if (scriptableColor.name == "Color Red" || scriptableColor.name == "BaseColor1") * { * scriptableColor.SetColor(ColorLeft); * } * else if (scriptableColor.name == "Color Blue" || scriptableColor.name == "BaseColor0") * { * scriptableColor.SetColor(ColorRight); * } */ if (scriptableColor.name == "BaseNoteColor0") { scriptableColor.SetColor(ColorRight); } else if (scriptableColor.name == "BaseColor0") { scriptableColor.SetColor(ColorRightLight); } else if (scriptableColor.name == "BaseNoteColor1") { scriptableColor.SetColor(ColorLeft); } else if (scriptableColor.name == "BaseColor1") { scriptableColor.SetColor(ColorLeftLight); } else if (scriptableColor.name == "MenuEnvLight3") { scriptableColor.SetColor(ColorRightLight); } else if (scriptableColor.name == "MenuEnvLight1") { scriptableColor.SetColor(ColorRightLight); } // else if (scriptableColor.name == "MenuEnvLight1") // scriptableColor.SetColor(ColorRightLight); // Log(scriptableColor.name); // Log(scriptableColor.color.ToString()); } // Log($"Set scriptable color: {scriptableColor.name}"); } Log("ScriptableColors modified!"); colorManager.RefreshColors(); if (SceneManager.GetActiveScene().name == "MenuCore") { SharedCoroutineStarter.instance.StartCoroutine(SetLogoColors()); Log("Menu colors set!"); } /* * foreach (var prePassLight in _prePassLights) * { * * if (prePassLight != null) * { * if (prePassLight.name.Contains("SaberNeon")) * { * prePassLight.color = ColorLeftLight; * * } * * * if (prePassLight.name.Contains("BATNeon") || prePassLight.name.Contains("ENeon")) * prePassLight.color = ColorRightLight; * * // Log($"PrepassLight: {prePassLight.name}"); * } * } * * Log("PrePassLight colors set!"); * * SpriteRenderer[] sprites = Resources.FindObjectsOfTypeAll<SpriteRenderer>(); * foreach (var sprite in sprites) * { * Log(sprite.name); * if (sprite != null) * if (sprite != null) * { * if (sprite.name == "SaberLogo") * sprite.sharedMaterial.color = ColorLeftLight; * if (sprite.name == "BatLogo" || sprite.name == "LogoE") * sprite.sharedMaterial.color = ColorRightLight; * } * * } */ if (Plugin.wallColorPreset != 0) { SharedCoroutineStarter.instance.StartCoroutine(WallPrep()); } if (gameScene && rainbowWall) { SharedCoroutineStarter.instance.StartCoroutine(RainbowWalls()); } //Logo Disable if needed /* * GameObject logo = GameObject.Find("Logo"); * if(logo != null) * GameObject.Destroy(logo.gameObject); */ if (SceneManager.GetActiveScene().name == "MenuCore") { /* * var flickeringLetter = UnityEngine.Object.FindObjectOfType<FlickeringNeonSign>(); * if (flickeringLetter != null) * ReflectionUtil.SetPrivateField(flickeringLetter, "_onColor", ColorRightLight); */ Log("Menu colors set!"); } _colorInit = true; queuedDisable = false; colorsSetter = Resources.FindObjectsOfTypeAll <EnvironmentColorsSetter>().FirstOrDefault(); if (allowEnvironmentColors) { if (colorsSetter != null) { try { colorsSetter.Awake(); } catch { Log("Failed to Initialize Color Setter"); } overrideSaberOverride = true; } } else { colorManager.RefreshColors(); } safeSaberOverride = true; ColorsAppliedEvent?.Invoke(); } if (disablePlugin && allowEnvironmentColors && _overrideCustomSabers) { colorsSetter = Resources.FindObjectsOfTypeAll <EnvironmentColorsSetter>().FirstOrDefault(); if (colorsSetter != null) { overrideSaberOverride = true; _colorInit = true; } safeSaberOverride = true; } }
public void OnUpdate() { if (_colorInit == false) { foreach (XWeaponTrail trail in weapontrails) { var oldCol = ReflectionUtil.GetPrivateField <Color>(trail, "MyColor"); if (oldCol.r == 1.0f) { ReflectionUtil.SetPrivateField(trail, "MyColor", new Color(_colorLeft.r, _colorLeft.g, _colorLeft.b, oldCol.a)); } else { ReflectionUtil.SetPrivateField(trail, "MyColor", new Color(_colorRight.r, _colorRight.g, _colorRight.b, oldCol.a)); } } if (prePassLights.Length > 0) { foreach (TubeBloomPrePassLight prePassLight in prePassLights) { var oldCol = ReflectionUtil.GetPrivateField <Color>(prePassLight, "_color"); if (oldCol.r == 1.0f) { ReflectionUtil.SetPrivateField(prePassLight, "_color", _colorLeft); } else { ReflectionUtil.SetPrivateField(prePassLight, "_color", _colorRight); } } } foreach (Material mat in envLights) { mat.SetColor("_Color", new Color(_colorRight.r * 0.5f, _colorRight.g * 0.5f, _colorRight.b * 0.5f, 1.0f)); } if (SceneManager.GetActiveScene().name == "Menu") { TextMeshPro[] texts = UnityEngine.Object.FindObjectsOfType <TextMeshPro>(); if (texts.Length > 0) { foreach (TextMeshPro text in texts) { var oldCol = ReflectionUtil.GetPrivateField <Color>(text, "m_fontColor"); if (oldCol.r == 1.0f) { ReflectionUtil.SetPrivateField(text, "m_fontColor", _colorLeft); } else { ReflectionUtil.SetPrivateField(text, "m_fontColor", _colorRight); } } } FlickeringNeonSign E = UnityEngine.Object.FindObjectOfType <FlickeringNeonSign>(); if (E != null) { ReflectionUtil.SetPrivateField(E, "_onColor", _colorRight); } } _colorInit = true; } }