rj-action-library/Runtime/Shading/Generators/Spatial/SpatialShaderData.cs

249 lines
6.0 KiB
C#

using Godot;
using System.Reflection;
using System.Collections.Generic;
namespace Rokojori
{
[Tool]
[GlobalClass]
public partial class SpatialShaderData:Resource
{
[ExportGroup("Presets/Starters")]
[ExportToolButton("PBR Starter")]
public Callable pbrStarterButton => Callable.From( ()=>{ PBR_Starter(); } );
[ExportToolButton("PBR Alpha Starter")]
public Callable pbrAlphaStarterButton => Callable.From( ()=>{ PBR_Alpha_Starter(); } );
[ExportToolButton("PBR Emissive Starter")]
public Callable pbrEmissiveStarterButton => Callable.From( ()=>{ PBR_Emissive_Starter(); } );
[ExportToolButton("PBR Luminance Starter")]
public Callable pbrLuminanceStarterButton => Callable.From( ()=>{ PBR_Luminance_Starter(); } );
[ExportToolButton("PBR All Starter")]
public Callable pbrAllStarterButton => Callable.From( ()=>{ PBR_All_Starter(); } );
[ExportToolButton("Unshaded Starter")]
public Callable unshadedStarterButton => Callable.From( ()=>{ Unshaded_Starter(); } );
[ExportGroup("Modules")]
[Export]
public TransparencyModule transparency = new TransparencyModule();
[Export]
public ShadingModule shading = new ShadingModule();
[Export]
public StencilModule stencil = null;
[Export]
public GeometryModule geometry = new GeometryModule();
[Export]
public UVModule uv = new UVModule();
[Export]
public AlbedoModule albedo = new AlbedoModule();
[Export]
public AlphaModule alpha = null;
[Export]
public FadingModule fading = null;
[Export]
public NormalMapModule normalMap = null;
[Export]
public RoughnessModule roughness = null;
[Export]
public MetallicModule metallic = null;
[Export]
public SpecularModule specular = null;
[Export]
public OcclusionModule occlusion = null;
[Export]
public EmissionModule emission = null;
[Export]
public BacklightModule backlight = null;
[Export]
public SubsurfaceScatteringModule subsurfaceScattering = null;
public void PBR_All_Starter()
{
transparency = new TransparencyModule();
shading = new ShadingModule();
stencil = null;
geometry = new GeometryModule();
uv = new UVModule();
albedo = new AlbedoModule();
alpha = null;
fading = null;
normalMap = new NormalMapModule();
roughness = new RoughnessModule();
metallic = new MetallicModule();
specular = new SpecularModule();
specular.domainMode = TextureModule.DomainMode.Value;
occlusion = new OcclusionModule();
emission = new EmissionModule();
backlight = new BacklightModule();
subsurfaceScattering = new SubsurfaceScatteringModule();
}
public void PBR_Luminance_Starter()
{
transparency = new TransparencyModule();
shading = new ShadingModule();
stencil = null;
geometry = new GeometryModule();
uv = new UVModule();
albedo = new AlbedoModule();
alpha = null;
fading = null;
normalMap = new NormalMapModule();
roughness = new RoughnessModule();
metallic = new MetallicModule();
specular = new SpecularModule();
specular.domainMode = TextureModule.DomainMode.Value;
occlusion = new OcclusionModule();
emission = null;
backlight = new BacklightModule();
subsurfaceScattering = new SubsurfaceScatteringModule();
}
public void PBR_Starter()
{
transparency = new TransparencyModule();
shading = new ShadingModule();
stencil = null;
geometry = new GeometryModule();
uv = new UVModule();
albedo = new AlbedoModule();
alpha = null;
fading = null;
normalMap = new NormalMapModule();
roughness = new RoughnessModule();
metallic = new MetallicModule();
specular = new SpecularModule();
specular.domainMode = TextureModule.DomainMode.Value;
occlusion = new OcclusionModule();
emission = null;
backlight = null;
subsurfaceScattering = null;
}
public void PBR_Emissive_Starter()
{
transparency = new TransparencyModule();
shading = new ShadingModule();
stencil = null;
geometry = new GeometryModule();
uv = new UVModule();
albedo = new AlbedoModule();
alpha = null;
fading = null;
normalMap = new NormalMapModule();
roughness = new RoughnessModule();
metallic = new MetallicModule();
specular = new SpecularModule();
specular.domainMode = TextureModule.DomainMode.Value;
occlusion = new OcclusionModule();
emission = new EmissionModule();
backlight = null;
subsurfaceScattering = null;
}
public void PBR_Alpha_Starter()
{
transparency = new TransparencyModule();
transparency.transparency = BaseMaterial3D.TransparencyEnum.Alpha;
shading = new ShadingModule();
stencil = null;
geometry = new GeometryModule();
uv = new UVModule();
albedo = new AlbedoModule();
alpha = new AlphaModule();
fading = null;
normalMap = new NormalMapModule();
roughness = new RoughnessModule();
metallic = new MetallicModule();
specular = new SpecularModule();
specular.domainMode = TextureModule.DomainMode.Value;
occlusion = new OcclusionModule();
emission = null;
backlight = null;
subsurfaceScattering = null;
}
public void Unshaded_Starter()
{
transparency = new TransparencyModule();
transparency.transparency = BaseMaterial3D.TransparencyEnum.Alpha;
shading = new ShadingModule();
shading.shadingMode = BaseMaterial3D.ShadingModeEnum.Unshaded;
stencil = null;
geometry = new GeometryModule();
uv = new UVModule();
albedo = new AlbedoModule();
alpha = new AlphaModule();
fading = null;
normalMap = null;
roughness = null;
metallic = null;
specular = null;
occlusion = null;
emission = null;
backlight = null;
subsurfaceScattering = null;
}
}
}