ColorCorrector.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using BepInEx;
  2. using System;
  3. using UnityEngine;
  4. using UnityEngine.SceneManagement;
  5. using UnityStandardAssets.ImageEffects;
  6. namespace ColorCorrector
  7. {
  8. public class ColorCorrector : BaseUnityPlugin
  9. {
  10. public override string ID => "com.bepis.bepinex.colorcorrector";
  11. public override string Name => "Color Filter Remover";
  12. public override Version Version => new Version("1.2");
  13. #region Config properties
  14. private bool SaturationEnabled
  15. {
  16. get => bool.Parse(this.GetEntry("saturation-enabled", "True"));
  17. set => this.SetEntry("saturation-enabled", value.ToString());
  18. }
  19. private bool BloomEnabled
  20. {
  21. get => bool.Parse(this.GetEntry("bloom-enabled", "True"));
  22. set => this.SetEntry("bloom-enabled", value.ToString());
  23. }
  24. #endregion
  25. AmplifyColorEffect amplifyComponent;
  26. BloomAndFlares bloomComponent;
  27. protected void LevelFinishedLoading(Scene scene, LoadSceneMode mode)
  28. {
  29. if (Camera.main != null && Camera.main?.gameObject != null)
  30. {
  31. amplifyComponent = Camera.main.gameObject.GetComponent<AmplifyColorEffect>();
  32. bloomComponent = Camera.main.gameObject.GetComponent<BloomAndFlares>();
  33. SetEffects(SaturationEnabled, BloomEnabled);
  34. }
  35. }
  36. void SetEffects(bool satEnabled, bool bloomEnabled)
  37. {
  38. if (amplifyComponent != null)
  39. amplifyComponent.enabled = satEnabled;
  40. if (bloomComponent != null)
  41. bloomComponent.enabled = bloomEnabled;
  42. }
  43. #region MonoBehaviour
  44. void OnEnable()
  45. {
  46. SceneManager.sceneLoaded += LevelFinishedLoading;
  47. }
  48. void OnDisable()
  49. {
  50. SceneManager.sceneLoaded -= LevelFinishedLoading;
  51. }
  52. void Update()
  53. {
  54. if (UnityEngine.Input.GetKeyDown(UnityEngine.KeyCode.F6))
  55. {
  56. showingUI = !showingUI;
  57. }
  58. }
  59. #endregion
  60. #region UI
  61. private Rect UI = new Rect(20, 20, 200, 100);
  62. private bool showingUI = false;
  63. void OnGUI()
  64. {
  65. if (showingUI)
  66. UI = GUI.Window(Name.GetHashCode() + 0, UI, WindowFunction, "Filter settings");
  67. }
  68. void WindowFunction(int windowID)
  69. {
  70. bool satEnabled = GUI.Toggle(new Rect(10, 20, 180, 20), SaturationEnabled, " Saturation filter enabled");
  71. bool bloomEnabled = GUI.Toggle(new Rect(10, 40, 180, 20), BloomEnabled, " Bloom filter enabled");
  72. if (GUI.changed)
  73. {
  74. SaturationEnabled = satEnabled;
  75. BloomEnabled = bloomEnabled;
  76. SetEffects(satEnabled, bloomEnabled);
  77. }
  78. GUI.DragWindow();
  79. }
  80. #endregion
  81. }
  82. }