newinput thing

This commit is contained in:
Tanasart 2024-08-18 11:16:20 +07:00
parent f6e04d42c6
commit 0025f9ab1b
440 changed files with 2118 additions and 2118 deletions

View file

@ -2,20 +2,20 @@ function __Node_3D_Displace(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
name = "3D Displace";
batch_output = false;
inputs[0] = nodeValue_Dimension(self);
newInput(0, nodeValue_Dimension(self));
inputs[1] = nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]);
newInput(1, nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]));
inputs[2] = nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]);
newInput(2, nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]));
inputs[3] = nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]);
newInput(3, nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]));
inputs[4] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
.setUnitRef( function() { return getInputData(0); }, VALUE_UNIT.reference);
inputs[5] = nodeValue_Vec2("Render scale", self, [ 1, 1 ]);
newInput(5, nodeValue_Vec2("Render scale", self, [ 1, 1 ]));
inputs[6] = nodeValue_Rotation("Light direction", self, 0);
newInput(6, nodeValue_Rotation("Light direction", self, 0));
inputs[7] = nodeValue_Float("Light height", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
@ -23,9 +23,9 @@ function __Node_3D_Displace(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
inputs[8] = nodeValue_Float("Light intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider);
inputs[9] = nodeValue_Color("Light color", self, c_white);
newInput(9, nodeValue_Color("Light color", self, c_white));
inputs[10] = nodeValue_Color("Ambient color", self, c_grey);
newInput(10, nodeValue_Color("Ambient color", self, c_grey));
inputs[11] = nodeValue("3D vertex", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3vertex, [])
.setVisible(true, true);
@ -36,9 +36,9 @@ function __Node_3D_Displace(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
inputs[13] = nodeValue_Float("Field of view", self, 60)
.setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] });
inputs[14] = nodeValue_Bool("Scale view with dimension", self, true);
newInput(14, nodeValue_Bool("Scale view with dimension", self, true));
inputs[15] = nodeValue_Surface("Displacement map", self);
newInput(15, nodeValue_Surface("Displacement map", self));
inputs[16] = nodeValue_Float("Strength", self, 1)
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 4, 0.01 ] });

View file

@ -7,7 +7,7 @@ function __Node_3D_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constru
inputs[1] = nodeValue_Path("Path", self, "", "Export location without '.obj' extension." )
.setDisplay(VALUE_DISPLAY.path_save, { filter: "3d object|*.obj" });
inputs[2] = nodeValue_Bool("Export texture", self, true );
newInput(2, nodeValue_Bool("Export texture", self, true ));
input_display_list = [ 0,
["Export", false], 1, 2,

View file

@ -2,27 +2,27 @@ function __Node_3D_Extrude(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro
name = "3D Extrude";
batch_output = false;
inputs[0] = nodeValue_Surface("Surface in", self);
newInput(0, nodeValue_Surface("Surface in", self));
inputs[1] = nodeValue_Dimension(self);
newInput(1, nodeValue_Dimension(self));
inputs[2] = nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]);
newInput(2, nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]));
inputs[3] = nodeValue_Vec3("Object rotation", self, [ 0, 180, 0 ]);
newInput(3, nodeValue_Vec3("Object rotation", self, [ 0, 180, 0 ]));
inputs[4] = nodeValue_Vec3("Object scale", self, [ 1, 1, 0.1 ]);
newInput(4, nodeValue_Vec3("Object scale", self, [ 1, 1, 0.1 ]));
inputs[5] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
.setUnitRef( function() { return getInputData(1); }, VALUE_UNIT.reference);
inputs[6] = nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]);
newInput(6, nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]));
inputs[7] = nodeValue_Vec2("Render scale", self, [ 1, 1 ]);
newInput(7, nodeValue_Vec2("Render scale", self, [ 1, 1 ]));
inputs[8] = nodeValue_Trigger("Manual generate", self, false )
.setDisplay(VALUE_DISPLAY.button, { name: "Generate", UI : true, onClick: function() { generateMesh(); doUpdate(); } });
inputs[9] = nodeValue_Rotation("Light direction", self, 0);
newInput(9, nodeValue_Rotation("Light direction", self, 0));
inputs[10] = nodeValue_Float("Light height", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
@ -30,12 +30,12 @@ function __Node_3D_Extrude(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro
inputs[11] = nodeValue_Float("Light intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider);
inputs[12] = nodeValue_Color("Light color", self, c_white);
inputs[13] = nodeValue_Color("Ambient color", self, c_grey);
newInput(12, nodeValue_Color("Light color", self, c_white));
newInput(13, nodeValue_Color("Ambient color", self, c_grey));
inputs[14] = nodeValue_Surface("Height map", self);
newInput(14, nodeValue_Surface("Height map", self));
inputs[15] = nodeValue_Bool("Always update", self, false);
newInput(15, nodeValue_Bool("Always update", self, false));
inputs[16] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray();

View file

@ -4,9 +4,9 @@ function Node_3D_Light(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
if(!LOADING && !APPENDING)
inputs[0].setValue([ 0, 0, 1 ]);
inputs[in_d3d + 0] = nodeValue_Bool("Active", self, true);
newInput(in_d3d + 0, nodeValue_Bool("Active", self, true));
inputs[in_d3d + 1] = nodeValue_Color("Color", self, c_white);
newInput(in_d3d + 1, nodeValue_Color("Color", self, c_white));
inputs[in_d3d + 2] = nodeValue_Float("Intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -11,14 +11,14 @@ function __Node_3D_Obj(_x, _y, _group = noone) : Node(_x, _y, _group) constructo
doUpdate();
} });
inputs[2] = nodeValue_Dimension(self);
newInput(2, nodeValue_Dimension(self));
inputs[3] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
.setUnitRef( function() { return getInputData(2); }, VALUE_UNIT.reference);
inputs[4] = nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]);
newInput(4, nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]));
inputs[5] = nodeValue_Vec2("Render scale", self, [ 1, 1 ]);
newInput(5, nodeValue_Vec2("Render scale", self, [ 1, 1 ]));
inputs[6] = nodeValue_Rotation("Light direction", self, 0)
.rejectArray();
@ -37,14 +37,14 @@ function __Node_3D_Obj(_x, _y, _group = noone) : Node(_x, _y, _group) constructo
inputs[10] = nodeValue_Color("Ambient color", self, c_grey)
.rejectArray();
inputs[11] = nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]);
newInput(11, nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]));
inputs[12] = nodeValue_Bool("Flip UV", self, true, "Flip UV axis, can be use to fix some texture mapping error.")
.rejectArray();
inputs[13] = nodeValue_Vec3("Object rotation", self, [ 0, 0, 180 ]);
newInput(13, nodeValue_Vec3("Object rotation", self, [ 0, 0, 180 ]));
inputs[14] = nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]);
newInput(14, nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]));
inputs[15] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray();
@ -103,7 +103,7 @@ function __Node_3D_Obj(_x, _y, _group = noone) : Node(_x, _y, _group) constructo
function createMaterial(m_index) {
var index = array_length(inputs);
inputs[index] = nodeValue_Surface(materialNames[m_index] + " texture", self, tex_surface);
newInput(index, nodeValue_Surface(materialNames[m_index] + " texture", self, tex_surface));
inputs[index].setVisible(true);
input_display_list[input_display_len + m_index] = index;

View file

@ -8,11 +8,11 @@ function Node_3D_Object(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constr
preview_channel = 0;
apply_anchor = false;
inputs[0] = nodeValue_Vec3("Position", self, [ 0, 0, 0 ], { linkable: false });
newInput(0, nodeValue_Vec3("Position", self, [ 0, 0, 0 ], { linkable: false }));
inputs[1] = nodeValue_Quaternion("Rotation", self, [ 0, 0, 0, 1 ]);
newInput(1, nodeValue_Quaternion("Rotation", self, [ 0, 0, 0, 1 ]));
inputs[2] = nodeValue_Vec3("Scale", self, [ 1, 1, 1 ]);
newInput(2, nodeValue_Vec3("Scale", self, [ 1, 1, 1 ]));
inputs[3] = nodeValue_Vec3("Anchor", self, [ 0, 0, 0 ], {
linkable: false,

View file

@ -2,23 +2,23 @@ function __Node_3D_Plane(_x, _y, _group = noone) : Node_Processor(_x, _y, _group
name = "3D Plane";
batch_output = false;
inputs[0] = nodeValue_Surface("Surface in", self);
newInput(0, nodeValue_Surface("Surface in", self));
inputs[1] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
inputs[2] = nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]);
newInput(2, nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]));
inputs[3] = nodeValue_Vec2("Render scale", self, [ 1, 1 ]);
newInput(3, nodeValue_Vec2("Render scale", self, [ 1, 1 ]));
inputs[4] = nodeValue_Enum_Scroll("Output dimension", self, OUTPUT_SCALING.same_as_input, [ "Same as input", "Constant", "Relative to input" ])
.rejectArray();
inputs[5] = nodeValue_Vec2("Constant dimension", self, DEF_SURF);
newInput(5, nodeValue_Vec2("Constant dimension", self, DEF_SURF));
inputs[6] = nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]);
newInput(6, nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]));
inputs[7] = nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]);
newInput(7, nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]));
inputs[8] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray();
@ -26,13 +26,13 @@ function __Node_3D_Plane(_x, _y, _group = noone) : Node_Processor(_x, _y, _group
inputs[9] = nodeValue_Float("Field of view", self, 60)
.setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] });
inputs[10] = nodeValue_Vec2("Texture scale", self, [ 1, 1 ]);
newInput(10, nodeValue_Vec2("Texture scale", self, [ 1, 1 ]));
inputs[11] = nodeValue_Vec2("Texture shift", self, [ 0, 0 ]);
newInput(11, nodeValue_Vec2("Texture shift", self, [ 0, 0 ]));
inputs[12] = nodeValue_Int("Subdiviion", self, 1)
inputs[13] = nodeValue_Enum_Button("Normal axis", self, 2, [ "X", "Y", "Z" ]);
newInput(13, nodeValue_Enum_Button("Normal axis", self, 2, [ "X", "Y", "Z" ]));
input_display_list = [0,
["Geometry", true], 13, 12,

View file

@ -2,18 +2,18 @@ function __Node_3D_Cone(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
name = "3D Cone";
batch_output = false;
inputs[0] = nodeValue_Dimension(self);
newInput(0, nodeValue_Dimension(self));
inputs[1] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
inputs[2] = nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]);
newInput(2, nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]));
inputs[3] = nodeValue_Vec2("Render scale", self, [ 1, 1 ]);
newInput(3, nodeValue_Vec2("Render scale", self, [ 1, 1 ]));
inputs[4] = nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]);
newInput(4, nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]));
inputs[5] = nodeValue_Rotation("Light direction", self, 0);
newInput(5, nodeValue_Rotation("Light direction", self, 0));
inputs[6] = nodeValue_Float("Light height", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
@ -21,12 +21,12 @@ function __Node_3D_Cone(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[7] = nodeValue_Float("Light intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider);
inputs[8] = nodeValue_Color("Light color", self, c_white);
inputs[9] = nodeValue_Color("Ambient color", self, c_grey);
newInput(8, nodeValue_Color("Light color", self, c_white));
newInput(9, nodeValue_Color("Ambient color", self, c_grey));
inputs[10] = nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]);
newInput(10, nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]));
inputs[11] = nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]);
newInput(11, nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]));
inputs[12] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray();
@ -34,11 +34,11 @@ function __Node_3D_Cone(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[13] = nodeValue_Float("Field of view", self, 60)
.setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] });
inputs[14] = nodeValue_Int("Sides", self, 16);
newInput(14, nodeValue_Int("Sides", self, 16));
inputs[15] = nodeValue_Surface("Textures base", self);
newInput(15, nodeValue_Surface("Textures base", self));
inputs[16] = nodeValue_Surface("Textures side", self);
newInput(16, nodeValue_Surface("Textures side", self));
inputs[17] = nodeValue_Bool("Scale view with dimension", self, true)

View file

@ -3,29 +3,29 @@ function __Node_3D_Cube(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
batch_output = false;
dimension_index = 1;
inputs[0] = nodeValue_Surface("Main texture", self);
newInput(0, nodeValue_Surface("Main texture", self));
inputs[1] = nodeValue_Dimension(self);
newInput(1, nodeValue_Dimension(self));
inputs[2] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
inputs[3] = nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]);
newInput(3, nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]));
inputs[4] = nodeValue_Vec2("Render scale", self, [ 1, 1 ]);
newInput(4, nodeValue_Vec2("Render scale", self, [ 1, 1 ]));
inputs[5] = nodeValue_Bool("Textures per face", self, false);
newInput(5, nodeValue_Bool("Textures per face", self, false));
inputs[ 6] = nodeValue_Surface("Textures 0", self).setVisible(false);
inputs[ 7] = nodeValue_Surface("Textures 1", self).setVisible(false);
inputs[ 8] = nodeValue_Surface("Textures 2", self).setVisible(false);
inputs[ 9] = nodeValue_Surface("Textures 3", self).setVisible(false);
inputs[10] = nodeValue_Surface("Textures 4", self).setVisible(false);
inputs[11] = nodeValue_Surface("Textures 5", self).setVisible(false);
newInput( 6, nodeValue_Surface("Textures 0", self).setVisible(false));
newInput( 7, nodeValue_Surface("Textures 1", self).setVisible(false));
newInput( 8, nodeValue_Surface("Textures 2", self).setVisible(false));
newInput( 9, nodeValue_Surface("Textures 3", self).setVisible(false));
newInput(10, nodeValue_Surface("Textures 4", self).setVisible(false));
newInput(11, nodeValue_Surface("Textures 5", self).setVisible(false));
inputs[12] = nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]);
newInput(12, nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]));
inputs[13] = nodeValue_Rotation("Light direction", self, 0);
newInput(13, nodeValue_Rotation("Light direction", self, 0));
inputs[14] = nodeValue_Float("Light height", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
@ -33,13 +33,13 @@ function __Node_3D_Cube(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[15] = nodeValue_Float("Light intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider);
inputs[16] = nodeValue_Color("Light color", self, c_white);
newInput(16, nodeValue_Color("Light color", self, c_white));
inputs[17] = nodeValue_Color("Ambient color", self, c_grey);
newInput(17, nodeValue_Color("Ambient color", self, c_grey));
inputs[18] = nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]);
newInput(18, nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]));
inputs[19] = nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]);
newInput(19, nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]));
inputs[20] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray();

View file

@ -3,26 +3,26 @@ function __Node_3D_Cylinder(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
batch_output = false;
dimension_index = 2;
inputs[0] = nodeValue_Int("Sides", self, 16);
newInput(0, nodeValue_Int("Sides", self, 16));
inputs[1] = nodeValue_Float("Thickness", self, 0.2);
newInput(1, nodeValue_Float("Thickness", self, 0.2));
inputs[2] = nodeValue_Dimension(self);
newInput(2, nodeValue_Dimension(self));
inputs[3] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
inputs[4] = nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]);
newInput(4, nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]));
inputs[5] = nodeValue_Vec2("Render scale", self, [ 1, 1 ]);
newInput(5, nodeValue_Vec2("Render scale", self, [ 1, 1 ]));
inputs[6] = nodeValue_Surface("Textures top", self);
inputs[7] = nodeValue_Surface("Textures bottom", self);
inputs[8] = nodeValue_Surface("Textures side", self);
newInput(6, nodeValue_Surface("Textures top", self));
newInput(7, nodeValue_Surface("Textures bottom", self));
newInput(8, nodeValue_Surface("Textures side", self));
inputs[9] = nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]);
newInput(9, nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]));
inputs[10] = nodeValue_Rotation("Light direction", self, 0);
newInput(10, nodeValue_Rotation("Light direction", self, 0));
inputs[11] = nodeValue_Float("Light height", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
@ -30,12 +30,12 @@ function __Node_3D_Cylinder(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
inputs[12] = nodeValue_Float("Light intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider);
inputs[13] = nodeValue_Color("Light color", self, c_white);
inputs[14] = nodeValue_Color("Ambient color", self, c_grey);
newInput(13, nodeValue_Color("Light color", self, c_white));
newInput(14, nodeValue_Color("Ambient color", self, c_grey));
inputs[15] = nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]);
newInput(15, nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]));
inputs[16] = nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]);
newInput(16, nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]));
inputs[17] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray();

View file

@ -6,20 +6,20 @@ function __Node_3D_Sphere(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
inputs[0] = nodeValue_Vec2("Subdivisions", self, [8, 4])
.setTooltip("Amount of polygon in X and Y axis.");
inputs[1] = nodeValue_Dimension(self);
newInput(1, nodeValue_Dimension(self));
inputs[2] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
inputs[3] = nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]);
newInput(3, nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]));
inputs[4] = nodeValue_Vec2("Render scale", self, [ 1, 1 ]);
newInput(4, nodeValue_Vec2("Render scale", self, [ 1, 1 ]));
inputs[5] = nodeValue_Surface("Textures", self);
newInput(5, nodeValue_Surface("Textures", self));
inputs[6] = nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]);
newInput(6, nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]));
inputs[7] = nodeValue_Rotation("Light direction", self, 0);
newInput(7, nodeValue_Rotation("Light direction", self, 0));
inputs[8] = nodeValue_Float("Light height", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
@ -27,12 +27,12 @@ function __Node_3D_Sphere(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
inputs[9] = nodeValue_Float("Light intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider);
inputs[10] = nodeValue_Color("Light color", self, c_white);
inputs[11] = nodeValue_Color("Ambient color", self, c_grey);
newInput(10, nodeValue_Color("Light color", self, c_white));
newInput(11, nodeValue_Color("Ambient color", self, c_grey));
inputs[12] = nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]);
newInput(12, nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]));
inputs[13] = nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]);
newInput(13, nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]));
inputs[14] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray();

View file

@ -1,14 +1,14 @@
//function Node_3D_Render(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
// name = "3D Render";
// inputs[2] = nodeValue_Dimension(self);
// newInput(2, nodeValue_Dimension(self));
// inputs[3] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
// .setUnitRef( function() { return getInputData(2); }, VALUE_UNIT.reference);
// inputs[4] = nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]);
// newInput(4, nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]));
// inputs[5] = nodeValue_Vec2("Render scale", self, [ 1, 1 ]);
// newInput(5, nodeValue_Vec2("Render scale", self, [ 1, 1 ]));
// inputs[6] = nodeValue_Float("Light direction", self, 0)
// .setDisplay(VALUE_DISPLAY.rotation)
@ -81,7 +81,7 @@
// function createMaterial(m_index) {
// var index = array_length(inputs);
// inputs[index] = nodeValue_Surface(materialNames[m_index] + " texture", self, tex_surface);
// newInput(index, nodeValue_Surface(materialNames[m_index] + " texture", self, tex_surface));
// inputs[index].setVisible(true);
// input_display_list[input_display_len + m_index] = index;

View file

@ -1,20 +1,20 @@
function __Node_3D_Repeat(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "3D Repeat";
inputs[0] = nodeValue_Dimension(self);
newInput(0, nodeValue_Dimension(self));
inputs[1] = nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]);
newInput(1, nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]));
inputs[2] = nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]);
newInput(2, nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]));
inputs[3] = nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]);
newInput(3, nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]));
inputs[4] = nodeValue_Vec3("Render position", self, [ 0.5, 0.5 ])
.setUnitRef( function() { return getInputData(0); }, VALUE_UNIT.reference);
inputs[5] = nodeValue_Vec2("Render scale", self, [ 1, 1 ]);
newInput(5, nodeValue_Vec2("Render scale", self, [ 1, 1 ]));
inputs[6] = nodeValue_Rotation("Light direction", self, 0);
newInput(6, nodeValue_Rotation("Light direction", self, 0));
inputs[7] = nodeValue_Float("Light height", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
@ -22,29 +22,29 @@ function __Node_3D_Repeat(_x, _y, _group = noone) : Node(_x, _y, _group) constru
inputs[8] = nodeValue_Float("Light intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider);
inputs[9] = nodeValue_Color("Light color", self, c_white);
newInput(9, nodeValue_Color("Light color", self, c_white));
inputs[10] = nodeValue_Color("Ambient color", self, c_grey);
newInput(10, nodeValue_Color("Ambient color", self, c_grey));
inputs[11] = nodeValue("3D object", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3object, noone)
.setVisible(true, true);
inputs[12] = nodeValue_Int("Repeat", self, 1, "Amount of copies to be generated.");
newInput(12, nodeValue_Int("Repeat", self, 1, "Amount of copies to be generated."));
inputs[13] = nodeValue_Vec3("Repeat position", self, [ 1, 0, 0 ]);
newInput(13, nodeValue_Vec3("Repeat position", self, [ 1, 0, 0 ]));
inputs[14] = nodeValue_Vec3("Repeat rotation", self, [ 0, 0, 0 ]);
newInput(14, nodeValue_Vec3("Repeat rotation", self, [ 0, 0, 0 ]));
inputs[15] = nodeValue_Vec3("Repeat scale", self, [ 1, 1, 1 ]);
newInput(15, nodeValue_Vec3("Repeat scale", self, [ 1, 1, 1 ]));
inputs[16] = nodeValue_Enum_Button("Repeat pattern", self, 0, [ "Linear", "Circular" ])
.rejectArray();
inputs[17] = nodeValue_Enum_Button("Axis", self, 0, [ "x", "y", "z" ]);
newInput(17, nodeValue_Enum_Button("Axis", self, 0, [ "x", "y", "z" ]));
inputs[18] = nodeValue_Float("Radius", self, 1);
newInput(18, nodeValue_Float("Radius", self, 1));
inputs[19] = nodeValue_Rotation_Range("Rotation", self, [ 0, 360 ]);
newInput(19, nodeValue_Rotation_Range("Rotation", self, [ 0, 360 ]));
inputs[20] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray();

View file

@ -2,20 +2,20 @@ function __Node_3D_Transform(_x, _y, _group = noone) : Node_Processor(_x, _y, _g
name = "3D Transform";
batch_output = false;
inputs[0] = nodeValue_Dimension(self);
newInput(0, nodeValue_Dimension(self));
inputs[1] = nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]);
newInput(1, nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]));
inputs[2] = nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]);
newInput(2, nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]));
inputs[3] = nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]);
newInput(3, nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]));
inputs[4] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
.setUnitRef( function() { return getInputData(2); }, VALUE_UNIT.reference);
inputs[5] = nodeValue_Vec2("Render scale", self, [ 1, 1 ]);
newInput(5, nodeValue_Vec2("Render scale", self, [ 1, 1 ]));
inputs[6] = nodeValue_Rotation("Light direction", self, 0);
newInput(6, nodeValue_Rotation("Light direction", self, 0));
inputs[7] = nodeValue_Float("Light height", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
@ -23,9 +23,9 @@ function __Node_3D_Transform(_x, _y, _group = noone) : Node_Processor(_x, _y, _g
inputs[8] = nodeValue_Float("Light intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider);
inputs[9] = nodeValue_Color("Light color", self, c_white);
newInput(9, nodeValue_Color("Light color", self, c_white));
inputs[10] = nodeValue_Color("Ambient color", self, c_grey);
newInput(10, nodeValue_Color("Ambient color", self, c_grey));
inputs[11] = nodeValue("3D object", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3object, noone)
.setVisible(true, true);

View file

@ -1,7 +1,7 @@
function Node_Process_Template(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "";
inputs[0] = nodeValue_Surface("", self);
newInput(0, nodeValue_Surface("", self));
outputs[0] = nodeValue_Output("", self, VALUE_TYPE.surface, noone);

View file

@ -1,7 +1,7 @@
function Node_Shader_Generator(_x, _y, _group = noone) : Node_Shader(_x, _y, _group) constructor {
name = "";
inputs[0] = nodeValue_Dimension(self);
newInput(0, nodeValue_Dimension(self));
addShaderProp(SHADER_UNIFORM.float, "u_resolution");
attribute_surface_depth();

View file

@ -1,7 +1,7 @@
function Node_Shader_Processor(_x, _y, _group = noone) : Node_Shader(_x, _y, _group) constructor {
name = "";
inputs[0] = nodeValue_Surface("Surface in", self);
newInput(0, nodeValue_Surface("Surface in", self));
addShaderProp();
attribute_surface_depth();

View file

@ -1,7 +1,7 @@
function Node_Template(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "";
inputs[0] = nodeValue_Surface("", self);
newInput(0, nodeValue_Surface("", self));
outputs[0] = nodeValue_Output("", self, VALUE_TYPE.surface, noone);

View file

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

View file

@ -43,13 +43,13 @@ function _Node_Strand_Affector(_x, _y, _group = noone) : Node(_x, _y, _group) co
inputs[0] = nodeValue("Strand", self, JUNCTION_CONNECT.input, VALUE_TYPE.strands, noone)
.setVisible(true, true);
inputs[1] = nodeValue_Enum_Scroll("Shape", self, 0, [ "Point", "Band" ]);
newInput(1, nodeValue_Enum_Scroll("Shape", self, 0, [ "Point", "Band" ]));
inputs[2] = nodeValue_Vec2("Position", self, [ 0, 0 ]);
newInput(2, nodeValue_Vec2("Position", self, [ 0, 0 ]));
inputs[3] = nodeValue_Float("Range", self, 4);
newInput(3, nodeValue_Float("Range", self, 4));
inputs[4] = nodeValue_Rotation("Direction", self, 0);
newInput(4, nodeValue_Rotation("Direction", self, 0));
inputs[5] = nodeValue_Float("Falloff", self, 0.2)
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -1,7 +1,7 @@
function __init_mask_modifier(_mask_index) { #region
var _ind = array_length(inputs);
inputs[_ind + 0] = nodeValue_Bool("Invert mask", self, false);
newInput(_ind + 0, nodeValue_Bool("Invert mask", self, false));
inputs[_ind + 1] = nodeValue_Float("Mask feather", self, 0)
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 32, 0.1] });

View file

@ -4,17 +4,17 @@ function Node_MK_Delay_Machine(_x, _y, _group = noone) : Node(_x, _y, _group) co
is_simulation = true;
inputs[0] = nodeValue_Surface("Surface", self);
newInput(0, nodeValue_Surface("Surface", self));
inputs[1] = nodeValue_Int("Delay Amounts", self, 4);
newInput(1, nodeValue_Int("Delay Amounts", self, 4));
inputs[2] = nodeValue_Int("Delay Frames", self, 1);
newInput(2, nodeValue_Int("Delay Frames", self, 1));
inputs[3] = nodeValue_Palette("Blend over Delay", self, [ c_white ]);
newInput(3, nodeValue_Palette("Blend over Delay", self, [ c_white ]));
inputs[4] = nodeValue("Alpha over Delay", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11);
newInput(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" ]);
newInput(5, nodeValue_Enum_Scroll("Palette Select", self, 0, [ "Loop", "Pingpong", "Random" ]));
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) });

View file

@ -15,7 +15,7 @@ function Node_2D_light(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
uniform_band = shader_get_uniform(shader, "band");
uniform_attn = shader_get_uniform(shader, "atten");
inputs[0] = nodeValue_Surface("Surface in", self);
newInput(0, nodeValue_Surface("Surface in", self));
inputs[1] = nodeValue_Enum_Scroll("Light shape", self, 0, [ new scrollItem("Point", s_node_2d_light_shape, 0),
new scrollItem("Line", s_node_2d_light_shape, 1),
@ -25,16 +25,16 @@ function Node_2D_light(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[2] = nodeValue_Vec2("Center", self, [ 16, 16 ])
.setUnitRef(function(index) { return getDimension(index); });
inputs[3] = nodeValue_Float("Range", self, 16);
newInput(3, nodeValue_Float("Range", self, 16));
inputs[4] = nodeValue_Float("Intensity", self, 1)
.setDisplay(VALUE_DISPLAY.slider);
inputs[5] = nodeValue_Color("Color", self, c_white);
newInput(5, nodeValue_Color("Color", self, c_white));
inputs[6] = nodeValue_Vec2("Start", self, [ 16, 16 ]);
newInput(6, nodeValue_Vec2("Start", self, [ 16, 16 ]));
inputs[7] = nodeValue_Vec2("Finish", self, [ 32, 16 ]);
newInput(7, nodeValue_Vec2("Finish", self, [ 32, 16 ]));
inputs[8] = nodeValue_Int("Sweep", self, 15)
.setDisplay(VALUE_DISPLAY.slider, { range: [-80, 80, 0.1] });
@ -54,12 +54,12 @@ function Node_2D_light(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[12] = nodeValue_Int("Radial banding", self, 0)
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 16, 0.1] });
inputs[13] = nodeValue_Rotation("Radial start", self, 0);
newInput(13, nodeValue_Rotation("Radial start", self, 0));
inputs[14] = nodeValue_Float("Radial band ratio", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider);
inputs[15] = nodeValue_Bool("Active", self, true);
newInput(15, nodeValue_Bool("Active", self, true));
active_index = 15;
outputs[0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);

View file

@ -21,46 +21,46 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
inputs[in_d3d + 0] = nodeValue_Int("FOV", self, 60 )
.setDisplay(VALUE_DISPLAY.slider, { range: [ 10, 90, 0.1 ] });
inputs[in_d3d + 1] = nodeValue_Vec2("Clipping Distance", self, [ 1, 10 ] );
newInput(in_d3d + 1, nodeValue_Vec2("Clipping Distance", self, [ 1, 10 ] ));
inputs[in_d3d + 2] = nodeValue_Dimension(self);
newInput(in_d3d + 2, nodeValue_Dimension(self));
inputs[in_d3d + 3] = nodeValue_Enum_Button("Projection", self, 1 , [ "Perspective", "Orthographic" ]);
newInput(in_d3d + 3, nodeValue_Enum_Button("Projection", self, 1 , [ "Perspective", "Orthographic" ]));
inputs[in_d3d + 4] = nodeValue_D3Scene("Scene", self, noone )
.setVisible(true, true);
inputs[in_d3d + 5] = nodeValue_Color("Ambient Light", self, c_dkgrey );
newInput(in_d3d + 5, nodeValue_Color("Ambient Light", self, c_dkgrey ));
inputs[in_d3d + 6] = nodeValue_Bool("Show Background", self, false );
newInput(in_d3d + 6, nodeValue_Bool("Show Background", self, false ));
inputs[in_d3d + 7] = nodeValue_Enum_Button("Backface Culling", self, 2 , [ "None", "CW", "CCW" ]);
newInput(in_d3d + 7, nodeValue_Enum_Button("Backface Culling", self, 2 , [ "None", "CW", "CCW" ]));
inputs[in_d3d + 8] = nodeValue_Float("Orthographic Scale", self, 0.5 )
.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" ] );
newInput(in_d3d + 9, nodeValue_Enum_Scroll("Postioning Mode", self, 2, [ "Position + Rotation", "Position + Lookat", "Lookat + Rotation" ] ));
inputs[in_d3d + 10] = nodeValue_Vec3("Lookat Position", self, [ 0, 0, 0 ] );
newInput(in_d3d + 10, nodeValue_Vec3("Lookat Position", self, [ 0, 0, 0 ] ));
inputs[in_d3d + 11] = nodeValue_Rotation("Roll", self, 0);
newInput(in_d3d + 11, nodeValue_Rotation("Roll", self, 0));
inputs[in_d3d + 12] = nodeValue_Rotation("Horizontal Angle", self, 45 );
newInput(in_d3d + 12, nodeValue_Rotation("Horizontal Angle", self, 45 ));
inputs[in_d3d + 13] = nodeValue_Float("Vertical Angle", self, 30 )
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 90, 0.1] });
inputs[in_d3d + 14] = nodeValue_Float("Distance", self, 4 );
newInput(in_d3d + 14, nodeValue_Float("Distance", self, 4 ));
inputs[in_d3d + 15] = nodeValue_Bool("Gamma Adjust", self, false );
newInput(in_d3d + 15, nodeValue_Bool("Gamma Adjust", self, false ));
inputs[in_d3d + 16] = nodeValue_Surface("Environment Texture", self);
newInput(in_d3d + 16, nodeValue_Surface("Environment Texture", self));
inputs[in_d3d + 17] = nodeValue_Bool("Ambient Occlusion", self, false );
newInput(in_d3d + 17, nodeValue_Bool("Ambient Occlusion", self, false ));
inputs[in_d3d + 18] = nodeValue_Float("AO Radius", self, 0.25 );
newInput(in_d3d + 18, nodeValue_Float("AO Radius", self, 0.25 ));
inputs[in_d3d + 19] = nodeValue_Float("AO Bias", self, 0.05 );
newInput(in_d3d + 19, nodeValue_Float("AO Bias", self, 0.05 ));
inputs[in_d3d + 20] = nodeValue_Float("AO Strength", self, 1. )
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0.01, 4, 0.01 ] });
@ -68,7 +68,7 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
inputs[in_d3d + 21] = nodeValue_Int("Round Normal", self, 0 )
.setWindows();
inputs[in_d3d + 22] = nodeValue_Enum_Button("Blend mode", self, 0 , [ "Normal", "Additive" ]);
newInput(in_d3d + 22, nodeValue_Enum_Button("Blend mode", self, 0 , [ "Normal", "Additive" ]));
in_cam = array_length(inputs);

View file

@ -1,11 +1,11 @@
function Node_3D_Depth(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "3D Depth";
inputs[0] = nodeValue_Surface("Base Texture", self);
newInput(0, nodeValue_Surface("Base Texture", self));
inputs[1] = nodeValue_Surface("Depth", self);
newInput(1, nodeValue_Surface("Depth", self));
inputs[2] = nodeValue_Vec3("Rotation", self, [0, 0, 0] );
newInput(2, nodeValue_Vec3("Rotation", self, [0, 0, 0] ));
outputs[0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);

View file

@ -1,7 +1,7 @@
function Node_3D_Instancer(_x, _y, _group = noone) : Node_3D_Modifier(_x, _y, _group) constructor {
name = "3D Instancer";
inputs[in_mesh + 0] = nodeValue_Int("Amounts", self, 1);
newInput(in_mesh + 0, nodeValue_Int("Amounts", self, 1));
inputs[in_mesh + 1] = nodeValue_Vec3("Positions", self, [ 0, 0, 0 ])
.setArrayDepth(1);

View file

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

View file

@ -11,11 +11,11 @@ function Node_3D_Material(_x, _y, _group = noone) : Node_3D(_x, _y, _group) cons
inputs[2] = nodeValue_Float("Specular", self, 0 )
.setDisplay(VALUE_DISPLAY.slider);
inputs[3] = nodeValue_Float("Shininess", self, 1 );
newInput(3, nodeValue_Float("Shininess", self, 1 ));
inputs[4] = nodeValue_Bool("Metalic", self, false );
newInput(4, nodeValue_Bool("Metalic", self, false ));
inputs[5] = nodeValue_Surface("Normal Map", self);
newInput(5, nodeValue_Surface("Normal Map", self));
inputs[6] = nodeValue_Float("Normal Strength", self, 1 )
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 2, 0.01 ] });
@ -23,7 +23,7 @@ function Node_3D_Material(_x, _y, _group = noone) : Node_3D(_x, _y, _group) cons
inputs[7] = nodeValue_Float("Roughness", self, 1 )
.setDisplay(VALUE_DISPLAY.slider);
inputs[8] = nodeValue_Bool("Anti aliasing", self, false );
newInput(8, nodeValue_Bool("Anti aliasing", self, false ));
outputs[0] = nodeValue_Output("Material", self, VALUE_TYPE.d3Material, noone);

View file

@ -12,7 +12,7 @@ function Node_3D_Mesh_Cone(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _group
inputs[in_mesh + 2] = nodeValue_D3Material("Material Side", self, new __d3dMaterial())
.setVisible(true, true);
inputs[in_mesh + 3] = nodeValue_Bool("Smooth Side", self, false );
newInput(in_mesh + 3, nodeValue_Bool("Smooth Side", self, false ));
input_display_list = [
__d3d_input_list_mesh, in_mesh + 0, in_mesh + 3,

View file

@ -2,7 +2,7 @@ function Node_3D_Mesh_Cube(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _group
name = "3D Cube";
object_class = noone;
inputs[in_mesh + 0] = nodeValue_Bool("Material per side", self, false );
newInput(in_mesh + 0, nodeValue_Bool("Material per side", self, false ));
inputs[in_mesh + 1] = nodeValue_D3Material("Material", self, new __d3dMaterial())
.setVisible(true, true);

View file

@ -15,9 +15,9 @@ function Node_3D_Mesh_Cylinder(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _g
inputs[in_mesh + 3] = nodeValue_D3Material("Material Side", self, new __d3dMaterial())
.setVisible(true, true);
inputs[in_mesh + 4] = nodeValue_Bool("Smooth Side", self, false );
newInput(in_mesh + 4, nodeValue_Bool("Smooth Side", self, false ));
inputs[in_mesh + 5] = nodeValue_Bool("End caps", self, true );
newInput(in_mesh + 5, nodeValue_Bool("End caps", self, true ));
input_display_list = [
__d3d_input_list_mesh, in_mesh + 0, in_mesh + 4, in_mesh + 5,

View file

@ -8,9 +8,9 @@ function Node_3D_Mesh_Export(_x, _y, _group = noone) : Node(_x, _y, _group) cons
.setDisplay(VALUE_DISPLAY.path_save, { filter: "Obj (.obj)|*.obj" })
.setVisible(true);
inputs[2] = nodeValue_Bool("Export Texture", self, true);
newInput(2, nodeValue_Bool("Export Texture", self, true));
inputs[3] = nodeValue_Bool("Invert UV", self, false);
newInput(3, nodeValue_Bool("Invert UV", self, false));
input_display_list = [ 0,
["Export", false], 1, 2, 3,

View file

@ -6,22 +6,22 @@ function Node_3D_Mesh_Extrude(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _gr
inputs[in_mesh + 0] = nodeValue_D3Material("Front Surface", self, new __d3dMaterial())
.setVisible(true, true);
inputs[in_mesh + 1] = nodeValue_Surface("Front Height", self);
newInput(in_mesh + 1, nodeValue_Surface("Front Height", self));
inputs[in_mesh + 2] = nodeValue_Bool("Smooth", self, false)
inputs[in_mesh + 3] = nodeValue_Bool("Always update", self, false);
newInput(in_mesh + 3, nodeValue_Bool("Always update", self, false));
inputs[in_mesh + 4] = nodeValue_Bool("Double Side", self, false);
newInput(in_mesh + 4, nodeValue_Bool("Double Side", self, false));
inputs[in_mesh + 5] = nodeValue_D3Material("Back Surface", self, new __d3dMaterial())
.setVisible(true, true);
inputs[in_mesh + 6] = nodeValue_Surface("Back Height", self);
newInput(in_mesh + 6, nodeValue_Surface("Back Height", self));
inputs[in_mesh + 7] = nodeValue_Slider_Range("Front Height Level", self, [ 0, 1 ]);
newInput(in_mesh + 7, nodeValue_Slider_Range("Front Height Level", self, [ 0, 1 ]));
inputs[in_mesh + 8] = nodeValue_Slider_Range("Back Height Level", self, [ 0, 1 ]);
newInput(in_mesh + 8, nodeValue_Slider_Range("Back Height Level", self, [ 0, 1 ]));
input_display_list = [ in_mesh + 3,
__d3d_input_list_mesh,

View file

@ -15,9 +15,9 @@ function Node_3D_Mesh_Path_Extrude(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y
inputs[in_mesh + 3] = nodeValue_D3Material("Material Cap", self, new __d3dMaterial())
.setVisible(true, true);
inputs[in_mesh + 4] = nodeValue_Bool("Smooth", self, false );
newInput(in_mesh + 4, nodeValue_Bool("Smooth", self, false ));
inputs[in_mesh + 5] = nodeValue_Bool("End caps", self, true );
newInput(in_mesh + 5, nodeValue_Bool("End caps", self, true ));
inputs[in_mesh + 6] = nodeValue_Int("Subdivision", self, 8 )
.setValidator(VV_min(2));
@ -25,13 +25,13 @@ function Node_3D_Mesh_Path_Extrude(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y
inputs[in_mesh + 7] = nodeValue_Float("Radius", self, 0.25 )
.setDisplay(VALUE_DISPLAY.slider);
inputs[in_mesh + 8] = nodeValue("Radius Over Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11 );
newInput(in_mesh + 8, nodeValue("Radius Over Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11 ));
inputs[in_mesh + 9] = nodeValue_Vec2("Texture Scale", self, [ 1, 1 ] );
newInput(in_mesh + 9, nodeValue_Vec2("Texture Scale", self, [ 1, 1 ] ));
inputs[in_mesh + 10] = nodeValue_Bool("Loop", self, false );
newInput(in_mesh + 10, nodeValue_Bool("Loop", self, false ));
inputs[in_mesh + 11] = nodeValue_Bool("Inverted", self, false );
newInput(in_mesh + 11, nodeValue_Bool("Inverted", self, false ));
input_display_list = [
["Path", false], in_mesh + 0, in_mesh + 10,

View file

@ -6,7 +6,7 @@ function Node_3D_Mesh_Plane(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _grou
inputs[in_mesh + 0] = nodeValue_D3Material("Material", self, new __d3dMaterial())
.setVisible(true, true);
inputs[in_mesh + 1] = nodeValue_Enum_Button("Normal", self, 2 , [ "X", "Y", "Z" ]);
newInput(in_mesh + 1, nodeValue_Enum_Button("Normal", self, 2 , [ "X", "Y", "Z" ]));
inputs[in_mesh + 2] = nodeValue_Bool("Both side", self, false )
.rejectArray();

View file

@ -9,7 +9,7 @@ function Node_3D_Mesh_Sphere_Ico(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y,
inputs[in_mesh + 1] = nodeValue_D3Material("Material", self, new __d3dMaterial())
.setVisible(true, true);
inputs[in_mesh + 2] = nodeValue_Bool("Smooth Normal", self, false );
newInput(in_mesh + 2, nodeValue_Bool("Smooth Normal", self, false ));
input_display_list = [
__d3d_input_list_mesh, in_mesh + 0, in_mesh + 2,

View file

@ -12,7 +12,7 @@ function Node_3D_Mesh_Sphere_UV(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _
inputs[in_mesh + 2] = nodeValue_D3Material("Material", self, new __d3dMaterial())
.setVisible(true, true);
inputs[in_mesh + 3] = nodeValue_Bool("Smooth Normal", self, false );
newInput(in_mesh + 3, nodeValue_Bool("Smooth Normal", self, false ));
input_display_list = [
__d3d_input_list_mesh, in_mesh + 0, in_mesh + 1, in_mesh + 3,

View file

@ -4,13 +4,13 @@ function Node_3D_Mesh_Stack_Slice(_x, _y, _group = noone) : Node(_x, _y, _group)
inputs[0] = nodeValue_D3Mesh("Mesh", self, noone)
.setVisible(true, true);
inputs[1] = nodeValue_Vec2("Output Dimension", self, [ 16, 16 ]);
newInput(1, nodeValue_Vec2("Output Dimension", self, [ 16, 16 ]));
inputs[2] = nodeValue_Float("Scale", self, 1);
newInput(2, nodeValue_Float("Scale", self, 1));
inputs[3] = nodeValue_Int("Slices", self, 4);
newInput(3, nodeValue_Int("Slices", self, 4));
inputs[4] = nodeValue_Vec3("BBOX Padding", self, [ 0, 0, 0 ]);
newInput(4, nodeValue_Vec3("BBOX Padding", self, [ 0, 0, 0 ]));
outputs[0] = nodeValue_Output("Outputs", self, VALUE_TYPE.surface, [])
.setArrayDepth(1);

View file

@ -6,18 +6,18 @@ function Node_3D_Mesh_Terrain(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _gr
inputs[in_mesh + 0] = nodeValue_D3Material("Material", self, new __d3dMaterial())
.setVisible(true, true);
inputs[in_mesh + 1] = nodeValue_Enum_Button("Input type", self, 0 , [ "Surface", "Array" ]);
newInput(in_mesh + 1, nodeValue_Enum_Button("Input type", self, 0 , [ "Surface", "Array" ]));
inputs[in_mesh + 2] = nodeValue_Surface("Height map", self);
newInput(in_mesh + 2, nodeValue_Surface("Height map", self));
inputs[in_mesh + 3] = nodeValue_Int("Subdivision", self, 4 );
newInput(in_mesh + 3, nodeValue_Int("Subdivision", self, 4 ));
inputs[in_mesh + 4] = nodeValue_Float("Height array", self, [] )
.setArrayDepth(2);
inputs[in_mesh + 5] = nodeValue_Bool("Smooth", self, false );
newInput(in_mesh + 5, nodeValue_Bool("Smooth", self, false ));
inputs[in_mesh + 6] = nodeValue_Slider_Range("Front Height Level", self, [ 0, 1 ]);
newInput(in_mesh + 6, nodeValue_Slider_Range("Front Height Level", self, [ 0, 1 ]));
input_display_list = [
__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";
update_on_frame = true;
inputs[in_mesh + 0] = nodeValue_Int("Amounts", self, 1);
newInput(in_mesh + 0, nodeValue_Int("Amounts", self, 1));
part_pool_size = 128;
parts = array_create(part_pool_size);

View file

@ -8,13 +8,13 @@ function Node_3D_Point_Affector(_x, _y, _group = noone) : Node_3D_Object(_x, _y,
inputs[in_d3d + 0] = nodeValue_Vec3("Points", self, [ 0, 0, 0 ])
.setVisible(true, true);
inputs[in_d3d + 1] = nodeValue_Vec3("Initial value", self, [ 0, 0, 0 ]);
newInput(in_d3d + 1, nodeValue_Vec3("Initial value", self, [ 0, 0, 0 ]));
inputs[in_d3d + 2] = nodeValue_Vec3("Final value", self, [ 0, 0, 0 ]);
newInput(in_d3d + 2, nodeValue_Vec3("Final value", self, [ 0, 0, 0 ]));
inputs[in_d3d + 3] = nodeValue_Float("Falloff distance", self, 0.5);
newInput(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);
newInput(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),
new scrollItem("Plane", s_node_3d_affector_shape, 1), ]);

View file

@ -8,19 +8,19 @@ function Node_3D_Repeat(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constr
inputs[1] = nodeValue_Enum_Button("Object Mode", self, 0 , [ "Duplicate", "Array" ] )
.rejectArray();
inputs[2] = nodeValue_Int("Amount", self, 1 );
newInput(2, nodeValue_Int("Amount", self, 1 ));
inputs[3] = nodeValue_Vec3("Starting Position", self, [ 0, 0, 0 ] );
newInput(3, nodeValue_Vec3("Starting Position", self, [ 0, 0, 0 ] ));
inputs[4] = nodeValue_Quaternion("Starting Rotation", self, [ 0, 0, 0, 1 ] );
newInput(4, nodeValue_Quaternion("Starting Rotation", self, [ 0, 0, 0, 1 ] ));
inputs[5] = nodeValue_Vec3("Starting Scale", self, [ 1, 1, 1 ] );
newInput(5, nodeValue_Vec3("Starting Scale", self, [ 1, 1, 1 ] ));
inputs[6] = nodeValue_Vec3("Shift Position", self, [ 0, 0, 0 ] );
newInput(6, nodeValue_Vec3("Shift Position", self, [ 0, 0, 0 ] ));
inputs[7] = nodeValue_Quaternion("Shift Rotation", self, [ 0, 0, 0, 1 ] );
newInput(7, nodeValue_Quaternion("Shift Rotation", self, [ 0, 0, 0, 1 ] ));
inputs[8] = nodeValue_Vec3("Shift Scale", self, [ 0, 0, 0 ] );
newInput(8, nodeValue_Vec3("Shift Scale", self, [ 0, 0, 0 ] ));
inputs[9] = nodeValue_Float("Positions", self, [] )
.setArrayDepth(2);

View file

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

View file

@ -13,11 +13,11 @@ function Node_3D_Transform_Scene(_x, _y, _group = noone) : Node_3D(_x, _y, _grou
inputs[3] = nodeValue_Float("Scale", self, [])
.setArrayDepth(2);
inputs[4] = nodeValue_Enum_Scroll("Positioning type", self, 0, [ "Additive", "Override" ]);
newInput(4, nodeValue_Enum_Scroll("Positioning type", self, 0, [ "Additive", "Override" ]));
inputs[5] = nodeValue_Enum_Scroll("Rotating type", self, 0, [ "Additive", "Override" ]);
newInput(5, nodeValue_Enum_Scroll("Rotating type", self, 0, [ "Additive", "Override" ]));
inputs[6] = nodeValue_Enum_Scroll("Scaling type", self, 0, [ "Additive", "Multiplicative", "Override" ]);
newInput(6, nodeValue_Enum_Scroll("Scaling type", self, 0, [ "Additive", "Multiplicative", "Override" ]));
outputs[0] = nodeValue_Output("Scene", self, VALUE_TYPE.d3Scene, noone);

View file

@ -6,12 +6,12 @@ function Node_3DSurf(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
inputs[0] = nodeValue_D3Scene("Scene", self, noone)
.setVisible(true, true);
inputs[1] = nodeValue_Vec2("Base Dimension", self, DEF_SURF);
newInput(1, nodeValue_Vec2("Base Dimension", self, DEF_SURF));
inputs[2] = nodeValue_Float("Vertical Angle", self, 45 )
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 90, 0.1] });
inputs[3] = nodeValue_Float("Distance", self, 4 );
newInput(3, nodeValue_Float("Distance", self, 4 ));
outputs[0] = nodeValue_Output("3DSurf", self, VALUE_TYPE.dynaSurface, noone);

View file

@ -1,14 +1,14 @@
function Node_9Slice(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Nine Slice";
inputs[0] = nodeValue_Surface("Surface in", self);
newInput(0, nodeValue_Surface("Surface in", self));
inputs[1] = nodeValue_Dimension(self);
newInput(1, nodeValue_Dimension(self));
inputs[2] = nodeValue_Padding("Splice", self, [ 0, 0, 0, 0 ])
.setUnitRef(function(index) { return getDimension(index); });
inputs[3] = nodeValue_Enum_Scroll("Filling modes", self, 0, [ "Scale", "Repeat" ]);
newInput(3, nodeValue_Enum_Scroll("Filling modes", self, 0, [ "Scale", "Repeat" ]));
outputs[0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);

View file

@ -6,7 +6,7 @@ function Node_FFT(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) const
.setArrayDepth(1)
.setVisible(true, true);
inputs[1] = nodeValue_Enum_Scroll("Preprocess Function", self, 0, [ "None", "Hann" ]);
newInput(1, nodeValue_Enum_Scroll("Preprocess Function", self, 0, [ "None", "Hann" ]));
outputs[0] = nodeValue_Output("Array", self, VALUE_TYPE.float, [])
.setArrayDepth(1);

View file

@ -31,9 +31,9 @@ function Node_FLIP_Apply_Force(_x, _y, _group = noone) : Node(_x, _y, _group) co
inputs[2] = nodeValue_Float("Radius", self, 4 )
.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), ]);
newInput(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_Vec2("Size", self, [ 4, 4 ] );
newInput(4, nodeValue_Vec2("Size", self, [ 4, 4 ] ));
inputs[5] = nodeValue_Surface("Texture", self)

View file

@ -15,11 +15,11 @@ function Node_FLIP_Apply_Velocity(_x, _y, _group = noone) : Node(_x, _y, _group)
inputs[2] = nodeValue_Float("Radius", self, 4 )
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 0.1] });
inputs[3] = nodeValue_Vec2("Velocity", self, [ 0, 0 ] );
newInput(3, nodeValue_Vec2("Velocity", self, [ 0, 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) ]);
newInput(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_Vec2("Size", self, [ 4, 4 ] );
newInput(5, nodeValue_Vec2("Size", self, [ 4, 4 ] ));
input_display_list = [ 0,
["Velocity", false], 4, 1, 2, 5, 3,

View file

@ -12,12 +12,12 @@ function Node_FLIP_Destroy(_x, _y, _group = noone) : Node(_x, _y, _group) constr
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ] )
.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), ]);
newInput(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_Float("Radius", self, 4 )
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 0.1] });
inputs[4] = nodeValue_Vec2("Size", self, [ 4, 4 ] );
newInput(4, nodeValue_Vec2("Size", self, [ 4, 4 ] ));
inputs[5] = nodeValue_Float("Ratio", self, 1 )
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -7,27 +7,27 @@ function Node_FLIP_Domain(_x, _y, _group = noone) : Node(_x, _y, _group) constru
manual_ungroupable = false;
update_on_frame = true;
inputs[0] = nodeValue_Dimension(self);
newInput(0, nodeValue_Dimension(self));
inputs[1] = nodeValue_Int("Particle Size", self, 1);
newInput(1, nodeValue_Int("Particle Size", self, 1));
inputs[2] = nodeValue_Int("Particle Density", self, 10);
newInput(2, nodeValue_Int("Particle Density", self, 10));
inputs[3] = nodeValue_Float("FLIP Ratio", self, 0.8)
.setDisplay(VALUE_DISPLAY.slider);
inputs[4] = nodeValue_Float("Resolve accelerator", self, 1.5);
newInput(4, nodeValue_Float("Resolve accelerator", self, 1.5));
inputs[5] = nodeValue_Int("Iteration", self, 8);
newInput(5, nodeValue_Int("Iteration", self, 8));
inputs[6] = nodeValue_Float("Damping", self, 0.8)
.setDisplay(VALUE_DISPLAY.slider);
inputs[7] = nodeValue_Float("Gravity", self, 5);
newInput(7, nodeValue_Float("Gravity", self, 5));
inputs[8] = nodeValue_Float("Time Step", self, 0.05);
newInput(8, nodeValue_Float("Time Step", self, 0.05));
inputs[9] = nodeValue_Toggle("Wall", self, 0b1111, { data: [ "T", "B", "L", "R" ] });
newInput(9, nodeValue_Toggle("Wall", self, 0b1111, { data: [ "T", "B", "L", "R" ] }));
inputs[10] = nodeValue_Float("Viscosity", self, 0.)
.setDisplay(VALUE_DISPLAY.slider, { range: [ -1, 1, 0.01 ] });
@ -38,7 +38,7 @@ function Node_FLIP_Domain(_x, _y, _group = noone) : Node(_x, _y, _group) constru
inputs[12] = nodeValue_Float("Wall Elasticity", self, 0.)
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 2, 0.01 ] });
inputs[13] = nodeValue_Rotation("Gravity Direction", self, 0);
newInput(13, nodeValue_Rotation("Gravity Direction", self, 0));
input_display_list = [
["Domain", false], 0, 1, 9, 12,

View file

@ -11,28 +11,28 @@ function Node_FLIP_Render(_x, _y, _group = noone) : Node(_x, _y, _group) constru
inputs[1] = nodeValue_Float("Merge threshold", self, 0.75)
.setDisplay(VALUE_DISPLAY.slider);
inputs[2] = nodeValue_Range("Lifespan", self, [ 0, 0 ], { linked : true });
newInput(2, nodeValue_Range("Lifespan", self, [ 0, 0 ], { linked : true }));
inputs[3] = nodeValue_Float("Particle expansion", self, 20);
newInput(3, nodeValue_Float("Particle expansion", self, 20));
inputs[4] = nodeValue_Bool("Draw obstracles", self, true);
newInput(4, nodeValue_Bool("Draw obstracles", self, true));
inputs[5] = nodeValue_Surface("Fluid particle", self);
newInput(5, nodeValue_Surface("Fluid particle", self));
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), ] );
inputs[7] = nodeValue_Bool("Threshold", self, true);
newInput(7, nodeValue_Bool("Threshold", self, true));
inputs[8] = nodeValue_Bool("Additive", self, true);
newInput(8, nodeValue_Bool("Additive", self, true));
inputs[9] = nodeValue_Slider_Range("Alpha", self, [ 1, 1 ]);
newInput(9, nodeValue_Slider_Range("Alpha", self, [ 1, 1 ]));
inputs[10] = nodeValue_Int("Segments", self, 1);
newInput(10, nodeValue_Int("Segments", self, 1));
inputs[11] = nodeValue_Gradient("Color Over Velocity", self, new gradientObject(cola(c_white)));
newInput(11, nodeValue_Gradient("Color Over Velocity", self, new gradientObject(cola(c_white))));
inputs[12] = nodeValue_Range("Velocity Map", self, [ 0, 10 ]);
newInput(12, nodeValue_Range("Velocity Map", self, [ 0, 10 ]));
input_display_list = [ 0, 5,
["Rendering", false], 6, 10, 3, 4, 9,

View file

@ -12,7 +12,7 @@ function Node_FLIP_Repel(_x, _y, _group = noone) : Node(_x, _y, _group) construc
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ] )
.setUnitRef(function(index) { return getDimension(); });
inputs[2] = nodeValue_Float("Radius", self, 4 );
newInput(2, nodeValue_Float("Radius", self, 4 ));
inputs[3] = nodeValue_Float("Strength", self, 4 )
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 16, 0.1 ] });

View file

@ -9,20 +9,20 @@ function Node_FLIP_Spawner(_x, _y, _group = noone) : Node(_x, _y, _group) constr
inputs[0] = nodeValue_Fdomain("Domain", self, noone )
.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" ]);
newInput(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_Vec2("Spawn Position", self, [ 0.5, 0.25 ] )
.setUnitRef(function(index) { return getDimension(); }, VALUE_UNIT.reference);
inputs[3] = nodeValue_Enum_Button("Spawn Type", self, 0 , [ "Stream", "Splash" ]);
newInput(3, nodeValue_Enum_Button("Spawn Type", self, 0 , [ "Stream", "Splash" ]));
inputs[4] = nodeValue_Int("Spawn Frame", self, 0 );
newInput(4, nodeValue_Int("Spawn Frame", self, 0 ));
inputs[5] = nodeValue_Float("Spawn Amount", self, 8 );
newInput(5, nodeValue_Float("Spawn Amount", self, 8 ));
inputs[6] = nodeValue_Range("Spawn Velocity", self, [ 0, 0 ] );
newInput(6, nodeValue_Range("Spawn Velocity", self, [ 0, 0 ] ));
inputs[7] = nodeValue_Surface("Spawn Surface", self);
newInput(7, nodeValue_Surface("Spawn Surface", self));
inputs[8] = nodeValue_Float("Spawn Radius", self, 2 )
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 0.1] });
@ -30,14 +30,14 @@ function Node_FLIP_Spawner(_x, _y, _group = noone) : Node(_x, _y, _group) constr
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) });
inputs[10] = nodeValue_Rotation_Random("Spawn Direction", self, [ 0, 45, 135, 0, 0 ] );
newInput(10, nodeValue_Rotation_Random("Spawn Direction", self, [ 0, 45, 135, 0, 0 ] ));
inputs[11] = nodeValue_Float("Inherit Velocity", self, 0 )
.setDisplay(VALUE_DISPLAY.slider);
inputs[12] = nodeValue_Int("Spawn Duration", self, 1 );
newInput(12, nodeValue_Int("Spawn Duration", self, 1 ));
inputs[13] = nodeValue_Vec2("Spawn Szie", self, [ 2, 2 ] );
newInput(13, nodeValue_Vec2("Spawn Szie", self, [ 2, 2 ] ));
input_display_list = [ 0, 9,
["Spawner", false], 1, 7, 8, 13, 2, 3, 4, 12, 5,

View file

@ -9,11 +9,11 @@ function Node_FLIP_Update(_x, _y, _group = noone) : Node(_x, _y, _group) constru
inputs[0] = nodeValue_Fdomain("Domain", self, noone)
.setVisible(true, true);
inputs[1] = nodeValue_Bool("Update", self, true);
newInput(1, nodeValue_Bool("Update", self, true));
inputs[2] = nodeValue_Bool("Override timestep", self, false);
newInput(2, nodeValue_Bool("Override timestep", self, false));
inputs[3] = nodeValue_Float("Timestep", self, 0.01);
newInput(3, nodeValue_Float("Timestep", self, 0.01));
input_display_list = [ 0, 1,
["Timestep", false], 2, 3,

View file

@ -12,7 +12,7 @@ function Node_FLIP_Vortex(_x, _y, _group = noone) : Node(_x, _y, _group) constru
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ] )
.setUnitRef(function(index) { return getDimension(); });
inputs[2] = nodeValue_Float("Radius", self, 4 );
newInput(2, nodeValue_Float("Radius", self, 4 ));
inputs[3] = nodeValue_Float("Strength", self, 4 )
.setDisplay(VALUE_DISPLAY.slider, { range: [ -8, 8, 0.01 ] });

View file

@ -9,7 +9,7 @@ function Node_FLIP_Wall(_x, _y, _group = noone) : Node(_x, _y, _group) construct
inputs[0] = nodeValue_Fdomain("Domain", self, noone )
.setVisible(true, true);
inputs[1] = nodeValue_Area("Area", self, DEF_AREA , { useShape : false });
newInput(1, nodeValue_Area("Area", self, DEF_AREA , { useShape : false }));
input_display_list = [ 0,
["Collider", false], 1

View file

@ -1,9 +1,9 @@
function Node_FXAA(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "FXAA";
inputs[0] = nodeValue_Surface("Surface in", self);
newInput(0, nodeValue_Surface("Surface in", self));
inputs[1] = nodeValue_Bool("Active", self, true);
newInput(1, nodeValue_Bool("Active", self, true));
inputs[2] = nodeValue_Float("Distance", self, 0.5)
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -10,11 +10,11 @@ function Node_BW(_x, _y) : Node_Processor(_x, _y) constructor {
uniform_exp = shader_get_uniform(sh_bw, "brightness");
uniform_con = shader_get_uniform(sh_bw, "contrast");
inputs[| 0] = new NodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 1] = new NodeValue_Float(1, "Brightness", self, 0);
newInput(| 0, NodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0));
newInput(| 1, NodeValue_Float(1, "Brightness", self, 0));
inputs[| 1].setDisplay(VALUE_DISPLAY.slider, [ -1, 1, 0.01]);
inputs[| 2] = new NodeValue_Float(2, "Contrast", self, 1);
newInput(| 2, NodeValue_Float(2, "Contrast", self, 1));
inputs[| 2].setDisplay(VALUE_DISPLAY.slider, [ -1, 4, 0.01]);
outputs[| 0] = new nodeValue_Output(0, "Surface out", self, VALUE_TYPE.surface, surface_create(1, 1));

View file

@ -1,9 +1,9 @@
function Node_PCX_Array_Get(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) constructor {
name = "Array Get";
inputs[0] = nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
newInput(0, nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone));
inputs[1] = nodeValue("Index", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
newInput(1, nodeValue("Index", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone));
outputs[0] = nodeValue_Output("PCX", self, VALUE_TYPE.PCXnode, noone);

View file

@ -1,11 +1,11 @@
function Node_PCX_Array_Set(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) constructor {
name = "Array Set";
inputs[0] = nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
newInput(0, nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone));
inputs[1] = nodeValue("Index", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
newInput(1, nodeValue("Index", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone));
inputs[2] = nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
newInput(2, nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone));
outputs[0] = nodeValue_Output("PCX", self, VALUE_TYPE.PCXnode, noone);

View file

@ -1,11 +1,11 @@
function Node_PCX_Condition(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) constructor {
name = "Condition";
inputs[0] = nodeValue("Condition", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
newInput(0, nodeValue("Condition", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone));
inputs[1] = nodeValue("True", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
newInput(1, nodeValue("True", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone));
inputs[2] = nodeValue("False", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
newInput(2, nodeValue("False", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone));
outputs[0] = nodeValue_Output("PCX", self, VALUE_TYPE.PCXnode, noone);

View file

@ -4,7 +4,7 @@ function Node_PCX_Equation(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) co
setDimension(96, 48);
ast = noone;
inputs[0] = nodeValue_Text("Equation", self, "");
newInput(0, nodeValue_Text("Equation", self, ""));
outputs[0] = nodeValue_Output("Result", self, VALUE_TYPE.PCXnode, noone );

View file

@ -7,11 +7,11 @@ function Node_PCX_fn_Math(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) con
"Min", "Max", "Clamp", -1,
"Lerp" ]);
inputs[1] = nodeValue("x", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
newInput(1, nodeValue("x", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone));
inputs[2] = nodeValue("y", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
newInput(2, nodeValue("y", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone));
inputs[3] = nodeValue("z", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
newInput(3, nodeValue("z", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone));
outputs[0] = nodeValue_Output("PCX", self, VALUE_TYPE.PCXnode, noone);

View file

@ -1,11 +1,11 @@
function Node_PCX_fn_Random(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) constructor {
name = "Random";
inputs[0] = nodeValue("Min", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
newInput(0, nodeValue("Min", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone));
inputs[1] = nodeValue("Max", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
newInput(1, nodeValue("Max", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone));
inputs[2] = nodeValue_Bool("Integer", self, false);
newInput(2, nodeValue_Bool("Integer", self, false));
outputs[0] = nodeValue_Output("PCX", self, VALUE_TYPE.PCXnode, noone);

View file

@ -1,7 +1,7 @@
function Node_PCX_fn_Surface_Height(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) constructor {
name = "Surface Height";
inputs[0] = nodeValue("Surface", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
newInput(0, nodeValue("Surface", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone));
outputs[0] = nodeValue_Output("PCX", self, VALUE_TYPE.PCXnode, noone);

View file

@ -1,7 +1,7 @@
function Node_PCX_fn_Surface_Width(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) constructor {
name = "Surface Width";
inputs[0] = nodeValue("Surface", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);
newInput(0, nodeValue("Surface", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone));
outputs[0] = nodeValue_Output("PCX", self, VALUE_TYPE.PCXnode, noone);

View file

@ -2,7 +2,7 @@ function Node_PCX_fn_var(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) cons
name = "Fn Variable";
w = 64;
inputs[0] = nodeValue("Default Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0);
newInput(0, nodeValue("Default Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0));
outputs[0] = nodeValue_Output("PCX", self, VALUE_TYPE.PCXnode, noone);

View file

@ -1,9 +1,9 @@
function Node_PCX_var(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) constructor {
name = "Variable";
inputs[0] = nodeValue_Text("Name", self, "");
newInput(0, nodeValue_Text("Name", self, ""));
inputs[1] = nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, -1);
newInput(1, nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, -1));
outputs[0] = nodeValue_Output("PCX", self, VALUE_TYPE.PCXnode, noone);

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[effector_input_length + 0] = nodeValue_Bool("Destroy when reach middle", self, false );
newInput(effector_input_length + 0, nodeValue_Bool("Destroy when reach middle", self, false ));
array_push(input_display_list, effector_input_length + 0);

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[7].setVisible(false, false);
inputs[effector_input_length + 0] = nodeValue_Float("Amplitude", self, 2 );
newInput(effector_input_length + 0, nodeValue_Float("Amplitude", self, 2 ));
inputs[effector_input_length + 1] = nodeValue_Float("Frequency", self, 0.2 );
newInput(effector_input_length + 1, nodeValue_Float("Frequency", self, 0.2 ));
inputs[effector_input_length + 2] = nodeValue_Bool("Multiply by speed", self, false );
newInput(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);

View file

@ -10,15 +10,15 @@ function Node_VFX_Override(_x, _y, _group = noone) : Node(_x, _y, _group) constr
inputs[0] = nodeValue_Particle("Particles", self, -1 )
.setVisible(true, true);
inputs[1] = nodeValue_Float("Positions", self, noone );
newInput(1, nodeValue_Float("Positions", self, noone ));
inputs[2] = nodeValue_Float("Rotations", self, noone );
newInput(2, nodeValue_Float("Rotations", self, noone ));
inputs[3] = nodeValue_Float("Scales", self, noone );
newInput(3, nodeValue_Float("Scales", self, noone ));
inputs[4] = nodeValue_Color("Blend", self, noone );
newInput(4, nodeValue_Color("Blend", self, noone ));
inputs[5] = nodeValue_Float("Alpha", self, noone );
newInput(5, nodeValue_Float("Alpha", self, noone ));
inputs[6] = nodeValue_Surface("Surface", self)
.setVisible(true, false);

View file

@ -6,7 +6,7 @@ function Node_VFX_Renderer(_x, _y, _group = noone) : Node(_x, _y, _group) constr
manual_ungroupable = false;
inputs[0] = nodeValue_Vec2("Output dimension", self, DEF_SURF );
newInput(0, nodeValue_Vec2("Output dimension", self, DEF_SURF ));
inputs[1] = nodeValue_Bool("Round position", self, true, "Round position to the closest integer value to avoid jittering.")
.rejectArray();

View file

@ -7,7 +7,7 @@ function Node_VFX_Renderer_Output(_x, _y, _group = noone) : Node_Group_Output(_x
manual_ungroupable = false;
previewable = true;
inputs[0] = nodeValue_Vec2("Output dimension", self, DEF_SURF);
newInput(0, nodeValue_Vec2("Output dimension", self, DEF_SURF));
inputs[1] = nodeValue_Bool("Round position", self, true, "Round position to the closest integer value to avoid jittering.")
.rejectArray();

View file

@ -15,7 +15,7 @@ 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)
.setVisible(true, true);
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.");
newInput(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_Output("Particles", self, VALUE_TYPE.particle, [] );
outputs[1] = nodeValue_Output("On create", self, VALUE_TYPE.node, noone );

View file

@ -13,9 +13,9 @@ function Node_VFX_Trail(_x, _y, _group = noone) : Node(_x, _y, _group) construct
inputs[0] = nodeValue_Particle("Particles", self, -1 )
.setVisible(true, true);
inputs[1] = nodeValue_Int("Life", self, 4 );
newInput(1, nodeValue_Int("Life", self, 4 ));
inputs[2] = nodeValue_Bool("Color", self, false );
newInput(2, nodeValue_Bool("Color", self, false ));
outputs[0] = nodeValue_Output("Path", self, VALUE_TYPE.pathnode, self);

View file

@ -14,18 +14,18 @@ function Node_VFX_Triangulate(_x, _y, _group = noone) : Node(_x, _y, _group) con
manual_ungroupable = false;
inputs[0] = nodeValue_Vec2("Output dimension", self, DEF_SURF );
newInput(0, nodeValue_Vec2("Output dimension", self, DEF_SURF ));
inputs[1] = nodeValue_Particle("Particles", self, -1 )
.setVisible(true, true);
inputs[2] = nodeValue_Float("Thickness", self, 1 );
newInput(2, nodeValue_Float("Thickness", self, 1 ));
inputs[3] = nodeValue_Color("Color", self, c_white );
newInput(3, nodeValue_Color("Color", self, c_white ));
inputs[4] = nodeValue_Bool("Inherit Thickness", self, false );
newInput(4, nodeValue_Bool("Inherit Thickness", self, false ));
inputs[5] = nodeValue_Bool("Inherit Color", self, false );
newInput(5, nodeValue_Bool("Inherit Color", self, false ));
outputs[0] = nodeValue_Output("Triangles", self, VALUE_TYPE.surface, noone);

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[effector_input_length + 0] = nodeValue_Float("Turbulence scale", self, 1 );
newInput(effector_input_length + 0, nodeValue_Float("Turbulence scale", self, 1 ));
inputs[effector_input_length + 1] = nodeValue_Bool("Constant seed", self, false );
newInput(effector_input_length + 1, nodeValue_Bool("Constant seed", self, false ));
array_push(input_display_list, effector_input_length + 0, effector_input_length + 1);

View file

@ -4,11 +4,11 @@ function Node_VFX_Vortex(_x, _y, _group = noone) : Node_VFX_effector(_x, _y, _gr
inputs[4].setVisible(false, false);
inputs[effector_input_length + 0] = nodeValue_Float("Attraction force", self, 2 );
newInput(effector_input_length + 0, nodeValue_Float("Attraction force", self, 2 ));
inputs[effector_input_length + 1] = nodeValue_Bool("Clockwise", self, true );
newInput(effector_input_length + 1, nodeValue_Bool("Clockwise", self, true ));
inputs[effector_input_length + 2] = nodeValue_Bool("Destroy when reach middle", self, false );
newInput(effector_input_length + 2, nodeValue_Bool("Destroy when reach middle", self, false ));
array_push(input_display_list, effector_input_length + 0, effector_input_length + 1, effector_input_length + 2);

View file

@ -1,24 +1,24 @@
function Node_Active_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Active Canvas";
inputs[0] = nodeValue_Dimension(self);
newInput(0, nodeValue_Dimension(self));
inputs[1] = nodeValue_Surface("Texture", self);
newInput(1, nodeValue_Surface("Texture", self));
inputs[2] = nodeValue_Vec2("Position", self, [ 0, 0 ] );
newInput(2, nodeValue_Vec2("Position", self, [ 0, 0 ] ));
inputs[3] = nodeValue_Rotation("Rotation", self, 0);
newInput(3, nodeValue_Rotation("Rotation", self, 0));
inputs[4] = nodeValue_Vec2("Scale", self, [ 1, 1 ] );
newInput(4, nodeValue_Vec2("Scale", self, [ 1, 1 ] ));
inputs[5] = nodeValue_Color("Color", self, c_white );
newInput(5, nodeValue_Color("Color", self, c_white ));
inputs[6] = nodeValue_Float("Alpha", self, 1 )
.setDisplay(VALUE_DISPLAY.slider);
inputs[7] = nodeValue_Bool("Active", self, true );
newInput(7, nodeValue_Bool("Active", self, true ));
inputs[8] = nodeValue_Range("Distance", self, [ 1, 1 ] , { linked : true });
newInput(8, nodeValue_Range("Distance", self, [ 1, 1 ] , { linked : true }));
outputs[0] = nodeValue_Output("Output", self, VALUE_TYPE.surface, noone );

View file

@ -1,17 +1,17 @@
function Node_Alpha_Cutoff(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Alpha Cutoff";
inputs[0] = nodeValue_Surface("Surface in", self);
newInput(0, nodeValue_Surface("Surface in", self));
inputs[1] = nodeValue_Float("Minimum", self, 0.2, "Any pixel with less alpha (more transparent) than this will be removed.")
.setDisplay(VALUE_DISPLAY.slider);
inputs[2] = nodeValue_Surface("Mask", self);
newInput(2, nodeValue_Surface("Mask", self));
inputs[3] = nodeValue_Float("Mix", self, 1)
.setDisplay(VALUE_DISPLAY.slider);
inputs[4] = nodeValue_Bool("Active", self, true);
newInput(4, nodeValue_Bool("Active", self, true));
active_index = 4;
__init_mask_modifier(2); // inputs 5, 6,

View file

@ -1,9 +1,9 @@
function Node_Alpha_Grey(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Alpha to Grey";
inputs[0] = nodeValue_Surface("Surface in", self);
newInput(0, nodeValue_Surface("Surface in", self));
inputs[1] = nodeValue_Bool("Active", self, true);
newInput(1, nodeValue_Bool("Active", self, true));
active_index = 1;
outputs[0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);

View file

@ -14,7 +14,7 @@ function Node_Alpha_Hash(_x, _y, _group = noone) : Node_Processor(_x, _y, _group
15, 47, 7, 39, 13, 45, 5, 37,
63, 31, 55, 23, 61, 29, 53, 21];
inputs[0] = nodeValue_Surface("Surface in", self);
newInput(0, nodeValue_Surface("Surface in", self));
outputs[0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);

View file

@ -4,14 +4,14 @@ function Node_Anim_Curve(_x, _y, _group = noone) : Node_Processor(_x, _y, _group
setDimension(96, 48);
inputs[0] = nodeValue("Curve", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_01);
newInput(0, nodeValue("Curve", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_01));
inputs[1] = nodeValue_Float("Progress", self, 0)
.setDisplay(VALUE_DISPLAY.slider);
inputs[2] = nodeValue_Float("Minimum", self, 0);
inputs[3] = nodeValue_Float("Maximum", self, 1);
newInput(2, nodeValue_Float("Minimum", self, 0));
newInput(3, nodeValue_Float("Maximum", self, 1));
inputs[4] = nodeValue_Bool("Animated", self, false);
newInput(4, nodeValue_Bool("Animated", self, false));
outputs[0] = nodeValue_Output("Curve", self, VALUE_TYPE.float, []);

View file

@ -2,19 +2,19 @@ function Node_Animation_Control(_x, _y, _group = noone) : Node(_x, _y, _group) c
name = "Animation Control";
setDimension(96, 96);
inputs[0] = nodeValue_Trigger("Toggle Play / Pause", self, false );
newInput(0, nodeValue_Trigger("Toggle Play / Pause", self, false ));
inputs[1] = nodeValue_Trigger("Pause", self, false );
newInput(1, nodeValue_Trigger("Pause", self, false ));
inputs[2] = nodeValue_Trigger("Resume", self, false );
newInput(2, nodeValue_Trigger("Resume", self, false ));
inputs[3] = nodeValue_Trigger("Play From Beginning", self, false );
newInput(3, nodeValue_Trigger("Play From Beginning", self, false ));
inputs[4] = nodeValue_Trigger("Play once", self, false );
newInput(4, nodeValue_Trigger("Play once", self, false ));
inputs[5] = nodeValue_Trigger("Skip Frames", self, false );
newInput(5, nodeValue_Trigger("Skip Frames", self, false ));
inputs[6] = nodeValue_Int("Skip Frames Count", self, 1);
newInput(6, nodeValue_Int("Skip Frames Count", self, 1));
static step = function() {
if(getInputData(0))

View file

@ -2,7 +2,7 @@ function Node_Application_In(_x, _y, _group = noone) : Node(_x, _y, _group) cons
name = "GUI In";
update_on_frame = true;
inputs[0] = nodeValue_Surface("GUI", self);
newInput(0, nodeValue_Surface("GUI", self));
APP_SURF_OVERRIDE = true;

View file

@ -14,7 +14,7 @@ function Node_Area(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
new scrollItem("Elipse", s_node_shape_circle, 0)
]);
inputs[3] = nodeValue_Enum_Scroll("Type", self, 0, [ "Center Span", "Two Point" ]);
newInput(3, nodeValue_Enum_Scroll("Type", self, 0, [ "Center Span", "Two Point" ]));
outputs[0] = nodeValue_Output("Area", self, VALUE_TYPE.float, [ 0, 0, 0, 0, AREA_SHAPE.rectangle ])
.setDisplay(VALUE_DISPLAY.vector);

View file

@ -4,11 +4,11 @@ function Node_Argument(_x, _y, _group = noone) : Node(_x, _y, _group) constructo
draw_padding = 8;
inputs[0] = nodeValue_Text("Tag", self, "");
newInput(0, nodeValue_Text("Tag", self, ""));
inputs[1] = nodeValue_Enum_Scroll("Type", self, 0, [ "String", "Number" ]);
newInput(1, nodeValue_Enum_Scroll("Type", self, 0, [ "String", "Number" ]));
inputs[2] = nodeValue_Text("Default value", self, "");
newInput(2, nodeValue_Text("Default value", self, ""));
outputs[0] = nodeValue_Output("Value", self, VALUE_TYPE.text, "");

View file

@ -2,7 +2,7 @@ function Node_Armature(_x, _y, _group = noone) : Node(_x, _y, _group) constructo
name = "Armature Create";
setDimension(96, 72);
//inputs[0] = nodeValue_Int("Axis", self, 0);
//newInput(0, nodeValue_Int("Axis", self, 0));
bone_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) { #region
var _b = attributes.bones;

View file

@ -12,7 +12,7 @@ function Node_Armature_Bind(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
name = "Armature Bind";
batch_output = false;
inputs[0] = nodeValue_Dimension(self);
newInput(0, nodeValue_Dimension(self));
inputs[1] = nodeValue_Armature("Armature", self, noone)
.setVisible(true, true)
@ -22,7 +22,7 @@ function Node_Armature_Bind(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
.setVisible(true, true)
.setArrayDepth(1);
inputs[3] = nodeValue_Vec2("Bone transform", self, [ 0, 0 ]);
newInput(3, nodeValue_Vec2("Bone transform", self, [ 0, 0 ]));
inputs[4] = nodeValue_Float("Bone scale", self, 1)
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0.1, 2, 0.01 ] });
@ -395,18 +395,18 @@ function Node_Armature_Bind(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
var index = array_length(inputs);
var _s = floor((index - input_fix_len) / data_length);
inputs[index + 0] = nodeValue_Surface("Surface", self);
newInput(index + 0, nodeValue_Surface("Surface", self));
inputs[index + 0].surface_index = index;
inputs[index + 0].hover_effect = 0;
inputs[index + 0].display_data.bone_id = "";
inputs[index + 1] = nodeValue_Float("Transform", self, [ 0, 0, 0, 1, 1 ] )
.setDisplay(VALUE_DISPLAY.transform);
inputs[index + 2] = nodeValue_Bool("Inherit Rotation", self, true );
inputs[index + 3] = nodeValue_Bool("Apply Bone Rotation", self, false );
newInput(index + 2, nodeValue_Bool("Inherit Rotation", self, true ));
newInput(index + 3, nodeValue_Bool("Apply Bone Rotation", self, false ));
inputs[index + 4] = nodeValue_Bool("Inherit Scale", self, false );
inputs[index + 5] = nodeValue_Bool("Apply Bone Scale", self, false );
newInput(index + 4, nodeValue_Bool("Inherit Scale", self, false ));
newInput(index + 5, nodeValue_Bool("Apply Bone Scale", self, false ));
for( var i = 0; i < data_length; i++ )
array_push(input_display_list, index + i);

View file

@ -6,7 +6,7 @@ function Node_Armature_Sample(_x, _y, _group = noone) : Node(_x, _y, _group) con
.setVisible(true, true)
.rejectArray();
inputs[1] = nodeValue_Text("Bone name", self, "");
newInput(1, nodeValue_Text("Bone name", self, ""));
inputs[2] = nodeValue_Float("Sample point", self, 0)
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -6,9 +6,9 @@ function Node_Array_Copy(_x, _y, _group = noone) : Node(_x, _y, _group) construc
.setArrayDepth(1)
.setVisible(true, true);
inputs[1] = nodeValue_Int("Starting Index", self, 0);
newInput(1, nodeValue_Int("Starting Index", self, 0));
inputs[2] = nodeValue_Int("Size", self, 1);
newInput(2, nodeValue_Int("Size", self, 1));
outputs[0] = nodeValue_Output("Array", self, VALUE_TYPE.any, 0)
.setArrayDepth(1);

View file

@ -5,7 +5,7 @@ function Node_Array_CSV_Parse(_x, _y, _group = noone) : Node(_x, _y, _group) con
inputs[0] = nodeValue_Text("CSV string", self, 0)
.setVisible(true, true);
inputs[1] = nodeValue_Int("Skip line", self, 0);
newInput(1, nodeValue_Int("Skip line", self, 0));
outputs[0] = nodeValue_Output("Array", self, VALUE_TYPE.any, 0)
.setArrayDepth(1);

View file

@ -5,7 +5,7 @@ function Node_Array_Insert(_x, _y, _group = noone) : Node(_x, _y, _group) constr
inputs[0] = nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0)
.setVisible(true, true);
inputs[1] = nodeValue_Int("Index", self, 0);
newInput(1, nodeValue_Int("Index", self, 0));
inputs[2] = nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0)
.setVisible(true, true);

View file

@ -8,7 +8,7 @@ function Node_Array_Remove(_x, _y, _group = noone) : Node(_x, _y, _group) constr
inputs[1] = nodeValue_Enum_Button("Type", self, 0, [ "Index", "Value" ])
.rejectArray();
inputs[2] = nodeValue_Int("Index", self, 0);
newInput(2, nodeValue_Int("Index", self, 0));
inputs[3] = nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0)
.setVisible(true, true);

View file

@ -5,7 +5,7 @@ function Node_Array_Set(_x, _y, _group = noone) : Node(_x, _y, _group) construct
inputs[0] = nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0)
.setVisible(true, true);
inputs[1] = nodeValue_Int("Index", self, 0);
newInput(1, nodeValue_Int("Index", self, 0));
inputs[2] = nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0)
.setVisible(true, true);

View file

@ -35,9 +35,9 @@ function Node_ASE_File_Read(_x, _y, _group = noone) : Node(_x, _y, _group) const
inputs[1] = nodeValue_Trigger("Generate layers", self, false )
.setDisplay(VALUE_DISPLAY.button, { name: "Generate", UI : true, onClick: function() { refreshLayers(); } });
inputs[2] = nodeValue_Text("Current tag", self, "");
newInput(2, nodeValue_Text("Current tag", self, ""));
inputs[3] = nodeValue_Bool("Use cel dimension", self, false);
newInput(3, nodeValue_Bool("Use cel dimension", self, false));
outputs[0] = nodeValue_Output("Output", self, VALUE_TYPE.surface, noone);

View file

@ -1,12 +1,12 @@
function Node_Atlas(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Pixel Expand";
inputs[0] = nodeValue_Surface("Surface in", self);
newInput(0, nodeValue_Surface("Surface in", self));
inputs[1] = nodeValue_Bool("Active", self, true);
newInput(1, nodeValue_Bool("Active", self, true));
active_index = 1;
inputs[2] = nodeValue_Enum_Scroll("Method", self, 0, [ "Radial", "Scan" ]);
newInput(2, nodeValue_Enum_Scroll("Method", self, 0, [ "Radial", "Scan" ]));
outputs[0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);

View file

@ -2,7 +2,7 @@ function Node_Atlas_Draw(_x, _y, _group = noone) : Node(_x, _y, _group) construc
name = "Draw Atlas";
previewable = true;
inputs[0] = nodeValue_Dimension(self);
newInput(0, nodeValue_Dimension(self));
inputs[1] = nodeValue_Surface("Atlas", self)
.setVisible(true, true);

View file

@ -5,19 +5,19 @@ function Node_Atlas_Set(_x, _y, _group = noone) : Node(_x, _y, _group) construct
inputs[0] = nodeValue_Surface("Atlas", self)
.setVisible(true, true);
inputs[1] = nodeValue_Surface("Surface", self);
newInput(1, nodeValue_Surface("Surface", self));
inputs[2] = nodeValue_Vec2("Position", self, [ 0, 0 ]);
newInput(2, nodeValue_Vec2("Position", self, [ 0, 0 ]));
inputs[3] = nodeValue_Rotation("Rotation", self, 0);
newInput(3, nodeValue_Rotation("Rotation", self, 0));
inputs[4] = nodeValue_Vec2("Scale", self, [ 0, 0 ]);
newInput(4, nodeValue_Vec2("Scale", self, [ 0, 0 ]));
inputs[5] = nodeValue_Color("Blend", self, c_white);
newInput(5, nodeValue_Color("Blend", self, c_white));
inputs[6] = nodeValue_Float("Alpha", self, 1);
newInput(6, nodeValue_Float("Alpha", self, 1));
inputs[7] = nodeValue_Bool("Recalculate Position", self, true);
newInput(7, nodeValue_Bool("Recalculate Position", self, true));
outputs[0] = nodeValue_Output("Atlas", self, VALUE_TYPE.surface, noone);

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