This commit is contained in:
Tanasart 2024-08-18 14:13:41 +07:00
parent 0025f9ab1b
commit e888c23d45
468 changed files with 1442 additions and 1444 deletions

View file

@ -1,50 +1,50 @@
function __Node_3D_Combine(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "3D Combine";
inputs[0] = nodeValue_Dimension(self)
newInput(0, nodeValue_Dimension(self))
.rejectArray();
inputs[1] = nodeValue_Vec3("Object position", self, [ 0, 0, 0 ])
newInput(1, nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]))
.rejectArray();
inputs[2] = nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ])
newInput(2, nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]))
.rejectArray();
inputs[3] = nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ])
newInput(3, nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]))
.rejectArray();
inputs[4] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
newInput(4, nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ]))
.setUnitRef( function() { return getInputData(2); }, VALUE_UNIT.reference)
.rejectArray();
inputs[5] = nodeValue_Vec2("Render scale", self, [ 1, 1 ])
newInput(5, nodeValue_Vec2("Render scale", self, [ 1, 1 ]))
.rejectArray();
inputs[6] = nodeValue_Rotation("Light direction", self, 0)
newInput(6, nodeValue_Rotation("Light direction", self, 0))
.rejectArray();
inputs[7] = nodeValue_Float("Light height", self, 0.5)
newInput(7, nodeValue_Float("Light height", self, 0.5))
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] })
.rejectArray();
inputs[8] = nodeValue_Float("Light intensity", self, 1)
newInput(8, nodeValue_Float("Light intensity", self, 1))
.setDisplay(VALUE_DISPLAY.slider)
.rejectArray();
inputs[9] = nodeValue_Color("Light color", self, c_white)
newInput(9, nodeValue_Color("Light color", self, c_white))
.rejectArray();
inputs[10] = nodeValue_Color("Ambient color", self, c_grey)
newInput(10, nodeValue_Color("Ambient color", self, c_grey))
.rejectArray();
inputs[11] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
newInput(11, nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ]))
.rejectArray();
inputs[12] = nodeValue_Float("Field of view", self, 60)
newInput(12, nodeValue_Float("Field of view", self, 60))
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 90, 0.1 ] })
.rejectArray();
inputs[13] = nodeValue_Bool("Scale view with dimension", self, true)
newInput(13, nodeValue_Bool("Scale view with dimension", self, true))
input_display_list = [
["Output", false], 0, 13,
@ -66,7 +66,7 @@ function __Node_3D_Combine(_x, _y, _group = noone) : Node(_x, _y, _group) constr
static createNewInput = function() {
var index = array_length(inputs);
inputs[index] = nodeValue("3D object", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3object, noone )
newInput(index, nodeValue("3D object", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3object, noone ))
.setVisible(true, true);
array_push(input_display_list, index);

View file

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

View file

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

View file

@ -12,22 +12,22 @@ function __Node_3D_Extrude(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro
newInput(4, nodeValue_Vec3("Object scale", self, [ 1, 1, 0.1 ]));
inputs[5] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
newInput(5, nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ]))
.setUnitRef( function() { return getInputData(1); }, VALUE_UNIT.reference);
newInput(6, nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]));
newInput(7, nodeValue_Vec2("Render scale", self, [ 1, 1 ]));
inputs[8] = nodeValue_Trigger("Manual generate", self, false )
newInput(8, nodeValue_Trigger("Manual generate", self, false ))
.setDisplay(VALUE_DISPLAY.button, { name: "Generate", UI : true, onClick: function() { generateMesh(); doUpdate(); } });
newInput(9, nodeValue_Rotation("Light direction", self, 0));
inputs[10] = nodeValue_Float("Light height", self, 0.5)
newInput(10, nodeValue_Float("Light height", self, 0.5))
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
inputs[11] = nodeValue_Float("Light intensity", self, 1)
newInput(11, nodeValue_Float("Light intensity", self, 1))
.setDisplay(VALUE_DISPLAY.slider);
newInput(12, nodeValue_Color("Light color", self, c_white));
@ -37,15 +37,15 @@ function __Node_3D_Extrude(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro
newInput(15, nodeValue_Bool("Always update", self, false));
inputs[16] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
newInput(16, nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ]))
.rejectArray();
inputs[17] = nodeValue_Float("Field of view", self, 60)
newInput(17, nodeValue_Float("Field of view", self, 60))
.setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] });
inputs[18] = nodeValue_Bool("Scale view with dimension", self, true)
newInput(18, nodeValue_Bool("Scale view with dimension", self, true))
inputs[19] = nodeValue_Bool("Smooth", self, false)
newInput(19, nodeValue_Bool("Smooth", self, false))
input_display_list = [
["Output", false], 1, 18,

View file

@ -8,7 +8,7 @@ function Node_3D_Light(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
newInput(in_d3d + 1, nodeValue_Color("Color", self, c_white));
inputs[in_d3d + 2] = nodeValue_Float("Intensity", self, 1)
newInput(in_d3d + 2, nodeValue_Float("Intensity", self, 1))
.setDisplay(VALUE_DISPLAY.slider);
in_light = array_length(inputs);

View file

@ -1,7 +1,7 @@
function Node_3D_Modifier(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constructor {
name = "3D Mesh Modifier";
inputs[0] = nodeValue_D3Mesh("Mesh", self, noone)
newInput(0, nodeValue_D3Mesh("Mesh", self, noone))
.setVisible(true, true);
in_mesh = array_length(inputs);

View file

@ -1,11 +1,11 @@
function __Node_3D_Obj(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "3D Object";
inputs[0] = nodeValue_Path("Path", self, "")
newInput(0, nodeValue_Path("Path", self, ""))
.setDisplay(VALUE_DISPLAY.path_load, { filter: "3d object|*.obj" })
.rejectArray();
inputs[1] = nodeValue_Trigger("Generate", self, false )
newInput(1, nodeValue_Trigger("Generate", self, false ))
.setDisplay(VALUE_DISPLAY.button, { name: "Generate", UI : true, onClick: function() {
updateObj();
doUpdate();
@ -13,47 +13,47 @@ function __Node_3D_Obj(_x, _y, _group = noone) : Node(_x, _y, _group) constructo
newInput(2, nodeValue_Dimension(self));
inputs[3] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
newInput(3, nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ]))
.setUnitRef( function() { return getInputData(2); }, VALUE_UNIT.reference);
newInput(4, nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]));
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))
.rejectArray();
inputs[7] = nodeValue_Float("Light height", self, 0.5)
newInput(7, nodeValue_Float("Light height", self, 0.5))
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] })
.rejectArray();
inputs[8] = nodeValue_Float("Light intensity", self, 1)
newInput(8, nodeValue_Float("Light intensity", self, 1))
.setDisplay(VALUE_DISPLAY.slider)
.rejectArray();
inputs[9] = nodeValue_Color("Light color", self, c_white)
newInput(9, nodeValue_Color("Light color", self, c_white))
.rejectArray();
inputs[10] = nodeValue_Color("Ambient color", self, c_grey)
newInput(10, nodeValue_Color("Ambient color", self, c_grey))
.rejectArray();
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.")
newInput(12, nodeValue_Bool("Flip UV", self, true, "Flip UV axis, can be use to fix some texture mapping error."))
.rejectArray();
newInput(13, nodeValue_Vec3("Object rotation", self, [ 0, 0, 180 ]));
newInput(14, nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]));
inputs[15] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
newInput(15, nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ]))
.rejectArray();
inputs[16] = nodeValue_Float("Field of view", self, 60)
newInput(16, nodeValue_Float("Field of view", self, 60))
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 90, 0.1 ] })
.rejectArray();
inputs[17] = nodeValue_Bool("Scale view with dimension", self, true)
newInput(17, nodeValue_Bool("Scale view with dimension", self, true))
input_display_list = [
["Output", false], 2, 17,

View file

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

View file

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

View file

@ -7,7 +7,7 @@ function __Node_3D_Cube(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
newInput(1, nodeValue_Dimension(self));
inputs[2] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
newInput(2, nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ]))
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
newInput(3, nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]));
@ -27,10 +27,10 @@ function __Node_3D_Cube(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
newInput(13, nodeValue_Rotation("Light direction", self, 0));
inputs[14] = nodeValue_Float("Light height", self, 0.5)
newInput(14, nodeValue_Float("Light height", self, 0.5))
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
inputs[15] = nodeValue_Float("Light intensity", self, 1)
newInput(15, nodeValue_Float("Light intensity", self, 1))
.setDisplay(VALUE_DISPLAY.slider);
newInput(16, nodeValue_Color("Light color", self, c_white));
@ -41,13 +41,13 @@ function __Node_3D_Cube(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
newInput(19, nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]));
inputs[20] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
newInput(20, nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ]))
.rejectArray();
inputs[21] = nodeValue_Float("Field of view", self, 60)
newInput(21, nodeValue_Float("Field of view", self, 60))
.setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] });
inputs[22] = nodeValue_Bool("Scale view with dimension", self, true)
newInput(22, nodeValue_Bool("Scale view with dimension", self, true))
input_display_list = [
["Output", false], 1, 22,

View file

@ -9,7 +9,7 @@ function __Node_3D_Cylinder(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
newInput(2, nodeValue_Dimension(self));
inputs[3] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
newInput(3, nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ]))
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
newInput(4, nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]));
@ -24,10 +24,10 @@ function __Node_3D_Cylinder(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
newInput(10, nodeValue_Rotation("Light direction", self, 0));
inputs[11] = nodeValue_Float("Light height", self, 0.5)
newInput(11, nodeValue_Float("Light height", self, 0.5))
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
inputs[12] = nodeValue_Float("Light intensity", self, 1)
newInput(12, nodeValue_Float("Light intensity", self, 1))
.setDisplay(VALUE_DISPLAY.slider);
newInput(13, nodeValue_Color("Light color", self, c_white));
@ -37,16 +37,16 @@ function __Node_3D_Cylinder(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
newInput(16, nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]));
inputs[17] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
newInput(17, nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ]))
.rejectArray();
inputs[18] = nodeValue_Float("Field of view", self, 60)
newInput(18, nodeValue_Float("Field of view", self, 60))
.setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] });
inputs[19] = nodeValue_Float("Taper", self, 1)
newInput(19, nodeValue_Float("Taper", self, 1))
.setDisplay(VALUE_DISPLAY.slider);
inputs[20] = nodeValue_Bool("Scale view with dimension", self, true)
newInput(20, nodeValue_Bool("Scale view with dimension", self, true))
input_display_list = [
["Output", false], 2, 20,

View file

@ -3,12 +3,12 @@ function __Node_3D_Sphere(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
batch_output = false;
dimension_index = 1;
inputs[0] = nodeValue_Vec2("Subdivisions", self, [8, 4])
newInput(0, nodeValue_Vec2("Subdivisions", self, [8, 4]))
.setTooltip("Amount of polygon in X and Y axis.");
newInput(1, nodeValue_Dimension(self));
inputs[2] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
newInput(2, nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ]))
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
newInput(3, nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]));
@ -21,10 +21,10 @@ function __Node_3D_Sphere(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
newInput(7, nodeValue_Rotation("Light direction", self, 0));
inputs[8] = nodeValue_Float("Light height", self, 0.5)
newInput(8, nodeValue_Float("Light height", self, 0.5))
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
inputs[9] = nodeValue_Float("Light intensity", self, 1)
newInput(9, nodeValue_Float("Light intensity", self, 1))
.setDisplay(VALUE_DISPLAY.slider);
newInput(10, nodeValue_Color("Light color", self, c_white));
@ -34,13 +34,13 @@ function __Node_3D_Sphere(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
newInput(13, nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]));
inputs[14] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
newInput(14, nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ]))
.rejectArray();
inputs[15] = nodeValue_Float("Field of view", self, 60)
newInput(15, nodeValue_Float("Field of view", self, 60))
.setDisplay(VALUE_DISPLAY.slider, { range: [ 1, 90, 0.1 ] });
inputs[16] = nodeValue_Bool("Scale view with dimension", self, true)
newInput(16, nodeValue_Bool("Scale view with dimension", self, true))
input_display_list = [
["Output", false], 1, 16,

View file

@ -3,39 +3,39 @@
// newInput(2, nodeValue_Dimension(self));
// inputs[3] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
// newInput(3, nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ]))
// .setUnitRef( function() { return getInputData(2); }, VALUE_UNIT.reference);
// newInput(4, nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]));
// newInput(5, nodeValue_Vec2("Render scale", self, [ 1, 1 ]));
// inputs[6] = nodeValue_Float("Light direction", self, 0)
// newInput(6, nodeValue_Float("Light direction", self, 0))
// .setDisplay(VALUE_DISPLAY.rotation)
// .rejectArray();
// inputs[7] = nodeValue_Float("Light height", self, 0.5)
// newInput(7, nodeValue_Float("Light height", self, 0.5))
// .setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] })
// .rejectArray();
// inputs[8] = nodeValue_Float("Light intensity", self, 1)
// newInput(8, nodeValue_Float("Light intensity", self, 1))
// .setDisplay(VALUE_DISPLAY.slider)
// .rejectArray();
// inputs[9] = nodeValue_Color("Light color", self, c_white)
// newInput(9, nodeValue_Color("Light color", self, c_white))
// .rejectArray();
// inputs[10] = nodeValue_Color("Ambient color", self, c_grey)
// newInput(10, nodeValue_Color("Ambient color", self, c_grey))
// .rejectArray();
// inputs[15] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
// newInput(15, nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ]))
// .rejectArray();
// inputs[16] = nodeValue_Float("Field of view", self, 60)
// newInput(16, nodeValue_Float("Field of view", self, 60))
// .setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 90, 1 ] })
// .rejectArray();
// inputs[17] = nodeValue_Bool("Scale view with dimension", self, true)
// newInput(17, nodeValue_Bool("Scale view with dimension", self, true))
// input_display_list = [
// ["Output", false], 2, 17,

View file

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

View file

@ -10,33 +10,33 @@ function __Node_3D_Transform(_x, _y, _group = noone) : Node_Processor(_x, _y, _g
newInput(3, nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]));
inputs[4] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
newInput(4, nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ]))
.setUnitRef( function() { return getInputData(2); }, VALUE_UNIT.reference);
newInput(5, nodeValue_Vec2("Render scale", self, [ 1, 1 ]));
newInput(6, nodeValue_Rotation("Light direction", self, 0));
inputs[7] = nodeValue_Float("Light height", self, 0.5)
newInput(7, nodeValue_Float("Light height", self, 0.5))
.setDisplay(VALUE_DISPLAY.slider, { range: [-1, 1, 0.01] });
inputs[8] = nodeValue_Float("Light intensity", self, 1)
newInput(8, nodeValue_Float("Light intensity", self, 1))
.setDisplay(VALUE_DISPLAY.slider);
newInput(9, nodeValue_Color("Light color", self, c_white));
newInput(10, nodeValue_Color("Ambient color", self, c_grey));
inputs[11] = nodeValue("3D object", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3object, noone)
newInput(11, nodeValue("3D object", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3object, noone))
.setVisible(true, true);
inputs[12] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
newInput(12, nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ]))
.rejectArray();
inputs[13] = nodeValue_Float("Field of view", self, 60)
newInput(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))
input_display_list = [ 11,
["Output", false], 0, 14,

View file

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

View file

@ -49,7 +49,7 @@ function Node_Custom(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
for( var i = 0, n = array_length(info.inputs); i < n; i++ ) {
var _input = info.inputs[i];
inputs[i] = nodeValue(_input.name, self, JUNCTION_CONNECT.input, value_type_from_string(_input.type), _input.value)
newInput(i, nodeValue(_input.name, self, JUNCTION_CONNECT.input, value_type_from_string(_input.type), _input.value))
.setVisible(_input.show_in_inspector, _input.show_in_graph);
input_index_map[? _input.name] = i;

View file

@ -6,7 +6,7 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
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 })
newInput(2, nodeValue_Range("Spawn amount", self, [ 2, 2 ] , { linked : true }))
.setTooltip("Amount of particle spawn in that frame.");
newInput(3, nodeValue_Area("Spawn area", self, DEF_AREA ));
@ -47,20 +47,20 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
newInput(21, nodeValue_Bool("Loop", self, true ));
inputs[22] = nodeValue_Enum_Scroll("Surface array", self, 0, [ "Random", "Order", "Animation", "Scale" ])
newInput(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.")
.setVisible(false);
inputs[23] = nodeValue_Range("Animation speed", self, [ 1, 1 ] , { linked : true })
newInput(23, nodeValue_Range("Animation speed", self, [ 1, 1 ] , { linked : true }))
.setVisible(false);
newInput(24, nodeValue_Enum_Button("Scatter", self, 1, [ "Uniform", "Random" ]));
inputs[25] = nodeValue_Int("Boundary data", self, [])
newInput(25, nodeValue_Int("Boundary data", self, []))
.setArrayDepth(1)
.setVisible(false, true);
inputs[26] = nodeValue_Enum_Button("On animation end", self, ANIM_END_ACTION.loop, [ "Loop", "Ping pong", "Destroy" ])
newInput(26, nodeValue_Enum_Button("On animation end", self, ANIM_END_ACTION.loop, [ "Loop", "Ping pong", "Destroy" ]))
.setVisible(false);
newInput(27, nodeValue_Bool("Spawn", self, true));
@ -69,12 +69,12 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
newInput(29, nodeValue_Bool("Directed from center", self, false, "Make particle move away from the spawn center."));
inputs[30] = nodeValue_Surface("Distribution map", self)
newInput(30, nodeValue_Surface("Distribution map", self))
inputs[31] = nodeValue_Surface("Atlas", self, [])
newInput(31, nodeValue_Surface("Atlas", self, []))
.setArrayDepth(1);
inputs[32] = nodeValue_Float("Seed", self, seed_random(6))
newInput(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) });
newInput(33, nodeValue_Rotation("Gravity direction", self, -90));
@ -89,10 +89,10 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
newInput(38, nodeValue_Float("Ground offset", self, 0 ));
inputs[39] = nodeValue_Float("Bounce amount", self, 0.5 )
newInput(39, nodeValue_Float("Bounce amount", self, 0.5 ))
.setDisplay(VALUE_DISPLAY.slider);
inputs[40] = nodeValue_Float("Bounce friction", self, 0.1, "Apply horizontal friction once particle stop bouncing." )
newInput(40, nodeValue_Float("Bounce friction", self, 0.1, "Apply horizontal friction once particle stop bouncing." ))
.setDisplay(VALUE_DISPLAY.slider);
newInput(41, nodeValue_Vec2("Position wiggle", self, [ 0, 0 ] , { label: [ "Amplitude", "Period" ], linkable: false, per_line: true }));
@ -101,7 +101,7 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
newInput(43, nodeValue_Vec2("Scale wiggle", self, [ 0, 0 ] , { label: [ "Amplitude", "Period" ], linkable: false, per_line: true }));
inputs[44] = nodeValue_Trigger("Spawn", self, false )
newInput(44, nodeValue_Trigger("Spawn", self, false ))
.setDisplay(VALUE_DISPLAY.button, { name: "Trigger" });
newInput(45, nodeValue_Bool("Follow Path", self, false ));
@ -110,7 +110,7 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
newInput(47, nodeValue("Path Deviation", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11 ));
inputs[48] = nodeValue_Trigger("Reset Seed", self, false )
newInput(48, nodeValue_Trigger("Reset Seed", self, false ))
.setDisplay(VALUE_DISPLAY.button, { name: "Trigger" })
newInput(49, nodeValue_Bool("Stretch Animation", self, false ));

View file

@ -40,7 +40,7 @@ function _Node_Strand_Affector(_x, _y, _group = noone) : Node(_x, _y, _group) co
icon = THEME.strandSim;
setDimension(96, 48);
inputs[0] = nodeValue("Strand", self, JUNCTION_CONNECT.input, VALUE_TYPE.strands, noone)
newInput(0, nodeValue("Strand", self, JUNCTION_CONNECT.input, VALUE_TYPE.strands, noone))
.setVisible(true, true);
newInput(1, nodeValue_Enum_Scroll("Shape", self, 0, [ "Point", "Band" ]));
@ -51,7 +51,7 @@ function _Node_Strand_Affector(_x, _y, _group = noone) : Node(_x, _y, _group) co
newInput(4, nodeValue_Rotation("Direction", self, 0));
inputs[5] = nodeValue_Float("Falloff", self, 0.2)
newInput(5, nodeValue_Float("Falloff", self, 0.2))
.setDisplay(VALUE_DISPLAY.slider);
outputs[0] = nodeValue_Output("Strand", self, VALUE_TYPE.strands, noone);

View file

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

View file

@ -16,7 +16,7 @@ function Node_MK_Delay_Machine(_x, _y, _group = noone) : Node(_x, _y, _group) co
newInput(5, nodeValue_Enum_Scroll("Palette Select", self, 0, [ "Loop", "Pingpong", "Random" ]));
inputs[6] = nodeValue_Int("Seed", self, seed_random(6))
newInput(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) });
outputs[0] = nodeValue_Output("Surface", self, VALUE_TYPE.surface, noone);

View file

@ -22,12 +22,12 @@ function Node_2D_light(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
new scrollItem("Line asymmetric", s_node_2d_light_shape, 2),
new scrollItem("Spot", s_node_2d_light_shape, 3), ]);
inputs[2] = nodeValue_Vec2("Center", self, [ 16, 16 ])
newInput(2, nodeValue_Vec2("Center", self, [ 16, 16 ]))
.setUnitRef(function(index) { return getDimension(index); });
newInput(3, nodeValue_Float("Range", self, 16));
inputs[4] = nodeValue_Float("Intensity", self, 1)
newInput(4, nodeValue_Float("Intensity", self, 1))
.setDisplay(VALUE_DISPLAY.slider);
newInput(5, nodeValue_Color("Color", self, c_white));
@ -36,13 +36,13 @@ function Node_2D_light(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
newInput(7, nodeValue_Vec2("Finish", self, [ 32, 16 ]));
inputs[8] = nodeValue_Int("Sweep", self, 15)
newInput(8, nodeValue_Int("Sweep", self, 15))
.setDisplay(VALUE_DISPLAY.slider, { range: [-80, 80, 0.1] });
inputs[9] = nodeValue_Int("Sweep end", self, 0)
newInput(9, nodeValue_Int("Sweep end", self, 0))
.setDisplay(VALUE_DISPLAY.slider, { range: [-80, 80, 0.1] });
inputs[10] = nodeValue_Int("Banding", self, 0)
newInput(10, nodeValue_Int("Banding", self, 0))
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 16, 0.1] });
inputs[11] = nodeValue_Enum_Scroll("Attenuation", self, 0,
@ -51,12 +51,12 @@ function Node_2D_light(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
new scrollItem("Linear", s_node_curve, 2), ])
.setTooltip("Control how light fade out over distance.");
inputs[12] = nodeValue_Int("Radial banding", self, 0)
newInput(12, nodeValue_Int("Radial banding", self, 0))
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 16, 0.1] });
newInput(13, nodeValue_Rotation("Radial start", self, 0));
inputs[14] = nodeValue_Float("Radial band ratio", self, 0.5)
newInput(14, nodeValue_Float("Radial band ratio", self, 0.5))
.setDisplay(VALUE_DISPLAY.slider);
newInput(15, nodeValue_Bool("Active", self, true));

View file

@ -18,7 +18,7 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
global.SKY_SPHERE = new __3dUVSphere(0.5, 16, 8, true);
inputs[in_d3d + 0] = nodeValue_Int("FOV", self, 60 )
newInput(in_d3d + 0, nodeValue_Int("FOV", self, 60 ))
.setDisplay(VALUE_DISPLAY.slider, { range: [ 10, 90, 0.1 ] });
newInput(in_d3d + 1, nodeValue_Vec2("Clipping Distance", self, [ 1, 10 ] ));
@ -27,7 +27,7 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
newInput(in_d3d + 3, nodeValue_Enum_Button("Projection", self, 1 , [ "Perspective", "Orthographic" ]));
inputs[in_d3d + 4] = nodeValue_D3Scene("Scene", self, noone )
newInput(in_d3d + 4, nodeValue_D3Scene("Scene", self, noone ))
.setVisible(true, true);
newInput(in_d3d + 5, nodeValue_Color("Ambient Light", self, c_dkgrey ));
@ -36,7 +36,7 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
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 )
newInput(in_d3d + 8, nodeValue_Float("Orthographic Scale", self, 0.5 ))
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0.01, 4, 0.01 ] });
newInput(in_d3d + 9, nodeValue_Enum_Scroll("Postioning Mode", self, 2, [ "Position + Rotation", "Position + Lookat", "Lookat + Rotation" ] ));
@ -47,7 +47,7 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
newInput(in_d3d + 12, nodeValue_Rotation("Horizontal Angle", self, 45 ));
inputs[in_d3d + 13] = nodeValue_Float("Vertical Angle", self, 30 )
newInput(in_d3d + 13, nodeValue_Float("Vertical Angle", self, 30 ))
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 90, 0.1] });
newInput(in_d3d + 14, nodeValue_Float("Distance", self, 4 ));
@ -62,10 +62,10 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
newInput(in_d3d + 19, nodeValue_Float("AO Bias", self, 0.05 ));
inputs[in_d3d + 20] = nodeValue_Float("AO Strength", self, 1. )
newInput(in_d3d + 20, nodeValue_Float("AO Strength", self, 1. ))
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0.01, 4, 0.01 ] });
inputs[in_d3d + 21] = nodeValue_Int("Round Normal", self, 0 )
newInput(in_d3d + 21, nodeValue_Int("Round Normal", self, 0 ))
.setWindows();
newInput(in_d3d + 22, nodeValue_Enum_Button("Blend mode", self, 0 , [ "Normal", "Additive" ]));

View file

@ -5,31 +5,31 @@ function Node_3D_Camera_Set(_x, _y, _group = noone) : Node_3D_Camera(_x, _y, _gr
light_key = new __3dLightDirectional();
light_fill = new __3dLightDirectional();
inputs[in_cam + 0] = nodeValue_Rotation("L1 H angle", self, 30)
newInput(in_cam + 0, nodeValue_Rotation("L1 H angle", self, 30))
.setName("Horizontal angle");
inputs[in_cam + 1] = nodeValue_Float("L1 V angle", self, 45 )
newInput(in_cam + 1, nodeValue_Float("L1 V angle", self, 45 ))
.setName("Vertical angle")
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 90, 0.1] });
inputs[in_cam + 2] = nodeValue_Color("L1 Color", self, c_white )
newInput(in_cam + 2, nodeValue_Color("L1 Color", self, c_white ))
.setName("Color")
inputs[in_cam + 3] = nodeValue_Float("L1 Intensity", self, 1 )
newInput(in_cam + 3, nodeValue_Float("L1 Intensity", self, 1 ))
.setName("Intensity")
.setDisplay(VALUE_DISPLAY.slider);
inputs[in_cam + 4] = nodeValue_Rotation("L2 H angle", self, -45)
newInput(in_cam + 4, nodeValue_Rotation("L2 H angle", self, -45))
.setName("Horizontal angle");
inputs[in_cam + 5] = nodeValue_Float("L2 V angle", self, 45 )
newInput(in_cam + 5, nodeValue_Float("L2 V angle", self, 45 ))
.setName("Vertical angle")
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 90, 0.1] });
inputs[in_cam + 6] = nodeValue_Color("L2 Color", self, c_white )
newInput(in_cam + 6, nodeValue_Color("L2 Color", self, c_white ))
.setName("Color")
inputs[in_cam + 7] = nodeValue_Float("L2 Intensity", self, 0.25 )
newInput(in_cam + 7, nodeValue_Float("L2 Intensity", self, 0.25 ))
.setName("Intensity")
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -3,7 +3,7 @@ function Node_3D_Instancer(_x, _y, _group = noone) : Node_3D_Modifier(_x, _y, _g
newInput(in_mesh + 0, nodeValue_Int("Amounts", self, 1));
inputs[in_mesh + 1] = nodeValue_Vec3("Positions", self, [ 0, 0, 0 ])
newInput(in_mesh + 1, nodeValue_Vec3("Positions", self, [ 0, 0, 0 ]))
.setArrayDepth(1);
static processData = function(_output, _data, _output_index, _array_index = 0) {

View file

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

View file

@ -2,13 +2,13 @@ function Node_3D_Material(_x, _y, _group = noone) : Node_3D(_x, _y, _group) cons
name = "3D Material";
solid_surf = noone;
inputs[0] = nodeValue_Surface("Texture", self)
newInput(0, nodeValue_Surface("Texture", self))
.setVisible(true, true);
inputs[1] = nodeValue_Float("Diffuse", self, 1 )
newInput(1, nodeValue_Float("Diffuse", self, 1 ))
.setDisplay(VALUE_DISPLAY.slider);
inputs[2] = nodeValue_Float("Specular", self, 0 )
newInput(2, nodeValue_Float("Specular", self, 0 ))
.setDisplay(VALUE_DISPLAY.slider);
newInput(3, nodeValue_Float("Shininess", self, 1 ));
@ -17,10 +17,10 @@ function Node_3D_Material(_x, _y, _group = noone) : Node_3D(_x, _y, _group) cons
newInput(5, nodeValue_Surface("Normal Map", self));
inputs[6] = nodeValue_Float("Normal Strength", self, 1 )
newInput(6, nodeValue_Float("Normal Strength", self, 1 ))
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 2, 0.01 ] });
inputs[7] = nodeValue_Float("Roughness", self, 1 )
newInput(7, nodeValue_Float("Roughness", self, 1 ))
.setDisplay(VALUE_DISPLAY.slider);
newInput(8, nodeValue_Bool("Anti aliasing", self, false ));

View file

@ -3,13 +3,13 @@ function Node_3D_Mesh_Cone(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _group
object_class = __3dCone;
inputs[in_mesh + 0] = nodeValue_Int("Side", self, 8 )
newInput(in_mesh + 0, nodeValue_Int("Side", self, 8 ))
.setValidator(VV_min(3));
inputs[in_mesh + 1] = nodeValue_D3Material("Material Bottom", self, new __d3dMaterial())
newInput(in_mesh + 1, nodeValue_D3Material("Material Bottom", self, new __d3dMaterial()))
.setVisible(true, true);
inputs[in_mesh + 2] = nodeValue_D3Material("Material Side", self, new __d3dMaterial())
newInput(in_mesh + 2, nodeValue_D3Material("Material Side", self, new __d3dMaterial()))
.setVisible(true, true);
newInput(in_mesh + 3, nodeValue_Bool("Smooth Side", self, false ));

View file

@ -4,22 +4,22 @@ function Node_3D_Mesh_Cube(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _group
newInput(in_mesh + 0, nodeValue_Bool("Material per side", self, false ));
inputs[in_mesh + 1] = nodeValue_D3Material("Material", self, new __d3dMaterial())
newInput(in_mesh + 1, nodeValue_D3Material("Material", self, new __d3dMaterial()))
.setVisible(true, true);
inputs[in_mesh + 2] = nodeValue_D3Material("Material Bottom", self, new __d3dMaterial())
newInput(in_mesh + 2, nodeValue_D3Material("Material Bottom", self, new __d3dMaterial()))
.setVisible(true, true);
inputs[in_mesh + 3] = nodeValue_D3Material("Material Left", self, new __d3dMaterial())
newInput(in_mesh + 3, nodeValue_D3Material("Material Left", self, new __d3dMaterial()))
.setVisible(true, true);
inputs[in_mesh + 4] = nodeValue_D3Material("Material Right", self, new __d3dMaterial())
newInput(in_mesh + 4, nodeValue_D3Material("Material Right", self, new __d3dMaterial()))
.setVisible(true, true);
inputs[in_mesh + 5] = nodeValue_D3Material("Material Back", self, new __d3dMaterial())
newInput(in_mesh + 5, nodeValue_D3Material("Material Back", self, new __d3dMaterial()))
.setVisible(true, true);
inputs[in_mesh + 6] = nodeValue_D3Material("Material Front", self, new __d3dMaterial())
newInput(in_mesh + 6, nodeValue_D3Material("Material Front", self, new __d3dMaterial()))
.setVisible(true, true);
input_display_list = [

View file

@ -3,16 +3,16 @@ function Node_3D_Mesh_Cylinder(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _g
object_class = __3dCylinder;
inputs[in_mesh + 0] = nodeValue_Int("Side", self, 8 )
newInput(in_mesh + 0, nodeValue_Int("Side", self, 8 ))
.setValidator(VV_min(3));
inputs[in_mesh + 1] = nodeValue_D3Material("Material Top", self, new __d3dMaterial())
newInput(in_mesh + 1, nodeValue_D3Material("Material Top", self, new __d3dMaterial()))
.setVisible(true, true);
inputs[in_mesh + 2] = nodeValue_D3Material("Material Bottom", self, new __d3dMaterial())
newInput(in_mesh + 2, nodeValue_D3Material("Material Bottom", self, new __d3dMaterial()))
.setVisible(true, true);
inputs[in_mesh + 3] = nodeValue_D3Material("Material Side", self, new __d3dMaterial())
newInput(in_mesh + 3, nodeValue_D3Material("Material Side", self, new __d3dMaterial()))
.setVisible(true, true);
newInput(in_mesh + 4, nodeValue_Bool("Smooth Side", self, false ));

View file

@ -1,10 +1,10 @@
function Node_3D_Mesh_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Mesh Export";
inputs[0] = nodeValue_D3Mesh("Mesh", self, noone)
newInput(0, nodeValue_D3Mesh("Mesh", self, noone))
.setVisible(true, true);
inputs[1] = nodeValue_Path("Paths", self, "")
newInput(1, nodeValue_Path("Paths", self, ""))
.setDisplay(VALUE_DISPLAY.path_save, { filter: "Obj (.obj)|*.obj" })
.setVisible(true);

View file

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

View file

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

View file

@ -3,26 +3,26 @@ function Node_3D_Mesh_Path_Extrude(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y
object_class = __3dPathExtrude;
inputs[in_mesh + 0] = nodeValue_PathNode("Path", self, noone )
newInput(in_mesh + 0, nodeValue_PathNode("Path", self, noone ))
.setVisible(true, true);
inputs[in_mesh + 1] = nodeValue_Int("Side", self, 8 )
newInput(in_mesh + 1, nodeValue_Int("Side", self, 8 ))
.setValidator(VV_min(2));
inputs[in_mesh + 2] = nodeValue_D3Material("Material Side", self, new __d3dMaterial())
newInput(in_mesh + 2, nodeValue_D3Material("Material Side", self, new __d3dMaterial()))
.setVisible(true, true);
inputs[in_mesh + 3] = nodeValue_D3Material("Material Cap", self, new __d3dMaterial())
newInput(in_mesh + 3, nodeValue_D3Material("Material Cap", self, new __d3dMaterial()))
.setVisible(true, true);
newInput(in_mesh + 4, nodeValue_Bool("Smooth", self, false ));
newInput(in_mesh + 5, nodeValue_Bool("End caps", self, true ));
inputs[in_mesh + 6] = nodeValue_Int("Subdivision", self, 8 )
newInput(in_mesh + 6, nodeValue_Int("Subdivision", self, 8 ))
.setValidator(VV_min(2));
inputs[in_mesh + 7] = nodeValue_Float("Radius", self, 0.25 )
newInput(in_mesh + 7, nodeValue_Float("Radius", self, 0.25 ))
.setDisplay(VALUE_DISPLAY.slider);
newInput(in_mesh + 8, nodeValue("Radius Over Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11 ));

View file

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

View file

@ -3,10 +3,10 @@ function Node_3D_Mesh_Sphere_Ico(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y,
object_class = __3dICOSphere;
inputs[in_mesh + 0] = nodeValue_Int("Subdivision", self, 1 )
newInput(in_mesh + 0, nodeValue_Int("Subdivision", self, 1 ))
.setValidator(VV_min(0));
inputs[in_mesh + 1] = nodeValue_D3Material("Material", self, new __d3dMaterial())
newInput(in_mesh + 1, nodeValue_D3Material("Material", self, new __d3dMaterial()))
.setVisible(true, true);
newInput(in_mesh + 2, nodeValue_Bool("Smooth Normal", self, false ));

View file

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

View file

@ -1,7 +1,7 @@
function Node_3D_Mesh_Stack_Slice(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Slice Stack";
inputs[0] = nodeValue_D3Mesh("Mesh", self, noone)
newInput(0, nodeValue_D3Mesh("Mesh", self, noone))
.setVisible(true, true);
newInput(1, nodeValue_Vec2("Output Dimension", self, [ 16, 16 ]));

View file

@ -3,7 +3,7 @@ function Node_3D_Mesh_Terrain(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _gr
object_class = __3dTerrain;
inputs[in_mesh + 0] = nodeValue_D3Material("Material", self, new __d3dMaterial())
newInput(in_mesh + 0, nodeValue_D3Material("Material", self, new __d3dMaterial()))
.setVisible(true, true);
newInput(in_mesh + 1, nodeValue_Enum_Button("Input type", self, 0 , [ "Surface", "Array" ]));
@ -12,7 +12,7 @@ function Node_3D_Mesh_Terrain(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _gr
newInput(in_mesh + 3, nodeValue_Int("Subdivision", self, 4 ));
inputs[in_mesh + 4] = nodeValue_Float("Height array", self, [] )
newInput(in_mesh + 4, nodeValue_Float("Height array", self, [] ))
.setArrayDepth(2);
newInput(in_mesh + 5, nodeValue_Bool("Smooth", self, false ));

View file

@ -5,7 +5,7 @@ function Node_3D_Point_Affector(_x, _y, _group = noone) : Node_3D_Object(_x, _y,
gizmo_plane = [ new __3dGizmoPlaneFalloff(,, 0.75) ];
gizmo_object = noone;
inputs[in_d3d + 0] = nodeValue_Vec3("Points", self, [ 0, 0, 0 ])
newInput(in_d3d + 0, nodeValue_Vec3("Points", self, [ 0, 0, 0 ]))
.setVisible(true, true);
newInput(in_d3d + 1, nodeValue_Vec3("Initial value", self, [ 0, 0, 0 ]));

View file

@ -1,11 +1,11 @@
function Node_3D_Repeat(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constructor {
name = "3D Repeat";
inputs[0] = nodeValue_D3Mesh("Objects", self, noone)
newInput(0, nodeValue_D3Mesh("Objects", self, noone))
.setArrayDepth(1)
.setVisible(true, true);
inputs[1] = nodeValue_Enum_Button("Object Mode", self, 0 , [ "Duplicate", "Array" ] )
newInput(1, nodeValue_Enum_Button("Object Mode", self, 0 , [ "Duplicate", "Array" ] ))
.rejectArray();
newInput(2, nodeValue_Int("Amount", self, 1 ));
@ -22,16 +22,16 @@ function Node_3D_Repeat(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constr
newInput(8, nodeValue_Vec3("Shift Scale", self, [ 0, 0, 0 ] ));
inputs[9] = nodeValue_Float("Positions", self, [] )
newInput(9, nodeValue_Float("Positions", self, [] ))
.setArrayDepth(2);
inputs[10] = nodeValue_Float("Rotations", self, [] )
newInput(10, nodeValue_Float("Rotations", self, [] ))
.setArrayDepth(2);
inputs[11] = nodeValue_Float("Scales", self, [] )
newInput(11, nodeValue_Float("Scales", self, [] ))
.setArrayDepth(2);
inputs[12] = nodeValue_Bool("Use Instance", self, true )
newInput(12, nodeValue_Bool("Use Instance", self, true ))
outputs[0] = nodeValue_Output("Scene", self, VALUE_TYPE.d3Scene, noone);

View file

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

View file

@ -7,7 +7,7 @@ function Node_3D_Scene(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constru
static createNewInput = function() {
var index = array_length(inputs);
inputs[index] = nodeValue_D3Mesh("Object", self, noone)
newInput(index, nodeValue_D3Mesh("Object", self, noone))
.setVisible(true, true);
return inputs[index];

View file

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

View file

@ -1,7 +1,7 @@
function Node_3D_Transform(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group) constructor {
name = "Transform";
inputs[in_d3d + 0] = nodeValue_D3Mesh("Mesh", self, noone)
newInput(in_d3d + 0, nodeValue_D3Mesh("Mesh", self, noone))
.setVisible(true, true);
outputs[0] = nodeValue_Output("Mesh", self, VALUE_TYPE.d3Mesh, noone);

View file

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

View file

@ -19,7 +19,7 @@ function Node_3D_Transform_Image(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y,
projMat = matrix_build_projection_ortho(1, 1, 0.001, 10);
inputs[in_mesh + 0] = nodeValue_Surface("Surface", self)
newInput(in_mesh + 0, nodeValue_Surface("Surface", self))
.setVisible(true, true);
input_display_list = [

View file

@ -1,16 +1,16 @@
function Node_3D_Transform_Scene(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constructor {
name = "Transform Scene";
inputs[0] = nodeValue_D3Scene("Scene", self, noone)
newInput(0, nodeValue_D3Scene("Scene", self, noone))
.setVisible(true, true);
inputs[1] = nodeValue_Float("Position", self, [])
newInput(1, nodeValue_Float("Position", self, []))
.setArrayDepth(2);
inputs[2] = nodeValue_Float("Rotation", self, [])
newInput(2, nodeValue_Float("Rotation", self, []))
.setArrayDepth(2);
inputs[3] = nodeValue_Float("Scale", self, [])
newInput(3, nodeValue_Float("Scale", self, []))
.setArrayDepth(2);
newInput(4, nodeValue_Enum_Scroll("Positioning type", self, 0, [ "Additive", "Override" ]));

View file

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

View file

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

View file

@ -5,7 +5,7 @@ function Node_9Slice(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
newInput(1, nodeValue_Dimension(self));
inputs[2] = nodeValue_Padding("Splice", self, [ 0, 0, 0, 0 ])
newInput(2, nodeValue_Padding("Splice", self, [ 0, 0, 0, 0 ]))
.setUnitRef(function(index) { return getDimension(index); });
newInput(3, nodeValue_Enum_Scroll("Filling modes", self, 0, [ "Scale", "Repeat" ]));

View file

@ -2,7 +2,7 @@ function Node_FFT(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) const
name = "FFT";
setDimension(96, 72);
inputs[0] = nodeValue_Float("Data", self, [])
newInput(0, nodeValue_Float("Data", self, []))
.setArrayDepth(1)
.setVisible(true, true);

View file

@ -6,10 +6,10 @@ function Node_FLIP_Add_Rigidbody(_x, _y, _group = noone) : Node(_x, _y, _group)
manual_ungroupable = false;
inputs[0] = nodeValue_Fdomain("Domain", self, noone )
newInput(0, nodeValue_Fdomain("Domain", self, noone ))
.setVisible(true, true);
inputs[1] = nodeValue("Objects", self, JUNCTION_CONNECT.input, VALUE_TYPE.rigid, [] )
newInput(1, nodeValue("Objects", self, JUNCTION_CONNECT.input, VALUE_TYPE.rigid, [] ))
.setVisible(true, true);
input_display_list = [ 0,

View file

@ -22,10 +22,10 @@ function Node_FLIP_Apply_Force(_x, _y, _group = noone) : Node(_x, _y, _group) co
manual_ungroupable = false;
inputs[0] = nodeValue_Fdomain("Domain", self, noone )
newInput(0, nodeValue_Fdomain("Domain", self, noone ))
.setVisible(true, true);
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ] )
newInput(1, nodeValue_Vec2("Position", self, [ 0, 0 ] ))
.setUnitRef(function(index) { return getDimension(); });
inputs[2] = nodeValue_Float("Radius", self, 4 )
@ -35,7 +35,7 @@ function Node_FLIP_Apply_Force(_x, _y, _group = noone) : Node(_x, _y, _group) co
newInput(4, nodeValue_Vec2("Size", self, [ 4, 4 ] ));
inputs[5] = nodeValue_Surface("Texture", self)
newInput(5, nodeValue_Surface("Texture", self))
input_display_list = [ 0,
["Collider", false], 3, 2, 4,

View file

@ -6,10 +6,10 @@ function Node_FLIP_Apply_Velocity(_x, _y, _group = noone) : Node(_x, _y, _group)
manual_ungroupable = false;
inputs[0] = nodeValue_Fdomain("Domain", self, noone )
newInput(0, nodeValue_Fdomain("Domain", self, noone ))
.setVisible(true, true);
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ] )
newInput(1, nodeValue_Vec2("Position", self, [ 0, 0 ] ))
.setUnitRef(function(index) { return getDimension(); });
inputs[2] = nodeValue_Float("Radius", self, 4 )

View file

@ -6,10 +6,10 @@ function Node_FLIP_Destroy(_x, _y, _group = noone) : Node(_x, _y, _group) constr
manual_ungroupable = false;
inputs[0] = nodeValue_Fdomain("Domain", self, noone )
newInput(0, nodeValue_Fdomain("Domain", self, noone ))
.setVisible(true, true);
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ] )
newInput(1, nodeValue_Vec2("Position", self, [ 0, 0 ] ))
.setUnitRef(function(index) { return getDimension(); });
newInput(2, nodeValue_Enum_Scroll("Shape", self, 0 , [ new scrollItem("Circle", s_node_shape_circle, 0), new scrollItem("Rectangle", s_node_shape_rectangle, 0), ]));
@ -19,7 +19,7 @@ function Node_FLIP_Destroy(_x, _y, _group = noone) : Node(_x, _y, _group) constr
newInput(4, nodeValue_Vec2("Size", self, [ 4, 4 ] ));
inputs[5] = nodeValue_Float("Ratio", self, 1 )
newInput(5, nodeValue_Float("Ratio", self, 1 ))
.setDisplay(VALUE_DISPLAY.slider);
outputs[0] = nodeValue_Output("Domain", self, VALUE_TYPE.fdomain, noone );

View file

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

View file

@ -5,10 +5,10 @@ function Node_FLIP_Render(_x, _y, _group = noone) : Node(_x, _y, _group) constru
manual_ungroupable = false;
inputs[0] = nodeValue_Fdomain("Domain", self, noone)
newInput(0, nodeValue_Fdomain("Domain", self, noone))
.setVisible(true, true);
inputs[1] = nodeValue_Float("Merge threshold", self, 0.75)
newInput(1, nodeValue_Float("Merge threshold", self, 0.75))
.setDisplay(VALUE_DISPLAY.slider);
newInput(2, nodeValue_Range("Lifespan", self, [ 0, 0 ], { linked : true }));

View file

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

View file

@ -6,12 +6,12 @@ function Node_FLIP_Spawner(_x, _y, _group = noone) : Node(_x, _y, _group) constr
manual_ungroupable = false;
inputs[0] = nodeValue_Fdomain("Domain", self, noone )
newInput(0, nodeValue_Fdomain("Domain", self, noone ))
.setVisible(true, true);
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 ] )
newInput(2, nodeValue_Vec2("Spawn Position", self, [ 0.5, 0.25 ] ))
.setUnitRef(function(index) { return getDimension(); }, VALUE_UNIT.reference);
newInput(3, nodeValue_Enum_Button("Spawn Type", self, 0 , [ "Stream", "Splash" ]));
@ -27,7 +27,7 @@ function Node_FLIP_Spawner(_x, _y, _group = noone) : Node(_x, _y, _group) constr
inputs[8] = nodeValue_Float("Spawn Radius", self, 2 )
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 0.1] });
inputs[9] = nodeValue_Int("Seed", self, seed_random(6))
newInput(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) });
newInput(10, nodeValue_Rotation_Random("Spawn Direction", self, [ 0, 45, 135, 0, 0 ] ));

View file

@ -6,7 +6,7 @@ function Node_FLIP_to_VFX(_x, _y, _group = noone) : Node(_x, _y, _group) constru
manual_ungroupable = false;
inputs[0] = nodeValue_Fdomain("Domain", self, noone)
newInput(0, nodeValue_Fdomain("Domain", self, noone))
.setVisible(true, true);
outputs[0] = nodeValue_Output("Particles", self, VALUE_TYPE.particle, [] );

View file

@ -6,7 +6,7 @@ function Node_FLIP_Update(_x, _y, _group = noone) : Node(_x, _y, _group) constru
manual_ungroupable = false;
inputs[0] = nodeValue_Fdomain("Domain", self, noone)
newInput(0, nodeValue_Fdomain("Domain", self, noone))
.setVisible(true, true);
newInput(1, nodeValue_Bool("Update", self, true));

View file

@ -6,18 +6,18 @@ function Node_FLIP_Vortex(_x, _y, _group = noone) : Node(_x, _y, _group) constru
manual_ungroupable = false;
inputs[0] = nodeValue_Fdomain("Domain", self, noone )
newInput(0, nodeValue_Fdomain("Domain", self, noone ))
.setVisible(true, true);
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ] )
newInput(1, nodeValue_Vec2("Position", self, [ 0, 0 ] ))
.setUnitRef(function(index) { return getDimension(); });
newInput(2, nodeValue_Float("Radius", self, 4 ));
inputs[3] = nodeValue_Float("Strength", self, 4 )
newInput(3, nodeValue_Float("Strength", self, 4 ))
.setDisplay(VALUE_DISPLAY.slider, { range: [ -8, 8, 0.01 ] });
inputs[4] = nodeValue_Float("Attraction", self, 0 )
newInput(4, nodeValue_Float("Attraction", self, 0 ))
.setDisplay(VALUE_DISPLAY.slider, { range: [ -8, 8, 0.01 ] });
input_display_list = [ 0,

View file

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

View file

@ -5,10 +5,10 @@ function Node_FXAA(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
newInput(1, nodeValue_Bool("Active", self, true));
inputs[2] = nodeValue_Float("Distance", self, 0.5)
newInput(2, nodeValue_Float("Distance", self, 0.5))
.setDisplay(VALUE_DISPLAY.slider);
inputs[3] = nodeValue_Float("Mix", self, 1)
newInput(3, nodeValue_Float("Mix", self, 1))
.setDisplay(VALUE_DISPLAY.slider);
active_index = 1;

View file

@ -50,10 +50,10 @@ function Node_PCX_Equation(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) co
static createNewInput = function() {
var index = array_length(inputs);
inputs[index + 0] = nodeValue_Text("Argument name", self, "" )
newInput(index + 0, nodeValue_Text("Argument name", self, "" ))
.setDisplay(VALUE_DISPLAY.text_box);
inputs[index + 1] = nodeValue("Argument value", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone )
newInput(index + 1, nodeValue("Argument value", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone ))
.setVisible(true, true);
inputs[index + 1].editWidget.interactable = false;

View file

@ -4,7 +4,7 @@ function Node_VCT(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) const
color = COLORS.node_blend_vct;
vct = new VCT(self);
inputs[0] = nodeValue_Int("Editor", self, 0)
newInput(0, nodeValue_Int("Editor", self, 0))
.setDisplay(VALUE_DISPLAY.button, { name: "Editor", onClick: function() {
vct.createDialog();
} });
@ -22,7 +22,7 @@ function Node_VCT(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) const
var _var = vct[$ key];
inputs[index] = nodeValue(name, self, JUNCTION_CONNECT.input, _var.type, 0)
newInput(index, nodeValue(name, self, JUNCTION_CONNECT.input, _var.type, 0))
.setDisplay(_var.disp, _var.disp_data);
inputs[index].display_data.key = key;

View file

@ -15,7 +15,7 @@ function Node_VFX_Group(_x, _y, _group = noone) : Node_Collection(_x, _y, _group
preview_node = noone;
allCached = false;
inputs[0] = nodeValue_Bool("Loop", self, true )
newInput(0, nodeValue_Bool("Loop", self, true ))
.rejectArray();
custom_input_index = array_length(inputs);

View file

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

View file

@ -7,7 +7,7 @@ function Node_VFX_Override(_x, _y, _group = noone) : Node(_x, _y, _group) constr
manual_ungroupable = false;
setDimension(96, 48);
inputs[0] = nodeValue_Particle("Particles", self, -1 )
newInput(0, nodeValue_Particle("Particles", self, -1 ))
.setVisible(true, true);
newInput(1, nodeValue_Float("Positions", self, noone ));
@ -20,7 +20,7 @@ function Node_VFX_Override(_x, _y, _group = noone) : Node(_x, _y, _group) constr
newInput(5, nodeValue_Float("Alpha", self, noone ));
inputs[6] = nodeValue_Surface("Surface", self)
newInput(6, nodeValue_Surface("Surface", self))
.setVisible(true, false);
outputs[0] = nodeValue_Output("Particles", self, VALUE_TYPE.particle, -1 );

View file

@ -8,13 +8,13 @@ function Node_VFX_Renderer(_x, _y, _group = noone) : Node(_x, _y, _group) constr
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.")
newInput(1, nodeValue_Bool("Round position", self, true, "Round position to the closest integer value to avoid jittering."))
.rejectArray();
inputs[2] = nodeValue_Enum_Button("Render Type", self, PARTICLE_RENDER_TYPE.surface , [ "Surface", "Line" ])
newInput(2, nodeValue_Enum_Button("Render Type", self, PARTICLE_RENDER_TYPE.surface , [ "Surface", "Line" ]))
.rejectArray();
inputs[3] = nodeValue_Int("Line life", self, 4 )
newInput(3, nodeValue_Int("Line life", self, 4 ))
.rejectArray();
input_display_list = [
@ -28,10 +28,10 @@ function Node_VFX_Renderer(_x, _y, _group = noone) : Node(_x, _y, _group) constr
static createNewInput = function() {
var index = array_length(inputs);
inputs[index + 0] = nodeValue_Enum_Scroll("Blend mode", self, 0 , [ "Normal", "Alpha", "Additive" ])
newInput(index + 0, nodeValue_Enum_Scroll("Blend mode", self, 0 , [ "Normal", "Alpha", "Additive" ]))
.rejectArray();
inputs[index + 1] = nodeValue_Particle("Particles", self, noone )
newInput(index + 1, nodeValue_Particle("Particles", self, noone ))
.setVisible(true, true);
array_push(input_display_list, ["Particle", false], index + 0, index + 1);

View file

@ -9,13 +9,13 @@ function Node_VFX_Renderer_Output(_x, _y, _group = noone) : Node_Group_Output(_x
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.")
newInput(1, nodeValue_Bool("Round position", self, true, "Round position to the closest integer value to avoid jittering."))
.rejectArray();
inputs[2] = nodeValue_Enum_Button("Render Type", self, PARTICLE_RENDER_TYPE.surface , [ "Surface", "Line" ])
newInput(2, nodeValue_Enum_Button("Render Type", self, PARTICLE_RENDER_TYPE.surface , [ "Surface", "Line" ]))
.rejectArray();
inputs[3] = nodeValue_Int("Line life", self, 4 )
newInput(3, nodeValue_Int("Line life", self, 4 ))
.rejectArray();
input_display_list = [
@ -34,10 +34,10 @@ function Node_VFX_Renderer_Output(_x, _y, _group = noone) : Node_Group_Output(_x
static createNewInput = function() {
var index = array_length(inputs);
inputs[index + 0] = nodeValue_Enum_Scroll("Blend mode", self, 0 , [ "Normal", "Alpha", "Additive" ])
newInput(index + 0, nodeValue_Enum_Scroll("Blend mode", self, 0 , [ "Normal", "Alpha", "Additive" ]))
.rejectArray();
inputs[index + 1] = nodeValue_Particle("Particles", self, noone )
newInput(index + 1, nodeValue_Particle("Particles", self, noone ))
.setVisible(true, true);
array_push(input_display_list, ["Particle", false], index + 0, index + 1);

View file

@ -12,7 +12,7 @@ function Node_VFX_Spawner(_x, _y, _group = noone) : Node_VFX_Spawner_Base(_x, _y
inputs[21].setVisible(false, false);
inputs[input_len + 0] = nodeValue("Spawn trigger", self, JUNCTION_CONNECT.input, VALUE_TYPE.node, false)
newInput(input_len + 0, nodeValue("Spawn trigger", self, JUNCTION_CONNECT.input, VALUE_TYPE.node, false))
.setVisible(true, true);
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."));

View file

@ -10,7 +10,7 @@ function Node_VFX_Trail(_x, _y, _group = noone) : Node(_x, _y, _group) construct
lineLength = [];
lineData = [];
inputs[0] = nodeValue_Particle("Particles", self, -1 )
newInput(0, nodeValue_Particle("Particles", self, -1 ))
.setVisible(true, true);
newInput(1, nodeValue_Int("Life", self, 4 ));

View file

@ -16,7 +16,7 @@ function Node_VFX_Triangulate(_x, _y, _group = noone) : Node(_x, _y, _group) con
newInput(0, nodeValue_Vec2("Output dimension", self, DEF_SURF ));
inputs[1] = nodeValue_Particle("Particles", self, -1 )
newInput(1, nodeValue_Particle("Particles", self, -1 ))
.setVisible(true, true);
newInput(2, nodeValue_Float("Thickness", self, 1 ));

View file

@ -8,7 +8,7 @@ function Node_VFX_Variable(_x, _y, _group = noone) : Node(_x, _y, _group) constr
manual_ungroupable = false;
inputs[0] = nodeValue_Particle("Particles", self, -1 )
newInput(0, nodeValue_Particle("Particles", self, -1 ))
.setVisible(true, true);
input_display_list = [ 0 ];

View file

@ -13,7 +13,7 @@ function Node_Active_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) const
newInput(5, nodeValue_Color("Color", self, c_white ));
inputs[6] = nodeValue_Float("Alpha", self, 1 )
newInput(6, nodeValue_Float("Alpha", self, 1 ))
.setDisplay(VALUE_DISPLAY.slider);
newInput(7, nodeValue_Bool("Active", self, true ));

View file

@ -3,12 +3,12 @@ function Node_Alpha_Cutoff(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro
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.")
newInput(1, nodeValue_Float("Minimum", self, 0.2, "Any pixel with less alpha (more transparent) than this will be removed."))
.setDisplay(VALUE_DISPLAY.slider);
newInput(2, nodeValue_Surface("Mask", self));
inputs[3] = nodeValue_Float("Mix", self, 1)
newInput(3, nodeValue_Float("Mix", self, 1))
.setDisplay(VALUE_DISPLAY.slider);
newInput(4, nodeValue_Bool("Active", self, true));

View file

@ -5,7 +5,7 @@ function Node_Anim_Curve(_x, _y, _group = noone) : Node_Processor(_x, _y, _group
setDimension(96, 48);
newInput(0, nodeValue("Curve", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_01));
inputs[1] = nodeValue_Float("Progress", self, 0)
newInput(1, nodeValue_Float("Progress", self, 0))
.setDisplay(VALUE_DISPLAY.slider);
newInput(2, nodeValue_Float("Minimum", self, 0));

View file

@ -3,10 +3,10 @@ function Node_Area(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
color = COLORS.node_blend_number;
setDimension(96, 48);
inputs[0] = nodeValue_Vec2("Position", self, [ 0, 0 ] )
newInput(0, nodeValue_Vec2("Position", self, [ 0, 0 ] ))
.setVisible(true, true);
inputs[1] = nodeValue_Vec2("Span", self, [ 16, 16 ] )
newInput(1, nodeValue_Vec2("Span", self, [ 16, 16 ] ))
.setVisible(true, true);
inputs[2] = nodeValue_Enum_Scroll("Shape", self, AREA_SHAPE.rectangle, [

View file

@ -14,17 +14,17 @@ function Node_Armature_Bind(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
newInput(0, nodeValue_Dimension(self));
inputs[1] = nodeValue_Armature("Armature", self, noone)
newInput(1, nodeValue_Armature("Armature", self, noone))
.setVisible(true, true)
.rejectArray();
inputs[2] = nodeValue_Struct("Bind data", self, noone)
newInput(2, nodeValue_Struct("Bind data", self, noone))
.setVisible(true, true)
.setArrayDepth(1);
newInput(3, nodeValue_Vec2("Bone transform", self, [ 0, 0 ]));
inputs[4] = nodeValue_Float("Bone scale", self, 1)
newInput(4, nodeValue_Float("Bone scale", self, 1))
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0.1, 2, 0.01 ] });
outputs[0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);
@ -400,7 +400,7 @@ function Node_Armature_Bind(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
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 ] )
newInput(index + 1, nodeValue_Float("Transform", self, [ 0, 0, 0, 1, 1 ] ))
.setDisplay(VALUE_DISPLAY.transform);
newInput(index + 2, nodeValue_Bool("Inherit Rotation", self, true ));
newInput(index + 3, nodeValue_Bool("Apply Bone Rotation", self, false ));

View file

@ -2,7 +2,7 @@ function Node_Armature_Path(_x, _y, _group = noone) : Node(_x, _y, _group) const
name = "Armature Path";
setDimension(96, 72);
inputs[0] = nodeValue_Armature("Armature", self, noone)
newInput(0, nodeValue_Armature("Armature", self, noone))
.setVisible(true, true)
.rejectArray();

View file

@ -2,7 +2,7 @@ function Node_Armature_Pose(_x, _y, _group = noone) : Node(_x, _y, _group) const
name = "Armature Pose";
setDimension(96, 72);
inputs[0] = nodeValue_Armature("Armature", self, noone)
newInput(0, nodeValue_Armature("Armature", self, noone))
.setVisible(true, true);
input_display_list = [ 0,
@ -27,7 +27,7 @@ function Node_Armature_Pose(_x, _y, _group = noone) : Node(_x, _y, _group) const
static createNewInput = function(bone = noone) {
var index = array_length(inputs);
inputs[index] = nodeValue(bone != noone? bone.name : "bone", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0, 1 ] )
newInput(index, nodeValue(bone != noone? bone.name : "bone", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0, 1 ] ))
.setDisplay(VALUE_DISPLAY.transform);
inputs[index].display_data.bone_id = bone != noone? bone.ID : noone;

View file

@ -2,13 +2,13 @@ function Node_Armature_Sample(_x, _y, _group = noone) : Node(_x, _y, _group) con
name = "Armature Sample";
setDimension(96, 72);
inputs[0] = nodeValue_Armature("Armature", self, noone)
newInput(0, nodeValue_Armature("Armature", self, noone))
.setVisible(true, true)
.rejectArray();
newInput(1, nodeValue_Text("Bone name", self, ""));
inputs[2] = nodeValue_Float("Sample point", self, 0)
newInput(2, nodeValue_Float("Sample point", self, 0))
.setDisplay(VALUE_DISPLAY.slider);
outputs[0] = nodeValue_Output("Position", self, VALUE_TYPE.integer, [ 0, 0 ])

View file

@ -3,10 +3,10 @@ function Node_Array(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
attributes.spread_value = false;
inputs[0] = nodeValue_Enum_Scroll("Type", self, 0, { data: [ "Any", "Surface", "Number", "Color", "Text" ], update_hover: false })
newInput(0, nodeValue_Enum_Scroll("Type", self, 0, { data: [ "Any", "Surface", "Number", "Color", "Text" ], update_hover: false }))
.rejectArray();
inputs[1] = nodeValue_Bool("Spread array", self, false, "Unpack array and push the contents into the output one by one." )
newInput(1, nodeValue_Bool("Spread array", self, false, "Unpack array and push the contents into the output one by one." ))
.rejectArray();
array_adjust_tool = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) {
@ -36,7 +36,7 @@ function Node_Array(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
var index = array_length(inputs);
var _typ = getType();
inputs[index] = nodeValue("Input", self, JUNCTION_CONNECT.input, _typ, -1 )
newInput(index, nodeValue("Input", self, JUNCTION_CONNECT.input, _typ, -1 ))
.setVisible(true, true);
array_push(input_display_list, index);

View file

@ -2,10 +2,10 @@ function Node_Array_Add(_x, _y, _group = noone) : Node(_x, _y, _group) construct
name = "Array Add";
setDimension(96, 32 + 24);
inputs[0] = nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0)
newInput(0, nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0))
.setVisible(true, true);
inputs[1] = nodeValue_Bool("Spread array", self, false )
newInput(1, nodeValue_Bool("Spread array", self, false ))
.rejectArray();
outputs[0] = nodeValue_Output("Output", self, VALUE_TYPE.integer, 0);
@ -15,7 +15,7 @@ function Node_Array_Add(_x, _y, _group = noone) : Node(_x, _y, _group) construct
static createNewInput = function() {
var index = array_length(inputs);
inputs[index] = nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, -1 )
newInput(index, nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, -1 ))
.setVisible(true, true);
array_push(input_display_list, index);

View file

@ -2,11 +2,11 @@ function Node_Array_Composite(_x, _y, _group = noone) : Node(_x, _y, _group) con
name = "Array Composite";
setDimension(96, 32 + 24);
inputs[0] = nodeValue_Float("Array", self, [])
newInput(0, nodeValue_Float("Array", self, []))
.setArrayDepth(1)
.setVisible(true, true);
inputs[1] = nodeValue_Float("Compose", self, [])
newInput(1, nodeValue_Float("Compose", self, []))
.setArrayDepth(1)
.setVisible(true, true);

View file

@ -2,11 +2,11 @@ function Node_Array_Convolute(_x, _y, _group = noone) : Node(_x, _y, _group) con
name = "Array Convolute";
setDimension(96, 32 + 24);
inputs[0] = nodeValue_Float("Array", self, 0)
newInput(0, nodeValue_Float("Array", self, 0))
.setArrayDepth(1)
.setVisible(true, true);
inputs[1] = nodeValue_Float("Kernel", self, [])
newInput(1, nodeValue_Float("Kernel", self, []))
.setArrayDepth(1)
.setVisible(true, true);

View file

@ -2,7 +2,7 @@ function Node_Array_Copy(_x, _y, _group = noone) : Node(_x, _y, _group) construc
name = "Array Copy";
setDimension(96, 32 + 24);
inputs[0] = nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0)
newInput(0, nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0))
.setArrayDepth(1)
.setVisible(true, true);

View file

@ -2,7 +2,7 @@ function Node_Array_CSV_Parse(_x, _y, _group = noone) : Node(_x, _y, _group) con
name = "CSV Parse";
setDimension(96, 32 + 24);
inputs[0] = nodeValue_Text("CSV string", self, 0)
newInput(0, nodeValue_Text("CSV string", self, 0))
.setVisible(true, true);
newInput(1, nodeValue_Int("Skip line", self, 0));

View file

@ -2,10 +2,10 @@ function Node_Array_Find(_x, _y, _group = noone) : Node(_x, _y, _group) construc
name = "Array Find";
setDimension(96, 32 + 24);
inputs[0] = nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0)
newInput(0, nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0))
.setVisible(true, true);
inputs[1] = nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0)
newInput(1, nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0))
.setVisible(true, true)
.rejectArray();

View file

@ -2,13 +2,13 @@ function Node_Array_Get(_x, _y, _group = noone) : Node(_x, _y, _group) construct
name = "Array Get";
setDimension(96, 32 + 24);
inputs[0] = nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0)
newInput(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))
.setVisible(true, true);
inputs[2] = nodeValue_Enum_Scroll("Overflow", self, 0, [ "Clamp", "Loop", "Ping Pong" ])
newInput(2, nodeValue_Enum_Scroll("Overflow", self, 0, [ "Clamp", "Loop", "Ping Pong" ]))
.rejectArray();
outputs[0] = nodeValue_Output("Value", self, VALUE_TYPE.any, 0);

View file

@ -2,15 +2,15 @@ function Node_Array_Insert(_x, _y, _group = noone) : Node(_x, _y, _group) constr
name = "Array Insert";
setDimension(96, 32 + 24);
inputs[0] = nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0)
newInput(0, nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0))
.setVisible(true, true);
newInput(1, nodeValue_Int("Index", self, 0));
inputs[2] = nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0)
newInput(2, nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0))
.setVisible(true, true);
inputs[3] = nodeValue_Bool("Spread array", self, false )
newInput(3, nodeValue_Bool("Spread array", self, false ))
.rejectArray();
outputs[0] = nodeValue_Output("Array", self, VALUE_TYPE.any, 0);

View file

@ -2,7 +2,7 @@ function Node_Array_Length(_x, _y, _group = noone) : Node(_x, _y, _group) constr
name = "Array Length";
setDimension(96, 32 + 24);
inputs[0] = nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0)
newInput(0, nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0))
.setVisible(true, true);
outputs[0] = nodeValue_Output("Size", self, VALUE_TYPE.integer, 0);

View file

@ -17,7 +17,7 @@ function Node_Array_Pin(_x, _y, _group = noone) : Node(_x, _y, _group) construct
static createNewInput = function() {
var index = array_length(inputs);
inputs[index] = nodeValue("Input", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, -1 )
newInput(index, nodeValue("Input", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, -1 ))
.setVisible(true, true);
return inputs[index];

View file

@ -2,13 +2,13 @@ function Node_Array_Range(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
name = "Array Range";
setDimension(96, 48);
inputs[0] = nodeValue_Float("Start", self, 0)
newInput(0, nodeValue_Float("Start", self, 0))
.rejectArray();
inputs[1] = nodeValue_Float("End", self, 10)
newInput(1, nodeValue_Float("End", self, 10))
.rejectArray();
inputs[2] = nodeValue_Float("Step", self, 1)
newInput(2, nodeValue_Float("Step", self, 1))
.rejectArray();
outputs[0] = nodeValue_Output("Array", self, VALUE_TYPE.float, []);

View file

@ -4,11 +4,11 @@ function Node_Array_Rearrange(_x, _y, _group = noone) : Node(_x, _y, _group) con
draw_pad_w = 10;
setDimension(96, 48);
inputs[0] = nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0)
newInput(0, nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0))
.setArrayDepth(1)
.setVisible(true, true);
inputs[1] = nodeValue_Int("Orders", self, [])
newInput(1, nodeValue_Int("Orders", self, []))
.setArrayDepth(1);
outputs[0] = nodeValue_Output("Array", self, VALUE_TYPE.any, 0)

View file

@ -2,18 +2,18 @@ function Node_Array_Remove(_x, _y, _group = noone) : Node(_x, _y, _group) constr
name = "Array Remove";
setDimension(96, 32 + 24);
inputs[0] = nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0)
newInput(0, nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0))
.setVisible(true, true);
inputs[1] = nodeValue_Enum_Button("Type", self, 0, [ "Index", "Value" ])
newInput(1, nodeValue_Enum_Button("Type", self, 0, [ "Index", "Value" ]))
.rejectArray();
newInput(2, nodeValue_Int("Index", self, 0));
inputs[3] = nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0)
newInput(3, nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0))
.setVisible(true, true);
inputs[4] = nodeValue_Bool("Spread array", self, false )
newInput(4, nodeValue_Bool("Spread array", self, false ))
.rejectArray();
outputs[0] = nodeValue_Output("Array", self, VALUE_TYPE.any, 0);

View file

@ -2,7 +2,7 @@ function Node_Array_Reverse(_x, _y, _group = noone) : Node(_x, _y, _group) const
name = "Array Reverse";
setDimension(96, 32 + 24);
inputs[0] = nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0)
newInput(0, nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0))
.setVisible(true, true);
outputs[0] = nodeValue_Output("Array", self, VALUE_TYPE.any, 0);

View file

@ -2,11 +2,11 @@ function Node_Array_Sample(_x, _y, _group = noone) : Node(_x, _y, _group) constr
name = "Array Sample";
setDimension(96, 32 + 24);
inputs[0] = nodeValue_Float("Array", self, [])
newInput(0, nodeValue_Float("Array", self, []))
.setArrayDepth(1)
.setVisible(true, true);
inputs[1] = nodeValue_Float("Step", self, 1)
newInput(1, nodeValue_Float("Step", self, 1))
.setVisible(true, true);
outputs[0] = nodeValue_Output("Array", self, VALUE_TYPE.float, 0)

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