type materialpass [display="Material Pass"] { // Vertex declaration vertex_decl = parse_here("materialvertexdeclaration") [ui]; // Vertex shader vertex_shader = parse_here("materialvertexshader") [ui]; // Pixel shader (reusing existing pixelshader type) pixel_shader = parse_here("pixelshader") [ui]; // Shader arguments u8 arg_count [ui, readonly, display="Arg Count"]; u8 padding; // Parse argument array arguments = 0; if (arg_count > 0) { repeat(arg_count) { _arg = parse_here("materialshaderargument") [ui]; arguments = push("arguments", _arg); } } }