using Godot;

namespace Rokojori
{  
  // Generated by ShaderClassGenerator 

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

    public static readonly ColorPropertyName albedo = ColorPropertyName.Create( "albedo" );
    public static readonly FloatPropertyName grow = FloatPropertyName.Create( "grow" );
    public static readonly FloatPropertyName fresnelSharpness = FloatPropertyName.Create( "fresnelSharpness" );
    public static readonly FloatPropertyName fresnelMultiply = FloatPropertyName.Create( "fresnelMultiply" );
    public static readonly FloatPropertyName fresnelOffset = FloatPropertyName.Create( "fresnelOffset" );
    public static readonly Texture2DPropertyName textureAlbedo = Texture2DPropertyName.Create( "texture_albedo" );

  }

  [Tool]
  [GlobalClass]
  public partial class FresnelOverlayMaterial:CustomMaterial
  {
    
    
    public readonly CustomMaterialProperty<Color> albedo;
    public readonly CustomMaterialProperty<float> grow;
    public readonly CustomMaterialProperty<float> fresnelSharpness;
    public readonly CustomMaterialProperty<float> fresnelMultiply;
    public readonly CustomMaterialProperty<float> fresnelOffset;
    public readonly CustomMaterialProperty<Texture2D> textureAlbedo;

    public FresnelOverlayMaterial()
    {
      Shader = FresnelOverlayShader.shader.Get();

      albedo = new CustomMaterialProperty<Color>( this, FresnelOverlayShader.albedo );
      grow = new CustomMaterialProperty<float>( this, FresnelOverlayShader.grow );
      fresnelSharpness = new CustomMaterialProperty<float>( this, FresnelOverlayShader.fresnelSharpness );
      fresnelMultiply = new CustomMaterialProperty<float>( this, FresnelOverlayShader.fresnelMultiply );
      fresnelOffset = new CustomMaterialProperty<float>( this, FresnelOverlayShader.fresnelOffset );
      textureAlbedo = new CustomMaterialProperty<Texture2D>( this, FresnelOverlayShader.textureAlbedo );
    }

  }

}