using System;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;


/**
 * https://www.febucci.com/2022/05/custom-post-processing-in-urp/
 */

namespace Shaders
{
    [Serializable,
     VolumeComponentMenuForRenderPipeline("Custom/"+nameof(CustomEffectComponent), typeof(UniversalRenderPipeline))]
    public class CustomEffectComponent : VolumeComponent, IPostProcessComponent
    {
        // For example, an intensity parameter that goes from 0 to 1
        public ClampedFloatParameter intensity =
            new ClampedFloatParameter(value: 0, min: 0, max: 1, overrideState: true);

        // Other 'Parameter' variables you might have

        public bool IsActive() => intensity.value > 0 && this.active;

        // I have no idea what this does yet but I'll update the post once I find an usage
        public bool IsTileCompatible() => true;
    }
}