OtherEffectsPane.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using UnityEngine;
  2. namespace MeidoPhotoStudio.Plugin;
  3. public class OtherEffectsPane : BasePane
  4. {
  5. private readonly EffectManager effectManager;
  6. private readonly SepiaToneEffectManager sepiaToneEffectManger;
  7. private readonly BlurEffectManager blurEffectManager;
  8. private readonly Toggle sepiaToggle;
  9. private readonly Slider blurSlider;
  10. public OtherEffectsPane(EffectManager effectManager)
  11. {
  12. this.effectManager = effectManager;
  13. sepiaToneEffectManger = this.effectManager.Get<SepiaToneEffectManager>();
  14. blurEffectManager = this.effectManager.Get<BlurEffectManager>();
  15. sepiaToggle = new(Translation.Get("otherEffectsPane", "sepiaToggle"));
  16. sepiaToggle.ControlEvent += (_, _) =>
  17. {
  18. if (updating)
  19. return;
  20. sepiaToneEffectManger.SetEffectActive(sepiaToggle.Value);
  21. };
  22. blurSlider = new(Translation.Get("otherEffectsPane", "blurSlider"), 0f, 18f);
  23. blurSlider.ControlEvent += (_, _) =>
  24. {
  25. if (updating)
  26. return;
  27. var value = blurSlider.Value;
  28. if (!blurEffectManager.Active && value > 0f)
  29. blurEffectManager.SetEffectActive(true);
  30. else if (blurEffectManager.Active && Mathf.Approximately(value, 0f))
  31. blurEffectManager.SetEffectActive(false);
  32. blurEffectManager.BlurSize = value;
  33. };
  34. }
  35. public override void Draw()
  36. {
  37. GUILayout.BeginHorizontal();
  38. sepiaToggle.Draw();
  39. blurSlider.Draw();
  40. GUILayout.EndHorizontal();
  41. }
  42. public override void UpdatePane()
  43. {
  44. updating = true;
  45. if (sepiaToneEffectManger.Ready)
  46. sepiaToggle.Value = sepiaToneEffectManger.Active;
  47. if (blurEffectManager.Ready)
  48. blurSlider.Value = blurEffectManager.BlurSize;
  49. updating = false;
  50. }
  51. protected override void ReloadTranslation()
  52. {
  53. sepiaToggle.Label = Translation.Get("otherEffectsPane", "sepiaToggle");
  54. blurSlider.Label = Translation.Get("otherEffectsPane", "blurSlider");
  55. }
  56. }