shorter op nodes

This commit is contained in:
Tanasart 2024-05-02 16:05:02 +07:00
parent 9215ef1de9
commit bb0199e349
59 changed files with 62 additions and 61 deletions

View file

@ -17,7 +17,7 @@ function Node_VFX_effector(_x, _y, _group = noone) : Node(_x, _y, _group) constr
manual_ungroupable = false;
node_draw_icon = s_node_vfx_accel;
setDimension(96, 80);
setDimension(96, 48);
seed = 1;
inputs[| 0] = nodeValue("Particles", self, JUNCTION_CONNECT.input, VALUE_TYPE.particle, -1 )

View file

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

View file

@ -5,7 +5,7 @@ function Node_VFX_Override(_x, _y, _group = noone) : Node(_x, _y, _group) constr
node_draw_icon = s_node_vfx_override;
manual_ungroupable = false;
setDimension(96, 80);
setDimension(96, 48);
inputs[| 0] = nodeValue("Particles", self, JUNCTION_CONNECT.input, VALUE_TYPE.particle, -1 )
.setVisible(true, true);

View file

@ -3,7 +3,7 @@ function Node_VFX_Variable(_x, _y, _group = noone) : Node(_x, _y, _group) constr
color = COLORS.node_blend_vfx;
icon = THEME.vfx;
node_draw_icon = s_node_vfx_variable;
setDimension(96, 80);
setDimension(96, 48);
manual_ungroupable = false;

View file

@ -2,7 +2,7 @@ function Node_Anim_Curve(_x, _y, _group = noone) : Node_Processor(_x, _y, _group
name = "Evaluate Curve";
update_on_frame = true;
setDimension(96, 80);
setDimension(96, 48);
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)

View file

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

View file

@ -1,7 +1,7 @@
function Node_Array(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Array";
setDimension(96, 80);
setDimension(96, 48);
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 })
@ -189,7 +189,7 @@ function Node_Array(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
if(outputs[| 0].type == VALUE_TYPE.surface)
w = 128;
else
setDimension(96, 80);
setDimension(96, 48);
} #endregion
static postConnect = function() { #region

View file

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

View file

@ -1,7 +1,7 @@
function Node_Array_Sort(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Sort Array";
setDimension(96, 80);
setDimension(96, 48);
inputs[| 0] = nodeValue("Array in", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, [])
.setVisible(true, true);
@ -12,7 +12,8 @@ function Node_Array_Sort(_x, _y, _group = noone) : Node(_x, _y, _group) construc
outputs[| 0] = nodeValue("Sorted array", self, JUNCTION_CONNECT.output, VALUE_TYPE.any, []);
outputs[| 1] = nodeValue("Sorted index", self, JUNCTION_CONNECT.output, VALUE_TYPE.integer, []);
outputs[| 1] = nodeValue("Sorted index", self, JUNCTION_CONNECT.output, VALUE_TYPE.integer, [])
.setVisible(false);
static sortAcs = function(v1, v2) { return v2.val - v1.val; }
static sortDes = function(v1, v2) { return v1.val - v2.val; }

View file

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

View file

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

View file

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

View file

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

View file

@ -31,7 +31,7 @@ function Node_Compare(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
name = "Compare";
color = COLORS.node_blend_number;
setDimension(96, 80);
setDimension(96, 48);
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),

View file

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

View file

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

View file

@ -3,7 +3,7 @@ function Node_Iterator_Each_Length(_x, _y, _group = noone) : Node(_x, _y, _group
color = COLORS.node_blend_loop;
destroy_when_upgroup = true;
setDimension(96, 80);
setDimension(96, 48);
outputs[| 0] = nodeValue("Length", self, JUNCTION_CONNECT.output, VALUE_TYPE.integer, 0);

View file

@ -4,7 +4,7 @@ function Node_Iterator_Index(_x, _y, _group = noone) : Node(_x, _y, _group) cons
destroy_when_upgroup = true;
manual_ungroupable = false;
setDimension(96, 80);
setDimension(96, 48);
outputs[| 0] = nodeValue("Loop index", self, JUNCTION_CONNECT.output, VALUE_TYPE.integer, 0);

View file

@ -3,7 +3,7 @@ function Node_Iterator_Length(_x, _y, _group = noone) : Node(_x, _y, _group) con
color = COLORS.node_blend_loop;
destroy_when_upgroup = true;
manual_ungroupable = false;
setDimension(96, 80);
setDimension(96, 48);
outputs[| 0] = nodeValue("Length", self, JUNCTION_CONNECT.output, VALUE_TYPE.integer, 0);

View file

@ -2,7 +2,7 @@ function Node_Lerp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
name = "Lerp";
color = COLORS.node_blend_number;
setDimension(96, 80);
setDimension(96, 48);
inputs[| 0] = nodeValue("a", 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";
color = COLORS.node_blend_number;
setDimension(96, 80);
setDimension(96, 48);
inputs[| 0] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("And" , s_node_logic, 0),

View file

@ -56,7 +56,7 @@ enum MATH_OPERATOR {
function Node_Math(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Math";
color = COLORS.node_blend_number;
setDimension(96, 80);
setDimension(96, 48);
inputs[| 0] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.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 {
name = "Path to Mesh";
setDimension(96, 80);
setDimension(96, 48);
inputs[| 0] = nodeValue("Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.pathnode, noone)
.setVisible(true, true);

View file

@ -1,7 +1,7 @@
function Node_Mesh_To_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Mesh to Path";
setDimension(96, 80);
setDimension(96, 48);
inputs[| 0] = nodeValue("Mesh", self, JUNCTION_CONNECT.input, VALUE_TYPE.mesh, noone)
.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";
color = COLORS.node_blend_number;
setDimension(96, 80);
setDimension(96, 48);
inputs[| 0] = nodeValue("Point", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, ])
.setDisplay(VALUE_DISPLAY.vector)

View file

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

View file

@ -1,7 +1,7 @@
function Node_Path_Anchor(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Path Anchor";
color = COLORS.node_blend_number;
setDimension(96, 80);
setDimension(96, 48);
inputs[| 0] = nodeValue("Postion", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] )
.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 {
name = "L System";
setDimension(96, 80);
setDimension(96, 48);
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 {
name = "Separate File Path";
setDimension(96, 80);
setDimension(96, 48);
inputs[| 0] = nodeValue("Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "")
.setVisible(true, true);

View file

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

View file

@ -5,7 +5,7 @@ function Node_Rigid_Override(_x, _y, _group = noone) : Node(_x, _y, _group) cons
node_draw_icon = s_node_rigid_override;
manual_ungroupable = false;
setDimension(96, 80);
setDimension(96, 48);
inputs[| 0] = nodeValue("Object", self, JUNCTION_CONNECT.input, VALUE_TYPE.rigid, noone )
.setVisible(true, true);

View file

@ -6,7 +6,7 @@ function Node_Rigid_Variable(_x, _y, _group = noone) : Node(_x, _y, _group) cons
manual_ungroupable = false;
setDimension(96, 80);
setDimension(96, 48);
inputs[| 0] = nodeValue("Object", self, JUNCTION_CONNECT.input, VALUE_TYPE.rigid, noone )
.setVisible(true, true);

View file

@ -1,6 +1,6 @@
function Node_Sampler(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Sampler";
setDimension(96, 80);
setDimension(96, 48);
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";
color = COLORS.node_blend_number;
setDimension(96, 80);
setDimension(96, 48);
onSurfaceSize = function() { return getInputData(7, DEF_SURF); };
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 {
name = "Statistic";
setDimension(96, 80);
setDimension(96, 48);
inputs[| 0] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.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 {
name = "Get Character";
setDimension(96, 80);
setDimension(96, 48);
inputs[| 0] = nodeValue("Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "")
.setVisible(true, true);

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,7 +1,7 @@
function Node_String_Trim(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Trim Text";
setDimension(96, 80);
setDimension(96, 48);
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 {
name = "Struct";
setDimension(96, 80);
setDimension(96, 48);
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 {
name = "Struct Get";
setDimension(96, 80);
setDimension(96, 48);
inputs[| 0] = nodeValue("Struct", self, JUNCTION_CONNECT.input, VALUE_TYPE.struct, {})
.setVisible(true, true);

View file

@ -1,7 +1,7 @@
function Node_Struct_Set(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Struct Set";
setDimension(96, 80);
setDimension(96, 48);
inputs[| 0] = nodeValue("Struct", self, JUNCTION_CONNECT.input, VALUE_TYPE.struct, {})
.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);
setDimension(96, 80);
setDimension(96, 48);
static update = function(frame = CURRENT_FRAME) {
var _insurf = getInputData(0);

View file

@ -1,7 +1,7 @@
function Node_Switch(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Switch";
setDimension(96, 80);
setDimension(96, 48);
inputs[| 0] = nodeValue("Index", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "" )
.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;
color = COLORS.node_blend_number;
setDimension(96, 80);
setDimension(96, 48);
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";
color = COLORS.node_blend_number;
setDimension(96, 80);
setDimension(96, 48);
inputs[| 0] = nodeValue("Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "")
.setVisible(true, true);

View file

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

View file

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

View file

@ -2,7 +2,7 @@ function Node_Unicode(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
name = "Unicode";
color = COLORS.node_blend_number;
setDimension(96, 80);
setDimension(96, 48);
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";
color = COLORS.node_blend_number;
setDimension(96, 80);
setDimension(96, 48);
inputs[| 0] = nodeValue("Point 1", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ])
.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";
color = COLORS.node_blend_number;
setDimension(96, 80);
setDimension(96, 48);
inputs[| 0] = nodeValue("Point 1", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ])
.setDisplay(VALUE_DISPLAY.vector)

View file

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