Files
armorpaint/Assets/plugins/hello_node.js
T
2019-11-19 22:13:55 +01:00

52 lines
1.0 KiB
JavaScript

let plugin = new arm.Plugin();
let categoryName = "My Nodes";
let nodeName = "Hello World";
let nodeType = "HELLO_WORLD";
// Create new node category
let categories = arm.NodesMaterial.categories;
categories.push(categoryName);
// Create new node
let nodes = [
{
id: 0,
name: nodeName,
type: nodeType,
x: 0,
y: 0,
color: 0xffb34f5a,
inputs: [],
outputs: [
{
id: 0,
node_id: 0,
name: "Color",
type: "RGBA",
color: 0xffc7c729,
default_value: [0.8, 0.8, 0.8, 1.0]
}
],
buttons: []
}
];
arm.NodesMaterial.list.push(nodes);
// Node shader
arm.Material.customNodes.set(nodeType, function() {
let frag = arm.Material.frag;
frag.write(`
float my_out = cos(sin(texCoord.x * 200) + cos(texCoord.y * 200));
`);
return `vec3(my_out, my_out, my_out)`;
});
// Cleanup
plugin.delete = function() {
arm.Material.customNodes.delete(nodeType);
arm.NodesMaterial.list.splice(arm.NodesMaterial.list.indexOf(nodes), 1);
categories.splice(categories.indexOf(categoryName), 1);
};