BloomPane.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. using UnityEngine;
  2. namespace COM3D2.MeidoPhotoStudio.Plugin
  3. {
  4. internal class BloomPane : EffectPane<BloomEffectManager>
  5. {
  6. protected override BloomEffectManager EffectManager { get; set; }
  7. private readonly Slider intensitySlider;
  8. private readonly Slider blurSlider;
  9. private readonly Slider redSlider;
  10. private readonly Slider greenSlider;
  11. private readonly Slider blueSlider;
  12. private readonly Toggle hdrToggle;
  13. public BloomPane(EffectManager effectManager) : base(effectManager.Get<BloomEffectManager>())
  14. {
  15. Bloom bloom = GameMain.Instance.MainCamera.GetComponent<Bloom>();
  16. intensitySlider = new Slider(
  17. Translation.Get("effectBloom", "intensity"), 0f, 5.7f, bloom.bloomIntensity
  18. );
  19. intensitySlider.ControlEvent += (s, a) =>
  20. {
  21. if (updating) return;
  22. EffectManager.Intensity = intensitySlider.Value;
  23. };
  24. blurSlider = new Slider(Translation.Get("effectBloom", "blur"), 0f, 15f, bloom.bloomBlurIterations);
  25. blurSlider.ControlEvent += (s, a) =>
  26. {
  27. if (updating) return;
  28. EffectManager.BlurIterations = (int)blurSlider.Value;
  29. };
  30. redSlider = new Slider(Translation.Get("backgroundWindow", "red"), 1f, 0.5f, 1f);
  31. redSlider.ControlEvent += (s, a) =>
  32. {
  33. if (updating) return;
  34. EffectManager.BloomThresholdColorRed = redSlider.Value;
  35. };
  36. greenSlider = new Slider(Translation.Get("backgroundWindow", "green"), 1f, 0.5f, 1f);
  37. greenSlider.ControlEvent += (s, a) =>
  38. {
  39. if (updating) return;
  40. EffectManager.BloomThresholdColorGreen = greenSlider.Value;
  41. };
  42. blueSlider = new Slider(Translation.Get("backgroundWindow", "blue"), 1f, 0.5f, 1f);
  43. blueSlider.ControlEvent += (s, a) =>
  44. {
  45. if (updating) return;
  46. EffectManager.BloomThresholdColorBlue = blueSlider.Value;
  47. };
  48. hdrToggle = new Toggle(Translation.Get("effectBloom", "hdrToggle"));
  49. hdrToggle.ControlEvent += (s, a) =>
  50. {
  51. if (updating) return;
  52. EffectManager.BloomHDR = hdrToggle.Value;
  53. };
  54. }
  55. protected override void TranslatePane()
  56. {
  57. intensitySlider.Label = Translation.Get("effectBloom", "intensity");
  58. blurSlider.Label = Translation.Get("effectBloom", "blur");
  59. redSlider.Label = Translation.Get("backgroundWindow", "red");
  60. greenSlider.Label = Translation.Get("backgroundWindow", "green");
  61. blueSlider.Label = Translation.Get("backgroundWindow", "blue");
  62. hdrToggle.Label = Translation.Get("effectBloom", "hdrToggle");
  63. }
  64. protected override void UpdateControls()
  65. {
  66. intensitySlider.Value = EffectManager.Intensity;
  67. blurSlider.Value = EffectManager.BlurIterations;
  68. redSlider.Value = EffectManager.BloomThresholdColorRed;
  69. greenSlider.Value = EffectManager.BloomThresholdColorGreen;
  70. blueSlider.Value = EffectManager.BloomThresholdColorBlue;
  71. hdrToggle.Value = EffectManager.BloomHDR;
  72. }
  73. protected override void DrawPane()
  74. {
  75. GUILayoutOption sliderWidth = MpsGui.HalfSlider;
  76. GUILayout.BeginHorizontal();
  77. intensitySlider.Draw(sliderWidth);
  78. blurSlider.Draw(sliderWidth);
  79. GUILayout.EndHorizontal();
  80. GUILayout.BeginHorizontal();
  81. redSlider.Draw(sliderWidth);
  82. greenSlider.Draw(sliderWidth);
  83. GUILayout.EndHorizontal();
  84. GUILayout.BeginHorizontal();
  85. blueSlider.Draw(sliderWidth);
  86. GUILayout.FlexibleSpace();
  87. hdrToggle.Draw(GUILayout.ExpandWidth(false));
  88. GUILayout.EndHorizontal();
  89. }
  90. }
  91. }