replace all dynamics node values with type based

This commit is contained in:
Tanasart 2024-08-07 18:20:45 +07:00
parent d10c77ee83
commit 8103abca06
586 changed files with 3176 additions and 3681 deletions

View file

@ -1163,6 +1163,7 @@
{"name":"node_value_dimension","order":20,"path":"scripts/node_value_dimension/node_value_dimension.yy",}, {"name":"node_value_dimension","order":20,"path":"scripts/node_value_dimension/node_value_dimension.yy",},
{"name":"node_value_enum_button","order":6,"path":"scripts/node_value_enum_button/node_value_enum_button.yy",}, {"name":"node_value_enum_button","order":6,"path":"scripts/node_value_enum_button/node_value_enum_button.yy",},
{"name":"node_value_enum_scroll","order":7,"path":"scripts/node_value_enum_scroll/node_value_enum_scroll.yy",}, {"name":"node_value_enum_scroll","order":7,"path":"scripts/node_value_enum_scroll/node_value_enum_scroll.yy",},
{"name":"node_value_fdomain","order":8,"path":"scripts/node_value_fdomain/node_value_fdomain.yy",},
{"name":"node_value_gradient","order":1,"path":"scripts/node_value_gradient/node_value_gradient.yy",}, {"name":"node_value_gradient","order":1,"path":"scripts/node_value_gradient/node_value_gradient.yy",},
{"name":"node_value_int","order":1,"path":"scripts/node_value_int/node_value_int.yy",}, {"name":"node_value_int","order":1,"path":"scripts/node_value_int/node_value_int.yy",},
{"name":"node_value_output","order":1,"path":"scripts/node_value_output/node_value_output.yy",}, {"name":"node_value_output","order":1,"path":"scripts/node_value_output/node_value_output.yy",},
@ -1181,6 +1182,7 @@
{"name":"node_value_struct","order":7,"path":"scripts/node_value_struct/node_value_struct.yy",}, {"name":"node_value_struct","order":7,"path":"scripts/node_value_struct/node_value_struct.yy",},
{"name":"node_value_surface","order":9,"path":"scripts/node_value_surface/node_value_surface.yy",}, {"name":"node_value_surface","order":9,"path":"scripts/node_value_surface/node_value_surface.yy",},
{"name":"node_value_text","order":14,"path":"scripts/node_value_text/node_value_text.yy",}, {"name":"node_value_text","order":14,"path":"scripts/node_value_text/node_value_text.yy",},
{"name":"node_value_toggle","order":21,"path":"scripts/node_value_toggle/node_value_toggle.yy",},
{"name":"node_value_trigger","order":19,"path":"scripts/node_value_trigger/node_value_trigger.yy",}, {"name":"node_value_trigger","order":19,"path":"scripts/node_value_trigger/node_value_trigger.yy",},
{"name":"node_value_types","order":2,"path":"scripts/node_value_types/node_value_types.yy",}, {"name":"node_value_types","order":2,"path":"scripts/node_value_types/node_value_types.yy",},
{"name":"node_value_validators","order":3,"path":"scripts/node_value_validators/node_value_validators.yy",}, {"name":"node_value_validators","order":3,"path":"scripts/node_value_validators/node_value_validators.yy",},

View file

@ -1768,6 +1768,7 @@
{"id":{"name":"node_value_dimension","path":"scripts/node_value_dimension/node_value_dimension.yy",},}, {"id":{"name":"node_value_dimension","path":"scripts/node_value_dimension/node_value_dimension.yy",},},
{"id":{"name":"node_value_enum_button","path":"scripts/node_value_enum_button/node_value_enum_button.yy",},}, {"id":{"name":"node_value_enum_button","path":"scripts/node_value_enum_button/node_value_enum_button.yy",},},
{"id":{"name":"node_value_enum_scroll","path":"scripts/node_value_enum_scroll/node_value_enum_scroll.yy",},}, {"id":{"name":"node_value_enum_scroll","path":"scripts/node_value_enum_scroll/node_value_enum_scroll.yy",},},
{"id":{"name":"node_value_fdomain","path":"scripts/node_value_fdomain/node_value_fdomain.yy",},},
{"id":{"name":"node_value_float","path":"scripts/node_value_float/node_value_float.yy",},}, {"id":{"name":"node_value_float","path":"scripts/node_value_float/node_value_float.yy",},},
{"id":{"name":"node_value_gradient","path":"scripts/node_value_gradient/node_value_gradient.yy",},}, {"id":{"name":"node_value_gradient","path":"scripts/node_value_gradient/node_value_gradient.yy",},},
{"id":{"name":"node_value_int","path":"scripts/node_value_int/node_value_int.yy",},}, {"id":{"name":"node_value_int","path":"scripts/node_value_int/node_value_int.yy",},},
@ -1787,6 +1788,7 @@
{"id":{"name":"node_value_struct","path":"scripts/node_value_struct/node_value_struct.yy",},}, {"id":{"name":"node_value_struct","path":"scripts/node_value_struct/node_value_struct.yy",},},
{"id":{"name":"node_value_surface","path":"scripts/node_value_surface/node_value_surface.yy",},}, {"id":{"name":"node_value_surface","path":"scripts/node_value_surface/node_value_surface.yy",},},
{"id":{"name":"node_value_text","path":"scripts/node_value_text/node_value_text.yy",},}, {"id":{"name":"node_value_text","path":"scripts/node_value_text/node_value_text.yy",},},
{"id":{"name":"node_value_toggle","path":"scripts/node_value_toggle/node_value_toggle.yy",},},
{"id":{"name":"node_value_trigger","path":"scripts/node_value_trigger/node_value_trigger.yy",},}, {"id":{"name":"node_value_trigger","path":"scripts/node_value_trigger/node_value_trigger.yy",},},
{"id":{"name":"node_value_types","path":"scripts/node_value_types/node_value_types.yy",},}, {"id":{"name":"node_value_types","path":"scripts/node_value_types/node_value_types.yy",},},
{"id":{"name":"node_value_validators","path":"scripts/node_value_validators/node_value_validators.yy",},}, {"id":{"name":"node_value_validators","path":"scripts/node_value_validators/node_value_validators.yy",},},

View file

@ -4,52 +4,47 @@ function __Node_3D_Combine(_x, _y, _group = noone) : Node(_x, _y, _group) constr
inputs[| 0] = nodeValue_Dimension(self) inputs[| 0] = nodeValue_Dimension(self)
.rejectArray(); .rejectArray();
inputs[| 1] = nodeValue("Object position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 1] = nodeValue_Vector("Object position", self, [ 0, 0, 0 ])
.setDisplay(VALUE_DISPLAY.vector)
.rejectArray(); .rejectArray();
inputs[| 2] = nodeValue("Object rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 2] = nodeValue_Vector("Object rotation", self, [ 0, 0, 0 ])
.setDisplay(VALUE_DISPLAY.vector)
.rejectArray(); .rejectArray();
inputs[| 3] = nodeValue("Object scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ]) inputs[| 3] = nodeValue_Vector("Object scale", self, [ 1, 1, 1 ])
.setDisplay(VALUE_DISPLAY.vector)
.rejectArray(); .rejectArray();
inputs[| 4] = nodeValue("Render position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0.5, 0.5 ]) inputs[| 4] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
.setDisplay(VALUE_DISPLAY.vector)
.setUnitRef( function() { return getInputData(2); }, VALUE_UNIT.reference) .setUnitRef( function() { return getInputData(2); }, VALUE_UNIT.reference)
.rejectArray(); .rejectArray();
inputs[| 5] = nodeValue("Render scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) inputs[| 5] = nodeValue_Vector("Render scale", self, [ 1, 1 ])
.setDisplay(VALUE_DISPLAY.vector)
.rejectArray(); .rejectArray();
inputs[| 6] = nodeValue_Rotation("Light direction", self, 0) inputs[| 6] = nodeValue_Rotation("Light direction", self, 0)
.rejectArray(); .rejectArray();
inputs[| 7] = nodeValue("Light height", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5) inputs[| 7] = nodeValue_Float("Light height", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] }) .setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] })
.rejectArray(); .rejectArray();
inputs[| 8] = nodeValue("Light intensity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) inputs[| 8] = nodeValue_Float("Light intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider) .setDisplay(VALUE_DISPLAY.slider)
.rejectArray(); .rejectArray();
inputs[| 9] = nodeValue("Light color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white) inputs[| 9] = nodeValue_Color("Light color", self, c_white)
.rejectArray(); .rejectArray();
inputs[| 10] = nodeValue("Ambient color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_grey) inputs[| 10] = nodeValue_Color("Ambient color", self, c_grey)
.rejectArray(); .rejectArray();
inputs[| 11] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ]) inputs[| 11] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray(); .rejectArray();
inputs[| 12] = nodeValue("Field of view", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 60) inputs[| 12] = nodeValue_Float("Field of view", self, 60)
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 90, 0.1 ] }) .setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 90, 0.1 ] })
.rejectArray(); .rejectArray();
inputs[| 13] = nodeValue("Scale view with dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true) inputs[| 13] = nodeValue_Bool("Scale view with dimension", self, true)
input_display_list = [ input_display_list = [
["Output", false], 0, 13, ["Output", false], 0, 13,
@ -59,11 +54,11 @@ function __Node_3D_Combine(_x, _y, _group = noone) : Node(_x, _y, _group) constr
["Objects", true], ["Objects", true],
]; ];
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);
outputs[| 1] = nodeValue("3D objects", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3object, function() { return submit_vertex(); }); outputs[| 1] = nodeValue_Output("3D objects", self, VALUE_TYPE.d3object, function() { return submit_vertex(); });
outputs[| 2] = nodeValue("Normal pass", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 2] = nodeValue_Output("Normal pass", self, VALUE_TYPE.surface, noone);
output_display_list = [ 0, 2, 1 ] output_display_list = [ 0, 2, 1 ]

View file

@ -4,33 +4,28 @@ function __Node_3D_Displace(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
inputs[| 0] = nodeValue_Dimension(self); inputs[| 0] = nodeValue_Dimension(self);
inputs[| 1] = nodeValue("Object position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 1] = nodeValue_Vector("Object position", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 2] = nodeValue("Object rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 2] = nodeValue_Vector("Object rotation", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 3] = nodeValue("Object scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ]) inputs[| 3] = nodeValue_Vector("Object scale", self, [ 1, 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 4] = nodeValue("Render position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0.5, 0.5 ]) inputs[| 4] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
.setDisplay(VALUE_DISPLAY.vector)
.setUnitRef( function() { return getInputData(0); }, VALUE_UNIT.reference); .setUnitRef( function() { return getInputData(0); }, VALUE_UNIT.reference);
inputs[| 5] = nodeValue("Render scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) inputs[| 5] = nodeValue_Vector("Render scale", self, [ 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 6] = nodeValue_Rotation("Light direction", self, 0); inputs[| 6] = nodeValue_Rotation("Light direction", self, 0);
inputs[| 7] = nodeValue("Light height", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5) inputs[| 7] = nodeValue_Float("Light height", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] }); .setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
inputs[| 8] = nodeValue("Light intensity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) inputs[| 8] = nodeValue_Float("Light intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 9] = nodeValue("Light color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white); inputs[| 9] = nodeValue_Color("Light color", self, c_white);
inputs[| 10] = nodeValue("Ambient color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_grey); inputs[| 10] = nodeValue_Color("Ambient color", self, c_grey);
inputs[| 11] = nodeValue("3D vertex", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3vertex, []) inputs[| 11] = nodeValue("3D vertex", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3vertex, [])
.setVisible(true, true); .setVisible(true, true);
@ -38,14 +33,14 @@ function __Node_3D_Displace(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
inputs[| 12] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ]) inputs[| 12] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray(); .rejectArray();
inputs[| 13] = nodeValue("Field of view", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 60) inputs[| 13] = nodeValue_Float("Field of view", self, 60)
.setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] });
inputs[| 14] = nodeValue("Scale view with dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); inputs[| 14] = nodeValue_Bool("Scale view with dimension", self, true);
inputs[| 15] = nodeValue_Surface("Displacement map", self); inputs[| 15] = nodeValue_Surface("Displacement map", self);
inputs[| 16] = nodeValue("Strength", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) inputs[| 16] = nodeValue_Float("Strength", self, 1)
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 4, 0.01 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 4, 0.01 ] });
input_display_list = [ 11, input_display_list = [ 11,
@ -56,13 +51,13 @@ function __Node_3D_Displace(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
["Light", true], 6, 7, 8, 9, 10, ["Light", true], 6, 7, 8, 9, 10,
]; ];
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);
outputs[| 1] = nodeValue("3D scene", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3object, function() { return submit_vertex(); }); outputs[| 1] = nodeValue_Output("3D scene", self, VALUE_TYPE.d3object, function() { return submit_vertex(); });
outputs[| 2] = nodeValue("Normal pass", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 2] = nodeValue_Output("Normal pass", self, VALUE_TYPE.surface, noone);
outputs[| 3] = nodeValue("3D vertex", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3vertex, []); outputs[| 3] = nodeValue_Output("3D vertex", self, VALUE_TYPE.d3vertex, []);
output_display_list = [ output_display_list = [
0, 2, 1, 3, 0, 2, 1, 3,

View file

@ -4,10 +4,10 @@ function __Node_3D_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constru
inputs[| 0] = nodeValue("Vertex data", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3vertex, [] ) inputs[| 0] = nodeValue("Vertex data", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3vertex, [] )
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue("Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "", "Export location without '.obj' extension." ) inputs[| 1] = nodeValue_Text("Path", self, "", "Export location without '.obj' extension." )
.setDisplay(VALUE_DISPLAY.path_save, { filter: "3d object|*.obj" }); .setDisplay(VALUE_DISPLAY.path_save, { filter: "3d object|*.obj" });
inputs[| 2] = nodeValue("Export texture", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true ); inputs[| 2] = nodeValue_Bool("Export texture", self, true );
input_display_list = [ 0, input_display_list = [ 0,
["Export", false], 1, 2, ["Export", false], 1, 2,

View file

@ -6,52 +6,46 @@ function __Node_3D_Extrude(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro
inputs[| 1] = nodeValue_Dimension(self); inputs[| 1] = nodeValue_Dimension(self);
inputs[| 2] = nodeValue("Object position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 2] = nodeValue_Vector("Object position", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 3] = nodeValue("Object rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 180, 0 ]) inputs[| 3] = nodeValue_Vector("Object rotation", self, [ 0, 180, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 4] = nodeValue("Object scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 0.1 ]) inputs[| 4] = nodeValue_Vector("Object scale", self, [ 1, 1, 0.1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 5] = nodeValue("Render position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0.5, 0.5 ]) inputs[| 5] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
.setDisplay(VALUE_DISPLAY.vector)
.setUnitRef( function() { return getInputData(1); }, VALUE_UNIT.reference); .setUnitRef( function() { return getInputData(1); }, VALUE_UNIT.reference);
inputs[| 6] = nodeValue("Render rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 6] = nodeValue_Vector("Render rotation", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 7] = nodeValue("Render scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) inputs[| 7] = nodeValue_Vector("Render scale", self, [ 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 8] = nodeValue("Manual generate", self, JUNCTION_CONNECT.input, VALUE_TYPE.trigger, false ) inputs[| 8] = nodeValue_Trigger("Manual generate", self, false )
.setDisplay(VALUE_DISPLAY.button, { name: "Generate", UI : true, onClick: function() { generateMesh(); doUpdate(); } }); .setDisplay(VALUE_DISPLAY.button, { name: "Generate", UI : true, onClick: function() { generateMesh(); doUpdate(); } });
inputs[| 9] = nodeValue_Rotation("Light direction", self, 0); inputs[| 9] = nodeValue_Rotation("Light direction", self, 0);
inputs[| 10] = nodeValue("Light height", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5) inputs[| 10] = nodeValue_Float("Light height", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] }); .setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
inputs[| 11] = nodeValue("Light intensity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) inputs[| 11] = nodeValue_Float("Light intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 12] = nodeValue("Light color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white); inputs[| 12] = nodeValue_Color("Light color", self, c_white);
inputs[| 13] = nodeValue("Ambient color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_grey); inputs[| 13] = nodeValue_Color("Ambient color", self, c_grey);
inputs[| 14] = nodeValue_Surface("Height map", self); inputs[| 14] = nodeValue_Surface("Height map", self);
inputs[| 15] = nodeValue("Always update", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); inputs[| 15] = nodeValue_Bool("Always update", self, false);
inputs[| 16] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ]) inputs[| 16] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray(); .rejectArray();
inputs[| 17] = nodeValue("Field of view", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 60) inputs[| 17] = nodeValue_Float("Field of view", self, 60)
.setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] });
inputs[| 18] = nodeValue("Scale view with dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true) inputs[| 18] = nodeValue_Bool("Scale view with dimension", self, true)
inputs[| 19] = nodeValue("Smooth", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false) inputs[| 19] = nodeValue_Bool("Smooth", self, false)
input_display_list = [ input_display_list = [
["Output", false], 1, 18, ["Output", false], 1, 18,
@ -61,13 +55,13 @@ function __Node_3D_Extrude(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro
["Light", false], 9, 10, 11, 12, 13, ["Light", false], 9, 10, 11, 12, 13,
]; ];
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);
outputs[| 1] = nodeValue("3D scene", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3object, function(index) { return submit_vertex(index); }); outputs[| 1] = nodeValue_Output("3D scene", self, VALUE_TYPE.d3object, function(index) { return submit_vertex(index); });
outputs[| 2] = nodeValue("Normal pass", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 2] = nodeValue_Output("Normal pass", self, VALUE_TYPE.surface, noone);
outputs[| 3] = nodeValue("3D vertex", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3vertex, []); outputs[| 3] = nodeValue_Output("3D vertex", self, VALUE_TYPE.d3vertex, []);
output_display_list = [ output_display_list = [
0, 2, 1, 3 0, 2, 1, 3

View file

@ -4,16 +4,16 @@ function Node_3D_Light(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
if(!LOADING && !APPENDING) if(!LOADING && !APPENDING)
inputs[| 0].setValue([ 0, 0, 1 ]); inputs[| 0].setValue([ 0, 0, 1 ]);
inputs[| in_d3d + 0] = nodeValue("Active", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); inputs[| in_d3d + 0] = nodeValue_Bool("Active", self, true);
inputs[| in_d3d + 1] = nodeValue("Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white); inputs[| in_d3d + 1] = nodeValue_Color("Color", self, c_white);
inputs[| in_d3d + 2] = nodeValue("Intensity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) inputs[| in_d3d + 2] = nodeValue_Float("Intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
in_light = ds_list_size(inputs); in_light = ds_list_size(inputs);
outputs[| 0] = nodeValue("Light", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3Light, noone); outputs[| 0] = nodeValue_Output("Light", self, VALUE_TYPE.d3Light, noone);
#macro __d3d_input_list_light ["Light", false], in_d3d + 0, in_d3d + 1, in_d3d + 2 #macro __d3d_input_list_light ["Light", false], in_d3d + 0, in_d3d + 1, in_d3d + 2

View file

@ -3,7 +3,7 @@ function Node_3D_Mesh(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group) c
in_mesh = ds_list_size(inputs); in_mesh = ds_list_size(inputs);
outputs[| 0] = nodeValue("Mesh", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3Mesh, noone); outputs[| 0] = nodeValue_Output("Mesh", self, VALUE_TYPE.d3Mesh, noone);
#macro __d3d_input_list_mesh ["Mesh", false] #macro __d3d_input_list_mesh ["Mesh", false]

View file

@ -1,12 +1,12 @@
function Node_3D_Modifier(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constructor { function Node_3D_Modifier(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constructor {
name = "3D Mesh Modifier"; name = "3D Mesh Modifier";
inputs[| 0] = nodeValue("Mesh", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Mesh, noone) inputs[| 0] = nodeValue_D3Mesh("Mesh", self, noone)
.setVisible(true, true); .setVisible(true, true);
in_mesh = ds_list_size(inputs); in_mesh = ds_list_size(inputs);
outputs[| 0] = nodeValue("Mesh", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3Mesh, noone); outputs[| 0] = nodeValue_Output("Mesh", self, VALUE_TYPE.d3Mesh, noone);
static modify_object = function(_object, _data, _matrix) { #region static modify_object = function(_object, _data, _matrix) { #region
return _object; return _object;

View file

@ -1,11 +1,11 @@
function __Node_3D_Obj(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function __Node_3D_Obj(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "3D Object"; name = "3D Object";
inputs[| 0] = nodeValue("Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "") inputs[| 0] = nodeValue_Text("Path", self, "")
.setDisplay(VALUE_DISPLAY.path_load, { filter: "3d object|*.obj" }) .setDisplay(VALUE_DISPLAY.path_load, { filter: "3d object|*.obj" })
.rejectArray(); .rejectArray();
inputs[| 1] = nodeValue("Generate", self, JUNCTION_CONNECT.input, VALUE_TYPE.trigger, false ) inputs[| 1] = nodeValue_Trigger("Generate", self, false )
.setDisplay(VALUE_DISPLAY.button, { name: "Generate", UI : true, onClick: function() { .setDisplay(VALUE_DISPLAY.button, { name: "Generate", UI : true, onClick: function() {
updateObj(); updateObj();
doUpdate(); doUpdate();
@ -13,53 +13,47 @@ function __Node_3D_Obj(_x, _y, _group = noone) : Node(_x, _y, _group) constructo
inputs[| 2] = nodeValue_Dimension(self); inputs[| 2] = nodeValue_Dimension(self);
inputs[| 3] = nodeValue("Render position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0.5, 0.5 ]) inputs[| 3] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
.setDisplay(VALUE_DISPLAY.vector)
.setUnitRef( function() { return getInputData(2); }, VALUE_UNIT.reference); .setUnitRef( function() { return getInputData(2); }, VALUE_UNIT.reference);
inputs[| 4] = nodeValue("Render rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 4] = nodeValue_Vector("Render rotation", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 5] = nodeValue("Render scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) inputs[| 5] = nodeValue_Vector("Render scale", self, [ 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 6] = nodeValue_Rotation("Light direction", self, 0) inputs[| 6] = nodeValue_Rotation("Light direction", self, 0)
.rejectArray(); .rejectArray();
inputs[| 7] = nodeValue("Light height", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5) inputs[| 7] = nodeValue_Float("Light height", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] }) .setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] })
.rejectArray(); .rejectArray();
inputs[| 8] = nodeValue("Light intensity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) inputs[| 8] = nodeValue_Float("Light intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider) .setDisplay(VALUE_DISPLAY.slider)
.rejectArray(); .rejectArray();
inputs[| 9] = nodeValue("Light color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white) inputs[| 9] = nodeValue_Color("Light color", self, c_white)
.rejectArray(); .rejectArray();
inputs[| 10] = nodeValue("Ambient color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_grey) inputs[| 10] = nodeValue_Color("Ambient color", self, c_grey)
.rejectArray(); .rejectArray();
inputs[| 11] = nodeValue("Object scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ]) inputs[| 11] = nodeValue_Vector("Object scale", self, [ 1, 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 12] = nodeValue("Flip UV", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true, "Flip UV axis, can be use to fix some texture mapping error.") inputs[| 12] = nodeValue_Bool("Flip UV", self, true, "Flip UV axis, can be use to fix some texture mapping error.")
.rejectArray(); .rejectArray();
inputs[| 13] = nodeValue("Object rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 180 ]) inputs[| 13] = nodeValue_Vector("Object rotation", self, [ 0, 0, 180 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 14] = nodeValue("Object position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 14] = nodeValue_Vector("Object position", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 15] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ]) inputs[| 15] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray(); .rejectArray();
inputs[| 16] = nodeValue("Field of view", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 60) inputs[| 16] = nodeValue_Float("Field of view", self, 60)
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 90, 0.1 ] }) .setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 90, 0.1 ] })
.rejectArray(); .rejectArray();
inputs[| 17] = nodeValue("Scale view with dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true) inputs[| 17] = nodeValue_Bool("Scale view with dimension", self, true)
input_display_list = [ input_display_list = [
["Output", false], 2, 17, ["Output", false], 2, 17,
@ -72,11 +66,11 @@ function __Node_3D_Obj(_x, _y, _group = noone) : Node(_x, _y, _group) constructo
input_length = ds_list_size(inputs); input_length = ds_list_size(inputs);
input_display_len = array_length(input_display_list); input_display_len = array_length(input_display_list);
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);
outputs[| 1] = nodeValue("3D scene", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3object, function() { return submit_vertex(); }); outputs[| 1] = nodeValue_Output("3D scene", self, VALUE_TYPE.d3object, function() { return submit_vertex(); });
outputs[| 2] = nodeValue("Normal pass", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 2] = nodeValue_Output("Normal pass", self, VALUE_TYPE.surface, noone);
output_display_list = [ output_display_list = [
0, 2, 1 0, 2, 1
@ -109,7 +103,7 @@ function __Node_3D_Obj(_x, _y, _group = noone) : Node(_x, _y, _group) constructo
function createMaterial(m_index) { function createMaterial(m_index) {
var index = ds_list_size(inputs); var index = ds_list_size(inputs);
inputs[| index] = nodeValue(materialNames[m_index] + " texture", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, tex_surface); inputs[| index] = nodeValue_Surface(materialNames[m_index] + " texture", self, tex_surface);
inputs[| index].setVisible(true); inputs[| index].setVisible(true);
input_display_list[input_display_len + m_index] = index; input_display_list[input_display_len + m_index] = index;

View file

@ -8,17 +8,13 @@ function Node_3D_Object(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constr
preview_channel = 0; preview_channel = 0;
apply_anchor = false; apply_anchor = false;
inputs[| 0] = nodeValue("Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 0] = nodeValue_Vector("Position", self, [ 0, 0, 0 ], { linkable: false });
.setDisplay(VALUE_DISPLAY.vector, { linkable: false });
inputs[| 1] = nodeValue("Rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0, 1 ]) inputs[| 1] = nodeValue_Quaternion("Rotation", self, [ 0, 0, 0, 1 ]);
.setDisplay(VALUE_DISPLAY.d3quarternion);
inputs[| 2] = nodeValue("Scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ]) inputs[| 2] = nodeValue_Vector("Scale", self, [ 1, 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 3] = nodeValue("Anchor", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 3] = nodeValue_Vector("Anchor", self, [ 0, 0, 0 ], {
.setDisplay(VALUE_DISPLAY.vector, {
linkable: false, linkable: false,
side_button : button(function() { apply_anchor = !apply_anchor; triggerRender(); }) side_button : button(function() { apply_anchor = !apply_anchor; triggerRender(); })
.setIcon(THEME.icon_3d_anchor, [ function() /*=>*/ {return apply_anchor} ], c_white) .setIcon(THEME.icon_3d_anchor, [ function() /*=>*/ {return apply_anchor} ], c_white)

View file

@ -4,41 +4,33 @@ function __Node_3D_Plane(_x, _y, _group = noone) : Node_Processor(_x, _y, _group
inputs[| 0] = nodeValue_Surface("Surface in", self); inputs[| 0] = nodeValue_Surface("Surface in", self);
inputs[| 1] = nodeValue("Render position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0.5, 0.5 ]) inputs[| 1] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
.setDisplay(VALUE_DISPLAY.vector)
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference); .setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
inputs[| 2] = nodeValue("Object rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 2] = nodeValue_Vector("Object rotation", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 3] = nodeValue("Render scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) inputs[| 3] = nodeValue_Vector("Render scale", self, [ 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 4] = nodeValue_Enum_Scroll("Output dimension", self, OUTPUT_SCALING.same_as_input, [ "Same as input", "Constant", "Relative to input" ]) inputs[| 4] = nodeValue_Enum_Scroll("Output dimension", self, OUTPUT_SCALING.same_as_input, [ "Same as input", "Constant", "Relative to input" ])
.rejectArray(); .rejectArray();
inputs[| 5] = nodeValue("Constant dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF) inputs[| 5] = nodeValue_Vector("Constant dimension", self, DEF_SURF);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 6] = nodeValue("Object position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 6] = nodeValue_Vector("Object position", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 7] = nodeValue("Object scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ]) inputs[| 7] = nodeValue_Vector("Object scale", self, [ 1, 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 8] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ]) inputs[| 8] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray(); .rejectArray();
inputs[| 9] = nodeValue("Field of view", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 60) inputs[| 9] = nodeValue_Float("Field of view", self, 60)
.setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] });
inputs[| 10] = nodeValue("Texture scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) inputs[| 10] = nodeValue_Vector("Texture scale", self, [ 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 11] = nodeValue("Texture shift", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) inputs[| 11] = nodeValue_Vector("Texture shift", self, [ 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 12] = nodeValue("Subdiviion", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1) inputs[| 12] = nodeValue_Int("Subdiviion", self, 1)
inputs[| 13] = nodeValue_Enum_Button("Normal axis", self, 2, [ "X", "Y", "Z" ]); inputs[| 13] = nodeValue_Enum_Button("Normal axis", self, 2, [ "X", "Y", "Z" ]);
@ -50,11 +42,11 @@ function __Node_3D_Plane(_x, _y, _group = noone) : Node_Processor(_x, _y, _group
["Texture", false], 10, 11, ["Texture", false], 10, 11,
]; ];
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);
outputs[| 1] = nodeValue("3D scene", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3object, function() { return submit_vertex(); }); outputs[| 1] = nodeValue_Output("3D scene", self, VALUE_TYPE.d3object, function() { return submit_vertex(); });
outputs[| 2] = nodeValue("3D vertex", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3vertex, []); outputs[| 2] = nodeValue_Output("3D vertex", self, VALUE_TYPE.d3vertex, []);
output_display_list = [ output_display_list = [
0, 1, 2 0, 1, 2

View file

@ -4,49 +4,43 @@ function __Node_3D_Cone(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[| 0] = nodeValue_Dimension(self); inputs[| 0] = nodeValue_Dimension(self);
inputs[| 1] = nodeValue("Render position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0.5, 0.5 ]) inputs[| 1] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
.setDisplay(VALUE_DISPLAY.vector)
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference); .setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
inputs[| 2] = nodeValue("Render rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 2] = nodeValue_Vector("Render rotation", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 3] = nodeValue("Render scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) inputs[| 3] = nodeValue_Vector("Render scale", self, [ 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 4] = nodeValue("Object scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ]) inputs[| 4] = nodeValue_Vector("Object scale", self, [ 1, 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 5] = nodeValue_Rotation("Light direction", self, 0); inputs[| 5] = nodeValue_Rotation("Light direction", self, 0);
inputs[| 6] = nodeValue("Light height", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5) inputs[| 6] = nodeValue_Float("Light height", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] }); .setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
inputs[| 7] = nodeValue("Light intensity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) inputs[| 7] = nodeValue_Float("Light intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 8] = nodeValue("Light color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white); inputs[| 8] = nodeValue_Color("Light color", self, c_white);
inputs[| 9] = nodeValue("Ambient color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_grey); inputs[| 9] = nodeValue_Color("Ambient color", self, c_grey);
inputs[| 10] = nodeValue("Object rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 10] = nodeValue_Vector("Object rotation", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 11] = nodeValue("Object position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 11] = nodeValue_Vector("Object position", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 12] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ]) inputs[| 12] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray(); .rejectArray();
inputs[| 13] = nodeValue("Field of view", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 60) inputs[| 13] = nodeValue_Float("Field of view", self, 60)
.setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] });
inputs[| 14] = nodeValue("Sides", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 16); inputs[| 14] = nodeValue_Int("Sides", self, 16);
inputs[| 15] = nodeValue_Surface("Textures base", self); inputs[| 15] = nodeValue_Surface("Textures base", self);
inputs[| 16] = nodeValue_Surface("Textures side", self); inputs[| 16] = nodeValue_Surface("Textures side", self);
inputs[| 17] = nodeValue("Scale view with dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true) inputs[| 17] = nodeValue_Bool("Scale view with dimension", self, true)
input_display_list = [ input_display_list = [
["Output", false], 0, 17, ["Output", false], 0, 17,
@ -57,13 +51,13 @@ function __Node_3D_Cone(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
["Light", false], 5, 6, 7, 8, 9, ["Light", false], 5, 6, 7, 8, 9,
]; ];
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);
outputs[| 1] = nodeValue("3D scene", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3object, function() { return submit_vertex(); }); outputs[| 1] = nodeValue_Output("3D scene", self, VALUE_TYPE.d3object, function() { return submit_vertex(); });
outputs[| 2] = nodeValue("Normal pass", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 2] = nodeValue_Output("Normal pass", self, VALUE_TYPE.surface, noone);
outputs[| 3] = nodeValue("3D vertex", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3vertex, []); outputs[| 3] = nodeValue_Output("3D vertex", self, VALUE_TYPE.d3vertex, []);
output_display_list = [ output_display_list = [
0, 2, 1, 3 0, 2, 1, 3

View file

@ -7,17 +7,14 @@ function __Node_3D_Cube(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[| 1] = nodeValue_Dimension(self); inputs[| 1] = nodeValue_Dimension(self);
inputs[| 2] = nodeValue("Render position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0.5, 0.5 ]) inputs[| 2] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
.setDisplay(VALUE_DISPLAY.vector)
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference); .setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
inputs[| 3] = nodeValue("Render rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 3] = nodeValue_Vector("Render rotation", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 4] = nodeValue("Render scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) inputs[| 4] = nodeValue_Vector("Render scale", self, [ 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 5] = nodeValue("Textures per face", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); inputs[| 5] = nodeValue_Bool("Textures per face", self, false);
inputs[| 6] = nodeValue_Surface("Textures 0", self).setVisible(false); inputs[| 6] = nodeValue_Surface("Textures 0", self).setVisible(false);
inputs[| 7] = nodeValue_Surface("Textures 1", self).setVisible(false); inputs[| 7] = nodeValue_Surface("Textures 1", self).setVisible(false);
@ -26,34 +23,31 @@ function __Node_3D_Cube(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[| 10] = nodeValue_Surface("Textures 4", self).setVisible(false); inputs[| 10] = nodeValue_Surface("Textures 4", self).setVisible(false);
inputs[| 11] = nodeValue_Surface("Textures 5", self).setVisible(false); inputs[| 11] = nodeValue_Surface("Textures 5", self).setVisible(false);
inputs[| 12] = nodeValue("Object scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ]) inputs[| 12] = nodeValue_Vector("Object scale", self, [ 1, 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 13] = nodeValue_Rotation("Light direction", self, 0); inputs[| 13] = nodeValue_Rotation("Light direction", self, 0);
inputs[| 14] = nodeValue("Light height", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5) inputs[| 14] = nodeValue_Float("Light height", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] }); .setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
inputs[| 15] = nodeValue("Light intensity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) inputs[| 15] = nodeValue_Float("Light intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 16] = nodeValue("Light color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white); inputs[| 16] = nodeValue_Color("Light color", self, c_white);
inputs[| 17] = nodeValue("Ambient color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_grey); inputs[| 17] = nodeValue_Color("Ambient color", self, c_grey);
inputs[| 18] = nodeValue("Object rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 18] = nodeValue_Vector("Object rotation", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 19] = nodeValue("Object position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 19] = nodeValue_Vector("Object position", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 20] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ]) inputs[| 20] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray(); .rejectArray();
inputs[| 21] = nodeValue("Field of view", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 60) inputs[| 21] = nodeValue_Float("Field of view", self, 60)
.setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] });
inputs[| 22] = nodeValue("Scale view with dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true) inputs[| 22] = nodeValue_Bool("Scale view with dimension", self, true)
input_display_list = [ input_display_list = [
["Output", false], 1, 22, ["Output", false], 1, 22,
@ -63,13 +57,13 @@ function __Node_3D_Cube(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
["Light", false], 13, 14, 15, 16, 17, ["Light", false], 13, 14, 15, 16, 17,
]; ];
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);
outputs[| 1] = nodeValue("3D scene", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3object, function(index) { return submit_vertex(index); }); outputs[| 1] = nodeValue_Output("3D scene", self, VALUE_TYPE.d3object, function(index) { return submit_vertex(index); });
outputs[| 2] = nodeValue("Normal pass", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 2] = nodeValue_Output("Normal pass", self, VALUE_TYPE.surface, noone);
outputs[| 3] = nodeValue("3D vertex", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3vertex, []); outputs[| 3] = nodeValue_Output("3D vertex", self, VALUE_TYPE.d3vertex, []);
output_display_list = [ output_display_list = [
0, 2, 1, 3 0, 2, 1, 3

View file

@ -3,56 +3,50 @@ function __Node_3D_Cylinder(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
batch_output = false; batch_output = false;
dimension_index = 2; dimension_index = 2;
inputs[| 0] = nodeValue("Sides", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 16); inputs[| 0] = nodeValue_Int("Sides", self, 16);
inputs[| 1] = nodeValue("Thickness", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.2); inputs[| 1] = nodeValue_Float("Thickness", self, 0.2);
inputs[| 2] = nodeValue_Dimension(self); inputs[| 2] = nodeValue_Dimension(self);
inputs[| 3] = nodeValue("Render position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0.5, 0.5 ]) inputs[| 3] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
.setDisplay(VALUE_DISPLAY.vector)
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference); .setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
inputs[| 4] = nodeValue("Render rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 4] = nodeValue_Vector("Render rotation", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 5] = nodeValue("Render scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) inputs[| 5] = nodeValue_Vector("Render scale", self, [ 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 6] = nodeValue_Surface("Textures top", self); inputs[| 6] = nodeValue_Surface("Textures top", self);
inputs[| 7] = nodeValue_Surface("Textures bottom", self); inputs[| 7] = nodeValue_Surface("Textures bottom", self);
inputs[| 8] = nodeValue_Surface("Textures side", self); inputs[| 8] = nodeValue_Surface("Textures side", self);
inputs[| 9] = nodeValue("Object scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ]) inputs[| 9] = nodeValue_Vector("Object scale", self, [ 1, 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 10] = nodeValue_Rotation("Light direction", self, 0); inputs[| 10] = nodeValue_Rotation("Light direction", self, 0);
inputs[| 11] = nodeValue("Light height", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5) inputs[| 11] = nodeValue_Float("Light height", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] }); .setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
inputs[| 12] = nodeValue("Light intensity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) inputs[| 12] = nodeValue_Float("Light intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 13] = nodeValue("Light color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white); inputs[| 13] = nodeValue_Color("Light color", self, c_white);
inputs[| 14] = nodeValue("Ambient color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_grey); inputs[| 14] = nodeValue_Color("Ambient color", self, c_grey);
inputs[| 15] = nodeValue("Object rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 15] = nodeValue_Vector("Object rotation", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 16] = nodeValue("Object position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 16] = nodeValue_Vector("Object position", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 17] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ]) inputs[| 17] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray(); .rejectArray();
inputs[| 18] = nodeValue("Field of view", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 60) inputs[| 18] = nodeValue_Float("Field of view", self, 60)
.setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] });
inputs[| 19] = nodeValue("Taper", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) inputs[| 19] = nodeValue_Float("Taper", self, 1)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 20] = nodeValue("Scale view with dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true) inputs[| 20] = nodeValue_Bool("Scale view with dimension", self, true)
input_display_list = [ input_display_list = [
["Output", false], 2, 20, ["Output", false], 2, 20,
@ -63,13 +57,13 @@ function __Node_3D_Cylinder(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
["Light", false], 10, 11, 12, 13, 14, ["Light", false], 10, 11, 12, 13, 14,
]; ];
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);
outputs[| 1] = nodeValue("3D scene", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3object, function() { return submit_vertex(); }); outputs[| 1] = nodeValue_Output("3D scene", self, VALUE_TYPE.d3object, function() { return submit_vertex(); });
outputs[| 2] = nodeValue("Normal pass", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 2] = nodeValue_Output("Normal pass", self, VALUE_TYPE.surface, noone);
outputs[| 3] = nodeValue("3D vertex", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3vertex, []); outputs[| 3] = nodeValue_Output("3D vertex", self, VALUE_TYPE.d3vertex, []);
output_display_list = [ output_display_list = [
0, 2, 1, 3 0, 2, 1, 3

View file

@ -3,50 +3,44 @@ function __Node_3D_Sphere(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
batch_output = false; batch_output = false;
dimension_index = 1; dimension_index = 1;
inputs[| 0] = nodeValue("Subdivisions", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [8, 4], "Amount of polygon in X and Y axis.") inputs[| 0] = nodeValue_Vector("Subdivisions", self, [8, 4])
.setDisplay(VALUE_DISPLAY.vector); .setTooltip("Amount of polygon in X and Y axis.");
inputs[| 1] = nodeValue_Dimension(self); inputs[| 1] = nodeValue_Dimension(self);
inputs[| 2] = nodeValue("Render position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0.5, 0.5 ]) inputs[| 2] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
.setDisplay(VALUE_DISPLAY.vector)
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference); .setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
inputs[| 3] = nodeValue("Render rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 3] = nodeValue_Vector("Render rotation", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 4] = nodeValue("Render scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) inputs[| 4] = nodeValue_Vector("Render scale", self, [ 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 5] = nodeValue_Surface("Textures", self); inputs[| 5] = nodeValue_Surface("Textures", self);
inputs[| 6] = nodeValue("Object scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ]) inputs[| 6] = nodeValue_Vector("Object scale", self, [ 1, 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 7] = nodeValue_Rotation("Light direction", self, 0); inputs[| 7] = nodeValue_Rotation("Light direction", self, 0);
inputs[| 8] = nodeValue("Light height", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5) inputs[| 8] = nodeValue_Float("Light height", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] }); .setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
inputs[| 9] = nodeValue("Light intensity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) inputs[| 9] = nodeValue_Float("Light intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 10] = nodeValue("Light color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white); inputs[| 10] = nodeValue_Color("Light color", self, c_white);
inputs[| 11] = nodeValue("Ambient color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_grey); inputs[| 11] = nodeValue_Color("Ambient color", self, c_grey);
inputs[| 12] = nodeValue("Object rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 12] = nodeValue_Vector("Object rotation", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 13] = nodeValue("Object position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 13] = nodeValue_Vector("Object position", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 14] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ]) inputs[| 14] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray(); .rejectArray();
inputs[| 15] = nodeValue("Field of view", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 60) inputs[| 15] = nodeValue_Float("Field of view", self, 60)
.setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] });
inputs[| 16] = nodeValue("Scale view with dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true) inputs[| 16] = nodeValue_Bool("Scale view with dimension", self, true)
input_display_list = [ input_display_list = [
["Output", false], 1, 16, ["Output", false], 1, 16,
@ -57,13 +51,13 @@ function __Node_3D_Sphere(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
["Light", false], 7, 8, 9, 10, 11, ["Light", false], 7, 8, 9, 10, 11,
]; ];
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);
outputs[| 1] = nodeValue("3D scene", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3object, function() { return submit_vertex(); }); outputs[| 1] = nodeValue_Output("3D scene", self, VALUE_TYPE.d3object, function() { return submit_vertex(); });
outputs[| 2] = nodeValue("Normal pass", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 2] = nodeValue_Output("Normal pass", self, VALUE_TYPE.surface, noone);
outputs[| 3] = nodeValue("3D vertex", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3vertex, []); outputs[| 3] = nodeValue_Output("3D vertex", self, VALUE_TYPE.d3vertex, []);
output_display_list = [ output_display_list = [
0, 2, 1, 3 0, 2, 1, 3
] ]

View file

@ -3,42 +3,39 @@
// inputs[| 2] = nodeValue_Dimension(self); // inputs[| 2] = nodeValue_Dimension(self);
// inputs[| 3] = nodeValue("Render position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0.5, 0.5 ]) // inputs[| 3] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
// .setDisplay(VALUE_DISPLAY.vector)
// .setUnitRef( function() { return getInputData(2); }, VALUE_UNIT.reference); // .setUnitRef( function() { return getInputData(2); }, VALUE_UNIT.reference);
// inputs[| 4] = nodeValue("Render rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) // inputs[| 4] = nodeValue_Vector("Render rotation", self, [ 0, 0, 0 ]);
// .setDisplay(VALUE_DISPLAY.vector);
// inputs[| 5] = nodeValue("Render scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) // inputs[| 5] = nodeValue_Vector("Render scale", self, [ 1, 1 ]);
// .setDisplay(VALUE_DISPLAY.vector);
// inputs[| 6] = nodeValue("Light direction", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0) // inputs[| 6] = nodeValue_Float("Light direction", self, 0)
// .setDisplay(VALUE_DISPLAY.rotation) // .setDisplay(VALUE_DISPLAY.rotation)
// .rejectArray(); // .rejectArray();
// inputs[| 7] = nodeValue("Light height", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5) // inputs[| 7] = nodeValue_Float("Light height", self, 0.5)
// .setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] }) // .setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] })
// .rejectArray(); // .rejectArray();
// inputs[| 8] = nodeValue("Light intensity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) // inputs[| 8] = nodeValue_Float("Light intensity", self, 1)
// .setDisplay(VALUE_DISPLAY.slider) // .setDisplay(VALUE_DISPLAY.slider)
// .rejectArray(); // .rejectArray();
// inputs[| 9] = nodeValue("Light color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white) // inputs[| 9] = nodeValue_Color("Light color", self, c_white)
// .rejectArray(); // .rejectArray();
// inputs[| 10] = nodeValue("Ambient color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_grey) // inputs[| 10] = nodeValue_Color("Ambient color", self, c_grey)
// .rejectArray(); // .rejectArray();
// inputs[| 15] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ]) // inputs[| 15] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
// .rejectArray(); // .rejectArray();
// inputs[| 16] = nodeValue("Field of view", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 60) // inputs[| 16] = nodeValue_Float("Field of view", self, 60)
// .setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 90, 1 ] }) // .setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 90, 1 ] })
// .rejectArray(); // .rejectArray();
// inputs[| 17] = nodeValue("Scale view with dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true) // inputs[| 17] = nodeValue_Bool("Scale view with dimension", self, true)
// input_display_list = [ // input_display_list = [
// ["Output", false], 2, 17, // ["Output", false], 2, 17,
@ -51,11 +48,11 @@
// input_length = ds_list_size(inputs); // input_length = ds_list_size(inputs);
// input_display_len = array_length(input_display_list); // input_display_len = array_length(input_display_list);
// outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); // outputs[| 0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);
// outputs[| 1] = nodeValue("3D scene", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3object, function() { return submit_vertex(); }); // outputs[| 1] = nodeValue_Output("3D scene", self, VALUE_TYPE.d3object, function() { return submit_vertex(); });
// outputs[| 2] = nodeValue("Normal pass", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); // outputs[| 2] = nodeValue_Output("Normal pass", self, VALUE_TYPE.surface, noone);
// output_display_list = [ // output_display_list = [
// 0, 2, 1 // 0, 2, 1
@ -84,7 +81,7 @@
// function createMaterial(m_index) { // function createMaterial(m_index) {
// var index = ds_list_size(inputs); // var index = ds_list_size(inputs);
// inputs[| index] = nodeValue(materialNames[m_index] + " texture", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, tex_surface); // inputs[| index] = nodeValue_Surface(materialNames[m_index] + " texture", self, tex_surface);
// inputs[| index].setVisible(true); // inputs[| index].setVisible(true);
// input_display_list[input_display_len + m_index] = index; // input_display_list[input_display_len + m_index] = index;

View file

@ -3,65 +3,56 @@ function __Node_3D_Repeat(_x, _y, _group = noone) : Node(_x, _y, _group) constru
inputs[| 0] = nodeValue_Dimension(self); inputs[| 0] = nodeValue_Dimension(self);
inputs[| 1] = nodeValue("Object position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 1] = nodeValue_Vector("Object position", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 2] = nodeValue("Object rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 2] = nodeValue_Vector("Object rotation", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 3] = nodeValue("Object scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ]) inputs[| 3] = nodeValue_Vector("Object scale", self, [ 1, 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 4] = nodeValue("Render position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0.5, 0.5 ]) inputs[| 4] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
.setDisplay(VALUE_DISPLAY.vector)
.setUnitRef( function() { return getInputData(0); }, VALUE_UNIT.reference); .setUnitRef( function() { return getInputData(0); }, VALUE_UNIT.reference);
inputs[| 5] = nodeValue("Render scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) inputs[| 5] = nodeValue_Vector("Render scale", self, [ 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 6] = nodeValue_Rotation("Light direction", self, 0); inputs[| 6] = nodeValue_Rotation("Light direction", self, 0);
inputs[| 7] = nodeValue("Light height", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5) inputs[| 7] = nodeValue_Float("Light height", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] }); .setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
inputs[| 8] = nodeValue("Light intensity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) inputs[| 8] = nodeValue_Float("Light intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 9] = nodeValue("Light color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white); inputs[| 9] = nodeValue_Color("Light color", self, c_white);
inputs[| 10] = nodeValue("Ambient color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_grey); inputs[| 10] = nodeValue_Color("Ambient color", self, c_grey);
inputs[| 11] = nodeValue("3D object", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3object, noone) inputs[| 11] = nodeValue("3D object", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3object, noone)
.setVisible(true, true); .setVisible(true, true);
inputs[| 12] = nodeValue("Repeat", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1, "Amount of copies to be generated."); inputs[| 12] = nodeValue_Int("Repeat", self, 1, "Amount of copies to be generated.");
inputs[| 13] = nodeValue("Repeat position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 0, 0 ]) inputs[| 13] = nodeValue_Vector("Repeat position", self, [ 1, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 14] = nodeValue("Repeat rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 14] = nodeValue_Vector("Repeat rotation", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 15] = nodeValue("Repeat scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ]) inputs[| 15] = nodeValue_Vector("Repeat scale", self, [ 1, 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 16] = nodeValue_Enum_Button("Repeat pattern", self, 0, [ "Linear", "Circular" ]) inputs[| 16] = nodeValue_Enum_Button("Repeat pattern", self, 0, [ "Linear", "Circular" ])
.rejectArray(); .rejectArray();
inputs[| 17] = nodeValue_Enum_Button("Axis", self, 0, [ "x", "y", "z" ]); inputs[| 17] = nodeValue_Enum_Button("Axis", self, 0, [ "x", "y", "z" ]);
inputs[| 18] = nodeValue("Radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1); inputs[| 18] = nodeValue_Float("Radius", self, 1);
inputs[| 19] = nodeValue("Rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 360 ]) inputs[| 19] = nodeValue_Rotation_Range("Rotation", self, [ 0, 360 ]);
.setDisplay(VALUE_DISPLAY.rotation_range);
inputs[| 20] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ]) inputs[| 20] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray(); .rejectArray();
inputs[| 21] = nodeValue("Field of view", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 60) inputs[| 21] = nodeValue_Float("Field of view", self, 60)
.setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] });
inputs[| 22] = nodeValue("Scale view with dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true) inputs[| 22] = nodeValue_Bool("Scale view with dimension", self, true)
input_display_list = [ 11, input_display_list = [ 11,
["Output", false], 0, 22, ["Output", false], 0, 22,
@ -72,11 +63,11 @@ function __Node_3D_Repeat(_x, _y, _group = noone) : Node(_x, _y, _group) constru
]; ];
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);
outputs[| 1] = nodeValue("3D objects", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3object, function() { return submit_vertex(); }); outputs[| 1] = nodeValue_Output("3D objects", self, VALUE_TYPE.d3object, function() { return submit_vertex(); });
outputs[| 2] = nodeValue("Normal pass", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 2] = nodeValue_Output("Normal pass", self, VALUE_TYPE.surface, noone);
output_display_list = [ output_display_list = [
0, 2, 1 0, 2, 1

View file

@ -4,33 +4,28 @@ function __Node_3D_Transform(_x, _y, _group = noone) : Node_Processor(_x, _y, _g
inputs[| 0] = nodeValue_Dimension(self); inputs[| 0] = nodeValue_Dimension(self);
inputs[| 1] = nodeValue("Object position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 1] = nodeValue_Vector("Object position", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 2] = nodeValue("Object rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 2] = nodeValue_Vector("Object rotation", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 3] = nodeValue("Object scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ]) inputs[| 3] = nodeValue_Vector("Object scale", self, [ 1, 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 4] = nodeValue("Render position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0.5, 0.5 ]) inputs[| 4] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
.setDisplay(VALUE_DISPLAY.vector)
.setUnitRef( function() { return getInputData(2); }, VALUE_UNIT.reference); .setUnitRef( function() { return getInputData(2); }, VALUE_UNIT.reference);
inputs[| 5] = nodeValue("Render scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) inputs[| 5] = nodeValue_Vector("Render scale", self, [ 1, 1 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 6] = nodeValue_Rotation("Light direction", self, 0); inputs[| 6] = nodeValue_Rotation("Light direction", self, 0);
inputs[| 7] = nodeValue("Light height", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5) inputs[| 7] = nodeValue_Float("Light height", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] }); .setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
inputs[| 8] = nodeValue("Light intensity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) inputs[| 8] = nodeValue_Float("Light intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 9] = nodeValue("Light color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white); inputs[| 9] = nodeValue_Color("Light color", self, c_white);
inputs[| 10] = nodeValue("Ambient color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_grey); inputs[| 10] = nodeValue_Color("Ambient color", self, c_grey);
inputs[| 11] = nodeValue("3D object", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3object, noone) inputs[| 11] = nodeValue("3D object", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3object, noone)
.setVisible(true, true); .setVisible(true, true);
@ -38,10 +33,10 @@ function __Node_3D_Transform(_x, _y, _group = noone) : Node_Processor(_x, _y, _g
inputs[| 12] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ]) inputs[| 12] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray(); .rejectArray();
inputs[| 13] = nodeValue("Field of view", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 60) inputs[| 13] = nodeValue_Float("Field of view", self, 60)
.setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] });
inputs[| 14] = nodeValue("Scale view with dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true) inputs[| 14] = nodeValue_Bool("Scale view with dimension", self, true)
input_display_list = [ 11, input_display_list = [ 11,
["Output", false], 0, 14, ["Output", false], 0, 14,
@ -50,11 +45,11 @@ function __Node_3D_Transform(_x, _y, _group = noone) : Node_Processor(_x, _y, _g
["Light", true], 6, 7, 8, 9, 10, ["Light", true], 6, 7, 8, 9, 10,
]; ];
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);
outputs[| 1] = nodeValue("3D scene", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3object, function() { return submit_vertex(); }); outputs[| 1] = nodeValue_Output("3D scene", self, VALUE_TYPE.d3object, function() { return submit_vertex(); });
outputs[| 2] = nodeValue("Normal pass", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 2] = nodeValue_Output("Normal pass", self, VALUE_TYPE.surface, noone);
output_display_list = [ output_display_list = [
0, 2, 1 0, 2, 1

View file

@ -20,35 +20,31 @@ function Node_VFX_effector(_x, _y, _group = noone) : Node(_x, _y, _group) constr
setDimension(96, 48); setDimension(96, 48);
seed = 1; seed = 1;
inputs[| 0] = nodeValue("Particles", self, JUNCTION_CONNECT.input, VALUE_TYPE.particle, -1 ) inputs[| 0] = nodeValue_Particle("Particles", self, -1 )
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue("Area", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, DEF_AREA) inputs[| 1] = nodeValue_Area("Area", self, DEF_AREA)
.setDisplay(VALUE_DISPLAY.area)
.rejectArray(); .rejectArray();
inputs[| 2] = nodeValue("Falloff", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_01 ) inputs[| 2] = nodeValue("Falloff", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_01 )
.rejectArray(); .rejectArray();
inputs[| 3] = nodeValue("Falloff distance", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 4 ) inputs[| 3] = nodeValue_Float("Falloff distance", self, 4 )
.rejectArray(); .rejectArray();
inputs[| 4] = nodeValue("Effect Vector", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ -1, 0 ] ) inputs[| 4] = nodeValue_Vector("Effect Vector", self, [ -1, 0 ] )
.setDisplay(VALUE_DISPLAY.vector)
.rejectArray(); .rejectArray();
inputs[| 5] = nodeValue("Strength", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1 ) inputs[| 5] = nodeValue_Float("Strength", self, 1 )
.rejectArray(); .rejectArray();
inputs[| 6] = nodeValue("Rotate particle", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) inputs[| 6] = nodeValue_Rotation_Range("Rotate particle", self, [ 0, 0 ] )
.setDisplay(VALUE_DISPLAY.rotation_range)
.rejectArray(); .rejectArray();
inputs[| 7] = nodeValue("Scale particle", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0, 0 ] ) inputs[| 7] = nodeValue_Vec2_Range("Scale particle", self, [ 0, 0, 0, 0 ] , { linked : true })
.setDisplay(VALUE_DISPLAY.vector_range, { linked : true })
.rejectArray(); .rejectArray();
inputs[| 8] = nodeValue("Seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, seed_random(6)) inputs[| 8] = nodeValue_Int("Seed", self, seed_random(6))
.setDisplay(VALUE_DISPLAY._default, { side_button : button(function() { randomize(); inputs[| 8].setValue(seed_random(6)); }).setIcon(THEME.icon_random, 0, COLORS._main_icon) }) .setDisplay(VALUE_DISPLAY._default, { side_button : button(function() { randomize(); inputs[| 8].setValue(seed_random(6)); }).setIcon(THEME.icon_random, 0, COLORS._main_icon) })
.rejectArray(); .rejectArray();
@ -59,7 +55,7 @@ function Node_VFX_effector(_x, _y, _group = noone) : Node(_x, _y, _group) constr
["Effect", false], 8, 4, 5, 6, 7, ["Effect", false], 8, 4, 5, 6, 7,
]; ];
outputs[| 0] = nodeValue("Particles", self, JUNCTION_CONNECT.output, VALUE_TYPE.particle, -1 ); outputs[| 0] = nodeValue_Output("Particles", self, VALUE_TYPE.particle, -1 );
UPDATE_PART_FORWARD UPDATE_PART_FORWARD

View file

@ -62,7 +62,7 @@ function Node_Custom(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
for( var i = 0, n = array_length(info.outputs); i < n; i++ ) { for( var i = 0, n = array_length(info.outputs); i < n; i++ ) {
var _output = info.outputs[i]; var _output = info.outputs[i];
outputs[| i] = nodeValue(_output.name, self, JUNCTION_CONNECT.output, value_type_from_string(_output.type), _output.value) outputs[| i] = nodeValue_Output(_output.name, self, value_type_from_string(_output.type), _output.value)
.setVisible(_output.show_in_graph); .setVisible(_output.show_in_graph);
output_index_map[? _output.name] = i; output_index_map[? _output.name] = i;

View file

@ -3,7 +3,7 @@ function Node_Process_Template(_x, _y, _group = noone) : Node_Processor(_x, _y,
inputs[| 0] = nodeValue_Surface("", self); inputs[| 0] = nodeValue_Surface("", self);
outputs[| 0] = nodeValue("", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("", self, VALUE_TYPE.surface, noone);
input_display_list = [ 0 ]; input_display_list = [ 0 ];

View file

@ -16,7 +16,7 @@ function Node_Shader(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
shader = noone; shader = noone;
shader_data = []; shader_data = [];
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);
static setShader = function(_data) { #region static setShader = function(_data) { #region
for( var i = 0, n = array_length(shader_data); i < n; i++ ) { for( var i = 0, n = array_length(shader_data); i < n; i++ ) {

View file

@ -3,7 +3,7 @@ function Node_Template(_x, _y, _group = noone) : Node(_x, _y, _group) constructo
inputs[| 0] = nodeValue_Surface("", self); inputs[| 0] = nodeValue_Surface("", self);
outputs[| 0] = nodeValue("", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("", self, VALUE_TYPE.surface, noone);
input_display_list = [ 0 ]; input_display_list = [ 0 ];

View file

@ -1,3 +1,15 @@
function nodeValue_Vector(_name, _node, _value, _data = {}) {
var _len = array_length(_value);
switch(_len) {
case 2 : return new NodeValue_Vec2(_name, _node, _value, _data);
case 3 : return new NodeValue_Vec3(_name, _node, _value, _data);
case 4 : return new NodeValue_Vec4(_name, _node, _value, _data);
}
return new NodeValue_Array(_name, _node, _value, "", _len);
}
function NodeValue_Array(_name, _node, _value, _tooltip = "", _length = 2) : NodeValue(_name, _node, JUNCTION_CONNECT.input, VALUE_TYPE.float, _value, _tooltip) constructor { function NodeValue_Array(_name, _node, _value, _tooltip = "", _length = 2) : NodeValue(_name, _node, JUNCTION_CONNECT.input, VALUE_TYPE.float, _value, _tooltip) constructor {
data_array_length = _length; data_array_length = _length;

View file

@ -4,133 +4,116 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
inputs[| 0] = nodeValue_Surface("Particle sprite", self); inputs[| 0] = nodeValue_Surface("Particle sprite", self);
inputs[| 1] = nodeValue("Spawn delay", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4, "Frames delay between each particle spawn." ); inputs[| 1] = nodeValue_Int("Spawn delay", self, 4, "Frames delay between each particle spawn." );
inputs[| 2] = nodeValue("Spawn amount", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 2, 2 ], "Amount of particle spawn in that frame." ) inputs[| 2] = nodeValue_Range("Spawn amount", self, [ 2, 2 ] , { linked : true })
.setDisplay(VALUE_DISPLAY.range, { linked : true }); .setTooltip("Amount of particle spawn in that frame.");
inputs[| 3] = nodeValue("Spawn area", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, DEF_AREA ) inputs[| 3] = nodeValue_Area("Spawn area", self, DEF_AREA );
.setDisplay(VALUE_DISPLAY.area);
inputs[| 4] = nodeValue_Enum_Scroll("Spawn distribution", self, 0, [ "Area", "Border", "Map" ] ); inputs[| 4] = nodeValue_Enum_Scroll("Spawn distribution", self, 0, [ "Area", "Border", "Map" ] );
inputs[| 5] = nodeValue("Lifespan", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 20, 30 ] ) inputs[| 5] = nodeValue_Range("Lifespan", self, [ 20, 30 ] );
.setDisplay(VALUE_DISPLAY.range);
inputs[| 6] = nodeValue("Spawn direction", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 0, 45, 135, 0, 0 ] ) inputs[| 6] = nodeValue_Rotation_Random("Spawn direction", self, [ 0, 45, 135, 0, 0 ] );
.setDisplay(VALUE_DISPLAY.rotation_random);
inputs[| 7] = nodeValue("Acceleration", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) inputs[| 7] = nodeValue_Range("Acceleration", self, [ 0, 0 ] , { linked : true });
.setDisplay(VALUE_DISPLAY.range, { linked : true });
inputs[| 8] = nodeValue("Orientation", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 0, 0, 0, 0, 0 ] ) inputs[| 8] = nodeValue_Rotation_Random("Orientation", self, [ 0, 0, 0, 0, 0 ] );
.setDisplay(VALUE_DISPLAY.rotation_random);
inputs[| 9] = nodeValue("Rotational speed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) inputs[| 9] = nodeValue_Range("Rotational speed", self, [ 0, 0 ] , { linked : true });
.setDisplay(VALUE_DISPLAY.range, { linked : true });
inputs[| 10] = nodeValue("Spawn scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1, 1 ] ) inputs[| 10] = nodeValue_Vec2_Range("Spawn scale", self, [ 1, 1, 1, 1 ] , { linked : true });
.setDisplay(VALUE_DISPLAY.vector_range, { linked : true });
inputs[| 11] = nodeValue("Scale over time", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11 ); inputs[| 11] = nodeValue("Scale over time", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11 );
inputs[| 12] = nodeValue("Color over lifetime", self, JUNCTION_CONNECT.input, VALUE_TYPE.gradient, new gradientObject(cola(c_white)) ); inputs[| 12] = nodeValue_Gradient("Color over lifetime", self, new gradientObject(cola(c_white)));
inputs[| 13] = nodeValue("Alpha", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) inputs[| 13] = nodeValue_Range("Alpha", self, [ 1, 1 ], { linked : true });
.setDisplay(VALUE_DISPLAY.range, { linked : true });
inputs[| 14] = nodeValue("Alpha over time", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11); inputs[| 14] = nodeValue("Alpha over time", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11);
inputs[| 15] = nodeValue("Rotate by direction", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false, "Make the particle rotates to follow its movement."); inputs[| 15] = nodeValue_Bool("Rotate by direction", self, false, "Make the particle rotates to follow its movement.");
inputs[| 16] = nodeValue_Enum_Button("Spawn type", self, 0, [ "Stream", "Burst", "Trigger" ]); inputs[| 16] = nodeValue_Enum_Button("Spawn type", self, 0, [ "Stream", "Burst", "Trigger" ]);
inputs[| 17] = nodeValue("Spawn size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ] ) inputs[| 17] = nodeValue_Range("Spawn size", self, [ 1, 1 ] , { linked : true });
.setDisplay(VALUE_DISPLAY.range, { linked : true });
inputs[| 18] = nodeValue("Spawn velocity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 2 ] ) inputs[| 18] = nodeValue_Range("Spawn velocity", self, [ 1, 2 ] );
.setDisplay(VALUE_DISPLAY.range);
inputs[| 19] = nodeValue("Gravity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) inputs[| 19] = nodeValue_Range("Gravity", self, [ 0, 0 ] , { linked : true });
.setDisplay(VALUE_DISPLAY.range, { linked : true });
inputs[| 20] = nodeValue("Direction wiggle", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) inputs[| 20] = nodeValue_Vector("Direction wiggle", self, [ 0, 0 ] , { label: [ "Amplitude", "Period" ], linkable: false, per_line: true });
.setDisplay(VALUE_DISPLAY.vector, { label: [ "Amplitude", "Period" ], linkable: false, per_line: true });
inputs[| 21] = nodeValue("Loop", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true ); inputs[| 21] = nodeValue_Bool("Loop", self, true );
inputs[| 22] = nodeValue_Enum_Scroll("Surface array", self, 0, [ "Random", "Order", "Animation", "Scale" ]) inputs[| 22] = nodeValue_Enum_Scroll("Surface array", self, 0, [ "Random", "Order", "Animation", "Scale" ])
.setTooltip("Whether to select image from an array in order, at random, or treat array as animation.") .setTooltip("Whether to select image from an array in order, at random, or treat array as animation.")
.setVisible(false); .setVisible(false);
inputs[| 23] = nodeValue("Animation speed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ] ) inputs[| 23] = nodeValue_Range("Animation speed", self, [ 1, 1 ] , { linked : true })
.setDisplay(VALUE_DISPLAY.range, { linked : true })
.setVisible(false); .setVisible(false);
inputs[| 24] = nodeValue_Enum_Button("Scatter", self, 1, [ "Uniform", "Random" ]); inputs[| 24] = nodeValue_Enum_Button("Scatter", self, 1, [ "Uniform", "Random" ]);
inputs[| 25] = nodeValue("Boundary data", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, []) inputs[| 25] = nodeValue_Int("Boundary data", self, [])
.setArrayDepth(1) .setArrayDepth(1)
.setVisible(false, true); .setVisible(false, true);
inputs[| 26] = nodeValue_Enum_Button("On animation end", self, ANIM_END_ACTION.loop, [ "Loop", "Ping pong", "Destroy" ]) inputs[| 26] = nodeValue_Enum_Button("On animation end", self, ANIM_END_ACTION.loop, [ "Loop", "Ping pong", "Destroy" ])
.setVisible(false); .setVisible(false);
inputs[| 27] = nodeValue("Spawn", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); inputs[| 27] = nodeValue_Bool("Spawn", self, true);
inputs[| 28] = nodeValue("Random blend", self, JUNCTION_CONNECT.input, VALUE_TYPE.gradient, new gradientObject(cola(c_white)) ); inputs[| 28] = nodeValue_Gradient("Random blend", self, new gradientObject(cola(c_white)));
inputs[| 29] = nodeValue("Directed from center", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false, "Make particle move away from the spawn center."); inputs[| 29] = nodeValue_Bool("Directed from center", self, false, "Make particle move away from the spawn center.");
inputs[| 30] = nodeValue_Surface("Distribution map", self) inputs[| 30] = nodeValue_Surface("Distribution map", self)
inputs[| 31] = nodeValue_Surface("Atlas", self, []) inputs[| 31] = nodeValue_Surface("Atlas", self, [])
.setArrayDepth(1); .setArrayDepth(1);
inputs[| 32] = nodeValue("Seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, seed_random(6)) inputs[| 32] = nodeValue_Float("Seed", self, seed_random(6))
.setDisplay(VALUE_DISPLAY._default, { side_button : button(function() { randomize(); inputs[| 32].setValue(seed_random(6)); }).setIcon(THEME.icon_random, 0, COLORS._main_icon) }); .setDisplay(VALUE_DISPLAY._default, { side_button : button(function() { randomize(); inputs[| 32].setValue(seed_random(6)); }).setIcon(THEME.icon_random, 0, COLORS._main_icon) });
inputs[| 33] = nodeValue_Rotation("Gravity direction", self, -90); inputs[| 33] = nodeValue_Rotation("Gravity direction", self, -90);
inputs[| 34] = nodeValue("Turning", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) inputs[| 34] = nodeValue_Range("Turning", self, [ 0, 0 ] , { linked : true });
.setDisplay(VALUE_DISPLAY.range, { linked : true });
inputs[| 35] = nodeValue("Turn both directions", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false, "Apply randomized 1, -1 multiplier to the turning speed." ); inputs[| 35] = nodeValue_Bool("Turn both directions", self, false, "Apply randomized 1, -1 multiplier to the turning speed." );
inputs[| 36] = nodeValue("Turn scale with speed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, false ); inputs[| 36] = nodeValue_Float("Turn scale with speed", self, false );
inputs[| 37] = nodeValue("Collide ground", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| 37] = nodeValue_Bool("Collide ground", self, false );
inputs[| 38] = nodeValue("Ground offset", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ); inputs[| 38] = nodeValue_Float("Ground offset", self, 0 );
inputs[| 39] = nodeValue("Bounce amount", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5 ) inputs[| 39] = nodeValue_Float("Bounce amount", self, 0.5 )
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 40] = nodeValue("Bounce friction", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.1, "Apply horizontal friction once particle stop bouncing." ) inputs[| 40] = nodeValue_Float("Bounce friction", self, 0.1, "Apply horizontal friction once particle stop bouncing." )
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 41] = nodeValue("Position wiggle", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) inputs[| 41] = nodeValue_Vector("Position wiggle", self, [ 0, 0 ] , { label: [ "Amplitude", "Period" ], linkable: false, per_line: true });
.setDisplay(VALUE_DISPLAY.vector, { label: [ "Amplitude", "Period" ], linkable: false, per_line: true });
inputs[| 42] = nodeValue("Rotation wiggle", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) inputs[| 42] = nodeValue_Vector("Rotation wiggle", self, [ 0, 0 ] , { label: [ "Amplitude", "Period" ], linkable: false, per_line: true });
.setDisplay(VALUE_DISPLAY.vector, { label: [ "Amplitude", "Period" ], linkable: false, per_line: true });
inputs[| 43] = nodeValue("Scale wiggle", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) inputs[| 43] = nodeValue_Vector("Scale wiggle", self, [ 0, 0 ] , { label: [ "Amplitude", "Period" ], linkable: false, per_line: true });
.setDisplay(VALUE_DISPLAY.vector, { label: [ "Amplitude", "Period" ], linkable: false, per_line: true });
inputs[| 44] = nodeValue("Spawn", self, JUNCTION_CONNECT.input, VALUE_TYPE.trigger, false ) inputs[| 44] = nodeValue_Trigger("Spawn", self, false )
.setDisplay(VALUE_DISPLAY.button, { name: "Trigger" }); .setDisplay(VALUE_DISPLAY.button, { name: "Trigger" });
inputs[| 45] = nodeValue("Follow Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| 45] = nodeValue_Bool("Follow Path", self, false );
inputs[| 46] = nodeValue("Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.pathnode, noone ); inputs[| 46] = nodeValue_PathNode("Path", self, noone );
inputs[| 47] = nodeValue("Path Deviation", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11 ); inputs[| 47] = nodeValue("Path Deviation", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11 );
inputs[| 48] = nodeValue("Reset Seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.trigger, false ) inputs[| 48] = nodeValue_Trigger("Reset Seed", self, false )
.setDisplay(VALUE_DISPLAY.button, { name: "Trigger" }) .setDisplay(VALUE_DISPLAY.button, { name: "Trigger" })
inputs[| 49] = nodeValue("Stretch Animation", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| 49] = nodeValue_Bool("Stretch Animation", self, false );
for (var i = 2, n = ds_list_size(inputs); i < n; i++) for (var i = 2, n = ds_list_size(inputs); i < n; i++)
inputs[| i].rejectArray(); inputs[| i].rejectArray();

View file

@ -45,17 +45,16 @@ function _Node_Strand_Affector(_x, _y, _group = noone) : Node(_x, _y, _group) co
inputs[| 1] = nodeValue_Enum_Scroll("Shape", self, 0, [ "Point", "Band" ]); inputs[| 1] = nodeValue_Enum_Scroll("Shape", self, 0, [ "Point", "Band" ]);
inputs[| 2] = nodeValue("Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) inputs[| 2] = nodeValue_Vector("Position", self, [ 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 3] = nodeValue("Range", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 4); inputs[| 3] = nodeValue_Float("Range", self, 4);
inputs[| 4] = nodeValue_Rotation("Direction", self, 0); inputs[| 4] = nodeValue_Rotation("Direction", self, 0);
inputs[| 5] = nodeValue("Falloff", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.2) inputs[| 5] = nodeValue_Float("Falloff", self, 0.2)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
outputs[| 0] = nodeValue("Strand", self, JUNCTION_CONNECT.output, VALUE_TYPE.strands, noone); outputs[| 0] = nodeValue_Output("Strand", self, VALUE_TYPE.strands, noone);
input_fix_len = ds_list_size(inputs); input_fix_len = ds_list_size(inputs);

View file

@ -1,9 +1,9 @@
function __init_mask_modifier(_mask_index) { #region function __init_mask_modifier(_mask_index) { #region
var _ind = ds_list_size(inputs); var _ind = ds_list_size(inputs);
inputs[| _ind + 0] = nodeValue("Invert mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); inputs[| _ind + 0] = nodeValue_Bool("Invert mask", self, false);
inputs[| _ind + 1] = nodeValue("Mask feather", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0) inputs[| _ind + 1] = nodeValue_Float("Mask feather", self, 0)
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 32, 0.1] }); .setDisplay(VALUE_DISPLAY.slider, { range: [0, 32, 0.1] });
__mask_index = _mask_index; __mask_index = _mask_index;

View file

@ -6,21 +6,20 @@ function Node_MK_Delay_Machine(_x, _y, _group = noone) : Node(_x, _y, _group) co
inputs[| 0] = nodeValue_Surface("Surface", self); inputs[| 0] = nodeValue_Surface("Surface", self);
inputs[| 1] = nodeValue("Delay Amounts", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4); inputs[| 1] = nodeValue_Int("Delay Amounts", self, 4);
inputs[| 2] = nodeValue("Delay Frames", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1); inputs[| 2] = nodeValue_Int("Delay Frames", self, 1);
inputs[| 3] = nodeValue("Blend over Delay", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, [ c_white ]) inputs[| 3] = nodeValue_Palette("Blend over Delay", self, [ c_white ]);
.setDisplay(VALUE_DISPLAY.palette);
inputs[| 4] = nodeValue("Alpha over Delay", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11); inputs[| 4] = nodeValue("Alpha over Delay", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11);
inputs[| 5] = nodeValue_Enum_Scroll("Palette Select", self, 0, [ "Loop", "Pingpong", "Random" ]); inputs[| 5] = nodeValue_Enum_Scroll("Palette Select", self, 0, [ "Loop", "Pingpong", "Random" ]);
inputs[| 6] = nodeValue("Seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, seed_random(6)) inputs[| 6] = nodeValue_Int("Seed", self, seed_random(6))
.setDisplay(VALUE_DISPLAY._default, { side_button : button(function() { randomize(); inputs[| 6].setValue(seed_random(6)); }).setIcon(THEME.icon_random, 0, COLORS._main_icon) }); .setDisplay(VALUE_DISPLAY._default, { side_button : button(function() { randomize(); inputs[| 6].setValue(seed_random(6)); }).setIcon(THEME.icon_random, 0, COLORS._main_icon) });
outputs[| 0] = nodeValue("Surface", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Surface", self, VALUE_TYPE.surface, noone);
input_display_list = [ 0, input_display_list = [ 0,
["Delay", false], 1, 2, ["Delay", false], 1, 2,

View file

@ -22,30 +22,27 @@ function Node_2D_light(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
new scrollItem("Line asymmetric", s_node_2d_light_shape, 2), new scrollItem("Line asymmetric", s_node_2d_light_shape, 2),
new scrollItem("Spot", s_node_2d_light_shape, 3), ]); new scrollItem("Spot", s_node_2d_light_shape, 3), ]);
inputs[| 2] = nodeValue("Center", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 16, 16 ]) inputs[| 2] = nodeValue_Vector("Center", self, [ 16, 16 ])
.setDisplay(VALUE_DISPLAY.vector)
.setUnitRef(function(index) { return getDimension(index); }); .setUnitRef(function(index) { return getDimension(index); });
inputs[| 3] = nodeValue("Range", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 16); inputs[| 3] = nodeValue_Float("Range", self, 16);
inputs[| 4] = nodeValue("Intensity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) inputs[| 4] = nodeValue_Float("Intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 5] = nodeValue("Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white); inputs[| 5] = nodeValue_Color("Color", self, c_white);
inputs[| 6] = nodeValue("Start", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 16, 16 ]) inputs[| 6] = nodeValue_Vector("Start", self, [ 16, 16 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 7] = nodeValue("Finish", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 32, 16 ]) inputs[| 7] = nodeValue_Vector("Finish", self, [ 32, 16 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 8] = nodeValue("Sweep", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 15) inputs[| 8] = nodeValue_Int("Sweep", self, 15)
.setDisplay(VALUE_DISPLAY.slider, { range: [-80, 80, 0.1] }); .setDisplay(VALUE_DISPLAY.slider, { range: [-80, 80, 0.1] });
inputs[| 9] = nodeValue("Sweep end", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 9] = nodeValue_Int("Sweep end", self, 0)
.setDisplay(VALUE_DISPLAY.slider, { range: [-80, 80, 0.1] }); .setDisplay(VALUE_DISPLAY.slider, { range: [-80, 80, 0.1] });
inputs[| 10] = nodeValue("Banding", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 10] = nodeValue_Int("Banding", self, 0)
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 16, 0.1] }); .setDisplay(VALUE_DISPLAY.slider, { range: [0, 16, 0.1] });
inputs[| 11] = nodeValue_Enum_Scroll("Attenuation", self, 0, inputs[| 11] = nodeValue_Enum_Scroll("Attenuation", self, 0,
@ -54,19 +51,19 @@ function Node_2D_light(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
new scrollItem("Linear", s_node_curve, 2), ]) new scrollItem("Linear", s_node_curve, 2), ])
.setTooltip("Control how light fade out over distance."); .setTooltip("Control how light fade out over distance.");
inputs[| 12] = nodeValue("Radial banding", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 12] = nodeValue_Int("Radial banding", self, 0)
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 16, 0.1] }); .setDisplay(VALUE_DISPLAY.slider, { range: [0, 16, 0.1] });
inputs[| 13] = nodeValue_Rotation("Radial start", self, 0); inputs[| 13] = nodeValue_Rotation("Radial start", self, 0);
inputs[| 14] = nodeValue("Radial band ratio", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5) inputs[| 14] = nodeValue_Float("Radial band ratio", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 15] = nodeValue("Active", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); inputs[| 15] = nodeValue_Bool("Active", self, true);
active_index = 15; active_index = 15;
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);
outputs[| 1] = nodeValue("Light only", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 1] = nodeValue_Output("Light only", self, VALUE_TYPE.surface, noone);
input_display_list = [ 15, 0, input_display_list = [ 15, 0,
["Shape", false], 1, 2, 6, 7, 8, 9, ["Shape", false], 1, 2, 6, 7, 8, 9,

View file

@ -18,68 +18,66 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
global.SKY_SPHERE = new __3dUVSphere(0.5, 16, 8, true); global.SKY_SPHERE = new __3dUVSphere(0.5, 16, 8, true);
inputs[| in_d3d + 0] = nodeValue("FOV", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 60 ) inputs[| in_d3d + 0] = nodeValue_Int("FOV", self, 60 )
.setDisplay(VALUE_DISPLAY.slider, { range: [ 10, 90, 0.1 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ 10, 90, 0.1 ] });
inputs[| in_d3d + 1] = nodeValue("Clipping Distance", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 10 ] ) inputs[| in_d3d + 1] = nodeValue_Vector("Clipping Distance", self, [ 1, 10 ] );
.setDisplay(VALUE_DISPLAY.vector);
inputs[| in_d3d + 2] = nodeValue_Dimension(self); inputs[| in_d3d + 2] = nodeValue_Dimension(self);
inputs[| in_d3d + 3] = nodeValue_Enum_Button("Projection", self, 1 , [ "Perspective", "Orthographic" ]); inputs[| in_d3d + 3] = nodeValue_Enum_Button("Projection", self, 1 , [ "Perspective", "Orthographic" ]);
inputs[| in_d3d + 4] = nodeValue("Scene", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Scene, noone ) inputs[| in_d3d + 4] = nodeValue_D3Scene("Scene", self, noone )
.setVisible(true, true); .setVisible(true, true);
inputs[| in_d3d + 5] = nodeValue("Ambient Light", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_dkgrey ); inputs[| in_d3d + 5] = nodeValue_Color("Ambient Light", self, c_dkgrey );
inputs[| in_d3d + 6] = nodeValue("Show Background", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| in_d3d + 6] = nodeValue_Bool("Show Background", self, false );
inputs[| in_d3d + 7] = nodeValue_Enum_Button("Backface Culling", self, 2 , [ "None", "CW", "CCW" ]); inputs[| in_d3d + 7] = nodeValue_Enum_Button("Backface Culling", self, 2 , [ "None", "CW", "CCW" ]);
inputs[| in_d3d + 8] = nodeValue("Orthographic Scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5 ) inputs[| in_d3d + 8] = nodeValue_Float("Orthographic Scale", self, 0.5 )
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0.01, 4, 0.01 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ 0.01, 4, 0.01 ] });
inputs[| in_d3d + 9] = nodeValue_Enum_Scroll("Postioning Mode", self, 2, [ "Position + Rotation", "Position + Lookat", "Lookat + Rotation" ] ); inputs[| in_d3d + 9] = nodeValue_Enum_Scroll("Postioning Mode", self, 2, [ "Position + Rotation", "Position + Lookat", "Lookat + Rotation" ] );
inputs[| in_d3d + 10] = nodeValue("Lookat Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ] ) inputs[| in_d3d + 10] = nodeValue_Vector("Lookat Position", self, [ 0, 0, 0 ] );
.setDisplay(VALUE_DISPLAY.vector);
inputs[| in_d3d + 11] = nodeValue_Rotation("Roll", self, 0); inputs[| in_d3d + 11] = nodeValue_Rotation("Roll", self, 0);
inputs[| in_d3d + 12] = nodeValue_Rotation("Horizontal Angle", self, 45 ); inputs[| in_d3d + 12] = nodeValue_Rotation("Horizontal Angle", self, 45 );
inputs[| in_d3d + 13] = nodeValue("Vertical Angle", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 30 ) inputs[| in_d3d + 13] = nodeValue_Float("Vertical Angle", self, 30 )
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 90, 0.1] }); .setDisplay(VALUE_DISPLAY.slider, { range: [0, 90, 0.1] });
inputs[| in_d3d + 14] = nodeValue("Distance", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 4 ); inputs[| in_d3d + 14] = nodeValue_Float("Distance", self, 4 );
inputs[| in_d3d + 15] = nodeValue("Gamma Adjust", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| in_d3d + 15] = nodeValue_Bool("Gamma Adjust", self, false );
inputs[| in_d3d + 16] = nodeValue_Surface("Environment Texture", self); inputs[| in_d3d + 16] = nodeValue_Surface("Environment Texture", self);
inputs[| in_d3d + 17] = nodeValue("Ambient Occlusion", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| in_d3d + 17] = nodeValue_Bool("Ambient Occlusion", self, false );
inputs[| in_d3d + 18] = nodeValue("AO Radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.25 ); inputs[| in_d3d + 18] = nodeValue_Float("AO Radius", self, 0.25 );
inputs[| in_d3d + 19] = nodeValue("AO Bias", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.05 ); inputs[| in_d3d + 19] = nodeValue_Float("AO Bias", self, 0.05 );
inputs[| in_d3d + 20] = nodeValue("AO Strength", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1. ) inputs[| in_d3d + 20] = nodeValue_Float("AO Strength", self, 1. )
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0.01, 4, 0.01 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ 0.01, 4, 0.01 ] });
inputs[| in_d3d + 21] = nodeValue("Round Normal", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) inputs[| in_d3d + 21] = nodeValue_Int("Round Normal", self, 0 )
.setWindows(); .setWindows();
inputs[| in_d3d + 22] = nodeValue_Enum_Button("Blend mode", self, 0 , [ "Normal", "Additive" ]); inputs[| in_d3d + 22] = nodeValue_Enum_Button("Blend mode", self, 0 , [ "Normal", "Additive" ]);
in_cam = ds_list_size(inputs); in_cam = ds_list_size(inputs);
outputs[| 0] = nodeValue("Rendered", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone ); outputs[| 0] = nodeValue_Output("Rendered", self, VALUE_TYPE.surface, noone );
outputs[| 1] = nodeValue("Normal", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone ) outputs[| 1] = nodeValue_Output("Normal", self, VALUE_TYPE.surface, noone )
.setVisible(false); .setVisible(false);
outputs[| 2] = nodeValue("Depth", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone ) outputs[| 2] = nodeValue_Output("Depth", self, VALUE_TYPE.surface, noone )
.setVisible(false); .setVisible(false);
input_display_list = [ in_d3d + 4, input_display_list = [ in_d3d + 4,

View file

@ -8,28 +8,28 @@ function Node_3D_Camera_Set(_x, _y, _group = noone) : Node_3D_Camera(_x, _y, _gr
inputs[| in_cam + 0] = nodeValue_Rotation("L1 H angle", self, 30) inputs[| in_cam + 0] = nodeValue_Rotation("L1 H angle", self, 30)
.setName("Horizontal angle"); .setName("Horizontal angle");
inputs[| in_cam + 1] = nodeValue("L1 V angle", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 45 ) inputs[| in_cam + 1] = nodeValue_Float("L1 V angle", self, 45 )
.setName("Vertical angle") .setName("Vertical angle")
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 90, 0.1] }); .setDisplay(VALUE_DISPLAY.slider, { range: [0, 90, 0.1] });
inputs[| in_cam + 2] = nodeValue("L1 Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white ) inputs[| in_cam + 2] = nodeValue_Color("L1 Color", self, c_white )
.setName("Color") .setName("Color")
inputs[| in_cam + 3] = nodeValue("L1 Intensity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1 ) inputs[| in_cam + 3] = nodeValue_Float("L1 Intensity", self, 1 )
.setName("Intensity") .setName("Intensity")
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| in_cam + 4] = nodeValue_Rotation("L2 H angle", self, -45) inputs[| in_cam + 4] = nodeValue_Rotation("L2 H angle", self, -45)
.setName("Horizontal angle"); .setName("Horizontal angle");
inputs[| in_cam + 5] = nodeValue("L2 V angle", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 45 ) inputs[| in_cam + 5] = nodeValue_Float("L2 V angle", self, 45 )
.setName("Vertical angle") .setName("Vertical angle")
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 90, 0.1] }); .setDisplay(VALUE_DISPLAY.slider, { range: [0, 90, 0.1] });
inputs[| in_cam + 6] = nodeValue("L2 Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white ) inputs[| in_cam + 6] = nodeValue_Color("L2 Color", self, c_white )
.setName("Color") .setName("Color")
inputs[| in_cam + 7] = nodeValue("L2 Intensity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.25 ) inputs[| in_cam + 7] = nodeValue_Float("L2 Intensity", self, 0.25 )
.setName("Intensity") .setName("Intensity")
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);

View file

@ -5,10 +5,9 @@ function Node_3D_Depth(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[| 1] = nodeValue_Surface("Depth", self); inputs[| 1] = nodeValue_Surface("Depth", self);
inputs[| 2] = nodeValue("Rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [0, 0, 0] ) inputs[| 2] = nodeValue_Vector("Rotation", self, [0, 0, 0] );
.setDisplay(VALUE_DISPLAY.vector);
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);
input_display_list = [ input_display_list = [
["Texture", false], 0, 1, ["Texture", false], 0, 1,

View file

@ -1,10 +1,9 @@
function Node_3D_Instancer(_x, _y, _group = noone) : Node_3D_Modifier(_x, _y, _group) constructor { function Node_3D_Instancer(_x, _y, _group = noone) : Node_3D_Modifier(_x, _y, _group) constructor {
name = "3D Instancer"; name = "3D Instancer";
inputs[| in_mesh + 0] = nodeValue("Amounts", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1); inputs[| in_mesh + 0] = nodeValue_Int("Amounts", self, 1);
inputs[| in_mesh + 1] = nodeValue("Positions", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| in_mesh + 1] = nodeValue_Vector("Positions", self, [ 0, 0, 0 ])
.setDisplay(VALUE_DISPLAY.vector)
.setArrayDepth(1); .setArrayDepth(1);
static processData = function(_output, _data, _output_index, _array_index = 0) { static processData = function(_output, _data, _output_index, _array_index = 0) {

View file

@ -3,13 +3,13 @@ function Node_3D_Light_Directional(_x, _y, _group = noone) : Node_3D_Light(_x, _
object_class = __3dLightDirectional; object_class = __3dLightDirectional;
inputs[| in_light + 0] = nodeValue("Cast Shadow", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); inputs[| in_light + 0] = nodeValue_Bool("Cast Shadow", self, false);
inputs[| in_light + 1] = nodeValue("Shadow Map Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1024); inputs[| in_light + 1] = nodeValue_Int("Shadow Map Size", self, 1024);
inputs[| in_light + 2] = nodeValue("Shadow Map Scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4); inputs[| in_light + 2] = nodeValue_Int("Shadow Map Scale", self, 4);
inputs[| in_light + 3] = nodeValue("Shadow Bias", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, .001); inputs[| in_light + 3] = nodeValue_Float("Shadow Bias", self, .001);
input_display_list = [ input_display_list = [
["Transform", false], 0, ["Transform", false], 0,

View file

@ -3,15 +3,15 @@ function Node_3D_Light_Point(_x, _y, _group = noone) : Node_3D_Light(_x, _y, _gr
object_class = __3dLightPoint; object_class = __3dLightPoint;
inputs[| in_light + 0] = nodeValue("Radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 4) inputs[| in_light + 0] = nodeValue_Float("Radius", self, 4)
inputs[| in_light + 1] = nodeValue("Cast Shadow", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false) inputs[| in_light + 1] = nodeValue_Bool("Cast Shadow", self, false)
.setWindows(); .setWindows();
inputs[| in_light + 2] = nodeValue("Shadow Map Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1024) inputs[| in_light + 2] = nodeValue_Int("Shadow Map Size", self, 1024)
.setWindows(); .setWindows();
inputs[| in_light + 3] = nodeValue("Shadow Bias", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, .001) inputs[| in_light + 3] = nodeValue_Float("Shadow Bias", self, .001)
.setWindows(); .setWindows();
input_display_list = [ input_display_list = [

View file

@ -5,27 +5,27 @@ function Node_3D_Material(_x, _y, _group = noone) : Node_3D(_x, _y, _group) cons
inputs[| 0] = nodeValue_Surface("Texture", self) inputs[| 0] = nodeValue_Surface("Texture", self)
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue("Diffuse", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1 ) inputs[| 1] = nodeValue_Float("Diffuse", self, 1 )
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 2] = nodeValue("Specular", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ) inputs[| 2] = nodeValue_Float("Specular", self, 0 )
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 3] = nodeValue("Shininess", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1 ); inputs[| 3] = nodeValue_Float("Shininess", self, 1 );
inputs[| 4] = nodeValue("Metalic", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| 4] = nodeValue_Bool("Metalic", self, false );
inputs[| 5] = nodeValue_Surface("Normal Map", self); inputs[| 5] = nodeValue_Surface("Normal Map", self);
inputs[| 6] = nodeValue("Normal Strength", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1 ) inputs[| 6] = nodeValue_Float("Normal Strength", self, 1 )
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 2, 0.01 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 2, 0.01 ] });
inputs[| 7] = nodeValue("Roughness", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1 ) inputs[| 7] = nodeValue_Float("Roughness", self, 1 )
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 8] = nodeValue("Anti aliasing", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| 8] = nodeValue_Bool("Anti aliasing", self, false );
outputs[| 0] = nodeValue("Material", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3Material, noone); outputs[| 0] = nodeValue_Output("Material", self, VALUE_TYPE.d3Material, noone);
input_display_list = [ 0, 8, input_display_list = [ 0, 8,
["Properties", false], 1, 2, 3, 4, 7, ["Properties", false], 1, 2, 3, 4, 7,

View file

@ -3,16 +3,16 @@ function Node_3D_Mesh_Cone(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _group
object_class = __3dCone; object_class = __3dCone;
inputs[| in_mesh + 0] = nodeValue("Side", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 8 ) inputs[| in_mesh + 0] = nodeValue_Int("Side", self, 8 )
.setValidator(VV_min(3)); .setValidator(VV_min(3));
inputs[| in_mesh + 1] = nodeValue("Material Bottom", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial() ) inputs[| in_mesh + 1] = nodeValue_D3Material("Material Bottom", self, new __d3dMaterial())
.setVisible(true, true); .setVisible(true, true);
inputs[| in_mesh + 2] = nodeValue("Material Side", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial() ) inputs[| in_mesh + 2] = nodeValue_D3Material("Material Side", self, new __d3dMaterial())
.setVisible(true, true); .setVisible(true, true);
inputs[| in_mesh + 3] = nodeValue("Smooth Side", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| in_mesh + 3] = nodeValue_Bool("Smooth Side", self, false );
input_display_list = [ input_display_list = [
__d3d_input_list_mesh, in_mesh + 0, in_mesh + 3, __d3d_input_list_mesh, in_mesh + 0, in_mesh + 3,

View file

@ -2,24 +2,24 @@ function Node_3D_Mesh_Cube(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _group
name = "3D Cube"; name = "3D Cube";
object_class = noone; object_class = noone;
inputs[| in_mesh + 0] = nodeValue("Material per side", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| in_mesh + 0] = nodeValue_Bool("Material per side", self, false );
inputs[| in_mesh + 1] = nodeValue("Material", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial() ) inputs[| in_mesh + 1] = nodeValue_D3Material("Material", self, new __d3dMaterial())
.setVisible(true, true); .setVisible(true, true);
inputs[| in_mesh + 2] = nodeValue("Material Bottom", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial() ) inputs[| in_mesh + 2] = nodeValue_D3Material("Material Bottom", self, new __d3dMaterial())
.setVisible(true, true); .setVisible(true, true);
inputs[| in_mesh + 3] = nodeValue("Material Left", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial() ) inputs[| in_mesh + 3] = nodeValue_D3Material("Material Left", self, new __d3dMaterial())
.setVisible(true, true); .setVisible(true, true);
inputs[| in_mesh + 4] = nodeValue("Material Right", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial() ) inputs[| in_mesh + 4] = nodeValue_D3Material("Material Right", self, new __d3dMaterial())
.setVisible(true, true); .setVisible(true, true);
inputs[| in_mesh + 5] = nodeValue("Material Back", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial() ) inputs[| in_mesh + 5] = nodeValue_D3Material("Material Back", self, new __d3dMaterial())
.setVisible(true, true); .setVisible(true, true);
inputs[| in_mesh + 6] = nodeValue("Material Front", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial() ) inputs[| in_mesh + 6] = nodeValue_D3Material("Material Front", self, new __d3dMaterial())
.setVisible(true, true); .setVisible(true, true);
input_display_list = [ input_display_list = [

View file

@ -3,21 +3,21 @@ function Node_3D_Mesh_Cylinder(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _g
object_class = __3dCylinder; object_class = __3dCylinder;
inputs[| in_mesh + 0] = nodeValue("Side", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 8 ) inputs[| in_mesh + 0] = nodeValue_Int("Side", self, 8 )
.setValidator(VV_min(3)); .setValidator(VV_min(3));
inputs[| in_mesh + 1] = nodeValue("Material Top", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial() ) inputs[| in_mesh + 1] = nodeValue_D3Material("Material Top", self, new __d3dMaterial())
.setVisible(true, true); .setVisible(true, true);
inputs[| in_mesh + 2] = nodeValue("Material Bottom", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial() ) inputs[| in_mesh + 2] = nodeValue_D3Material("Material Bottom", self, new __d3dMaterial())
.setVisible(true, true); .setVisible(true, true);
inputs[| in_mesh + 3] = nodeValue("Material Side", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial() ) inputs[| in_mesh + 3] = nodeValue_D3Material("Material Side", self, new __d3dMaterial())
.setVisible(true, true); .setVisible(true, true);
inputs[| in_mesh + 4] = nodeValue("Smooth Side", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| in_mesh + 4] = nodeValue_Bool("Smooth Side", self, false );
inputs[| in_mesh + 5] = nodeValue("End caps", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true ); inputs[| in_mesh + 5] = nodeValue_Bool("End caps", self, true );
input_display_list = [ input_display_list = [
__d3d_input_list_mesh, in_mesh + 0, in_mesh + 4, in_mesh + 5, __d3d_input_list_mesh, in_mesh + 0, in_mesh + 4, in_mesh + 5,

View file

@ -1,16 +1,16 @@
function Node_3D_Mesh_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_3D_Mesh_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Mesh Export"; name = "Mesh Export";
inputs[| 0] = nodeValue("Mesh", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Mesh, noone) inputs[| 0] = nodeValue_D3Mesh("Mesh", self, noone)
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue("Paths", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "") inputs[| 1] = nodeValue_Text("Paths", self, "")
.setDisplay(VALUE_DISPLAY.path_save, { filter: "Obj (.obj)|*.obj" }) .setDisplay(VALUE_DISPLAY.path_save, { filter: "Obj (.obj)|*.obj" })
.setVisible(true); .setVisible(true);
inputs[| 2] = nodeValue("Export Texture", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); inputs[| 2] = nodeValue_Bool("Export Texture", self, true);
inputs[| 3] = nodeValue("Invert UV", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); inputs[| 3] = nodeValue_Bool("Invert UV", self, false);
input_display_list = [ 0, input_display_list = [ 0,
["Export", false], 1, 2, 3, ["Export", false], 1, 2, 3,

View file

@ -3,27 +3,25 @@ function Node_3D_Mesh_Extrude(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _gr
object_class = __3dSurfaceExtrude; object_class = __3dSurfaceExtrude;
inputs[| in_mesh + 0] = nodeValue("Front Surface", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial()) inputs[| in_mesh + 0] = nodeValue_D3Material("Front Surface", self, new __d3dMaterial())
.setVisible(true, true); .setVisible(true, true);
inputs[| in_mesh + 1] = nodeValue_Surface("Front Height", self); inputs[| in_mesh + 1] = nodeValue_Surface("Front Height", self);
inputs[| in_mesh + 2] = nodeValue("Smooth", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false) inputs[| in_mesh + 2] = nodeValue_Bool("Smooth", self, false)
inputs[| in_mesh + 3] = nodeValue("Always update", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); inputs[| in_mesh + 3] = nodeValue_Bool("Always update", self, false);
inputs[| in_mesh + 4] = nodeValue("Double Side", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); inputs[| in_mesh + 4] = nodeValue_Bool("Double Side", self, false);
inputs[| in_mesh + 5] = nodeValue("Back Surface", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial()) inputs[| in_mesh + 5] = nodeValue_D3Material("Back Surface", self, new __d3dMaterial())
.setVisible(true, true); .setVisible(true, true);
inputs[| in_mesh + 6] = nodeValue_Surface("Back Height", self); inputs[| in_mesh + 6] = nodeValue_Surface("Back Height", self);
inputs[| in_mesh + 7] = nodeValue("Front Height Level", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 1 ]) inputs[| in_mesh + 7] = nodeValue_Slider_Range("Front Height Level", self, [ 0, 1 ]);
.setDisplay(VALUE_DISPLAY.slider_range);
inputs[| in_mesh + 8] = nodeValue("Back Height Level", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 1 ]) inputs[| in_mesh + 8] = nodeValue_Slider_Range("Back Height Level", self, [ 0, 1 ]);
.setDisplay(VALUE_DISPLAY.slider_range);
input_display_list = [ in_mesh + 3, input_display_list = [ in_mesh + 3,
__d3d_input_list_mesh, __d3d_input_list_mesh,

View file

@ -25,14 +25,14 @@ function Node_3D_Mesh_Obj(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _group)
object = noone; object = noone;
object_class = __3dObject; object_class = __3dObject;
inputs[| in_mesh + 0] = nodeValue("File Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "" ) inputs[| in_mesh + 0] = nodeValue_Text("File Path", self, "" )
.setDisplay(VALUE_DISPLAY.path_load, { filter: "3d object|*.obj" }) .setDisplay(VALUE_DISPLAY.path_load, { filter: "3d object|*.obj" })
.rejectArray(); .rejectArray();
inputs[| in_mesh + 1] = nodeValue("Flip UV", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true, "Flip UV axis, can be use to fix some texture mapping error.") inputs[| in_mesh + 1] = nodeValue_Bool("Flip UV", self, true, "Flip UV axis, can be use to fix some texture mapping error.")
.rejectArray(); .rejectArray();
inputs[| in_mesh + 2] = nodeValue("Import Scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) inputs[| in_mesh + 2] = nodeValue_Float("Import Scale", self, 1)
.rejectArray(); .rejectArray();
inputs[| in_mesh + 3] = nodeValue_Enum_Scroll("Axis", self, 0, [ "XYZ", "XZ-Y", "X-ZY" ]) inputs[| in_mesh + 3] = nodeValue_Enum_Scroll("Axis", self, 0, [ "XYZ", "XZ-Y", "X-ZY" ])
@ -73,7 +73,7 @@ function Node_3D_Mesh_Obj(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _group)
static createNewInput = function(index = -1) { #region static createNewInput = function(index = -1) { #region
if(index == -1) index = ds_list_size(inputs); if(index == -1) index = ds_list_size(inputs);
inputs[| index] = nodeValue("Material", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial()) inputs[| index] = nodeValue_D3Material("Material", self, new __d3dMaterial())
.setVisible(true, true); .setVisible(true, true);
} #endregion } #endregion

View file

@ -3,36 +3,35 @@ function Node_3D_Mesh_Path_Extrude(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y
object_class = __3dPathExtrude; object_class = __3dPathExtrude;
inputs[| in_mesh + 0] = nodeValue("Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.pathnode, noone ) inputs[| in_mesh + 0] = nodeValue_PathNode("Path", self, noone )
.setVisible(true, true); .setVisible(true, true);
inputs[| in_mesh + 1] = nodeValue("Side", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 8 ) inputs[| in_mesh + 1] = nodeValue_Int("Side", self, 8 )
.setValidator(VV_min(2)); .setValidator(VV_min(2));
inputs[| in_mesh + 2] = nodeValue("Material Side", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial() ) inputs[| in_mesh + 2] = nodeValue_D3Material("Material Side", self, new __d3dMaterial())
.setVisible(true, true); .setVisible(true, true);
inputs[| in_mesh + 3] = nodeValue("Material Cap", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial() ) inputs[| in_mesh + 3] = nodeValue_D3Material("Material Cap", self, new __d3dMaterial())
.setVisible(true, true); .setVisible(true, true);
inputs[| in_mesh + 4] = nodeValue("Smooth", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| in_mesh + 4] = nodeValue_Bool("Smooth", self, false );
inputs[| in_mesh + 5] = nodeValue("End caps", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true ); inputs[| in_mesh + 5] = nodeValue_Bool("End caps", self, true );
inputs[| in_mesh + 6] = nodeValue("Subdivision", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 8 ) inputs[| in_mesh + 6] = nodeValue_Int("Subdivision", self, 8 )
.setValidator(VV_min(2)); .setValidator(VV_min(2));
inputs[| in_mesh + 7] = nodeValue("Radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.25 ) inputs[| in_mesh + 7] = nodeValue_Float("Radius", self, 0.25 )
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| in_mesh + 8] = nodeValue("Radius Over Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11 ); inputs[| in_mesh + 8] = nodeValue("Radius Over Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11 );
inputs[| in_mesh + 9] = nodeValue("Texture Scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ] ) inputs[| in_mesh + 9] = nodeValue_Vector("Texture Scale", self, [ 1, 1 ] );
.setDisplay(VALUE_DISPLAY.vector);
inputs[| in_mesh + 10] = nodeValue("Loop", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| in_mesh + 10] = nodeValue_Bool("Loop", self, false );
inputs[| in_mesh + 11] = nodeValue("Inverted", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| in_mesh + 11] = nodeValue_Bool("Inverted", self, false );
input_display_list = [ input_display_list = [
["Path", false], in_mesh + 0, in_mesh + 10, ["Path", false], in_mesh + 0, in_mesh + 10,

View file

@ -3,15 +3,15 @@ function Node_3D_Mesh_Plane(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _grou
object_class = __3dPlane; object_class = __3dPlane;
inputs[| in_mesh + 0] = nodeValue("Material", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial() ) inputs[| in_mesh + 0] = nodeValue_D3Material("Material", self, new __d3dMaterial())
.setVisible(true, true); .setVisible(true, true);
inputs[| in_mesh + 1] = nodeValue_Enum_Button("Normal", self, 2 , [ "X", "Y", "Z" ]); inputs[| in_mesh + 1] = nodeValue_Enum_Button("Normal", self, 2 , [ "X", "Y", "Z" ]);
inputs[| in_mesh + 2] = nodeValue("Both side", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ) inputs[| in_mesh + 2] = nodeValue_Bool("Both side", self, false )
.rejectArray(); .rejectArray();
inputs[| in_mesh + 3] = nodeValue("Back Material", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial() ); inputs[| in_mesh + 3] = nodeValue_D3Material("Back Material", self, new __d3dMaterial())
input_display_list = [ input_display_list = [
__d3d_input_list_mesh, in_mesh + 1, __d3d_input_list_mesh, in_mesh + 1,

View file

@ -3,13 +3,13 @@ function Node_3D_Mesh_Sphere_Ico(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y,
object_class = __3dICOSphere; object_class = __3dICOSphere;
inputs[| in_mesh + 0] = nodeValue("Subdivision", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1 ) inputs[| in_mesh + 0] = nodeValue_Int("Subdivision", self, 1 )
.setValidator(VV_min(0)); .setValidator(VV_min(0));
inputs[| in_mesh + 1] = nodeValue("Material", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial() ) inputs[| in_mesh + 1] = nodeValue_D3Material("Material", self, new __d3dMaterial())
.setVisible(true, true); .setVisible(true, true);
inputs[| in_mesh + 2] = nodeValue("Smooth Normal", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| in_mesh + 2] = nodeValue_Bool("Smooth Normal", self, false );
input_display_list = [ input_display_list = [
__d3d_input_list_mesh, in_mesh + 0, in_mesh + 2, __d3d_input_list_mesh, in_mesh + 0, in_mesh + 2,

View file

@ -3,16 +3,16 @@ function Node_3D_Mesh_Sphere_UV(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _
object_class = __3dUVSphere; object_class = __3dUVSphere;
inputs[| in_mesh + 0] = nodeValue("Horizontal Slices", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 8 ) inputs[| in_mesh + 0] = nodeValue_Int("Horizontal Slices", self, 8 )
.setValidator(VV_min(2)); .setValidator(VV_min(2));
inputs[| in_mesh + 1] = nodeValue("Vertical Slices", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 16 ) inputs[| in_mesh + 1] = nodeValue_Int("Vertical Slices", self, 16 )
.setValidator(VV_min(3)); .setValidator(VV_min(3));
inputs[| in_mesh + 2] = nodeValue("Material", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial() ) inputs[| in_mesh + 2] = nodeValue_D3Material("Material", self, new __d3dMaterial())
.setVisible(true, true); .setVisible(true, true);
inputs[| in_mesh + 3] = nodeValue("Smooth Normal", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| in_mesh + 3] = nodeValue_Bool("Smooth Normal", self, false );
input_display_list = [ input_display_list = [
__d3d_input_list_mesh, in_mesh + 0, in_mesh + 1, in_mesh + 3, __d3d_input_list_mesh, in_mesh + 0, in_mesh + 1, in_mesh + 3,

View file

@ -1,20 +1,18 @@
function Node_3D_Mesh_Stack_Slice(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_3D_Mesh_Stack_Slice(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Slice Stack"; name = "Slice Stack";
inputs[| 0] = nodeValue("Mesh", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Mesh, noone) inputs[| 0] = nodeValue_D3Mesh("Mesh", self, noone)
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue("Output Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 16, 16 ]) inputs[| 1] = nodeValue_Vector("Output Dimension", self, [ 16, 16 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 2] = nodeValue("Scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1); inputs[| 2] = nodeValue_Float("Scale", self, 1);
inputs[| 3] = nodeValue("Slices", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4); inputs[| 3] = nodeValue_Int("Slices", self, 4);
inputs[| 4] = nodeValue("BBOX Padding", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 4] = nodeValue_Vector("BBOX Padding", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
outputs[| 0] = nodeValue("Outputs", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, []) outputs[| 0] = nodeValue_Output("Outputs", self, VALUE_TYPE.surface, [])
.setArrayDepth(1); .setArrayDepth(1);
mesh_data = new Inspector_Label("", f_code); mesh_data = new Inspector_Label("", f_code);

View file

@ -3,22 +3,21 @@ function Node_3D_Mesh_Terrain(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _gr
object_class = __3dTerrain; object_class = __3dTerrain;
inputs[| in_mesh + 0] = nodeValue("Material", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial() ) inputs[| in_mesh + 0] = nodeValue_D3Material("Material", self, new __d3dMaterial())
.setVisible(true, true); .setVisible(true, true);
inputs[| in_mesh + 1] = nodeValue_Enum_Button("Input type", self, 0 , [ "Surface", "Array" ]); inputs[| in_mesh + 1] = nodeValue_Enum_Button("Input type", self, 0 , [ "Surface", "Array" ]);
inputs[| in_mesh + 2] = nodeValue_Surface("Height map", self); inputs[| in_mesh + 2] = nodeValue_Surface("Height map", self);
inputs[| in_mesh + 3] = nodeValue("Subdivision", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4 ); inputs[| in_mesh + 3] = nodeValue_Int("Subdivision", self, 4 );
inputs[| in_mesh + 4] = nodeValue("Height array", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [] ) inputs[| in_mesh + 4] = nodeValue_Float("Height array", self, [] )
.setArrayDepth(2); .setArrayDepth(2);
inputs[| in_mesh + 5] = nodeValue("Smooth", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| in_mesh + 5] = nodeValue_Bool("Smooth", self, false );
inputs[| in_mesh + 6] = nodeValue("Front Height Level", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 1 ]) inputs[| in_mesh + 6] = nodeValue_Slider_Range("Front Height Level", self, [ 0, 1 ]);
.setDisplay(VALUE_DISPLAY.slider_range);
input_display_list = [ input_display_list = [
__d3d_input_list_transform, __d3d_input_list_transform,

View file

@ -2,7 +2,7 @@ function Node_3D_Particle(_x, _y, _group = noone) : Node_3D_Modifier(_x, _y, _gr
name = "3D Particle"; name = "3D Particle";
update_on_frame = true; update_on_frame = true;
inputs[| in_mesh + 0] = nodeValue("Amounts", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1); inputs[| in_mesh + 0] = nodeValue_Int("Amounts", self, 1);
part_pool_size = 128; part_pool_size = 128;
parts = array_create(part_pool_size); parts = array_create(part_pool_size);

View file

@ -5,24 +5,21 @@ function Node_3D_Point_Affector(_x, _y, _group = noone) : Node_3D_Object(_x, _y,
gizmo_plane = [ new __3dGizmoPlaneFalloff(,, 0.75) ]; gizmo_plane = [ new __3dGizmoPlaneFalloff(,, 0.75) ];
gizmo_object = noone; gizmo_object = noone;
inputs[| in_d3d + 0] = nodeValue("Points", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| in_d3d + 0] = nodeValue_Vector("Points", self, [ 0, 0, 0 ])
.setVisible(true, true) .setVisible(true, true);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| in_d3d + 1] = nodeValue("Initial value", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| in_d3d + 1] = nodeValue_Vector("Initial value", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| in_d3d + 2] = nodeValue("Final value", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| in_d3d + 2] = nodeValue_Vector("Final value", self, [ 0, 0, 0 ]);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| in_d3d + 3] = nodeValue("Falloff distance", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5); inputs[| in_d3d + 3] = nodeValue_Float("Falloff distance", self, 0.5);
inputs[| in_d3d + 4] = nodeValue("Falloff curve", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_01); inputs[| in_d3d + 4] = nodeValue("Falloff curve", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_01);
inputs[| in_d3d + 5] = nodeValue_Enum_Scroll("Shape", self, 0, [ new scrollItem("Sphere", s_node_3d_affector_shape, 0), inputs[| in_d3d + 5] = nodeValue_Enum_Scroll("Shape", self, 0, [ new scrollItem("Sphere", s_node_3d_affector_shape, 0),
new scrollItem("Plane", s_node_3d_affector_shape, 1), ]); new scrollItem("Plane", s_node_3d_affector_shape, 1), ]);
outputs[| 0] = nodeValue("Output", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, [ 0, 0, 0 ]) outputs[| 0] = nodeValue_Output("Output", self, VALUE_TYPE.float, [ 0, 0, 0 ])
.setDisplay(VALUE_DISPLAY.vector); .setDisplay(VALUE_DISPLAY.vector);
input_display_list = [ input_display_list = [

View file

@ -1,45 +1,39 @@
function Node_3D_Repeat(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constructor { function Node_3D_Repeat(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constructor {
name = "3D Repeat"; name = "3D Repeat";
inputs[| 0] = nodeValue("Objects", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Mesh, noone ) inputs[| 0] = nodeValue_D3Mesh("Objects", self, noone)
.setArrayDepth(1) .setArrayDepth(1)
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue_Enum_Button("Object Mode", self, 0 , [ "Duplicate", "Array" ] ) inputs[| 1] = nodeValue_Enum_Button("Object Mode", self, 0 , [ "Duplicate", "Array" ] )
.rejectArray(); .rejectArray();
inputs[| 2] = nodeValue("Amount", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1 ); inputs[| 2] = nodeValue_Int("Amount", self, 1 );
inputs[| 3] = nodeValue("Starting Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ] ) inputs[| 3] = nodeValue_Vector("Starting Position", self, [ 0, 0, 0 ] );
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 4] = nodeValue("Starting Rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0, 1 ] ) inputs[| 4] = nodeValue_Quaternion("Starting Rotation", self, [ 0, 0, 0, 1 ] );
.setDisplay(VALUE_DISPLAY.d3quarternion);
inputs[| 5] = nodeValue("Starting Scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ] ) inputs[| 5] = nodeValue_Vector("Starting Scale", self, [ 1, 1, 1 ] );
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 6] = nodeValue("Shift Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ] ) inputs[| 6] = nodeValue_Vector("Shift Position", self, [ 0, 0, 0 ] );
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 7] = nodeValue("Shift Rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0, 1 ] ) inputs[| 7] = nodeValue_Quaternion("Shift Rotation", self, [ 0, 0, 0, 1 ] );
.setDisplay(VALUE_DISPLAY.d3quarternion);
inputs[| 8] = nodeValue("Shift Scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ] ) inputs[| 8] = nodeValue_Vector("Shift Scale", self, [ 0, 0, 0 ] );
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 9] = nodeValue("Positions", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [] ) inputs[| 9] = nodeValue_Float("Positions", self, [] )
.setArrayDepth(2); .setArrayDepth(2);
inputs[| 10] = nodeValue("Rotations", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [] ) inputs[| 10] = nodeValue_Float("Rotations", self, [] )
.setArrayDepth(2); .setArrayDepth(2);
inputs[| 11] = nodeValue("Scales", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [] ) inputs[| 11] = nodeValue_Float("Scales", self, [] )
.setArrayDepth(2); .setArrayDepth(2);
inputs[| 12] = nodeValue("Use Instance", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true ) inputs[| 12] = nodeValue_Bool("Use Instance", self, true )
outputs[| 0] = nodeValue("Scene", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3Scene, noone); outputs[| 0] = nodeValue_Output("Scene", self, VALUE_TYPE.d3Scene, noone);
input_display_list = [ input_display_list = [
["Objects", false], 0, 3, 4, 5, ["Objects", false], 0, 3, 4, 5,

View file

@ -1,7 +1,7 @@
function Node_3D_Round_Vertex(_x, _y, _group = noone) : Node_3D_Modifier(_x, _y, _group) constructor { function Node_3D_Round_Vertex(_x, _y, _group = noone) : Node_3D_Modifier(_x, _y, _group) constructor {
name = "Discretize vertex"; name = "Discretize vertex";
inputs[| in_mesh + 0] = nodeValue("Step", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.1) inputs[| in_mesh + 0] = nodeValue_Float("Step", self, 0.1)
static processData = function(_output, _data, _output_index, _array_index = 0) { static processData = function(_output, _data, _output_index, _array_index = 0) {
var _obj = _data[0]; var _obj = _data[0];

View file

@ -1,13 +1,13 @@
function Node_3D_Scene(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constructor { function Node_3D_Scene(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constructor {
name = "3D Scene"; name = "3D Scene";
outputs[| 0] = nodeValue("Scene", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3Scene, noone); outputs[| 0] = nodeValue_Output("Scene", self, VALUE_TYPE.d3Scene, noone);
object_lists = []; object_lists = [];
static createNewInput = function() { static createNewInput = function() {
var index = ds_list_size(inputs); var index = ds_list_size(inputs);
inputs[| index] = nodeValue("Object", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Mesh, noone ) inputs[| index] = nodeValue_D3Mesh("Object", self, noone)
.setVisible(true, true); .setVisible(true, true);
return inputs[| index]; return inputs[| index];

View file

@ -1,11 +1,11 @@
function Node_3D_Set_Material(_x, _y, _group = noone) : Node_3D_Modifier(_x, _y, _group) constructor { function Node_3D_Set_Material(_x, _y, _group = noone) : Node_3D_Modifier(_x, _y, _group) constructor {
name = "Set Material"; name = "Set Material";
inputs[| in_mesh + 0] = nodeValue("Materials", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, new __d3dMaterial() ) inputs[| in_mesh + 0] = nodeValue_D3Material("Materials", self, new __d3dMaterial())
.setVisible(true, true) .setVisible(true, true)
.setArrayDepth(1); .setArrayDepth(1);
inputs[| in_mesh + 1] = nodeValue("Single material", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true) inputs[| in_mesh + 1] = nodeValue_Bool("Single material", self, true)
static preGetInputs = function() { #region static preGetInputs = function() { #region
var _sing = inputs[| in_mesh + 1].getValue(); var _sing = inputs[| in_mesh + 1].getValue();

View file

@ -1,10 +1,10 @@
function Node_3D_Transform(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group) constructor { function Node_3D_Transform(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group) constructor {
name = "Transform"; name = "Transform";
inputs[| in_d3d + 0] = nodeValue("Mesh", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Mesh, noone) inputs[| in_d3d + 0] = nodeValue_D3Mesh("Mesh", self, noone)
.setVisible(true, true); .setVisible(true, true);
outputs[| 0] = nodeValue("Mesh", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3Mesh, noone); outputs[| 0] = nodeValue_Output("Mesh", self, VALUE_TYPE.d3Mesh, noone);
input_display_list = [ in_d3d + 0, input_display_list = [ in_d3d + 0,
["Transform", false], 0, 1, 2, ["Transform", false], 0, 1, 2,

View file

@ -8,7 +8,7 @@ function Node_3D_Mesh_Plane(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _grou
inputs[| in_mesh + 1] = nodeValue_Enum_Button("Normal", self, 2 , [ "X", "Y", "Z" ]); inputs[| in_mesh + 1] = nodeValue_Enum_Button("Normal", self, 2 , [ "X", "Y", "Z" ]);
inputs[| in_mesh + 2] = nodeValue("Both side", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ) inputs[| in_mesh + 2] = nodeValue_Bool("Both side", self, false )
inputs[| in_mesh + 3] = nodeValue("Back Material", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, noone ) inputs[| in_mesh + 3] = nodeValue("Back Material", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, noone )

View file

@ -28,7 +28,7 @@ function Node_3D_Transform_Image(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y,
] ]
outputs[| 0].setVisible(false); outputs[| 0].setVisible(false);
outputs[| 1] = nodeValue("Rendered", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 1] = nodeValue_Output("Rendered", self, VALUE_TYPE.surface, noone);
output_display_list = [ 1 ] output_display_list = [ 1 ]

View file

@ -1,16 +1,16 @@
function Node_3D_Transform_Scene(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constructor { function Node_3D_Transform_Scene(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constructor {
name = "Transform Scene"; name = "Transform Scene";
inputs[| 0] = nodeValue("Scene", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Scene, noone) inputs[| 0] = nodeValue_D3Scene("Scene", self, noone)
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue("Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, []) inputs[| 1] = nodeValue_Float("Position", self, [])
.setArrayDepth(2); .setArrayDepth(2);
inputs[| 2] = nodeValue("Rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, []) inputs[| 2] = nodeValue_Float("Rotation", self, [])
.setArrayDepth(2); .setArrayDepth(2);
inputs[| 3] = nodeValue("Scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, []) inputs[| 3] = nodeValue_Float("Scale", self, [])
.setArrayDepth(2); .setArrayDepth(2);
inputs[| 4] = nodeValue_Enum_Scroll("Positioning type", self, 0, [ "Additive", "Override" ]); inputs[| 4] = nodeValue_Enum_Scroll("Positioning type", self, 0, [ "Additive", "Override" ]);
@ -19,7 +19,7 @@ function Node_3D_Transform_Scene(_x, _y, _group = noone) : Node_3D(_x, _y, _grou
inputs[| 6] = nodeValue_Enum_Scroll("Scaling type", self, 0, [ "Additive", "Multiplicative", "Override" ]); inputs[| 6] = nodeValue_Enum_Scroll("Scaling type", self, 0, [ "Additive", "Multiplicative", "Override" ]);
outputs[| 0] = nodeValue("Scene", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3Scene, noone); outputs[| 0] = nodeValue_Output("Scene", self, VALUE_TYPE.d3Scene, noone);
input_display_list = [ 0, input_display_list = [ 0,
["Transform", false], 1, 2, 3, ["Transform", false], 1, 2, 3,

View file

@ -2,16 +2,16 @@ function Node_3D_UV_Remap(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _grou
name = "UV Remap"; name = "UV Remap";
gizmo = new __3dGizmoPlane(); gizmo = new __3dGizmoPlane();
inputs[| in_d3d + 0] = nodeValue("Mesh", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Mesh, noone) inputs[| in_d3d + 0] = nodeValue_D3Mesh("Mesh", self, noone)
.setVisible(true, true); .setVisible(true, true);
inputs[| in_d3d + 1] = nodeValue("Target subobject", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, -1) inputs[| in_d3d + 1] = nodeValue_Int("Target subobject", self, -1)
.setArrayDepth(1); .setArrayDepth(1);
inputs[| in_d3d + 2] = nodeValue("Bake UV", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| in_d3d + 2] = nodeValue_Int("Bake UV", self, 0)
.setDisplay(VALUE_DISPLAY.button, { name: "Bake", onClick: function() { attributes.bakedUV = !attributes.bakedUV; triggerRender(); } }); .setDisplay(VALUE_DISPLAY.button, { name: "Bake", onClick: function() { attributes.bakedUV = !attributes.bakedUV; triggerRender(); } });
outputs[| 0] = nodeValue("Mesh", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3Mesh, noone); outputs[| 0] = nodeValue_Output("Mesh", self, VALUE_TYPE.d3Mesh, noone);
input_display_list = [ input_display_list = [
["Transform", false], 0, 1, 2, ["Transform", false], 0, 1, 2,

View file

@ -3,18 +3,17 @@ function Node_3DSurf(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
cached_object = []; cached_object = [];
object_class = dynaSurf_3d; object_class = dynaSurf_3d;
inputs[| 0] = nodeValue("Scene", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Scene, noone) inputs[| 0] = nodeValue_D3Scene("Scene", self, noone)
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue("Base Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF) inputs[| 1] = nodeValue_Vector("Base Dimension", self, DEF_SURF);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 2] = nodeValue("Vertical Angle", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 45 ) inputs[| 2] = nodeValue_Float("Vertical Angle", self, 45 )
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 90, 0.1] }); .setDisplay(VALUE_DISPLAY.slider, { range: [0, 90, 0.1] });
inputs[| 3] = nodeValue("Distance", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 4 ); inputs[| 3] = nodeValue_Float("Distance", self, 4 );
outputs[| 0] = nodeValue("3DSurf", self, JUNCTION_CONNECT.output, VALUE_TYPE.dynaSurface, noone); outputs[| 0] = nodeValue_Output("3DSurf", self, VALUE_TYPE.dynaSurface, noone);
input_display_list = [ 0, input_display_list = [ 0,
["Camera", false], 1, 2, 3, ["Camera", false], 1, 2, 3,

View file

@ -5,13 +5,12 @@ function Node_9Slice(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
inputs[| 1] = nodeValue_Dimension(self); inputs[| 1] = nodeValue_Dimension(self);
inputs[| 2] = nodeValue("Splice", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 0, 0, 0, 0 ]) inputs[| 2] = nodeValue_Padding("Splice", self, [ 0, 0, 0, 0 ])
.setDisplay(VALUE_DISPLAY.padding)
.setUnitRef(function(index) { return getDimension(index); }); .setUnitRef(function(index) { return getDimension(index); });
inputs[| 3] = nodeValue_Enum_Scroll("Filling modes", self, 0, [ "Scale", "Repeat" ]); inputs[| 3] = nodeValue_Enum_Scroll("Filling modes", self, 0, [ "Scale", "Repeat" ]);
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);
attribute_surface_depth(); attribute_surface_depth();
attribute_interpolation(); attribute_interpolation();

View file

@ -2,13 +2,13 @@ function Node_FFT(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) const
name = "FFT"; name = "FFT";
setDimension(96, 72); setDimension(96, 72);
inputs[| 0] = nodeValue("Data", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, []) inputs[| 0] = nodeValue_Float("Data", self, [])
.setArrayDepth(1) .setArrayDepth(1)
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue_Enum_Scroll("Preprocess Function", self, 0, [ "None", "Hann" ]); inputs[| 1] = nodeValue_Enum_Scroll("Preprocess Function", self, 0, [ "None", "Hann" ]);
outputs[| 0] = nodeValue("Array", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, []) outputs[| 0] = nodeValue_Output("Array", self, VALUE_TYPE.float, [])
.setArrayDepth(1); .setArrayDepth(1);
static processData = function(_outSurf, _data, _output_index, _array_index) { static processData = function(_outSurf, _data, _output_index, _array_index) {

View file

@ -6,7 +6,7 @@ function Node_FLIP_Add_Rigidbody(_x, _y, _group = noone) : Node(_x, _y, _group)
manual_ungroupable = false; manual_ungroupable = false;
inputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.input, VALUE_TYPE.fdomain, noone ) inputs[| 0] = nodeValue_Fdomain("Domain", self, noone )
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue("Objects", self, JUNCTION_CONNECT.input, VALUE_TYPE.rigid, [] ) inputs[| 1] = nodeValue("Objects", self, JUNCTION_CONNECT.input, VALUE_TYPE.rigid, [] )
@ -16,7 +16,7 @@ function Node_FLIP_Add_Rigidbody(_x, _y, _group = noone) : Node(_x, _y, _group)
["Collider", false], 1, ["Collider", false], 1,
] ]
outputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.output, VALUE_TYPE.fdomain, noone ); outputs[| 0] = nodeValue_Output("Domain", self, VALUE_TYPE.fdomain, noone );
obstracle = new FLIP_Obstracle(); obstracle = new FLIP_Obstracle();
index = 0; index = 0;

View file

@ -22,20 +22,18 @@ function Node_FLIP_Apply_Force(_x, _y, _group = noone) : Node(_x, _y, _group) co
manual_ungroupable = false; manual_ungroupable = false;
inputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.input, VALUE_TYPE.fdomain, noone ) inputs[| 0] = nodeValue_Fdomain("Domain", self, noone )
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue("Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) inputs[| 1] = nodeValue_Vector("Position", self, [ 0, 0 ] )
.setDisplay(VALUE_DISPLAY.vector)
.setUnitRef(function(index) { return getDimension(); }); .setUnitRef(function(index) { return getDimension(); });
inputs[| 2] = nodeValue("Radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 4 ) inputs[| 2] = nodeValue_Float("Radius", self, 4 )
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 0.1] }); .setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 0.1] });
inputs[| 3] = nodeValue_Enum_Scroll("Shape", self, 0 , [ new scrollItem("Circle", s_node_shape_circle, 0), new scrollItem("Rectangle", s_node_shape_rectangle, 0), ]); inputs[| 3] = nodeValue_Enum_Scroll("Shape", self, 0 , [ new scrollItem("Circle", s_node_shape_circle, 0), new scrollItem("Rectangle", s_node_shape_rectangle, 0), ]);
inputs[| 4] = nodeValue("Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 4, 4 ] ) inputs[| 4] = nodeValue_Vector("Size", self, [ 4, 4 ] );
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 5] = nodeValue_Surface("Texture", self) inputs[| 5] = nodeValue_Surface("Texture", self)
@ -44,7 +42,7 @@ function Node_FLIP_Apply_Force(_x, _y, _group = noone) : Node(_x, _y, _group) co
["Obstracle", false], 1, 5, ["Obstracle", false], 1, 5,
] ]
outputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.output, VALUE_TYPE.fdomain, noone ); outputs[| 0] = nodeValue_Output("Domain", self, VALUE_TYPE.fdomain, noone );
obstracle = new FLIP_Obstracle(); obstracle = new FLIP_Obstracle();
index = 0; index = 0;

View file

@ -6,29 +6,26 @@ function Node_FLIP_Apply_Velocity(_x, _y, _group = noone) : Node(_x, _y, _group)
manual_ungroupable = false; manual_ungroupable = false;
inputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.input, VALUE_TYPE.fdomain, noone ) inputs[| 0] = nodeValue_Fdomain("Domain", self, noone )
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue("Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) inputs[| 1] = nodeValue_Vector("Position", self, [ 0, 0 ] )
.setDisplay(VALUE_DISPLAY.vector)
.setUnitRef(function(index) { return getDimension(); }); .setUnitRef(function(index) { return getDimension(); });
inputs[| 2] = nodeValue("Radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 4 ) inputs[| 2] = nodeValue_Float("Radius", self, 4 )
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 0.1] }); .setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 0.1] });
inputs[| 3] = nodeValue("Velocity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) inputs[| 3] = nodeValue_Vector("Velocity", self, [ 0, 0 ] );
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 4] = nodeValue_Enum_Scroll("Shape", self, 0 , [ new scrollItem("Circle", s_node_shape_circle, 0), new scrollItem("Rectangle", s_node_shape_rectangle, 0) ]); inputs[| 4] = nodeValue_Enum_Scroll("Shape", self, 0 , [ new scrollItem("Circle", s_node_shape_circle, 0), new scrollItem("Rectangle", s_node_shape_rectangle, 0) ]);
inputs[| 5] = nodeValue("Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 4, 4 ] ) inputs[| 5] = nodeValue_Vector("Size", self, [ 4, 4 ] );
.setDisplay(VALUE_DISPLAY.vector);
input_display_list = [ 0, input_display_list = [ 0,
["Velocity", false], 4, 1, 2, 5, 3, ["Velocity", false], 4, 1, 2, 5, 3,
] ]
outputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.output, VALUE_TYPE.fdomain, noone ); outputs[| 0] = nodeValue_Output("Domain", self, VALUE_TYPE.fdomain, noone );
static getDimension = function() { static getDimension = function() {
var domain = getInputData(0); var domain = getInputData(0);

View file

@ -6,25 +6,23 @@ function Node_FLIP_Destroy(_x, _y, _group = noone) : Node(_x, _y, _group) constr
manual_ungroupable = false; manual_ungroupable = false;
inputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.input, VALUE_TYPE.fdomain, noone ) inputs[| 0] = nodeValue_Fdomain("Domain", self, noone )
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue("Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) inputs[| 1] = nodeValue_Vector("Position", self, [ 0, 0 ] )
.setDisplay(VALUE_DISPLAY.vector)
.setUnitRef(function(index) { return getDimension(); }); .setUnitRef(function(index) { return getDimension(); });
inputs[| 2] = nodeValue_Enum_Scroll("Shape", self, 0 , [ new scrollItem("Circle", s_node_shape_circle, 0), new scrollItem("Rectangle", s_node_shape_rectangle, 0), ]); inputs[| 2] = nodeValue_Enum_Scroll("Shape", self, 0 , [ new scrollItem("Circle", s_node_shape_circle, 0), new scrollItem("Rectangle", s_node_shape_rectangle, 0), ]);
inputs[| 3] = nodeValue("Radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 4 ) inputs[| 3] = nodeValue_Float("Radius", self, 4 )
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 0.1] }); .setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 0.1] });
inputs[| 4] = nodeValue("Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 4, 4 ] ) inputs[| 4] = nodeValue_Vector("Size", self, [ 4, 4 ] );
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 5] = nodeValue("Ratio", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1 ) inputs[| 5] = nodeValue_Float("Ratio", self, 1 )
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
outputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.output, VALUE_TYPE.fdomain, noone ); outputs[| 0] = nodeValue_Output("Domain", self, VALUE_TYPE.fdomain, noone );
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
var _pos = getInputData(1); var _pos = getInputData(1);

View file

@ -9,34 +9,33 @@ function Node_FLIP_Domain(_x, _y, _group = noone) : Node(_x, _y, _group) constru
inputs[| 0] = nodeValue_Dimension(self); inputs[| 0] = nodeValue_Dimension(self);
inputs[| 1] = nodeValue("Particle Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1); inputs[| 1] = nodeValue_Int("Particle Size", self, 1);
inputs[| 2] = nodeValue("Particle Density", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 10); inputs[| 2] = nodeValue_Int("Particle Density", self, 10);
inputs[| 3] = nodeValue("FLIP Ratio", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.8) inputs[| 3] = nodeValue_Float("FLIP Ratio", self, 0.8)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 4] = nodeValue("Resolve accelerator", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1.5); inputs[| 4] = nodeValue_Float("Resolve accelerator", self, 1.5);
inputs[| 5] = nodeValue("Iteration", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 8); inputs[| 5] = nodeValue_Int("Iteration", self, 8);
inputs[| 6] = nodeValue("Damping", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.8) inputs[| 6] = nodeValue_Float("Damping", self, 0.8)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 7] = nodeValue("Gravity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 5); inputs[| 7] = nodeValue_Float("Gravity", self, 5);
inputs[| 8] = nodeValue("Time Step", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.05); inputs[| 8] = nodeValue_Float("Time Step", self, 0.05);
inputs[| 9] = nodeValue("Wall", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0b1111) inputs[| 9] = nodeValue_Toggle("Wall", self, 0b1111, { data: [ "T", "B", "L", "R" ] });
.setDisplay(VALUE_DISPLAY.toggle, { data: [ "T", "B", "L", "R" ] });
inputs[| 10] = nodeValue("Viscosity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.) inputs[| 10] = nodeValue_Float("Viscosity", self, 0.)
.setDisplay(VALUE_DISPLAY.slider, { range: [ -1, 1, 0.01 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ -1, 1, 0.01 ] });
inputs[| 11] = nodeValue("Friction", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.) inputs[| 11] = nodeValue_Float("Friction", self, 0.)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 12] = nodeValue("Wall Elasticity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.) inputs[| 12] = nodeValue_Float("Wall Elasticity", self, 0.)
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 2, 0.01 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 2, 0.01 ] });
inputs[| 13] = nodeValue_Rotation("Gravity Direction", self, 0); inputs[| 13] = nodeValue_Rotation("Gravity Direction", self, 0);
@ -47,7 +46,7 @@ function Node_FLIP_Domain(_x, _y, _group = noone) : Node(_x, _y, _group) constru
["Physics", false], 7, 13, 10, 11, ["Physics", false], 7, 13, 10, 11,
] ]
outputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.output, VALUE_TYPE.fdomain, noone); outputs[| 0] = nodeValue_Output("Domain", self, VALUE_TYPE.fdomain, noone);
#region attributes #region attributes
array_push(attributeEditors, "FLIP Solver"); array_push(attributeEditors, "FLIP Solver");

View file

@ -5,37 +5,34 @@ function Node_FLIP_Render(_x, _y, _group = noone) : Node(_x, _y, _group) constru
manual_ungroupable = false; manual_ungroupable = false;
inputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.input, VALUE_TYPE.fdomain, noone) inputs[| 0] = nodeValue_Fdomain("Domain", self, noone)
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue("Merge threshold", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.75) inputs[| 1] = nodeValue_Float("Merge threshold", self, 0.75)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 2] = nodeValue("Lifespan", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 0, 0 ]) inputs[| 2] = nodeValue_Range("Lifespan", self, [ 0, 0 ], { linked : true });
.setDisplay(VALUE_DISPLAY.range, { linked : true });
inputs[| 3] = nodeValue("Particle expansion", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 20); inputs[| 3] = nodeValue_Float("Particle expansion", self, 20);
inputs[| 4] = nodeValue("Draw obstracles", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); inputs[| 4] = nodeValue_Bool("Draw obstracles", self, true);
inputs[| 5] = nodeValue_Surface("Fluid particle", self); inputs[| 5] = nodeValue_Surface("Fluid particle", self);
inputs[| 6] = nodeValue_Enum_Scroll("Render type", self, 0, [ new scrollItem("Particle", s_node_flip_render, 0), inputs[| 6] = nodeValue_Enum_Scroll("Render type", self, 0, [ new scrollItem("Particle", s_node_flip_render, 0),
new scrollItem("Line", s_node_flip_render, 1), ] ); new scrollItem("Line", s_node_flip_render, 1), ] );
inputs[| 7] = nodeValue("Threshold", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); inputs[| 7] = nodeValue_Bool("Threshold", self, true);
inputs[| 8] = nodeValue("Additive", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); inputs[| 8] = nodeValue_Bool("Additive", self, true);
inputs[| 9] = nodeValue("Alpha", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) inputs[| 9] = nodeValue_Slider_Range("Alpha", self, [ 1, 1 ]);
.setDisplay(VALUE_DISPLAY.slider_range);
inputs[| 10] = nodeValue("Segments", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1); inputs[| 10] = nodeValue_Int("Segments", self, 1);
inputs[| 11] = nodeValue("Color Over Velocity", self, JUNCTION_CONNECT.input, VALUE_TYPE.gradient, new gradientObject(cola(c_white))); inputs[| 11] = nodeValue_Gradient("Color Over Velocity", self, new gradientObject(cola(c_white)));
inputs[| 12] = nodeValue("Velocity Map", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 10 ]) inputs[| 12] = nodeValue_Range("Velocity Map", self, [ 0, 10 ]);
.setDisplay(VALUE_DISPLAY.range);
input_display_list = [ 0, 5, input_display_list = [ 0, 5,
["Rendering", false], 6, 10, 3, 4, 9, ["Rendering", false], 6, 10, 3, 4, 9,
@ -43,7 +40,7 @@ function Node_FLIP_Render(_x, _y, _group = noone) : Node(_x, _y, _group) constru
["Post Processing", false], 8, 7, 1, ["Post Processing", false], 8, 7, 1,
]; ];
outputs[| 0] = nodeValue("Rendered", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Rendered", self, VALUE_TYPE.surface, noone);
seed = irandom_range(100000, 999999); seed = irandom_range(100000, 999999);
temp_surface = [ noone ]; temp_surface = [ noone ];

View file

@ -6,23 +6,22 @@ function Node_FLIP_Repel(_x, _y, _group = noone) : Node(_x, _y, _group) construc
manual_ungroupable = false; manual_ungroupable = false;
inputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.input, VALUE_TYPE.fdomain, noone ) inputs[| 0] = nodeValue_Fdomain("Domain", self, noone )
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue("Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) inputs[| 1] = nodeValue_Vector("Position", self, [ 0, 0 ] )
.setDisplay(VALUE_DISPLAY.vector)
.setUnitRef(function(index) { return getDimension(); }); .setUnitRef(function(index) { return getDimension(); });
inputs[| 2] = nodeValue("Radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 4 ); inputs[| 2] = nodeValue_Float("Radius", self, 4 );
inputs[| 3] = nodeValue("Strength", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 4 ) inputs[| 3] = nodeValue_Float("Strength", self, 4 )
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 16, 0.1 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 16, 0.1 ] });
input_display_list = [ 0, input_display_list = [ 0,
["Repel", false], 1, 2, 3, ["Repel", false], 1, 2, 3,
] ]
outputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.output, VALUE_TYPE.fdomain, noone ); outputs[| 0] = nodeValue_Output("Domain", self, VALUE_TYPE.fdomain, noone );
static getDimension = function() { #region static getDimension = function() { #region
var domain = getInputData(0); var domain = getInputData(0);

View file

@ -6,49 +6,45 @@ function Node_FLIP_Spawner(_x, _y, _group = noone) : Node(_x, _y, _group) constr
manual_ungroupable = false; manual_ungroupable = false;
inputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.input, VALUE_TYPE.fdomain, noone ) inputs[| 0] = nodeValue_Fdomain("Domain", self, noone )
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue_Enum_Scroll("Spawn Shape", self, 0 , [ new scrollItem("Circle", s_node_shape_circle, 0), new scrollItem("Rectangle", s_node_shape_rectangle, 0), "Surface" ]); inputs[| 1] = nodeValue_Enum_Scroll("Spawn Shape", self, 0 , [ new scrollItem("Circle", s_node_shape_circle, 0), new scrollItem("Rectangle", s_node_shape_rectangle, 0), "Surface" ]);
inputs[| 2] = nodeValue("Spawn Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0.5, 0.25 ] ) inputs[| 2] = nodeValue_Vector("Spawn Position", self, [ 0.5, 0.25 ] )
.setDisplay(VALUE_DISPLAY.vector)
.setUnitRef(function(index) { return getDimension(); }, VALUE_UNIT.reference); .setUnitRef(function(index) { return getDimension(); }, VALUE_UNIT.reference);
inputs[| 3] = nodeValue_Enum_Button("Spawn Type", self, 0 , [ "Stream", "Splash" ]); inputs[| 3] = nodeValue_Enum_Button("Spawn Type", self, 0 , [ "Stream", "Splash" ]);
inputs[| 4] = nodeValue("Spawn Frame", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ); inputs[| 4] = nodeValue_Int("Spawn Frame", self, 0 );
inputs[| 5] = nodeValue("Spawn Amount", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 8 ); inputs[| 5] = nodeValue_Float("Spawn Amount", self, 8 );
inputs[| 6] = nodeValue("Spawn Velocity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) inputs[| 6] = nodeValue_Range("Spawn Velocity", self, [ 0, 0 ] );
.setDisplay(VALUE_DISPLAY.range);
inputs[| 7] = nodeValue_Surface("Spawn Surface", self); inputs[| 7] = nodeValue_Surface("Spawn Surface", self);
inputs[| 8] = nodeValue("Spawn Radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 2 ) inputs[| 8] = nodeValue_Float("Spawn Radius", self, 2 )
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 0.1] }); .setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 0.1] });
inputs[| 9] = nodeValue("Seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, seed_random(6)) inputs[| 9] = nodeValue_Int("Seed", self, seed_random(6))
.setDisplay(VALUE_DISPLAY._default, { side_button : button(function() { randomize(); inputs[| 9].setValue(seed_random(6)); }).setIcon(THEME.icon_random, 0, COLORS._main_icon) }); .setDisplay(VALUE_DISPLAY._default, { side_button : button(function() { randomize(); inputs[| 9].setValue(seed_random(6)); }).setIcon(THEME.icon_random, 0, COLORS._main_icon) });
inputs[| 10] = nodeValue("Spawn Direction", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 45, 135, 0, 0 ] ) inputs[| 10] = nodeValue_Rotation_Random("Spawn Direction", self, [ 0, 45, 135, 0, 0 ] );
.setDisplay(VALUE_DISPLAY.rotation_random);
inputs[| 11] = nodeValue("Inherit Velocity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ) inputs[| 11] = nodeValue_Float("Inherit Velocity", self, 0 )
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 12] = nodeValue("Spawn Duration", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1 ); inputs[| 12] = nodeValue_Int("Spawn Duration", self, 1 );
inputs[| 13] = nodeValue("Spawn Szie", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 2, 2 ] ) inputs[| 13] = nodeValue_Vector("Spawn Szie", self, [ 2, 2 ] );
.setDisplay(VALUE_DISPLAY.vector);
input_display_list = [ 0, 9, input_display_list = [ 0, 9,
["Spawner", false], 1, 7, 8, 13, 2, 3, 4, 12, 5, ["Spawner", false], 1, 7, 8, 13, 2, 3, 4, 12, 5,
["Physics", false], 10, 6, 11, ["Physics", false], 10, 6, 11,
] ]
outputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.output, VALUE_TYPE.fdomain, noone ); outputs[| 0] = nodeValue_Output("Domain", self, VALUE_TYPE.fdomain, noone );
spawn_amo = 0; spawn_amo = 0;
prev_position = [ 0, 0 ]; prev_position = [ 0, 0 ];

View file

@ -6,10 +6,10 @@ function Node_FLIP_to_VFX(_x, _y, _group = noone) : Node(_x, _y, _group) constru
manual_ungroupable = false; manual_ungroupable = false;
inputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.input, VALUE_TYPE.fdomain, noone) inputs[| 0] = nodeValue_Fdomain("Domain", self, noone)
.setVisible(true, true); .setVisible(true, true);
outputs[| 0] = nodeValue("Particles", self, JUNCTION_CONNECT.output, VALUE_TYPE.particle, [] ); outputs[| 0] = nodeValue_Output("Particles", self, VALUE_TYPE.particle, [] );
attributes.part_amount = 512; attributes.part_amount = 512;
array_push(attributeEditors, ["Maximum particles", function() { return attributes.part_amount; }, array_push(attributeEditors, ["Maximum particles", function() { return attributes.part_amount; },

View file

@ -6,20 +6,20 @@ function Node_FLIP_Update(_x, _y, _group = noone) : Node(_x, _y, _group) constru
manual_ungroupable = false; manual_ungroupable = false;
inputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.input, VALUE_TYPE.fdomain, noone) inputs[| 0] = nodeValue_Fdomain("Domain", self, noone)
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue("Update", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); inputs[| 1] = nodeValue_Bool("Update", self, true);
inputs[| 2] = nodeValue("Override timestep", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); inputs[| 2] = nodeValue_Bool("Override timestep", self, false);
inputs[| 3] = nodeValue("Timestep", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.01); inputs[| 3] = nodeValue_Float("Timestep", self, 0.01);
input_display_list = [ 0, 1, input_display_list = [ 0, 1,
["Timestep", false], 2, 3, ["Timestep", false], 2, 3,
]; ];
outputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.output, VALUE_TYPE.fdomain, noone); outputs[| 0] = nodeValue_Output("Domain", self, VALUE_TYPE.fdomain, noone);
static update = function(frame = CURRENT_FRAME) { static update = function(frame = CURRENT_FRAME) {
var domain = getInputData(0); var domain = getInputData(0);

View file

@ -6,26 +6,25 @@ function Node_FLIP_Vortex(_x, _y, _group = noone) : Node(_x, _y, _group) constru
manual_ungroupable = false; manual_ungroupable = false;
inputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.input, VALUE_TYPE.fdomain, noone ) inputs[| 0] = nodeValue_Fdomain("Domain", self, noone )
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue("Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) inputs[| 1] = nodeValue_Vector("Position", self, [ 0, 0 ] )
.setDisplay(VALUE_DISPLAY.vector)
.setUnitRef(function(index) { return getDimension(); }); .setUnitRef(function(index) { return getDimension(); });
inputs[| 2] = nodeValue("Radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 4 ); inputs[| 2] = nodeValue_Float("Radius", self, 4 );
inputs[| 3] = nodeValue("Strength", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 4 ) inputs[| 3] = nodeValue_Float("Strength", self, 4 )
.setDisplay(VALUE_DISPLAY.slider, { range: [ -8, 8, 0.01 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ -8, 8, 0.01 ] });
inputs[| 4] = nodeValue("Attraction", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ) inputs[| 4] = nodeValue_Float("Attraction", self, 0 )
.setDisplay(VALUE_DISPLAY.slider, { range: [ -8, 8, 0.01 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ -8, 8, 0.01 ] });
input_display_list = [ 0, input_display_list = [ 0,
["Vertex", false], 1, 2, 3, 4, ["Vertex", false], 1, 2, 3, 4,
] ]
outputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.output, VALUE_TYPE.fdomain, noone ); outputs[| 0] = nodeValue_Output("Domain", self, VALUE_TYPE.fdomain, noone );
static getDimension = function() { #region static getDimension = function() { #region
var domain = getInputData(0); var domain = getInputData(0);

View file

@ -6,17 +6,16 @@ function Node_FLIP_Wall(_x, _y, _group = noone) : Node(_x, _y, _group) construct
manual_ungroupable = false; manual_ungroupable = false;
inputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.input, VALUE_TYPE.fdomain, noone ) inputs[| 0] = nodeValue_Fdomain("Domain", self, noone )
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue("Area", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, DEF_AREA ) inputs[| 1] = nodeValue_Area("Area", self, DEF_AREA , { useShape : false });
.setDisplay(VALUE_DISPLAY.area, { useShape : false });
input_display_list = [ 0, input_display_list = [ 0,
["Collider", false], 1 ["Collider", false], 1
] ]
outputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.output, VALUE_TYPE.fdomain, noone ); outputs[| 0] = nodeValue_Output("Domain", self, VALUE_TYPE.fdomain, noone );
obstracle = new FLIP_Obstracle(); obstracle = new FLIP_Obstracle();

View file

@ -3,12 +3,12 @@ function Node_FXAA(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
inputs[| 0] = nodeValue_Surface("Surface in", self); inputs[| 0] = nodeValue_Surface("Surface in", self);
inputs[| 1] = nodeValue("Active", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); inputs[| 1] = nodeValue_Bool("Active", self, true);
inputs[| 2] = nodeValue("Distance", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5) inputs[| 2] = nodeValue_Float("Distance", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 3] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) inputs[| 3] = nodeValue_Float("Mix", self, 1)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
active_index = 1; active_index = 1;
@ -18,7 +18,7 @@ function Node_FXAA(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
["Effect", false], 2, 3, ["Effect", false], 2, 3,
] ]
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);
attribute_surface_depth(); attribute_surface_depth();

View file

@ -11,13 +11,13 @@ function Node_BW(_x, _y) : Node_Processor(_x, _y) constructor {
uniform_con = shader_get_uniform(sh_bw, "contrast"); uniform_con = shader_get_uniform(sh_bw, "contrast");
inputs[| 0] = new NodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); inputs[| 0] = new NodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 1] = new NodeValue(1, "Brightness", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0); inputs[| 1] = new NodeValue_Float(1, "Brightness", self, 0);
inputs[| 1].setDisplay(VALUE_DISPLAY.slider, [ -1, 1, 0.01]); inputs[| 1].setDisplay(VALUE_DISPLAY.slider, [ -1, 1, 0.01]);
inputs[| 2] = new NodeValue(2, "Contrast", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1); inputs[| 2] = new NodeValue_Float(2, "Contrast", self, 1);
inputs[| 2].setDisplay(VALUE_DISPLAY.slider, [ -1, 4, 0.01]); inputs[| 2].setDisplay(VALUE_DISPLAY.slider, [ -1, 4, 0.01]);
outputs[| 0] = new NodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, surface_create(1, 1)); outputs[| 0] = new nodeValue_Output(0, "Surface out", self, VALUE_TYPE.surface, surface_create(1, 1));
function process_data(_inSurf, _outSurf, _data) { function process_data(_inSurf, _outSurf, _data) {
var _exp = _data[1]; var _exp = _data[1];

View file

@ -5,7 +5,7 @@ function Node_PCX_Array_Get(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) c
inputs[| 1] = nodeValue("Index", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone); inputs[| 1] = nodeValue("Index", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
outputs[| 0] = nodeValue("PCX", self, JUNCTION_CONNECT.output, VALUE_TYPE.PCXnode, noone); outputs[| 0] = nodeValue_Output("PCX", self, VALUE_TYPE.PCXnode, noone);
static update = function() { static update = function() {
var _arr = getInputData(0); var _arr = getInputData(0);

View file

@ -7,7 +7,7 @@ function Node_PCX_Array_Set(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) c
inputs[| 2] = nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone); inputs[| 2] = nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
outputs[| 0] = nodeValue("PCX", self, JUNCTION_CONNECT.output, VALUE_TYPE.PCXnode, noone); outputs[| 0] = nodeValue_Output("PCX", self, VALUE_TYPE.PCXnode, noone);
static update = function() { static update = function() {
var _arr = getInputData(0); var _arr = getInputData(0);

View file

@ -7,7 +7,7 @@ function Node_PCX_Condition(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) c
inputs[| 2] = nodeValue("False", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone); inputs[| 2] = nodeValue("False", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
outputs[| 0] = nodeValue("PCX", self, JUNCTION_CONNECT.output, VALUE_TYPE.PCXnode, noone); outputs[| 0] = nodeValue_Output("PCX", self, VALUE_TYPE.PCXnode, noone);
static update = function() { static update = function() {
var _cond = getInputData(0); var _cond = getInputData(0);

View file

@ -4,9 +4,9 @@ function Node_PCX_Equation(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) co
setDimension(96, 48); setDimension(96, 48);
ast = noone; ast = noone;
inputs[| 0] = nodeValue("Equation", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, ""); inputs[| 0] = nodeValue_Text("Equation", self, "");
outputs[| 0] = nodeValue("Result", self, JUNCTION_CONNECT.output, VALUE_TYPE.PCXnode, noone ); outputs[| 0] = nodeValue_Output("Result", self, VALUE_TYPE.PCXnode, noone );
argument_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) { #region argument_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) { #region
argument_renderer.x = _x; argument_renderer.x = _x;
@ -50,7 +50,7 @@ function Node_PCX_Equation(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) co
static createNewInput = function() { static createNewInput = function() {
var index = ds_list_size(inputs); var index = ds_list_size(inputs);
inputs[| index + 0] = nodeValue("Argument name", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "" ) inputs[| index + 0] = nodeValue_Text("Argument name", self, "" )
.setDisplay(VALUE_DISPLAY.text_box); .setDisplay(VALUE_DISPLAY.text_box);
inputs[| index + 1] = nodeValue("Argument value", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone ) inputs[| index + 1] = nodeValue("Argument value", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone )

View file

@ -13,7 +13,7 @@ function Node_PCX_fn_Math(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) con
inputs[| 3] = nodeValue("z", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone); inputs[| 3] = nodeValue("z", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
outputs[| 0] = nodeValue("PCX", self, JUNCTION_CONNECT.output, VALUE_TYPE.PCXnode, noone); outputs[| 0] = nodeValue_Output("PCX", self, VALUE_TYPE.PCXnode, noone);
static update = function() { static update = function() {
static syms = [ "+", "-", "*", "/", "$", "%", "abs", -1, "round", "floor", "ceil", static syms = [ "+", "-", "*", "/", "$", "%", "abs", -1, "round", "floor", "ceil",

View file

@ -5,9 +5,9 @@ function Node_PCX_fn_Random(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) c
inputs[| 1] = nodeValue("Max", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone); inputs[| 1] = nodeValue("Max", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
inputs[| 2] = nodeValue("Integer", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); inputs[| 2] = nodeValue_Bool("Integer", self, false);
outputs[| 0] = nodeValue("PCX", self, JUNCTION_CONNECT.output, VALUE_TYPE.PCXnode, noone); outputs[| 0] = nodeValue_Output("PCX", self, VALUE_TYPE.PCXnode, noone);
input_display_list = [ 2, 0, 1 ]; input_display_list = [ 2, 0, 1 ];

View file

@ -3,7 +3,7 @@ function Node_PCX_fn_Surface_Height(_x, _y, _group = noone) : Node_PCX(_x, _y, _
inputs[| 0] = nodeValue("Surface", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone); inputs[| 0] = nodeValue("Surface", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
outputs[| 0] = nodeValue("PCX", self, JUNCTION_CONNECT.output, VALUE_TYPE.PCXnode, noone); outputs[| 0] = nodeValue_Output("PCX", self, VALUE_TYPE.PCXnode, noone);
static update = function() { static update = function() {
var _surf = getInputData(0); var _surf = getInputData(0);

View file

@ -3,7 +3,7 @@ function Node_PCX_fn_Surface_Width(_x, _y, _group = noone) : Node_PCX(_x, _y, _g
inputs[| 0] = nodeValue("Surface", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone); inputs[| 0] = nodeValue("Surface", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
outputs[| 0] = nodeValue("PCX", self, JUNCTION_CONNECT.output, VALUE_TYPE.PCXnode, noone); outputs[| 0] = nodeValue_Output("PCX", self, VALUE_TYPE.PCXnode, noone);
static update = function() { static update = function() {
var _surf = getInputData(0); var _surf = getInputData(0);

View file

@ -4,7 +4,7 @@ function Node_PCX_fn_var(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) cons
inputs[| 0] = nodeValue("Default Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0); inputs[| 0] = nodeValue("Default Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0);
outputs[| 0] = nodeValue("PCX", self, JUNCTION_CONNECT.output, VALUE_TYPE.PCXnode, noone); outputs[| 0] = nodeValue_Output("PCX", self, VALUE_TYPE.PCXnode, noone);
static update = function() { static update = function() {
var _def = getInputData(0); var _def = getInputData(0);

View file

@ -1,11 +1,11 @@
function Node_PCX_var(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) constructor { function Node_PCX_var(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) constructor {
name = "Variable"; name = "Variable";
inputs[| 0] = nodeValue("Name", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, ""); inputs[| 0] = nodeValue_Text("Name", self, "");
inputs[| 1] = nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, -1); inputs[| 1] = nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, -1);
outputs[| 0] = nodeValue("PCX", self, JUNCTION_CONNECT.output, VALUE_TYPE.PCXnode, noone); outputs[| 0] = nodeValue_Output("PCX", self, VALUE_TYPE.PCXnode, noone);
static update = function() { static update = function() {
var _name = getInputData(0); var _name = getInputData(0);

View file

@ -4,12 +4,12 @@ function Node_VCT(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) const
color = COLORS.node_blend_vct; color = COLORS.node_blend_vct;
vct = new VCT(self); vct = new VCT(self);
inputs[| 0] = nodeValue("Editor", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 0] = nodeValue_Int("Editor", self, 0)
.setDisplay(VALUE_DISPLAY.button, { name: "Editor", onClick: function() { .setDisplay(VALUE_DISPLAY.button, { name: "Editor", onClick: function() {
vct.createDialog(); vct.createDialog();
} }); } });
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);
input_display_list = [ 0, input_display_list = [ 0,
["Automations", false], ["Automations", false],

View file

@ -4,7 +4,7 @@ function Node_VFX_Attract(_x, _y, _group = noone) : Node_VFX_effector(_x, _y, _g
inputs[| 4].setVisible(false, false); inputs[| 4].setVisible(false, false);
inputs[| effector_input_length + 0] = nodeValue("Destroy when reach middle", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| effector_input_length + 0] = nodeValue_Bool("Destroy when reach middle", self, false );
array_push(input_display_list, effector_input_length + 0); array_push(input_display_list, effector_input_length + 0);

View file

@ -15,7 +15,7 @@ function Node_VFX_Group(_x, _y, _group = noone) : Node_Collection(_x, _y, _group
preview_node = noone; preview_node = noone;
allCached = false; allCached = false;
inputs[| 0] = nodeValue("Loop", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true ) inputs[| 0] = nodeValue_Bool("Loop", self, true )
.rejectArray(); .rejectArray();
custom_input_index = ds_list_size(inputs); custom_input_index = ds_list_size(inputs);

View file

@ -6,7 +6,7 @@ function Node_VFX_Group_Inline(_x, _y, _group = noone) : Node_Collection_Inline(
is_root = false; is_root = false;
topoList = []; topoList = [];
inputs[| 0] = nodeValue("Loop", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true ) inputs[| 0] = nodeValue_Bool("Loop", self, true )
.rejectArray(); .rejectArray();
is_simulation = true; is_simulation = true;

View file

@ -6,11 +6,11 @@ function Node_VFX_Oscillate(_x, _y, _group = noone) : Node_VFX_effector(_x, _y,
inputs[| 6].setVisible(false, false); inputs[| 6].setVisible(false, false);
inputs[| 7].setVisible(false, false); inputs[| 7].setVisible(false, false);
inputs[| effector_input_length + 0] = nodeValue("Amplitude", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 2 ); inputs[| effector_input_length + 0] = nodeValue_Float("Amplitude", self, 2 );
inputs[| effector_input_length + 1] = nodeValue("Frequency", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.2 ); inputs[| effector_input_length + 1] = nodeValue_Float("Frequency", self, 0.2 );
inputs[| effector_input_length + 2] = nodeValue("Multiply by speed", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| effector_input_length + 2] = nodeValue_Bool("Multiply by speed", self, false );
array_push(input_display_list, effector_input_length + 0, effector_input_length + 1, effector_input_length + 2); array_push(input_display_list, effector_input_length + 0, effector_input_length + 1, effector_input_length + 2);

View file

@ -7,23 +7,23 @@ function Node_VFX_Override(_x, _y, _group = noone) : Node(_x, _y, _group) constr
manual_ungroupable = false; manual_ungroupable = false;
setDimension(96, 48); setDimension(96, 48);
inputs[| 0] = nodeValue("Particles", self, JUNCTION_CONNECT.input, VALUE_TYPE.particle, -1 ) inputs[| 0] = nodeValue_Particle("Particles", self, -1 )
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue("Positions", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, noone ); inputs[| 1] = nodeValue_Float("Positions", self, noone );
inputs[| 2] = nodeValue("Rotations", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, noone ); inputs[| 2] = nodeValue_Float("Rotations", self, noone );
inputs[| 3] = nodeValue("Scales", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, noone ); inputs[| 3] = nodeValue_Float("Scales", self, noone );
inputs[| 4] = nodeValue("Blend", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, noone ); inputs[| 4] = nodeValue_Color("Blend", self, noone );
inputs[| 5] = nodeValue("Alpha", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, noone ); inputs[| 5] = nodeValue_Float("Alpha", self, noone );
inputs[| 6] = nodeValue_Surface("Surface", self) inputs[| 6] = nodeValue_Surface("Surface", self)
.setVisible(true, false); .setVisible(true, false);
outputs[| 0] = nodeValue("Particles", self, JUNCTION_CONNECT.output, VALUE_TYPE.particle, -1 ); outputs[| 0] = nodeValue_Output("Particles", self, VALUE_TYPE.particle, -1 );
static update = function(frame = CURRENT_FRAME) { static update = function(frame = CURRENT_FRAME) {
var parts = getInputData(0); var parts = getInputData(0);

View file

@ -6,16 +6,15 @@ function Node_VFX_Renderer(_x, _y, _group = noone) : Node(_x, _y, _group) constr
manual_ungroupable = false; manual_ungroupable = false;
inputs[| 0] = nodeValue("Output dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF ) inputs[| 0] = nodeValue_Vector("Output dimension", self, DEF_SURF );
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 1] = nodeValue("Round position", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true, "Round position to the closest integer value to avoid jittering.") inputs[| 1] = nodeValue_Bool("Round position", self, true, "Round position to the closest integer value to avoid jittering.")
.rejectArray(); .rejectArray();
inputs[| 2] = nodeValue_Enum_Button("Render Type", self, PARTICLE_RENDER_TYPE.surface , [ "Surface", "Line" ]) inputs[| 2] = nodeValue_Enum_Button("Render Type", self, PARTICLE_RENDER_TYPE.surface , [ "Surface", "Line" ])
.rejectArray(); .rejectArray();
inputs[| 3] = nodeValue("Line life", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4 ) inputs[| 3] = nodeValue_Int("Line life", self, 4 )
.rejectArray(); .rejectArray();
input_display_list = [ input_display_list = [
@ -32,7 +31,7 @@ function Node_VFX_Renderer(_x, _y, _group = noone) : Node(_x, _y, _group) constr
inputs[| index + 0] = nodeValue_Enum_Scroll("Blend mode", self, 0 , [ "Normal", "Alpha", "Additive" ]) inputs[| index + 0] = nodeValue_Enum_Scroll("Blend mode", self, 0 , [ "Normal", "Alpha", "Additive" ])
.rejectArray(); .rejectArray();
inputs[| index + 1] = nodeValue("Particles", self, JUNCTION_CONNECT.input, VALUE_TYPE.particle, noone ) inputs[| index + 1] = nodeValue_Particle("Particles", self, noone )
.setVisible(true, true); .setVisible(true, true);
array_push(input_display_list, ["Particle", false], index + 0, index + 1); array_push(input_display_list, ["Particle", false], index + 0, index + 1);
@ -43,7 +42,7 @@ function Node_VFX_Renderer(_x, _y, _group = noone) : Node(_x, _y, _group) constr
setDynamicInput(2, true, VALUE_TYPE.particle); setDynamicInput(2, true, VALUE_TYPE.particle);
dyna_input_check_shift = 1; dyna_input_check_shift = 1;
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);
insp2UpdateTooltip = "Clear cache"; insp2UpdateTooltip = "Clear cache";
insp2UpdateIcon = [ THEME.cache, 0, COLORS._main_icon ]; insp2UpdateIcon = [ THEME.cache, 0, COLORS._main_icon ];

View file

@ -7,16 +7,15 @@ function Node_VFX_Renderer_Output(_x, _y, _group = noone) : Node_Group_Output(_x
manual_ungroupable = false; manual_ungroupable = false;
previewable = true; previewable = true;
inputs[| 0] = nodeValue("Output dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF) inputs[| 0] = nodeValue_Vector("Output dimension", self, DEF_SURF);
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 1] = nodeValue("Round position", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true, "Round position to the closest integer value to avoid jittering.") inputs[| 1] = nodeValue_Bool("Round position", self, true, "Round position to the closest integer value to avoid jittering.")
.rejectArray(); .rejectArray();
inputs[| 2] = nodeValue_Enum_Button("Render Type", self, PARTICLE_RENDER_TYPE.surface , [ "Surface", "Line" ]) inputs[| 2] = nodeValue_Enum_Button("Render Type", self, PARTICLE_RENDER_TYPE.surface , [ "Surface", "Line" ])
.rejectArray(); .rejectArray();
inputs[| 3] = nodeValue("Line life", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4 ) inputs[| 3] = nodeValue_Int("Line life", self, 4 )
.rejectArray(); .rejectArray();
input_display_list = [ input_display_list = [
@ -38,7 +37,7 @@ function Node_VFX_Renderer_Output(_x, _y, _group = noone) : Node_Group_Output(_x
inputs[| index + 0] = nodeValue_Enum_Scroll("Blend mode", self, 0 , [ "Normal", "Alpha", "Additive" ]) inputs[| index + 0] = nodeValue_Enum_Scroll("Blend mode", self, 0 , [ "Normal", "Alpha", "Additive" ])
.rejectArray(); .rejectArray();
inputs[| index + 1] = nodeValue("Particles", self, JUNCTION_CONNECT.input, VALUE_TYPE.particle, noone ) inputs[| index + 1] = nodeValue_Particle("Particles", self, noone )
.setVisible(true, true); .setVisible(true, true);
array_push(input_display_list, ["Particle", false], index + 0, index + 1); array_push(input_display_list, ["Particle", false], index + 0, index + 1);

View file

@ -15,12 +15,12 @@ function Node_VFX_Spawner(_x, _y, _group = noone) : Node_VFX_Spawner_Base(_x, _y
inputs[| input_len + 0] = nodeValue("Spawn trigger", self, JUNCTION_CONNECT.input, VALUE_TYPE.node, false) inputs[| input_len + 0] = nodeValue("Spawn trigger", self, JUNCTION_CONNECT.input, VALUE_TYPE.node, false)
.setVisible(true, true); .setVisible(true, true);
inputs[| input_len + 1] = nodeValue("Step interval", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1, "How often the 'on step' event is triggered.\nWith 1 being trigger every frame, 2 means triggered once every 2 frames."); inputs[| input_len + 1] = nodeValue_Int("Step interval", self, 1, "How often the 'on step' event is triggered.\nWith 1 being trigger every frame, 2 means triggered once every 2 frames.");
outputs[| 0] = nodeValue("Particles", self, JUNCTION_CONNECT.output, VALUE_TYPE.particle, [] ); outputs[| 0] = nodeValue_Output("Particles", self, VALUE_TYPE.particle, [] );
outputs[| 1] = nodeValue("On create", self, JUNCTION_CONNECT.output, VALUE_TYPE.node, noone ); outputs[| 1] = nodeValue_Output("On create", self, VALUE_TYPE.node, noone );
outputs[| 2] = nodeValue("On step", self, JUNCTION_CONNECT.output, VALUE_TYPE.node, noone ); outputs[| 2] = nodeValue_Output("On step", self, VALUE_TYPE.node, noone );
outputs[| 3] = nodeValue("On destroy", self, JUNCTION_CONNECT.output, VALUE_TYPE.node, noone ); outputs[| 3] = nodeValue_Output("On destroy", self, VALUE_TYPE.node, noone );
array_insert(input_display_list, 0, ["Trigger", true], input_len + 0, input_len + 1); array_insert(input_display_list, 0, ["Trigger", true], input_len + 0, input_len + 1);

View file

@ -10,14 +10,14 @@ function Node_VFX_Trail(_x, _y, _group = noone) : Node(_x, _y, _group) construct
lineLength = []; lineLength = [];
lineData = []; lineData = [];
inputs[| 0] = nodeValue("Particles", self, JUNCTION_CONNECT.input, VALUE_TYPE.particle, -1 ) inputs[| 0] = nodeValue_Particle("Particles", self, -1 )
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue("Life", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4 ); inputs[| 1] = nodeValue_Int("Life", self, 4 );
inputs[| 2] = nodeValue("Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| 2] = nodeValue_Bool("Color", self, false );
outputs[| 0] = nodeValue("Path", self, JUNCTION_CONNECT.output, VALUE_TYPE.pathnode, self); outputs[| 0] = nodeValue_Output("Path", self, VALUE_TYPE.pathnode, self);
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
draw_set_color(COLORS._main_accent); draw_set_color(COLORS._main_accent);

View file

@ -14,21 +14,20 @@ function Node_VFX_Triangulate(_x, _y, _group = noone) : Node(_x, _y, _group) con
manual_ungroupable = false; manual_ungroupable = false;
inputs[| 0] = nodeValue("Output dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF ) inputs[| 0] = nodeValue_Vector("Output dimension", self, DEF_SURF );
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 1] = nodeValue("Particles", self, JUNCTION_CONNECT.input, VALUE_TYPE.particle, -1 ) inputs[| 1] = nodeValue_Particle("Particles", self, -1 )
.setVisible(true, true); .setVisible(true, true);
inputs[| 2] = nodeValue("Thickness", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1 ); inputs[| 2] = nodeValue_Float("Thickness", self, 1 );
inputs[| 3] = nodeValue("Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white ); inputs[| 3] = nodeValue_Color("Color", self, c_white );
inputs[| 4] = nodeValue("Inherit Thickness", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| 4] = nodeValue_Bool("Inherit Thickness", self, false );
inputs[| 5] = nodeValue("Inherit Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| 5] = nodeValue_Bool("Inherit Color", self, false );
outputs[| 0] = nodeValue("Triangles", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue_Output("Triangles", self, VALUE_TYPE.surface, noone);
input_display_list = [ 0, input_display_list = [ 0,
[ "Particles", false], 1, [ "Particles", false], 1,

View file

@ -4,9 +4,9 @@ function Node_VFX_Turbulence(_x, _y, _group = noone) : Node_VFX_effector(_x, _y,
inputs[| 4].setVisible(false, false); inputs[| 4].setVisible(false, false);
inputs[| effector_input_length + 0] = nodeValue("Turbulence scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1 ); inputs[| effector_input_length + 0] = nodeValue_Float("Turbulence scale", self, 1 );
inputs[| effector_input_length + 1] = nodeValue("Constant seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); inputs[| effector_input_length + 1] = nodeValue_Bool("Constant seed", self, false );
array_push(input_display_list, effector_input_length + 0, effector_input_length + 1); array_push(input_display_list, effector_input_length + 0, effector_input_length + 1);

View file

@ -8,48 +8,48 @@ function Node_VFX_Variable(_x, _y, _group = noone) : Node(_x, _y, _group) constr
manual_ungroupable = false; manual_ungroupable = false;
inputs[| 0] = nodeValue("Particles", self, JUNCTION_CONNECT.input, VALUE_TYPE.particle, -1 ) inputs[| 0] = nodeValue_Particle("Particles", self, -1 )
.setVisible(true, true); .setVisible(true, true);
input_display_list = [ 0 ]; input_display_list = [ 0 ];
outputs[| 0] = nodeValue("Positions", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, [] ) outputs[| 0] = nodeValue_Output("Positions", self, VALUE_TYPE.float, [] )
.setDisplay(VALUE_DISPLAY.none) .setDisplay(VALUE_DISPLAY.none)
.setVisible(false); .setVisible(false);
outputs[| 1] = nodeValue("Scales", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, [] ) outputs[| 1] = nodeValue_Output("Scales", self, VALUE_TYPE.float, [] )
.setDisplay(VALUE_DISPLAY.none) .setDisplay(VALUE_DISPLAY.none)
.setVisible(false); .setVisible(false);
outputs[| 2] = nodeValue("Rotations", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0 ) outputs[| 2] = nodeValue_Output("Rotations", self, VALUE_TYPE.float, 0 )
.setDisplay(VALUE_DISPLAY.none) .setDisplay(VALUE_DISPLAY.none)
.setVisible(false); .setVisible(false);
outputs[| 3] = nodeValue("Blending", self, JUNCTION_CONNECT.output, VALUE_TYPE.color, 0 ) outputs[| 3] = nodeValue_Output("Blending", self, VALUE_TYPE.color, 0 )
.setDisplay(VALUE_DISPLAY.none) .setDisplay(VALUE_DISPLAY.none)
.setVisible(false); .setVisible(false);
outputs[| 4] = nodeValue("Alpha", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0 ) outputs[| 4] = nodeValue_Output("Alpha", self, VALUE_TYPE.float, 0 )
.setDisplay(VALUE_DISPLAY.none) .setDisplay(VALUE_DISPLAY.none)
.setVisible(false); .setVisible(false);
outputs[| 5] = nodeValue("Life", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0 ) outputs[| 5] = nodeValue_Output("Life", self, VALUE_TYPE.float, 0 )
.setDisplay(VALUE_DISPLAY.none) .setDisplay(VALUE_DISPLAY.none)
.setVisible(false); .setVisible(false);
outputs[| 6] = nodeValue("Max life", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0 ) outputs[| 6] = nodeValue_Output("Max life", self, VALUE_TYPE.float, 0 )
.setDisplay(VALUE_DISPLAY.none) .setDisplay(VALUE_DISPLAY.none)
.setVisible(false); .setVisible(false);
outputs[| 7] = nodeValue("Surface", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone ) outputs[| 7] = nodeValue_Output("Surface", self, VALUE_TYPE.surface, noone )
.setDisplay(VALUE_DISPLAY.none) .setDisplay(VALUE_DISPLAY.none)
.setVisible(false); .setVisible(false);
outputs[| 8] = nodeValue("Velocity", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, [] ) outputs[| 8] = nodeValue_Output("Velocity", self, VALUE_TYPE.float, [] )
.setDisplay(VALUE_DISPLAY.none) .setDisplay(VALUE_DISPLAY.none)
.setVisible(false); .setVisible(false);
outputs[| 9] = nodeValue("Seed", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0 ) outputs[| 9] = nodeValue_Output("Seed", self, VALUE_TYPE.float, 0 )
.setDisplay(VALUE_DISPLAY.none) .setDisplay(VALUE_DISPLAY.none)
.setVisible(false); .setVisible(false);

Some files were not shown because too many files have changed in this diff Show more