using Godot; namespace Rokojori { public class FancyOutline { public static readonly CachedResource shader = new CachedResource( "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Effects/FancyOutline/FancyOutline.gdshader" ); public static readonly ColorPropertyName albedo = ColorPropertyName.Create( "albedo" ); public static readonly FloatPropertyName size = FloatPropertyName.Create( "size" ); public static readonly FloatPropertyName sizeCloseScale = FloatPropertyName.Create( "sizeCloseScale" ); public static readonly FloatPropertyName sizeFarScale = FloatPropertyName.Create( "sizeFarScale" ); public static readonly FloatPropertyName closeDistance = FloatPropertyName.Create( "closeDistance" ); public static readonly FloatPropertyName farDistance = FloatPropertyName.Create( "farDistance" ); public static readonly FloatPropertyName opacityModulationStrength = FloatPropertyName.Create( "opacityModulationStrength" ); public static readonly FloatPropertyName opacityModulationDuration = FloatPropertyName.Create( "opacityModulationDuration" ); public static readonly FloatPropertyName scanLineAmount = FloatPropertyName.Create( "scanLineAmount" ); public static readonly FloatPropertyName scanLineDivisions = FloatPropertyName.Create( "scanLineDivisions" ); public static readonly FloatPropertyName scanLineSpeed = FloatPropertyName.Create( "scanLineSpeed" ); } public partial class FancyOutlineMaterial:CustomMaterial { public static readonly CachedResource ScanWhite500Ms20x = CustomMaterial.Cached( "res://addons/rokojori_action_library/Runtime/Shading/Shaders/Effects/FancyOutline/FancyOutline Scan White 500ms 20x.material" ); public readonly CustomMaterialProperty albedo; public readonly CustomMaterialProperty size; public readonly CustomMaterialProperty sizeCloseScale; public readonly CustomMaterialProperty sizeFarScale; public readonly CustomMaterialProperty closeDistance; public readonly CustomMaterialProperty farDistance; public readonly CustomMaterialProperty opacityModulationStrength; public readonly CustomMaterialProperty opacityModulationDuration; public readonly CustomMaterialProperty scanLineAmount; public readonly CustomMaterialProperty scanLineDivisions; public readonly CustomMaterialProperty scanLineSpeed; public FancyOutlineMaterial() { Shader = FancyOutline.shader.Get(); albedo = new CustomMaterialProperty( this, FancyOutline.albedo ); size = new CustomMaterialProperty( this, FancyOutline.size ); sizeCloseScale = new CustomMaterialProperty( this, FancyOutline.sizeCloseScale ); sizeFarScale = new CustomMaterialProperty( this, FancyOutline.sizeFarScale ); closeDistance = new CustomMaterialProperty( this, FancyOutline.closeDistance ); farDistance = new CustomMaterialProperty( this, FancyOutline.farDistance ); opacityModulationStrength = new CustomMaterialProperty( this, FancyOutline.opacityModulationStrength ); opacityModulationDuration = new CustomMaterialProperty( this, FancyOutline.opacityModulationDuration ); scanLineAmount = new CustomMaterialProperty( this, FancyOutline.scanLineAmount ); scanLineDivisions = new CustomMaterialProperty( this, FancyOutline.scanLineDivisions ); scanLineSpeed = new CustomMaterialProperty( this, FancyOutline.scanLineSpeed ); } } }