Files
armorpaint/paint/sources/material_nodes/script_node.c
T
2026-03-10 11:49:57 +01:00

22 lines
800 B
C

#include "../global.h"
void script_node_init() {
any_array_push(nodes_material_input, script_node_def);
any_map_set(parser_material_node_values, "SCRIPT_CPU", script_node_value);
}
char *script_node_value(ui_node_t *node, ui_node_socket_t *socket) {
if (parser_material_script_links == NULL) {
gc_unroot(parser_material_script_links);
parser_material_script_links = any_map_create();
gc_root(parser_material_script_links);
}
buffer_t *script = node->buttons->buffer[0]->default_value;
char *str = sys_buffer_to_string(script);
char *link = parser_material_node_name(node, NULL);
any_map_set(parser_material_script_links, link, str);
node_shader_add_constant(parser_material_kong, string("%s: float", link), string("_%s", link));
return string("constants.%s", link);
}