using Godot;

namespace Rokojori
{  
  // Generated by ShaderClassGenerator 

  public class CCEyeOcclusionShader
  { 
    public static readonly CachedResource<Shader> shader = new CachedResource<Shader>( 
      "res://addons/rokojori_action_library/Runtime/Reallusion/Shaders/CCEyeOcclusion.gdshader"
    );    

    public static readonly ColorPropertyName shadowTopColor = ColorPropertyName.Create( "shadowTopColor" );
    public static readonly ColorPropertyName shadowBottomColor = ColorPropertyName.Create( "shadowBottomColor" );
    public static readonly FloatPropertyName opacity = FloatPropertyName.Create( "opacity" );
    public static readonly FloatPropertyName scaling = FloatPropertyName.Create( "scaling" );
    public static readonly Vector3PropertyName uv1Scale = Vector3PropertyName.Create( "uv1_scale" );
    public static readonly Vector3PropertyName uv1Offset = Vector3PropertyName.Create( "uv1_offset" );

  }

  [Tool]
  public partial class CCEyeOcclusionMaterial:CustomMaterial
  {
    
    
    public readonly CustomMaterialProperty<Color> shadowTopColor;
    public readonly CustomMaterialProperty<Color> shadowBottomColor;
    public readonly CustomMaterialProperty<float> opacity;
    public readonly CustomMaterialProperty<float> scaling;
    public readonly CustomMaterialProperty<Vector3> uv1Scale;
    public readonly CustomMaterialProperty<Vector3> uv1Offset;

    public CCEyeOcclusionMaterial()
    {
      Shader = CCEyeOcclusionShader.shader.Get();

      shadowTopColor = new CustomMaterialProperty<Color>( this, CCEyeOcclusionShader.shadowTopColor );
      shadowBottomColor = new CustomMaterialProperty<Color>( this, CCEyeOcclusionShader.shadowBottomColor );
      opacity = new CustomMaterialProperty<float>( this, CCEyeOcclusionShader.opacity );
      scaling = new CustomMaterialProperty<float>( this, CCEyeOcclusionShader.scaling );
      uv1Scale = new CustomMaterialProperty<Vector3>( this, CCEyeOcclusionShader.uv1Scale );
      uv1Offset = new CustomMaterialProperty<Vector3>( this, CCEyeOcclusionShader.uv1Offset );
    }

  }

}