This commit is contained in:
Tanasart 2024-04-02 19:33:25 +07:00
parent 04f21339f3
commit 7826e5d9c3
57 changed files with 121 additions and 70 deletions

View file

@ -38,7 +38,7 @@ function _Node_Strand_Affector(_x, _y, _group = noone) : Node(_x, _y, _group) co
name = "Affector"; name = "Affector";
color = COLORS.node_blend_strand; color = COLORS.node_blend_strand;
icon = THEME.strandSim; icon = THEME.strandSim;
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Strand", self, JUNCTION_CONNECT.input, VALUE_TYPE.strands, noone) inputs[| 0] = nodeValue("Strand", self, JUNCTION_CONNECT.input, VALUE_TYPE.strands, noone)
.setVisible(true, true); .setVisible(true, true);

View file

@ -2,7 +2,7 @@ function Node_Anim_Curve(_x, _y, _group = noone) : Node_Processor(_x, _y, _group
name = "Evaluate Curve"; name = "Evaluate Curve";
update_on_frame = true; update_on_frame = true;
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Curve", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_01); inputs[| 0] = nodeValue("Curve", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_01);
inputs[| 1] = nodeValue("Progress", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0) inputs[| 1] = nodeValue("Progress", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0)

View file

@ -1,8 +1,7 @@
function Node_Area(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_Area(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Area"; name = "Area";
color = COLORS.node_blend_number; color = COLORS.node_blend_number;
setDimension(96, 80);
w = 96;
inputs[| 0] = nodeValue("Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) inputs[| 0] = nodeValue("Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] )
.setDisplay(VALUE_DISPLAY.vector) .setDisplay(VALUE_DISPLAY.vector)

View file

@ -1,7 +1,7 @@
function Node_Array(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_Array(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Array"; name = "Array";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) inputs[| 0] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 )
.setDisplay(VALUE_DISPLAY.enum_scroll, { data: [ "Any", "Surface", "Number", "Color", "Text" ], update_hover: false }) .setDisplay(VALUE_DISPLAY.enum_scroll, { data: [ "Any", "Surface", "Number", "Color", "Text" ], update_hover: false })
@ -179,7 +179,7 @@ function Node_Array(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
if(outputs[| 0].type == VALUE_TYPE.surface) if(outputs[| 0].type == VALUE_TYPE.surface)
w = 128; w = 128;
else else
w = 96; setDimension(96, 80);
} #endregion } #endregion
static postConnect = function() { #region static postConnect = function() { #region

View file

@ -1,7 +1,7 @@
function Node_Array_Shuffle(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_Array_Shuffle(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Shuffle Array"; name = "Shuffle Array";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Array in", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, []) inputs[| 0] = nodeValue("Array in", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, [])
.setVisible(true, true); .setVisible(true, true);

View file

@ -1,7 +1,7 @@
function Node_Array_Sort(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_Array_Sort(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Sort Array"; name = "Sort Array";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Array in", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, []) inputs[| 0] = nodeValue("Array in", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, [])
.setVisible(true, true); .setVisible(true, true);

View file

@ -2,7 +2,7 @@ function Node_Base_Convert(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro
name = "Convert Base"; name = "Convert Base";
color = COLORS.node_blend_number; color = COLORS.node_blend_number;
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "") inputs[| 0] = nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "")
.setVisible(true, true); .setVisible(true, true);

View file

@ -454,6 +454,7 @@ function Node_Collection(_x, _y, _group = noone) : Node(_x, _y, _group) construc
for( var i = 0; i < _ilen; i++ ) for( var i = 0; i < _ilen; i++ )
array_push_unique(_iarr, i); array_push_unique(_iarr, i);
for( var i = array_length(_iarr) - 1; i >= 0; i-- ) { for( var i = array_length(_iarr) - 1; i >= 0; i-- ) {
if(is_array(_iarr[i])) continue;
if(_iarr[i] >= _ilen) array_delete(_iarr, i, 1); if(_iarr[i] >= _ilen) array_delete(_iarr, i, 1);
} }
@ -467,8 +468,8 @@ function Node_Collection(_x, _y, _group = noone) : Node(_x, _y, _group) construc
for( var i = 0; i < _olen; i++ ) for( var i = 0; i < _olen; i++ )
array_push_unique(_oarr, i); array_push_unique(_oarr, i);
for( var i = array_length(_oarr) - 1; i >= 0; i-- ) { for( var i = array_length(_oarr) - 1; i >= 0; i-- ) {
if(_oarr[i] >= _olen) if(is_array(_iarr[i])) continue;
array_delete(_oarr, i, 1); if(_oarr[i] >= _olen) array_delete(_oarr, i, 1);
} }
output_display_list = attributes.output_display_list; output_display_list = attributes.output_display_list;
@ -610,12 +611,49 @@ function Node_Collection(_x, _y, _group = noone) : Node(_x, _y, _group) construc
return _attr; return _attr;
} #endregion } #endregion
static doApplyDeserialize = function() { #region static preApplyDeserialize = function() { #region
var attr = attributes; var attr = attributes;
if(LOADING_VERSION < 11690) { #region
var pr = ds_priority_create();
for( var i = ds_list_size(inputs) - 1; i >= custom_input_index; i-- ) {
if(!struct_has(inputs[| i].attributes, "input_priority")) continue;
var _pri = inputs[| i].attributes.input_priority;
ds_priority_add(pr, inputs[| i], _pri);
ds_list_delete(inputs, i);
}
repeat(ds_priority_size(pr)) ds_list_add(inputs, ds_priority_delete_min(pr));
for( var i = ds_list_size(outputs) - 1; i >= custom_output_index; i-- ) {
if(!struct_has(outputs[| i].attributes, "output_priority")) continue;
var _pri = outputs[| i].attributes.output_priority;
ds_priority_add(pr, outputs[| i], _pri);
ds_list_delete(outputs, i);
}
repeat(ds_priority_size(pr)) ds_list_add(outputs, ds_priority_delete_min(pr));
ds_priority_destroy(pr);
return;
} #endregion
if(struct_has(attr, "custom_input_list")) { if(struct_has(attr, "custom_input_list")) {
var _ilist = attr.custom_input_list; var _ilist = attr.custom_input_list;
var _inarr = {}; var _inarr = {};
var _dilst = [];
//for( var i = custom_input_index, n = ds_list_size(inputs); i < n; i++ ) {
// if(struct_has(inputs[| i], "from"))
// array_push(_dilst, inputs[| i].from.node_id);
//}
if(APPENDING)
for( var i = 0, n = array_length(_ilist); i < n; i++ )
_ilist[i] = ds_map_try_get(APPEND_MAP, _ilist[i], _ilist[i]);
for( var i = ds_list_size(inputs) - 1; i >= custom_input_index; i-- ) { for( var i = ds_list_size(inputs) - 1; i >= custom_input_index; i-- ) {
if(!struct_has(inputs[| i], "from")) continue; if(!struct_has(inputs[| i], "from")) continue;
@ -632,12 +670,24 @@ function Node_Collection(_x, _y, _group = noone) : Node(_x, _y, _group) construc
ds_list_add(inputs, _inarr[$ _ilist[i]]); ds_list_add(inputs, _inarr[$ _ilist[i]]);
} }
//var custom_input_list = [];
//for( var i = custom_input_index, n = ds_list_size(inputs); i < n; i++ ) {
// if(struct_has(inputs[| i], "from"))
// array_push(custom_input_list, inputs[| i].from.node_id);
//}
//print($"\n\ti: {_ilist}\n\td: {_dilst}\n\to: {custom_input_list}\n");
} }
if(struct_has(attr, "custom_output_list")) { if(struct_has(attr, "custom_output_list")) {
var _ilist = attr.custom_output_list; var _ilist = attr.custom_output_list;
var _inarr = {}; var _inarr = {};
if(APPENDING)
for( var i = 0, n = array_length(_ilist); i < n; i++ )
_ilist[i] = ds_map_try_get(APPEND_MAP, _ilist[i], _ilist[i]);
for( var i = ds_list_size(outputs) - 1; i >= custom_output_index; i-- ) { for( var i = ds_list_size(outputs) - 1; i >= custom_output_index; i-- ) {
if(!struct_has(outputs[| i], "from")) continue; if(!struct_has(outputs[| i], "from")) continue;
@ -655,12 +705,6 @@ function Node_Collection(_x, _y, _group = noone) : Node(_x, _y, _group) construc
} }
} }
var custom_input_list = [];
for( var i = custom_input_index, n = ds_list_size(inputs); i < n; i++ ) {
if(struct_has(inputs[| i], "from"))
array_push(custom_input_list, inputs[| i].from.node_id);
}
} #endregion } #endregion
static processSerialize = function(_map) { #region static processSerialize = function(_map) { #region

View file

@ -1,6 +1,6 @@
function Node_Color(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_Color(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Color"; name = "Color";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white); inputs[| 0] = nodeValue("Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white);

View file

@ -1,6 +1,6 @@
function Node_Color_Data(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_Color_Data(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Color Data"; name = "Color Data";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white) inputs[| 0] = nodeValue("Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white)
.setVisible(true, true); .setVisible(true, true);

View file

@ -1,7 +1,7 @@
function Node_Color_HSV(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_Color_HSV(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "HSV Color"; name = "HSV Color";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Hue", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) inputs[| 0] = nodeValue("Hue", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider) .setDisplay(VALUE_DISPLAY.slider)

View file

@ -1,7 +1,7 @@
function Node_Color_RGB(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_Color_RGB(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "RGB Color"; name = "RGB Color";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Red", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) inputs[| 0] = nodeValue("Red", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider) .setDisplay(VALUE_DISPLAY.slider)

View file

@ -31,7 +31,7 @@ function Node_Compare(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
name = "Compare"; name = "Compare";
color = COLORS.node_blend_number; color = COLORS.node_blend_number;
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 0] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Equal", s_node_condition_type, 0), .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Equal", s_node_condition_type, 0),

View file

@ -1,7 +1,7 @@
function Node_Condition(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_Condition(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Condition"; name = "Condition";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Check value", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ) inputs[| 0] = nodeValue("Check value", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 )
.setVisible(true, true); .setVisible(true, true);

View file

@ -2,7 +2,7 @@ function Node_Counter(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
name = "Frame Index"; name = "Frame Index";
update_on_frame = true; update_on_frame = true;
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Start", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1); inputs[| 0] = nodeValue("Start", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1);

View file

@ -2129,6 +2129,8 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
static processDeserialize = function() {} static processDeserialize = function() {}
static applyDeserialize = function(preset = false) { #region static applyDeserialize = function(preset = false) { #region
preApplyDeserialize();
var _inputs = load_map.inputs; var _inputs = load_map.inputs;
var amo = min(ds_list_size(inputs), array_length(_inputs)); var amo = min(ds_list_size(inputs), array_length(_inputs));
@ -2166,7 +2168,8 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
doApplyDeserialize(); doApplyDeserialize();
} #endregion } #endregion
static doApplyDeserialize = function() {} static preApplyDeserialize = function() {}
static doApplyDeserialize = function() {}
static loadGroup = function(context = noone) { #region static loadGroup = function(context = noone) { #region
if(_group == noone) { if(_group == noone) {

View file

@ -1,6 +1,6 @@
function Node_Find_Pixel(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_Find_Pixel(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Find pixel"; name = "Find pixel";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone); inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);

View file

@ -367,6 +367,10 @@ function Node_Group_Input(_x, _y, _group = noone) : Node(_x, _y, _group) constru
if(is_undefined(inParent)) return; if(is_undefined(inParent)) return;
} #endregion } #endregion
static getGraphPreviewSurface = function() { #region
return inputs[| 0].getValue();
} #endregion
static postDeserialize = function() { createInput(false); } static postDeserialize = function() { createInput(false); }
static doApplyDeserialize = function() { #region static doApplyDeserialize = function() { #region

View file

@ -1,7 +1,6 @@
function Node_Group_Output(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_Group_Output(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Group Output"; name = "Group Output";
color = COLORS.node_blend_collection; color = COLORS.node_blend_collection;
preview_draw = false;
is_group_io = true; is_group_io = true;
destroy_when_upgroup = true; destroy_when_upgroup = true;
@ -103,6 +102,10 @@ function Node_Group_Output(_x, _y, _group = noone) : Node(_x, _y, _group) constr
outParent.display_type = inputs[| 0].display_type; outParent.display_type = inputs[| 0].display_type;
} #endregion } #endregion
static getGraphPreviewSurface = function() { #region
return inputs[| 0].getValue();
} #endregion
static postDeserialize = function() { #region static postDeserialize = function() { #region
if(group == noone) return; if(group == noone) return;

View file

@ -2,7 +2,7 @@ function Node_Lerp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
name = "Lerp"; name = "Lerp";
color = COLORS.node_blend_number; color = COLORS.node_blend_number;
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("a", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0); inputs[| 0] = nodeValue("a", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0);
inputs[| 1] = nodeValue("b", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0); inputs[| 1] = nodeValue("b", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0);

View file

@ -30,7 +30,7 @@ function Node_Logic(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Logic Opr"; name = "Logic Opr";
color = COLORS.node_blend_number; color = COLORS.node_blend_number;
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 0] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("And" , s_node_logic, 0), .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("And" , s_node_logic, 0),

View file

@ -56,8 +56,7 @@ enum MATH_OPERATOR {
function Node_Math(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_Math(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Math"; name = "Math";
color = COLORS.node_blend_number; color = COLORS.node_blend_number;
setDimension(96, 80);
w = 96;
inputs[| 0] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 0] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ .setDisplay(VALUE_DISPLAY.enum_scroll, [

View file

@ -1,7 +1,7 @@
function Node_Mesh_Create_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_Mesh_Create_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Path to Mesh"; name = "Path to Mesh";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.pathnode, noone) inputs[| 0] = nodeValue("Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.pathnode, noone)
.setVisible(true, true); .setVisible(true, true);

View file

@ -1,7 +1,7 @@
function Node_Mesh_To_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_Mesh_To_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Mesh to Path"; name = "Mesh to Path";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Mesh", self, JUNCTION_CONNECT.input, VALUE_TYPE.mesh, noone) inputs[| 0] = nodeValue("Mesh", self, JUNCTION_CONNECT.input, VALUE_TYPE.mesh, noone)
.setVisible(true, true); .setVisible(true, true);

View file

@ -2,7 +2,7 @@ function Node_Move_Point(_x, _y, _group = noone) : Node_Processor(_x, _y, _group
name = "Translate Point"; name = "Translate Point";
color = COLORS.node_blend_number; color = COLORS.node_blend_number;
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Point", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, ]) inputs[| 0] = nodeValue("Point", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, ])
.setDisplay(VALUE_DISPLAY.vector) .setDisplay(VALUE_DISPLAY.vector)

View file

@ -12,7 +12,7 @@ enum _ANCHOR {
function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Path"; name = "Path";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Path progress", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0, "Sample position from path.") inputs[| 0] = nodeValue("Path progress", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0, "Sample position from path.")
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);

View file

@ -1,7 +1,7 @@
function Node_Path_Anchor(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_Path_Anchor(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Path Anchor"; name = "Path Anchor";
color = COLORS.node_blend_number; color = COLORS.node_blend_number;
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Postion", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) inputs[| 0] = nodeValue("Postion", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] )
.setDisplay(VALUE_DISPLAY.vector) .setDisplay(VALUE_DISPLAY.vector)

View file

@ -10,7 +10,7 @@ function L_Turtle(x = 0, y = 0, ang = 90, w = 1, color = c_white) constructor {
function Node_Path_L_System(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_Path_L_System(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "L System"; name = "L System";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Length", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 8); inputs[| 0] = nodeValue("Length", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 8);

View file

@ -1,7 +1,7 @@
function Node_Path_Separate_Folder(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_Path_Separate_Folder(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Separate File Path"; name = "Separate File Path";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "") inputs[| 0] = nodeValue("Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "")
.setVisible(true, true); .setVisible(true, true);

View file

@ -2,7 +2,7 @@ function Node_Random(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
name = "Random"; name = "Random";
color = COLORS.node_blend_number; color = COLORS.node_blend_number;
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, irandom(99999)); inputs[| 0] = nodeValue("seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, irandom(99999));

View file

@ -1,6 +1,6 @@
function Node_Sampler(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_Sampler(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Sampler"; name = "Sampler";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone); inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);

View file

@ -2,7 +2,7 @@ function Node_Scatter_Points(_x, _y, _group = noone) : Node(_x, _y, _group) cons
name = "Scatter Points"; name = "Scatter Points";
color = COLORS.node_blend_number; color = COLORS.node_blend_number;
w = 96; setDimension(96, 80);
onSurfaceSize = function() { return getInputData(7, DEF_SURF); }; onSurfaceSize = function() { return getInputData(7, DEF_SURF); };
inputs[| 0] = nodeValue("Point area", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, DEF_AREA_REF ) inputs[| 0] = nodeValue("Point area", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, DEF_AREA_REF )

View file

@ -28,7 +28,7 @@ enum STAT_OPERATOR {
function Node_Statistic(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_Statistic(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Statistic"; name = "Statistic";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 0] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Sum", "Mean", "Median", "Max", "Min" ]) .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Sum", "Mean", "Median", "Max", "Min" ])

View file

@ -1,6 +1,6 @@
function Node_String_Get_Char(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_String_Get_Char(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Get Character"; name = "Get Character";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "") inputs[| 0] = nodeValue("Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "")
.setVisible(true, true); .setVisible(true, true);

View file

@ -1,7 +1,7 @@
function Node_String_Join(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_String_Join(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Join Text"; name = "Join Text";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Text array", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, []) inputs[| 0] = nodeValue("Text array", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, [])
.setVisible(true, true); .setVisible(true, true);

View file

@ -1,7 +1,7 @@
function Node_String_Length(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_String_Length(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Text Length"; name = "Text Length";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "") inputs[| 0] = nodeValue("Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "")
.setVisible(true, true); .setVisible(true, true);

View file

@ -1,7 +1,7 @@
function Node_String_Merge(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_String_Merge(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Combine Text"; name = "Combine Text";
w = 96; setDimension(96, 80);
setIsDynamicInput(1); setIsDynamicInput(1);

View file

@ -1,7 +1,7 @@
function Node_String_Regex_Match(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_String_Regex_Match(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "RegEx Match"; name = "RegEx Match";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "") inputs[| 0] = nodeValue("Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "")
.setVisible(true, true); .setVisible(true, true);

View file

@ -1,7 +1,7 @@
function Node_String_Regex_Replace(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_String_Regex_Replace(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "RegEx Replace"; name = "RegEx Replace";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "") inputs[| 0] = nodeValue("Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "")
.setVisible(true, true); .setVisible(true, true);

View file

@ -1,7 +1,7 @@
function Node_String_Regex_Search(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_String_Regex_Search(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "RegEx Search"; name = "RegEx Search";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "") inputs[| 0] = nodeValue("Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "")
.setVisible(true, true); .setVisible(true, true);

View file

@ -1,6 +1,6 @@
function Node_String_Split(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_String_Split(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Split Text"; name = "Split Text";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "") inputs[| 0] = nodeValue("Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "")
.setVisible(true, true); .setVisible(true, true);

View file

@ -1,7 +1,7 @@
function Node_String_Trim(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_String_Trim(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Trim Text"; name = "Trim Text";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "") inputs[| 0] = nodeValue("Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "")

View file

@ -1,7 +1,7 @@
function Node_Struct(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_Struct(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Struct"; name = "Struct";
w = 96; setDimension(96, 80);
outputs[| 0] = nodeValue("Struct", self, JUNCTION_CONNECT.output, VALUE_TYPE.struct, {}); outputs[| 0] = nodeValue("Struct", self, JUNCTION_CONNECT.output, VALUE_TYPE.struct, {});

View file

@ -1,7 +1,7 @@
function Node_Struct_Get(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_Struct_Get(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Struct Get"; name = "Struct Get";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Struct", self, JUNCTION_CONNECT.input, VALUE_TYPE.struct, {}) inputs[| 0] = nodeValue("Struct", self, JUNCTION_CONNECT.input, VALUE_TYPE.struct, {})
.setVisible(true, true); .setVisible(true, true);

View file

@ -1,7 +1,7 @@
function Node_Struct_Set(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_Struct_Set(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Struct Set"; name = "Struct Set";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Struct", self, JUNCTION_CONNECT.input, VALUE_TYPE.struct, {}) inputs[| 0] = nodeValue("Struct", self, JUNCTION_CONNECT.input, VALUE_TYPE.struct, {})
.setVisible(true, true); .setVisible(true, true);

View file

@ -9,7 +9,7 @@ function Node_Surface_data(_x, _y, _group = noone) : Node(_x, _y, _group) constr
outputs[| 1] = nodeValue("Array length", self, JUNCTION_CONNECT.output, VALUE_TYPE.integer, 0); outputs[| 1] = nodeValue("Array length", self, JUNCTION_CONNECT.output, VALUE_TYPE.integer, 0);
w = 96; setDimension(96, 80);
static update = function(frame = CURRENT_FRAME) { static update = function(frame = CURRENT_FRAME) {
var _insurf = getInputData(0); var _insurf = getInputData(0);

View file

@ -1,7 +1,7 @@
function Node_Switch(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_Switch(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Switch"; name = "Switch";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Index", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "" ) inputs[| 0] = nodeValue("Index", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "" )
.setVisible(true, true) .setVisible(true, true)

View file

@ -3,7 +3,7 @@ function Node_Timeline_Preview(_x, _y, _group = noone) : Node(_x, _y, _group) co
use_cache = CACHE_USE.auto; use_cache = CACHE_USE.auto;
color = COLORS.node_blend_number; color = COLORS.node_blend_number;
w = 96; setDimension(96, 80);
PANEL_ANIMATION.timeline_preview = self; PANEL_ANIMATION.timeline_preview = self;

View file

@ -2,7 +2,7 @@ function Node_To_Number(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
name = "To Number"; name = "To Number";
color = COLORS.node_blend_number; color = COLORS.node_blend_number;
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "") inputs[| 0] = nodeValue("Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "")
.setVisible(true, true); .setVisible(true, true);

View file

@ -1,7 +1,7 @@
function Node_To_Text(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_To_Text(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "To Text"; name = "To Text";
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0) inputs[| 0] = nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0)
.setVisible(true, true); .setVisible(true, true);

View file

@ -2,7 +2,7 @@ function Node_Transform_Array(_x, _y, _group = noone) : Node_Processor(_x, _y, _
name = "Transform Array"; name = "Transform Array";
color = COLORS.node_blend_number; color = COLORS.node_blend_number;
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Postion", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) inputs[| 0] = nodeValue("Postion", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] )
.setDisplay(VALUE_DISPLAY.vector) .setDisplay(VALUE_DISPLAY.vector)

View file

@ -4,7 +4,7 @@ function Node_Tunnel_In(_x, _y, _group = noone) : Node(_x, _y, _group) construct
is_group_io = true; is_group_io = true;
preview_draw = false; preview_draw = false;
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Name", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "" ) inputs[| 0] = nodeValue("Name", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "" )
.setDisplay(VALUE_DISPLAY.text_tunnel) .setDisplay(VALUE_DISPLAY.text_tunnel)

View file

@ -4,7 +4,7 @@ function Node_Tunnel_Out(_x, _y, _group = noone) : Node(_x, _y, _group) construc
is_group_io = true; is_group_io = true;
preview_draw = false; preview_draw = false;
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Name", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "" ) inputs[| 0] = nodeValue("Name", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "" )
.setDisplay(VALUE_DISPLAY.text_tunnel) .setDisplay(VALUE_DISPLAY.text_tunnel)

View file

@ -2,7 +2,7 @@ function Node_Unicode(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
name = "Unicode"; name = "Unicode";
color = COLORS.node_blend_number; color = COLORS.node_blend_number;
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Unicode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 64); inputs[| 0] = nodeValue("Unicode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 64);

View file

@ -2,7 +2,7 @@ function Node_Vector_Cross_2D(_x, _y, _group = noone) : Node_Processor(_x, _y, _
name = "Cross Product 2D"; name = "Cross Product 2D";
color = COLORS.node_blend_number; color = COLORS.node_blend_number;
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Point 1", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) inputs[| 0] = nodeValue("Point 1", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ])
.setDisplay(VALUE_DISPLAY.vector) .setDisplay(VALUE_DISPLAY.vector)

View file

@ -2,7 +2,7 @@ function Node_Vector_Cross_3D(_x, _y, _group = noone) : Node_Processor(_x, _y, _
name = "Cross Product 3D"; name = "Cross Product 3D";
color = COLORS.node_blend_number; color = COLORS.node_blend_number;
w = 96; setDimension(96, 80);
inputs[| 0] = nodeValue("Point 1", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) inputs[| 0] = nodeValue("Point 1", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ])
.setDisplay(VALUE_DISPLAY.vector) .setDisplay(VALUE_DISPLAY.vector)

View file

@ -1,8 +1,7 @@
function Node_Vector_Dot(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_Vector_Dot(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Dot Product"; name = "Dot Product";
color = COLORS.node_blend_number; color = COLORS.node_blend_number;
setDimension(96, 80);
w = 96;
inputs[| 0] = nodeValue("Point 1", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) inputs[| 0] = nodeValue("Point 1", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ])
.setDisplay(VALUE_DISPLAY.vector) .setDisplay(VALUE_DISPLAY.vector)