using Godot; using System.Reflection; using System.Collections.Generic; namespace Rokojori { [Tool] [GlobalClass] public partial class UVModule:ShaderGenerationModule { [Export] public UVScaleOffset uvScaleOffset = new UVScaleOffset(); [Export] public UVModifier[] modifiers = []; public override List GetCode( ShaderGenerationContext context ) { var list = new List(); var allModifiers = Lists.From( modifiers ).FilterNulls(); if ( uvScaleOffset != null ) { allModifiers.Insert( 0, uvScaleOffset ); } allModifiers.ForEach( ( m )=> { var code = m.GetCode( context ); if ( code == null ) { return; } list.Add( code ); } ); return list; } } }