22 lines
818 B
C
22 lines
818 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_join(string_join("", link), ": float"), string_join("_", link));
|
|
return string_join("constants.", link);
|
|
}
|