62 lines
3.6 KiB
C#
62 lines
3.6 KiB
C#
using Godot;
|
|
|
|
namespace Rokojori
|
|
{
|
|
public class FancyOutline
|
|
{
|
|
public static readonly CachedResource<Shader> shader = new CachedResource<Shader>(
|
|
"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<FancyOutlineMaterial> ScanWhite500Ms20x = CustomMaterial.Cached<FancyOutlineMaterial>(
|
|
"res://addons/rokojori_action_library/Runtime/Shading/Shaders/Effects/FancyOutline/FancyOutline Scan White 500ms 20x.material"
|
|
);
|
|
|
|
public readonly CustomMaterialProperty<Color> albedo;
|
|
public readonly CustomMaterialProperty<float> size;
|
|
public readonly CustomMaterialProperty<float> sizeCloseScale;
|
|
public readonly CustomMaterialProperty<float> sizeFarScale;
|
|
public readonly CustomMaterialProperty<float> closeDistance;
|
|
public readonly CustomMaterialProperty<float> farDistance;
|
|
public readonly CustomMaterialProperty<float> opacityModulationStrength;
|
|
public readonly CustomMaterialProperty<float> opacityModulationDuration;
|
|
public readonly CustomMaterialProperty<float> scanLineAmount;
|
|
public readonly CustomMaterialProperty<float> scanLineDivisions;
|
|
public readonly CustomMaterialProperty<float> scanLineSpeed;
|
|
|
|
public FancyOutlineMaterial()
|
|
{
|
|
Shader = FancyOutline.shader.Get();
|
|
|
|
albedo = new CustomMaterialProperty<Color>( this, FancyOutline.albedo );
|
|
size = new CustomMaterialProperty<float>( this, FancyOutline.size );
|
|
sizeCloseScale = new CustomMaterialProperty<float>( this, FancyOutline.sizeCloseScale );
|
|
sizeFarScale = new CustomMaterialProperty<float>( this, FancyOutline.sizeFarScale );
|
|
closeDistance = new CustomMaterialProperty<float>( this, FancyOutline.closeDistance );
|
|
farDistance = new CustomMaterialProperty<float>( this, FancyOutline.farDistance );
|
|
opacityModulationStrength = new CustomMaterialProperty<float>( this, FancyOutline.opacityModulationStrength );
|
|
opacityModulationDuration = new CustomMaterialProperty<float>( this, FancyOutline.opacityModulationDuration );
|
|
scanLineAmount = new CustomMaterialProperty<float>( this, FancyOutline.scanLineAmount );
|
|
scanLineDivisions = new CustomMaterialProperty<float>( this, FancyOutline.scanLineDivisions );
|
|
scanLineSpeed = new CustomMaterialProperty<float>( this, FancyOutline.scanLineSpeed );
|
|
}
|
|
|
|
}
|
|
|
|
} |