using Godot;

namespace Rokojori
{  
  // Generated by ShaderClassGenerator 

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

    public static readonly FloatPropertyName speedMultiply = FloatPropertyName.Create( "speedMultiply" );
    public static readonly Vector4PropertyName innerHsl = Vector4PropertyName.Create( "innerHSL" );
    public static readonly Vector4PropertyName outerHsl = Vector4PropertyName.Create( "outerHSL" );
    public static readonly FloatPropertyName colorFillRange = FloatPropertyName.Create( "colorFillRange" );
    public static readonly FloatPropertyName colorFillDistributionPower = FloatPropertyName.Create( "colorFillDistributionPower" );
    public static readonly FloatPropertyName streaksFrequency = FloatPropertyName.Create( "streaksFrequency" );
    public static readonly FloatPropertyName streaksRotation = FloatPropertyName.Create( "streaksRotation" );
    public static readonly FloatPropertyName streaksRotationSpeed = FloatPropertyName.Create( "streaksRotationSpeed" );
    public static readonly FloatPropertyName streaksNoise = FloatPropertyName.Create( "streaksNoise" );
    public static readonly FloatPropertyName streaksNoiseOffset = FloatPropertyName.Create( "streaksNoiseOffset" );
    public static readonly FloatPropertyName streaksNoiseScroll = FloatPropertyName.Create( "streaksNoiseScroll" );
    public static readonly BoolPropertyName streaks2Enabled = BoolPropertyName.Create( "streaks2enabled" );
    public static readonly FloatPropertyName streaksAddVsMult = FloatPropertyName.Create( "streaks_add_vs_mult" );
    public static readonly FloatPropertyName streaks2Multiply = FloatPropertyName.Create( "streaks2Multiply" );
    public static readonly FloatPropertyName streaksFrequency2 = FloatPropertyName.Create( "streaksFrequency2" );
    public static readonly FloatPropertyName streaksRotation2 = FloatPropertyName.Create( "streaksRotation2" );
    public static readonly FloatPropertyName streaksRotationSpeed2 = FloatPropertyName.Create( "streaksRotationSpeed2" );
    public static readonly FloatPropertyName streaksNoise2 = FloatPropertyName.Create( "streaksNoise2" );
    public static readonly FloatPropertyName streaksNoiseOffset2 = FloatPropertyName.Create( "streaksNoiseOffset2" );
    public static readonly FloatPropertyName streaksNoiseScroll2 = FloatPropertyName.Create( "streaksNoiseScroll2" );
    public static readonly FloatPropertyName maskScale = FloatPropertyName.Create( "maskScale" );
    public static readonly FloatPropertyName maskRange = FloatPropertyName.Create( "maskRange" );
    public static readonly FloatPropertyName maskRangeOscillation = FloatPropertyName.Create( "maskRangeOscillation" );
    public static readonly FloatPropertyName maskRangeOscillationSpeed = FloatPropertyName.Create( "maskRangeOscillationSpeed" );
    public static readonly FloatPropertyName maskInnerSize = FloatPropertyName.Create( "maskInnerSize" );
    public static readonly FloatPropertyName maskFrequency = FloatPropertyName.Create( "maskFrequency" );
    public static readonly FloatPropertyName maskRotation = FloatPropertyName.Create( "maskRotation" );
    public static readonly FloatPropertyName maskRotationSpeed = FloatPropertyName.Create( "maskRotationSpeed" );
    public static readonly FloatPropertyName blendingRange = FloatPropertyName.Create( "blendingRange" );
    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 StarTypeFlareMixMaterial:BaseFlareMaterial
  {
    
    
    public readonly CustomMaterialProperty<float> speedMultiply;
    public readonly CustomMaterialProperty<Vector4> innerHsl;
    public readonly CustomMaterialProperty<Vector4> outerHsl;
    public readonly CustomMaterialProperty<float> colorFillRange;
    public readonly CustomMaterialProperty<float> colorFillDistributionPower;
    public readonly CustomMaterialProperty<float> streaksFrequency;
    public readonly CustomMaterialProperty<float> streaksRotation;
    public readonly CustomMaterialProperty<float> streaksRotationSpeed;
    public readonly CustomMaterialProperty<float> streaksNoise;
    public readonly CustomMaterialProperty<float> streaksNoiseOffset;
    public readonly CustomMaterialProperty<float> streaksNoiseScroll;
    public readonly CustomMaterialProperty<bool> streaks2Enabled;
    public readonly CustomMaterialProperty<float> streaksAddVsMult;
    public readonly CustomMaterialProperty<float> streaks2Multiply;
    public readonly CustomMaterialProperty<float> streaksFrequency2;
    public readonly CustomMaterialProperty<float> streaksRotation2;
    public readonly CustomMaterialProperty<float> streaksRotationSpeed2;
    public readonly CustomMaterialProperty<float> streaksNoise2;
    public readonly CustomMaterialProperty<float> streaksNoiseOffset2;
    public readonly CustomMaterialProperty<float> streaksNoiseScroll2;
    public readonly CustomMaterialProperty<float> maskScale;
    public readonly CustomMaterialProperty<float> maskRange;
    public readonly CustomMaterialProperty<float> maskRangeOscillation;
    public readonly CustomMaterialProperty<float> maskRangeOscillationSpeed;
    public readonly CustomMaterialProperty<float> maskInnerSize;
    public readonly CustomMaterialProperty<float> maskFrequency;
    public readonly CustomMaterialProperty<float> maskRotation;
    public readonly CustomMaterialProperty<float> maskRotationSpeed;
    public readonly CustomMaterialProperty<float> blendingRange;

    public StarTypeFlareMixMaterial()
    {
      ///*
      Shader = StarTypeFlareMixShader.shader.Get();
      //*/ 

      speedMultiply = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.speedMultiply );
      innerHsl = new CustomMaterialProperty<Vector4>( this, StarTypeFlareMixShader.innerHsl );
      outerHsl = new CustomMaterialProperty<Vector4>( this, StarTypeFlareMixShader.outerHsl );
      colorFillRange = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.colorFillRange );
      colorFillDistributionPower = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.colorFillDistributionPower );
      streaksFrequency = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.streaksFrequency );
      streaksRotation = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.streaksRotation );
      streaksRotationSpeed = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.streaksRotationSpeed );
      streaksNoise = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.streaksNoise );
      streaksNoiseOffset = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.streaksNoiseOffset );
      streaksNoiseScroll = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.streaksNoiseScroll );
      streaks2Enabled = new CustomMaterialProperty<bool>( this, StarTypeFlareMixShader.streaks2Enabled );
      streaksAddVsMult = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.streaksAddVsMult );
      streaks2Multiply = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.streaks2Multiply );
      streaksFrequency2 = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.streaksFrequency2 );
      streaksRotation2 = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.streaksRotation2 );
      streaksRotationSpeed2 = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.streaksRotationSpeed2 );
      streaksNoise2 = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.streaksNoise2 );
      streaksNoiseOffset2 = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.streaksNoiseOffset2 );
      streaksNoiseScroll2 = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.streaksNoiseScroll2 );
      maskScale = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.maskScale );
      maskRange = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.maskRange );
      maskRangeOscillation = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.maskRangeOscillation );
      maskRangeOscillationSpeed = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.maskRangeOscillationSpeed );
      maskInnerSize = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.maskInnerSize );
      maskFrequency = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.maskFrequency );
      maskRotation = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.maskRotation );
      maskRotationSpeed = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.maskRotationSpeed );
      blendingRange = new CustomMaterialProperty<float>( this, StarTypeFlareMixShader.blendingRange );
    }

  }

}