using Godot;

namespace Rokojori
{  
  // Generated by ShaderClassGenerator 

  public class OverlayShader
  { 
    public static readonly CachedResource<Shader> shader = new CachedResource<Shader>( 
      "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Effects/Overlay/Overlay.gdshader"
    );    

    public static readonly ColorPropertyName albedo = ColorPropertyName.Create( "albedo" );
    public static readonly FloatPropertyName opacityModulationStrength = FloatPropertyName.Create( "opacityModulationStrength" );
    public static readonly FloatPropertyName opacityModulationDuration = FloatPropertyName.Create( "opacityModulationDuration" );

  }

  [Tool]
  [GlobalClass]
  public partial class OverlayMaterial:CustomMaterial
  {
    
    
    public readonly CustomMaterialProperty<Color> albedo;
    public readonly CustomMaterialProperty<float> opacityModulationStrength;
    public readonly CustomMaterialProperty<float> opacityModulationDuration;

    public OverlayMaterial()
    {
      Shader = OverlayShader.shader.Get();

      albedo = new CustomMaterialProperty<Color>( this, OverlayShader.albedo );
      opacityModulationStrength = new CustomMaterialProperty<float>( this, OverlayShader.opacityModulationStrength );
      opacityModulationDuration = new CustomMaterialProperty<float>( this, OverlayShader.opacityModulationDuration );
    }

  }

}