VignettePane.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using UnityEngine;
  2. namespace MeidoPhotoStudio.Plugin;
  3. public class VignettePane : EffectPane<VignetteEffectManager>
  4. {
  5. private readonly Slider intensitySlider;
  6. private readonly Slider blurSlider;
  7. private readonly Slider blurSpreadSlider;
  8. private readonly Slider aberrationSlider;
  9. public VignettePane(EffectManager effectManager)
  10. : base(effectManager)
  11. {
  12. intensitySlider = new(Translation.Get("effectVignette", "intensity"), -40f, 70f);
  13. intensitySlider.ControlEvent += (_, _) =>
  14. {
  15. if (updating)
  16. return;
  17. EffectManager.Intensity = intensitySlider.Value;
  18. };
  19. blurSlider = new(Translation.Get("effectVignette", "blur"), 0f, 5f);
  20. blurSlider.ControlEvent += (_, _) =>
  21. {
  22. if (updating)
  23. return;
  24. EffectManager.Blur = blurSlider.Value;
  25. };
  26. blurSpreadSlider = new(Translation.Get("effectVignette", "blurSpread"), 0f, 40f);
  27. blurSpreadSlider.ControlEvent += (_, _) =>
  28. {
  29. if (updating)
  30. return;
  31. EffectManager.BlurSpread = blurSpreadSlider.Value;
  32. };
  33. aberrationSlider = new(Translation.Get("effectVignette", "aberration"), -30f, 30f);
  34. aberrationSlider.ControlEvent += (_, _) =>
  35. {
  36. if (updating)
  37. return;
  38. EffectManager.ChromaticAberration = aberrationSlider.Value;
  39. };
  40. }
  41. protected override VignetteEffectManager EffectManager { get; set; }
  42. protected override void TranslatePane()
  43. {
  44. intensitySlider.Label = Translation.Get("effectVignette", "intensity");
  45. blurSlider.Label = Translation.Get("effectVignette", "blur");
  46. blurSpreadSlider.Label = Translation.Get("effectVignette", "blurSpread");
  47. aberrationSlider.Label = Translation.Get("effectVignette", "aberration");
  48. }
  49. protected override void UpdateControls()
  50. {
  51. intensitySlider.Value = EffectManager.Intensity;
  52. blurSlider.Value = EffectManager.Blur;
  53. blurSpreadSlider.Value = EffectManager.BlurSpread;
  54. aberrationSlider.Value = EffectManager.ChromaticAberration;
  55. }
  56. protected override void DrawPane()
  57. {
  58. var sliderWidth = MpsGui.HalfSlider;
  59. GUILayout.BeginHorizontal();
  60. intensitySlider.Draw(sliderWidth);
  61. blurSlider.Draw(sliderWidth);
  62. GUILayout.EndHorizontal();
  63. GUILayout.BeginHorizontal();
  64. blurSpreadSlider.Draw(sliderWidth);
  65. aberrationSlider.Draw(sliderWidth);
  66. GUILayout.EndHorizontal();
  67. }
  68. }