BlurEffectManager.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. namespace MeidoPhotoStudio.Plugin;
  2. public class BlurEffectManager : IEffectManager
  3. {
  4. public const string Header = "EFFECT_BLUR";
  5. private float initialBlurSize;
  6. private int initialBlurIterations;
  7. private int initialDownsample;
  8. private float blurSize;
  9. public bool Ready { get; private set; }
  10. public bool Active { get; private set; }
  11. public float BlurSize
  12. {
  13. get => blurSize;
  14. set
  15. {
  16. blurSize = value;
  17. Blur.blurSize = blurSize / 10f;
  18. if (blurSize >= 3f)
  19. {
  20. Blur.blurSize -= 0.3f;
  21. Blur.blurIterations = 1;
  22. Blur.downsample = 1;
  23. }
  24. else
  25. {
  26. Blur.blurIterations = 0;
  27. Blur.downsample = 0;
  28. }
  29. }
  30. }
  31. private Blur Blur { get; set; }
  32. public void Activate()
  33. {
  34. if (!Blur)
  35. {
  36. Ready = true;
  37. Blur = GameMain.Instance.MainCamera.GetComponent<Blur>();
  38. initialBlurSize = Blur.blurSize;
  39. initialBlurIterations = Blur.blurIterations;
  40. initialDownsample = Blur.downsample;
  41. }
  42. SetEffectActive(false);
  43. }
  44. public void Deactivate()
  45. {
  46. BlurSize = 0f;
  47. Reset();
  48. Blur.enabled = false;
  49. Active = false;
  50. }
  51. public void SetEffectActive(bool active)
  52. {
  53. if (Blur.enabled = Active = active)
  54. BlurSize = BlurSize;
  55. else
  56. Reset();
  57. }
  58. public void Reset()
  59. {
  60. Blur.blurSize = initialBlurSize;
  61. Blur.blurIterations = initialBlurIterations;
  62. Blur.downsample = initialDownsample;
  63. }
  64. public void Update()
  65. {
  66. }
  67. }