using Godot;

namespace Rokojori
{  
  // Generated by ShaderClassGenerator 

  public class EllipseTypeFlareAddShader
  { 
    ///*
    public static readonly CachedResource<Shader> shader = new CachedResource<Shader>( 
      "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Flares/EllipseType/Variants/EllipseTypeFlareAdd.gdshader"
    );  
    //*/  

    public static readonly FloatPropertyName shapeScale = FloatPropertyName.Create( "shapeScale" );
    public static readonly Sampler2DPropertyName radialFill = Sampler2DPropertyName.Create( "radialFill" );
    public static readonly FloatPropertyName radialFillStrength = FloatPropertyName.Create( "radialFillStrength" );
    public static readonly FloatPropertyName radialFillTile = FloatPropertyName.Create( "radialFillTile" );
    public static readonly FloatPropertyName radialFillOffset = FloatPropertyName.Create( "radialFillOffset" );
    public static readonly BoolPropertyName radialFillRepeat = BoolPropertyName.Create( "radialFillRepeat" );
    public static readonly Sampler2DPropertyName conicFill = Sampler2DPropertyName.Create( "conicFill" );
    public static readonly FloatPropertyName conicFillStrength = FloatPropertyName.Create( "conicFillStrength" );
    public static readonly FloatPropertyName conicFillTile = FloatPropertyName.Create( "conicFillTile" );
    public static readonly FloatPropertyName conicFillOffset = FloatPropertyName.Create( "conicFillOffset" );
    public static readonly BoolPropertyName conicFillRepeat = BoolPropertyName.Create( "conicFillRepeat" );
    public static readonly FloatPropertyName fillMultiply = FloatPropertyName.Create( "fillMultiply" );
    public static readonly FloatPropertyName fillAdd = FloatPropertyName.Create( "fillAdd" );
    public static readonly FloatPropertyName shapeColorize = FloatPropertyName.Create( "shapeColorize" );
    public static readonly Sampler2DPropertyName radialMask = Sampler2DPropertyName.Create( "radialMask" );
    public static readonly FloatPropertyName radialMaskStrength = FloatPropertyName.Create( "radialMaskStrength" );
    public static readonly FloatPropertyName radialMaskTile = FloatPropertyName.Create( "radialMaskTile" );
    public static readonly FloatPropertyName radialMaskOffset = FloatPropertyName.Create( "radialMaskOffset" );
    public static readonly BoolPropertyName radialMaskRepeat = BoolPropertyName.Create( "radialMaskRepeat" );
    public static readonly Sampler2DPropertyName conicMask = Sampler2DPropertyName.Create( "conicMask" );
    public static readonly FloatPropertyName conicMaskStrength = FloatPropertyName.Create( "conicMaskStrength" );
    public static readonly FloatPropertyName conicMaskTile = FloatPropertyName.Create( "conicMaskTile" );
    public static readonly FloatPropertyName conicMaskOffset = FloatPropertyName.Create( "conicMaskOffset" );
    public static readonly BoolPropertyName conicMaskRepeat = BoolPropertyName.Create( "conicMaskRepeat" );
    public static readonly FloatPropertyName maskMultiply = FloatPropertyName.Create( "maskMultiply" );
    public static readonly FloatPropertyName maskAdd = FloatPropertyName.Create( "maskAdd" );
    public static readonly ColorPropertyName color = ColorPropertyName.Create( "color" );
    public static readonly FloatPropertyName opacity = FloatPropertyName.Create( "opacity" );
    public static readonly Sampler2DPropertyName opacityCurve = Sampler2DPropertyName.Create( "opacityCurve" );
    public static readonly FloatPropertyName minHueRandom = FloatPropertyName.Create( "minHueRandom" );
    public static readonly FloatPropertyName maxHueRandom = FloatPropertyName.Create( "maxHueRandom" );
    public static readonly FloatPropertyName shapeNoiseAmount = FloatPropertyName.Create( "shapeNoiseAmount" );
    public static readonly FloatPropertyName shapeNoiseScale = FloatPropertyName.Create( "shapeNoiseScale" );
    public static readonly FloatPropertyName sizeX = FloatPropertyName.Create( "sizeX" );
    public static readonly FloatPropertyName sizeY = FloatPropertyName.Create( "sizeY" );
    public static readonly FloatPropertyName worldSizeScale = FloatPropertyName.Create( "worldSizeScale" );
    public static readonly FloatPropertyName screenSizeScale = FloatPropertyName.Create( "screenSizeScale" );
    public static readonly FloatPropertyName worldSizeVsScreenSize = FloatPropertyName.Create( "worldSize_vs_screenSize" );
    public static readonly FloatPropertyName randomScaleMin = FloatPropertyName.Create( "randomScaleMin" );
    public static readonly FloatPropertyName randomScaleMax = FloatPropertyName.Create( "randomScaleMax" );
    public static readonly FloatPropertyName extension = FloatPropertyName.Create( "extension" );
    public static readonly FloatPropertyName rotation = FloatPropertyName.Create( "rotation" );
    public static readonly FloatPropertyName rotationOverX = FloatPropertyName.Create( "rotationOverX" );
    public static readonly FloatPropertyName rotationOverY = FloatPropertyName.Create( "rotationOverY" );
    public static readonly FloatPropertyName rotationPerLayer = FloatPropertyName.Create( "rotationPerLayer" );
    public static readonly Vector2PropertyName screenOffset = Vector2PropertyName.Create( "screenOffset" );
    public static readonly Vector2PropertyName screenOffsetScale = Vector2PropertyName.Create( "screenOffsetScale" );
    public static readonly Vector2PropertyName screenOffsetLayerSpread = Vector2PropertyName.Create( "screenOffsetLayerSpread" );
    public static readonly IntPropertyName chromaticAberationMode = IntPropertyName.Create( "chromaticAberationMode" );
    public static readonly FloatPropertyName chromaticAberationAmount = FloatPropertyName.Create( "chromaticAberationAmount" );
    public static readonly IntPropertyName chromaticAberationSteps = IntPropertyName.Create( "chromaticAberationSteps" );
    public static readonly Vector2PropertyName chromaticAberationDirection = Vector2PropertyName.Create( "chromaticAberationDirection" );
    public static readonly FloatPropertyName chromaticAberationDirectionTowardsCenter = FloatPropertyName.Create( "chromaticAberationDirectionTowardsCenter" );
    public static readonly FloatPropertyName chromaticAberationCenterScale = FloatPropertyName.Create( "chromaticAberationCenterScale" );
    public static readonly FloatPropertyName chromaticAberationCenterOffset = FloatPropertyName.Create( "chromaticAberationCenterOffset" );
    public static readonly Vector3PropertyName chromaticAberationShifts = Vector3PropertyName.Create( "chromaticAberationShifts" );
    public static readonly FloatPropertyName chromaticAberationSmear = FloatPropertyName.Create( "chromaticAberationSmear" );
    public static readonly IntPropertyName fadingMode = IntPropertyName.Create( "fadingMode" );
    public static readonly Sampler2DPropertyName fading = Sampler2DPropertyName.Create( "fading" );
    public static readonly Sampler2DPropertyName opacityFading = Sampler2DPropertyName.Create( "opacityFading" );
    public static readonly Sampler2DPropertyName sizeXfading = Sampler2DPropertyName.Create( "sizeXfading" );
    public static readonly Sampler2DPropertyName sizeYfading = Sampler2DPropertyName.Create( "sizeYfading" );
    public static readonly FloatPropertyName fadingPower = FloatPropertyName.Create( "fadingPower" );
    public static readonly FloatPropertyName opacityFadingPower = FloatPropertyName.Create( "opacityFadingPower" );
    public static readonly FloatPropertyName sizeXfadingPower = FloatPropertyName.Create( "sizeXfadingPower" );
    public static readonly FloatPropertyName sizeYfadingPower = FloatPropertyName.Create( "sizeYfadingPower" );
    public static readonly IntPropertyName occlusionMode = IntPropertyName.Create( "occlusionMode" );
    public static readonly FloatPropertyName occlusionZOffset = FloatPropertyName.Create( "occlusionZOffset" );
    public static readonly IntPropertyName occlusionTestMaxSteps = IntPropertyName.Create( "occlusionTestMaxSteps" );
    public static readonly FloatPropertyName occlusionTestStepStride = FloatPropertyName.Create( "occlusionTestStepStride" );
    public static readonly FloatPropertyName occlusionTestViewDependingScaleAmount = FloatPropertyName.Create( "occlusionTest_ViewDependingScaleAmount" );
    public static readonly FloatPropertyName occlusionTestViewDependingDistance = FloatPropertyName.Create( "occlusionTest_ViewDependingDistance" );
    public static readonly FloatPropertyName occlusionToSize = FloatPropertyName.Create( "occlusionToSize" );

  }

  [Tool]
  public partial class EllipseTypeFlareAddMaterial:BaseFlareMaterial
  {
    
    
    public readonly CustomMaterialProperty<float> shapeScale;
    public readonly CustomMaterialProperty<Texture2D> radialFill;
    public readonly CustomMaterialProperty<float> radialFillStrength;
    public readonly CustomMaterialProperty<float> radialFillTile;
    public readonly CustomMaterialProperty<float> radialFillOffset;
    public readonly CustomMaterialProperty<bool> radialFillRepeat;
    public readonly CustomMaterialProperty<Texture2D> conicFill;
    public readonly CustomMaterialProperty<float> conicFillStrength;
    public readonly CustomMaterialProperty<float> conicFillTile;
    public readonly CustomMaterialProperty<float> conicFillOffset;
    public readonly CustomMaterialProperty<bool> conicFillRepeat;
    public readonly CustomMaterialProperty<float> fillMultiply;
    public readonly CustomMaterialProperty<float> fillAdd;
    public readonly CustomMaterialProperty<float> shapeColorize;
    public readonly CustomMaterialProperty<Texture2D> radialMask;
    public readonly CustomMaterialProperty<float> radialMaskStrength;
    public readonly CustomMaterialProperty<float> radialMaskTile;
    public readonly CustomMaterialProperty<float> radialMaskOffset;
    public readonly CustomMaterialProperty<bool> radialMaskRepeat;
    public readonly CustomMaterialProperty<Texture2D> conicMask;
    public readonly CustomMaterialProperty<float> conicMaskStrength;
    public readonly CustomMaterialProperty<float> conicMaskTile;
    public readonly CustomMaterialProperty<float> conicMaskOffset;
    public readonly CustomMaterialProperty<bool> conicMaskRepeat;
    public readonly CustomMaterialProperty<float> maskMultiply;
    public readonly CustomMaterialProperty<float> maskAdd;

    public EllipseTypeFlareAddMaterial()
    {
      ///*
      Shader = EllipseTypeFlareAddShader.shader.Get();
      //*/ 

      shapeScale = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.shapeScale );
      radialFill = new CustomMaterialProperty<Texture2D>( this, EllipseTypeFlareAddShader.radialFill );
      radialFillStrength = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.radialFillStrength );
      radialFillTile = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.radialFillTile );
      radialFillOffset = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.radialFillOffset );
      radialFillRepeat = new CustomMaterialProperty<bool>( this, EllipseTypeFlareAddShader.radialFillRepeat );
      conicFill = new CustomMaterialProperty<Texture2D>( this, EllipseTypeFlareAddShader.conicFill );
      conicFillStrength = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.conicFillStrength );
      conicFillTile = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.conicFillTile );
      conicFillOffset = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.conicFillOffset );
      conicFillRepeat = new CustomMaterialProperty<bool>( this, EllipseTypeFlareAddShader.conicFillRepeat );
      fillMultiply = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.fillMultiply );
      fillAdd = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.fillAdd );
      shapeColorize = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.shapeColorize );
      radialMask = new CustomMaterialProperty<Texture2D>( this, EllipseTypeFlareAddShader.radialMask );
      radialMaskStrength = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.radialMaskStrength );
      radialMaskTile = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.radialMaskTile );
      radialMaskOffset = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.radialMaskOffset );
      radialMaskRepeat = new CustomMaterialProperty<bool>( this, EllipseTypeFlareAddShader.radialMaskRepeat );
      conicMask = new CustomMaterialProperty<Texture2D>( this, EllipseTypeFlareAddShader.conicMask );
      conicMaskStrength = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.conicMaskStrength );
      conicMaskTile = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.conicMaskTile );
      conicMaskOffset = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.conicMaskOffset );
      conicMaskRepeat = new CustomMaterialProperty<bool>( this, EllipseTypeFlareAddShader.conicMaskRepeat );
      maskMultiply = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.maskMultiply );
      maskAdd = new CustomMaterialProperty<float>( this, EllipseTypeFlareAddShader.maskAdd );
    }

  }

}