namespace MeidoPhotoStudio.Plugin { public class VignetteEffectManager : IEffectManager { public const string header = "EFFECT_VIGNETTE"; private Vignetting Vignette { get; set; } private float initialIntensity; private float initialBlur; private float initialBlurSpread; private float initialChromaticAberration; public bool Ready { get; private set; } public bool Active { get; private set; } private float intensity; public float Intensity { get => intensity; set => intensity = Vignette.intensity = value; } private float blur; public float Blur { get => blur; set => blur = Vignette.blur = value; } private float blurSpread; public float BlurSpread { get => blurSpread; set => blurSpread = Vignette.blurSpread = value; } private float chromaticAberration; public float ChromaticAberration { get => chromaticAberration; set => chromaticAberration = Vignette.chromaticAberration = value; } public void Activate() { if (Vignette == null) { Ready = true; Vignette = GameMain.Instance.MainCamera.GetOrAddComponent(); Vignette.mode = Vignetting.AberrationMode.Simple; initialIntensity = Vignette.intensity; initialBlur = Vignette.blur; initialBlurSpread = Vignette.blurSpread; initialChromaticAberration = Vignette.chromaticAberration; } SetEffectActive(false); } public void Deactivate() { Intensity = initialIntensity; Blur = initialBlur; BlurSpread = initialBlurSpread; ChromaticAberration = initialChromaticAberration; Vignette.enabled = false; Active = false; } public void Reset() { Vignette.intensity = initialIntensity; Vignette.blur = initialBlur; Vignette.blurSpread = initialBlurSpread; Vignette.chromaticAberration = initialChromaticAberration; } public void SetEffectActive(bool active) { Vignette.enabled = active; if (Active = active) { Vignette.intensity = Intensity; Vignette.blur = Blur; Vignette.blurSpread = BlurSpread; Vignette.chromaticAberration = ChromaticAberration; } else Reset(); } public void Update() { } } }