rj-action-library/Runtime/Shading/Generators/Spatial/UV/UVModule.cs

63 lines
1.3 KiB
C#
Raw Normal View History

using Godot;
using System.Reflection;
using System.Collections.Generic;
namespace Rokojori
{
[Tool]
[GlobalClass]
public partial class UVModule:ShaderGenerationModule
{
2025-09-21 07:35:17 +00:00
// [Export]
// public UVScaleOffset uvScaleOffset = new UVScaleOffset();
// [Export]
// public UVModifier[] modifiers = [];
[Export]
2025-09-21 07:35:17 +00:00
public UVChannel[] channels = [ ];
2025-09-17 08:25:03 +00:00
public override List<ShaderVariant> GetVariants( ShaderGenerationContext context )
{
2025-09-21 07:35:17 +00:00
var list = new List<ShaderCode>();
2025-09-21 07:35:17 +00:00
channels.ForEach(
( c )=>
{
2025-09-21 07:35:17 +00:00
var code = c.GetShaderCode( context );
if ( code == null )
{
return;
}
2025-09-21 07:35:17 +00:00
list.AddRange( code );
}
);
2025-09-21 07:35:17 +00:00
// var list = new List<ShaderVariant>();
// var allModifiers = Lists.From( modifiers ).FilterNulls();
// if ( uvScaleOffset != null )
// {
// allModifiers.Insert( 0, uvScaleOffset );
// }
// allModifiers.ForEach(
// ( m )=>
// {
// var variants = m.GetVariants( context );
// if ( variants == null )
// {
// return;
// }
// list = ShaderVariant.CombineVariants( list, variants );
// }
// );
2025-09-21 07:35:17 +00:00
return ToVariants( list );
}
}
}