This commit is contained in:
Tanasart 2024-08-12 18:42:05 +07:00
parent 8d3f2848ac
commit 5408133a3f
203 changed files with 977 additions and 869 deletions

View file

@ -1871,6 +1871,7 @@
{"name":"s_folder_add","order":66,"path":"sprites/s_folder_add/s_folder_add.yy",},
{"name":"s_folder_content","order":67,"path":"sprites/s_folder_content/s_folder_content.yy",},
{"name":"s_frame_range","order":68,"path":"sprites/s_frame_range/s_frame_range.yy",},
{"name":"s_gear_16","order":230,"path":"sprites/s_gear_16/s_gear_16.yy",},
{"name":"s_gear_24","order":69,"path":"sprites/s_gear_24/s_gear_24.yy",},
{"name":"s_gizmo","order":4,"path":"sprites/s_gizmo/s_gizmo.yy",},
{"name":"s_grad_blend","order":70,"path":"sprites/s_grad_blend/s_grad_blend.yy",},

View file

@ -2577,6 +2577,7 @@
{"id":{"name":"s_folder_content","path":"sprites/s_folder_content/s_folder_content.yy",},},
{"id":{"name":"s_frame_range","path":"sprites/s_frame_range/s_frame_range.yy",},},
{"id":{"name":"s_fx_pixel","path":"sprites/s_fx_pixel/s_fx_pixel.yy",},},
{"id":{"name":"s_gear_16","path":"sprites/s_gear_16/s_gear_16.yy",},},
{"id":{"name":"s_gear_24","path":"sprites/s_gear_24/s_gear_24.yy",},},
{"id":{"name":"s_gizmo","path":"sprites/s_gizmo/s_gizmo.yy",},},
{"id":{"name":"s_grad_blend","path":"sprites/s_grad_blend/s_grad_blend.yy",},},

Binary file not shown.

View file

@ -6,7 +6,10 @@
#region data
on_top = false;
with(_p_dialog) { if(on_top) continue; other.depth = min(depth - 1, other.depth); }
with(_p_dialog) {
if(on_top) continue;
other.depth = min(depth - 1, other.depth);
}
ds_list_add(DIALOGS, self);

View file

@ -103,7 +103,7 @@ event_inherited();
if(mouse_press(mb_right)) {
selecting_hotkey = _key;
var _loadKey = string_to_var($"{_key.context}.{_key.name}");
var _loadKey = _key.full_name();
var context_menu_settings = [
_loadKey,
menuItem("Edit hotkey", function() /*=>*/ {

View file

@ -3,5 +3,6 @@ event_inherited();
for( var i = 0, n = array_length(children); i < n; i++ )
instance_destroy(children[i]);
if(instance_number(o_dialog_menubox) == 1)
FOCUS = FOCUS_BEFORE;
// print(FOCUS);
// if(instance_number(o_dialog_menubox) == 1)
// FOCUS = FOCUS_BEFORE;

View file

@ -88,7 +88,7 @@ if(!ready) exit;
};
selecting_menu = _menuItem;
var _loadKey = string_to_var($"{_key.context}.{_key.name}");
var _loadKey = _key.full_name();
var context_menu_settings = [
_loadKey,

View file

@ -100,11 +100,11 @@ if !ready exit;
instance_destroy();
} else if(mouse_press(mb_right)) {
menuCall("panel_window_menu", [
menuItemAction(__txt("Move"), function() {
content.dragSurface = surface_clone(panel);
menuItem(__txt("Move"), function() {
content.dragSurface = surface_clone(panel);
o_main.panel_dragging = content;
content.in_dialog = false;
panel_mouse = 1;
content.in_dialog = false;
panel_mouse = 1;
instance_destroy();
}),

View file

@ -12,17 +12,27 @@ event_inherited();
should_restart = false;
#endregion
#region resize
#region size
dialog_resizable = true;
dialog_w_min = ui(640);
dialog_h_min = ui(480);
onResize = function() /*=>*/ {
sp_page.resize(page_width - ui(4), dialog_h - ui(title_height + padding));
panel_width = dialog_w - ui(padding + padding) - page_width;
panel_height = dialog_h - ui(title_height + padding);
sp_pref.resize( dialog_w - ui(padding + padding) - page_width, dialog_h - ui(title_height + padding));
sp_hotkey.resize(dialog_w - ui(padding + padding) - page_width, dialog_h - ui(title_height + padding));
sp_colors.resize(dialog_w - ui(padding + padding) - page_width, dialog_h - (title_height + ui(padding + 40)));
hotkey_cont_h = ui(0);
hotkey_height = panel_height - hotkey_cont_h - ui(32);
onResize = function() /*=>*/ {
panel_width = dialog_w - ui(padding + padding) - page_width;
panel_height = dialog_h - ui(title_height + padding);
hotkey_height = panel_height - hotkey_cont_h - ui(32);
sp_page.resize(page_width - ui(4), panel_height);
sp_pref.resize( panel_width, panel_height);
sp_hotkey.resize(panel_width, hotkey_height);
sp_colors.resize(panel_width, panel_height - ui(40));
}
#endregion
@ -37,7 +47,7 @@ event_inherited();
section_current = "";
sections = array_create(array_length(page));
sp_page = new scrollPane(page_width - ui(4), dialog_h - ui(title_height + padding), function(_y, _m, _r) {
sp_page = new scrollPane(page_width - ui(4), panel_height, function(_y, _m, _r) {
draw_clear_alpha(COLORS.panel_bg_clear, 1);
var ww = sp_page.surface_w;
var hh = 0;
@ -403,6 +413,18 @@ event_inherited();
new checkBox(function() /*=>*/ { PREFERENCES.panel_graph_group_require_shift = !PREFERENCES.panel_graph_group_require_shift; PREF_SAVE(); })
));
ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference(
__txtx("pref_use_alt", "Use ALT for"),
"alt_picker",
new buttonGroup([ "Pan", "Color Picker" ], function(val) /*=>*/ { PREFERENCES.alt_picker = val; PREF_SAVE(); })
));
ds_list_add(pref_appr, new __Panel_Linear_Setting_Item(
__txtx("pref_pan_key", "Panning key"),
new scrollBox([ "Middle Mouse", "Mouse 4", "Mouse 5" ], function(val) /*=>*/ { PREFERENCES.pan_mouse_key = val + 3; PREF_SAVE(); }),
function() /*=>*/ { return PREFERENCES.pan_mouse_key - 3; },
));
ds_list_add(pref_appr, __txt("Preview")); ////////////////////////////////////////////////////////////////////// Preview
ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference(
@ -524,7 +546,7 @@ event_inherited();
}, false);
sb_theme.align = fa_left;
sp_colors = new scrollPane(dialog_w - ui(padding + padding) - page_width, dialog_h - (title_height + ui(padding) + ui(40)), function(_y, _m, _r) {
sp_colors = new scrollPane(panel_width, panel_height - ui(40), function(_y, _m, _r) {
draw_clear_alpha(COLORS.panel_bg_clear, 0);
var hh = 0;
var th = line_get_height(f_p0);
@ -616,121 +638,108 @@ event_inherited();
#endregion
#region hotkey
pref_hot = ds_list_create();
ds_list_add(pref_hot, [
__txtx("pref_use_alt", "Use ALT for"),
"alt_picker",
new buttonGroup([ "Pan", "Color Picker" ], function(val) /*=>*/ {
PREFERENCES.alt_picker = val;
PREF_SAVE();
})
]);
hk_editing = noone;
hotkeyContext = [];
hotkeyArray = [];
ds_list_add(pref_hot, [
__txtx("pref_pan_key", "Panning key"),
function() /*=>*/ { return PREFERENCES.pan_mouse_key - 3; },
new scrollBox([ "Middle Mouse", "Mouse 4", "Mouse 5" ], function(val) /*=>*/ {
PREFERENCES.pan_mouse_key = val + 3;
PREF_SAVE();
})
]);
for(var j = 0; j < ds_list_size(HOTKEY_CONTEXT); j++) {
var ctx = HOTKEY_CONTEXT[| j];
var _lst = [];
hk_editing = noone;
var ll = HOTKEYS[? ctx];
for(var i = 0; i < ds_list_size(ll); i++)
array_push(_lst, ll[| i]);
sp_hotkey = new scrollPane(dialog_w - ui(padding + padding) - page_width, dialog_h - ui(title_height + padding), function(_y, _m) {
draw_clear_alpha(COLORS.panel_bg_clear, 0);
var padd = ui(8);
var hh = ui(8);
var currGroup = noone;
var x1 = sp_hotkey.surface_w;
var key_x1 = x1 - ui(32);
var modified = false;
array_push(hotkeyContext, { context: ctx, list: _lst });
draw_set_text(f_p0, fa_left, fa_top);
var _title = ctx == ""? "Global" : ctx;
_title = string_replace_all(_title, "_", " ");
array_push(hotkeyArray, _title);
}
var yy = _y + ui(8);
var th = line_get_height(f_p0);
var ind = 0;
var sect = [];
var psect = "";
var keys = struct_get_names(HOTKEYS_CUSTOM);
for( var i = 0, n = array_length(keys); i < n; i++ ) {
var ctx = keys[i];
for( var i = 0, n = ds_list_size(pref_hot); i < n; i++ ) {
var _pref = pref_hot[| i];
var hotkey = HOTKEYS_CUSTOM[$ ctx];
var hks = struct_get_names(hotkey);
var _lst = [];
var _yy = yy + hh;
var name = _pref[0];
var val = _pref[1];
val = is_method(val)? val() : PREFERENCES[$ val];
for (var j = 0, m = array_length(hks); j < m; j++) {
var _n = hks[j];
var _k = hotkey[$ _n];
if(search_text != "" && string_pos(string_lower(search_text), string_lower(name)) == 0)
continue;
_k.context = ctx;
_k.name = _n;
if(ind++ % 2 == 0)
draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, 0, _yy - padd, sp_hotkey.surface_w, th + padd * 2, COLORS.dialog_preference_prop_bg, 1);
draw_set_text(f_p0, fa_left, fa_top, COLORS._main_text);
draw_text_add(ui(24), _yy, _pref[0]);
_pref[2].setFocusHover(sFOCUS, sHOVER && sp_hotkey.hover);
var widget_w = ui(240);
var widget_h = th + (padd - ui(4)) * 2;
var widget_x = x1 - ui(4) - widget_w;
var widget_y = _yy - ui(4);
var params = new widgetParam(widget_x, widget_y, widget_w, widget_h, val, {}, _m, sp_hotkey.x, sp_hotkey.y);
var _th = _pref[2].drawParam(params) ?? 0;
if(_pref[2].inBBOX(_m)) sp_hotkey.hover_content = true;
hh += _th + padd + ui(8);
array_push(_lst, _k);
}
th = line_get_height(f_p1);
ind = 0;
array_push(hotkeyContext, { context: ctx, list: _lst });
var _hov = sHOVER && sp_hotkey.hover;
var _title = ctx == ""? "Global" : ctx;
_title = string_replace_all(_title, "_", " ");
array_push(hotkeyArray, _title);
}
for(var j = 0; j < ds_list_size(HOTKEY_CONTEXT); j++) {
var ll = HOTKEYS[? HOTKEY_CONTEXT[| j]];
hk_page = 0;
hk_scroll = new scrollBox(hotkeyArray, function(val) /*=>*/ { hk_page = val; });
hk_scroll.align = fa_left;
for(var i = 0; i < ds_list_size(ll); i++) {
var key = ll[| i];
var group = key.context;
sp_hotkey = new scrollPane(panel_width, hotkey_height, function(_y, _m) {
draw_clear_alpha(COLORS.panel_bg_clear, 0);
draw_set_text(f_p2, fa_left, fa_top);
var padd = ui(6);
var hh = 0;
var currGroup = noone;
var _ww = sp_hotkey.surface_w;
var key_x1 = _ww - ui(32);
var yy = _y + ui(8);
var ind = 0;
var sect = [];
var psect = "";
var th = line_get_height();
var _hov = sHOVER && sp_hotkey.hover;
var modified = false;
// for (var i = 0, n = array_length(hotkeyContext); i < n; i++) {
// var _ctxObj = hotkeyContext[i];
var _ctxObj = hotkeyContext[hk_page];
var _cntx = _ctxObj.context;
var _list = _ctxObj.list;
var _yy = yy + hh;
// var _grlab = _cntx == ""? __txt("Global") : _cntx;
// draw_set_text(f_p1, fa_left, fa_top, COLORS._main_text_sub);
// draw_text_add(ui(8), _yy, _grlab);
// array_push(sect, [ _grlab, sp_hotkey, hh + ui(12) ]);
// if(_yy >= 0 && section_current == "")
// section_current = psect;
// psect = _grlab;
ind = 0;
// hh += string_height("l") + ui(8);
for (var j = 0, m = array_length(_list); j < m; j++) {
var key = _list[j];
var name = __txt(key.name);
var pkey = key.key;
var modi = key.modi;
var dkey = key.dKey;
var dmod = key.dModi;
var _yy = yy + hh;
if(search_text != "" && string_pos(string_lower(search_text), string_lower(name)) == 0)
continue;
if(group != currGroup) {
if(group != "") hh += ui(12);
var _grp = group == ""? __txt("Global") : group;
draw_set_text(f_p0b, fa_left, fa_top, COLORS._main_text_sub);
draw_text_add(ui(8), _yy, _grp);
array_push(sect, [ _grp, sp_hotkey, hh + ui(12) ]);
if(_yy >= 0 && section_current == "")
section_current = psect;
psect = _grp;
ind = 0;
hh += string_height("l") + ui(16);
currGroup = group;
}
var pkey = key.key;
var modi = key.modi;
var _yy = yy + hh;
var _lb_y = _yy;
if(ind++ % 2 == 0) draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, 0, _yy - padd, sp_hotkey.surface_w, th + padd * 2, COLORS.dialog_preference_prop_bg, 1);
if(ind++ % 2 == 0) draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, 0, _yy - padd, _ww, th + padd * 2, COLORS.dialog_preference_prop_bg, 1);
draw_set_text(f_p1, fa_left, fa_top, COLORS._main_text);
draw_set_text(f_p2, fa_left, fa_top, COLORS._main_text);
draw_text_add(ui(24), _lb_y, name);
var dk = key_get_name(key.key, key.modi);
@ -738,9 +747,9 @@ event_inherited();
var tx = key_x1 - ui(24);
var bx = tx - kw - ui(8);
var by = _yy - ui(4);
var by = _yy - ui(3);
var bw = kw + ui(16);
var bh = th + ui(8);
var bh = th + ui(6);
var cc = c_white;
if(hk_editing == key) {
@ -751,7 +760,7 @@ event_inherited();
if(_hov && point_in_rectangle(_m[0], _m[1], bx, by, bx + bw, by + bh)) {
draw_sprite_stretched_ext(THEME.ui_panel, 1, bx, by, bw, bh, CDEF.main_ltgrey);
sp_hotkey.hover_content = true;
cc = CDEF.main_ltgrey;
cc = CDEF.main_white;
if(mouse_press(mb_left, sFOCUS)) {
hk_editing = key;
@ -760,98 +769,18 @@ event_inherited();
} else {
draw_sprite_stretched_ext(THEME.ui_panel, 1, bx, by, bw, bh, CDEF.main_dkgrey, 1);
cc = COLORS._main_text_sub;
cc = CDEF.main_ltgrey;
}
}
draw_set_text(f_p1, fa_right, fa_top, cc);
draw_set_text(f_p2, fa_right, fa_top, cc);
draw_text_add(tx, _lb_y, dk);
if(key.key != dkey || key.modi != dmod) {
modified = true;
var bx = x1 - ui(32);
var by = _yy;
var b = buttonInstant(THEME.button_hide, bx, by, ui(24), ui(24), _m, sFOCUS, sHOVER && sp_hotkey.hover, __txt("Reset"), THEME.refresh_16);
if(b) sp_hotkey.hover_content = true;
if(b == 2) {
key.key = dkey;
key.modi = dmod;
PREF_SAVE();
}
}
hh += th + padd * 2;
}
}
draw_set_text(f_p0b, fa_left, fa_top, COLORS._main_text_sub);
draw_text_add(ui(8), yy + hh, "Nodes");
array_push(sect, [ "Nodes", sp_hotkey, hh + ui(12) ]);
hh += string_height("l") + ui(16);
var keys = struct_get_names(HOTKEYS_CUSTOM);
for( var i = 0, n = array_length(keys); i < n; i++ ) {
var _key = keys[i];
var hotkeys = struct_get_names(HOTKEYS_CUSTOM[$ _key]);
var _key_t = string_title(string_replace(_key, "Node_", ""));
var _yy = yy + hh;
draw_set_text(f_p0b, fa_left, fa_top, COLORS._main_text_sub);
draw_text_add(ui(8), _yy, _key_t);
array_push(sect, [ "- " + _key_t, sp_hotkey, hh + ui(12) ]);
if(_yy >= 0 && section_current == "")
section_current = psect;
psect = "- " + _key_t;
hh += string_height("l") + ui(16);
ind = 0;
for( var j = 0, m = array_length(hotkeys); j < m; j++ ) {
var _hotkey = hotkeys[j];
var hotkey = HOTKEYS_CUSTOM[$ _key][$ _hotkey];
var name = __txt(_hotkey);
var pkey = hotkey.getName();
var _yy = yy + hh;
if(ind++ % 2 == 0)
draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, 0, _yy - padd, sp_hotkey.surface_w, th + padd * 2, COLORS.dialog_preference_prop_bg, 1);
var _lb_y = _yy;
draw_set_text(f_p1, fa_left, fa_top, COLORS._main_text);
draw_text_add(ui(24), _lb_y, name);
var kw = string_width(pkey);
var bx = key_x1 - ui(40) - kw;
var key = hotkey;
if(hk_editing == key) {
draw_sprite_stretched(THEME.button_hide, 2, key_x1 - ui(40) - kw, _yy, kw + ui(32), th);
} else {
var bx = key_x1 - ui(40) - kw;
var by = _yy;
var b = buttonInstant(THEME.button_hide, bx, by, kw + ui(32), th, _m, sFOCUS, sHOVER && sp_hotkey.hover)
if(b) sp_hotkey.hover_content = true;
if(b == 2) {
hk_editing = key;
keyboard_lastchar = key.key;
}
}
var cc = (hotkey.key == "")? COLORS._main_text_sub : COLORS._main_text;
if(hk_editing == key) cc = COLORS._main_text_accent;
draw_set_text(f_p1, fa_right, fa_top, cc);
draw_text_add(key_x1 - ui(24), _lb_y, pkey);
if(key.key != key.dKey || key.modi != key.dModi) {
modified = true;
var bx = x1 - ui(32);
var by = _yy;
var b = buttonInstant(THEME.button_hide, bx, by, ui(24), ui(24), _m, sFOCUS, sHOVER && sp_hotkey.hover, __txt("Reset"), THEME.refresh_16)
var bx = x1 - ui(32);
var by = _yy + th / 2 - ui(12);
var b = buttonInstant(THEME.button_hide, bx, by, ui(24), ui(24), _m, sFOCUS, _hov, __txt("Reset"), THEME.refresh_16);
if(b) sp_hotkey.hover_content = true;
if(b == 2) {
@ -864,19 +793,19 @@ event_inherited();
hh += th + padd * 2;
}
}
// }
// sections[page_current] = sect;
if(hk_editing != noone) hotkey_editing(hk_editing);
sections[page_current] = sect;
return hh;
return hh + ui(32);
})
#endregion
#region scrollpane
current_list = pref_global;
sp_pref = new scrollPane(dialog_w - ui(padding + padding) - page_width, dialog_h - ui(title_height + padding), function(_y, _m, _r) {
sp_pref = new scrollPane(panel_width, panel_height, function(_y, _m, _r) {
draw_clear_alpha(COLORS.panel_bg_clear, 0);
var hh = 0;
var th = TEXTBOX_HEIGHT;

View file

@ -96,7 +96,14 @@ if !ready exit;
if(mouse_press(mb_left, sFOCUS))
hk_editing = noone;
var _ppy = py + hotkey_cont_h;
hk_scroll.font = f_p2;
hk_scroll.setFocusHover(sFOCUS, sHOVER);
hk_scroll.draw(px, _ppy, ui(200), ui(24), hk_page);
sp_hotkey.setFocusHover(sFOCUS, sHOVER);
sp_hotkey.draw(px, py);
sp_hotkey.draw(px, _ppy + ui(32));
}
#endregion

View file

@ -243,8 +243,6 @@ event_inherited();
if(mouse_press(mb_left, sFOCUS)) {
LOAD_PATH(_project.path, true);
PROJECT.thumbnail = array_safe_get_fast(_project.spr_path, 0);
if(PROJECT.meta.file_id) PROJECT.meta.steam = FILE_STEAM_TYPE.steamOpen;
instance_destroy();
}
}

View file

@ -4,20 +4,20 @@ function __Node_3D_Combine(_x, _y, _group = noone) : Node(_x, _y, _group) constr
inputs[0] = nodeValue_Dimension(self)
.rejectArray();
inputs[1] = nodeValue_Vector("Object position", self, [ 0, 0, 0 ])
inputs[1] = nodeValue_Vec3("Object position", self, [ 0, 0, 0 ])
.rejectArray();
inputs[2] = nodeValue_Vector("Object rotation", self, [ 0, 0, 0 ])
inputs[2] = nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ])
.rejectArray();
inputs[3] = nodeValue_Vector("Object scale", self, [ 1, 1, 1 ])
inputs[3] = nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ])
.rejectArray();
inputs[4] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
inputs[4] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
.setUnitRef( function() { return getInputData(2); }, VALUE_UNIT.reference)
.rejectArray();
inputs[5] = nodeValue_Vector("Render scale", self, [ 1, 1 ])
inputs[5] = nodeValue_Vec2("Render scale", self, [ 1, 1 ])
.rejectArray();
inputs[6] = nodeValue_Rotation("Light direction", self, 0)

View file

@ -4,16 +4,16 @@ function __Node_3D_Displace(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
inputs[0] = nodeValue_Dimension(self);
inputs[1] = nodeValue_Vector("Object position", self, [ 0, 0, 0 ]);
inputs[1] = nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]);
inputs[2] = nodeValue_Vector("Object rotation", self, [ 0, 0, 0 ]);
inputs[2] = nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]);
inputs[3] = nodeValue_Vector("Object scale", self, [ 1, 1, 1 ]);
inputs[3] = nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]);
inputs[4] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
inputs[4] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
.setUnitRef( function() { return getInputData(0); }, VALUE_UNIT.reference);
inputs[5] = nodeValue_Vector("Render scale", self, [ 1, 1 ]);
inputs[5] = nodeValue_Vec2("Render scale", self, [ 1, 1 ]);
inputs[6] = nodeValue_Rotation("Light direction", self, 0);

View file

@ -6,18 +6,18 @@ function __Node_3D_Extrude(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro
inputs[1] = nodeValue_Dimension(self);
inputs[2] = nodeValue_Vector("Object position", self, [ 0, 0, 0 ]);
inputs[2] = nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]);
inputs[3] = nodeValue_Vector("Object rotation", self, [ 0, 180, 0 ]);
inputs[3] = nodeValue_Vec3("Object rotation", self, [ 0, 180, 0 ]);
inputs[4] = nodeValue_Vector("Object scale", self, [ 1, 1, 0.1 ]);
inputs[4] = nodeValue_Vec3("Object scale", self, [ 1, 1, 0.1 ]);
inputs[5] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
inputs[5] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
.setUnitRef( function() { return getInputData(1); }, VALUE_UNIT.reference);
inputs[6] = nodeValue_Vector("Render rotation", self, [ 0, 0, 0 ]);
inputs[6] = nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]);
inputs[7] = nodeValue_Vector("Render scale", self, [ 1, 1 ]);
inputs[7] = nodeValue_Vec2("Render scale", self, [ 1, 1 ]);
inputs[8] = nodeValue_Trigger("Manual generate", self, false )
.setDisplay(VALUE_DISPLAY.button, { name: "Generate", UI : true, onClick: function() { generateMesh(); doUpdate(); } });

View file

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

View file

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

View file

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

View file

@ -4,14 +4,14 @@ function __Node_3D_Cone(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[0] = nodeValue_Dimension(self);
inputs[1] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
inputs[1] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
inputs[2] = nodeValue_Vector("Render rotation", self, [ 0, 0, 0 ]);
inputs[2] = nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]);
inputs[3] = nodeValue_Vector("Render scale", self, [ 1, 1 ]);
inputs[3] = nodeValue_Vec2("Render scale", self, [ 1, 1 ]);
inputs[4] = nodeValue_Vector("Object scale", self, [ 1, 1, 1 ]);
inputs[4] = nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]);
inputs[5] = nodeValue_Rotation("Light direction", self, 0);
@ -24,9 +24,9 @@ function __Node_3D_Cone(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[8] = nodeValue_Color("Light color", self, c_white);
inputs[9] = nodeValue_Color("Ambient color", self, c_grey);
inputs[10] = nodeValue_Vector("Object rotation", self, [ 0, 0, 0 ]);
inputs[10] = nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]);
inputs[11] = nodeValue_Vector("Object position", self, [ 0, 0, 0 ]);
inputs[11] = nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]);
inputs[12] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray();

View file

@ -7,12 +7,12 @@ function __Node_3D_Cube(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[1] = nodeValue_Dimension(self);
inputs[2] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
inputs[2] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
inputs[3] = nodeValue_Vector("Render rotation", self, [ 0, 0, 0 ]);
inputs[3] = nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]);
inputs[4] = nodeValue_Vector("Render scale", self, [ 1, 1 ]);
inputs[4] = nodeValue_Vec2("Render scale", self, [ 1, 1 ]);
inputs[5] = nodeValue_Bool("Textures per face", self, false);
@ -23,7 +23,7 @@ function __Node_3D_Cube(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[10] = nodeValue_Surface("Textures 4", self).setVisible(false);
inputs[11] = nodeValue_Surface("Textures 5", self).setVisible(false);
inputs[12] = nodeValue_Vector("Object scale", self, [ 1, 1, 1 ]);
inputs[12] = nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]);
inputs[13] = nodeValue_Rotation("Light direction", self, 0);
@ -37,9 +37,9 @@ function __Node_3D_Cube(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[17] = nodeValue_Color("Ambient color", self, c_grey);
inputs[18] = nodeValue_Vector("Object rotation", self, [ 0, 0, 0 ]);
inputs[18] = nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]);
inputs[19] = nodeValue_Vector("Object position", self, [ 0, 0, 0 ]);
inputs[19] = nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]);
inputs[20] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray();

View file

@ -9,18 +9,18 @@ function __Node_3D_Cylinder(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
inputs[2] = nodeValue_Dimension(self);
inputs[3] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
inputs[3] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
inputs[4] = nodeValue_Vector("Render rotation", self, [ 0, 0, 0 ]);
inputs[4] = nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]);
inputs[5] = nodeValue_Vector("Render scale", self, [ 1, 1 ]);
inputs[5] = nodeValue_Vec2("Render scale", self, [ 1, 1 ]);
inputs[6] = nodeValue_Surface("Textures top", self);
inputs[7] = nodeValue_Surface("Textures bottom", self);
inputs[8] = nodeValue_Surface("Textures side", self);
inputs[9] = nodeValue_Vector("Object scale", self, [ 1, 1, 1 ]);
inputs[9] = nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]);
inputs[10] = nodeValue_Rotation("Light direction", self, 0);
@ -33,9 +33,9 @@ function __Node_3D_Cylinder(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
inputs[13] = nodeValue_Color("Light color", self, c_white);
inputs[14] = nodeValue_Color("Ambient color", self, c_grey);
inputs[15] = nodeValue_Vector("Object rotation", self, [ 0, 0, 0 ]);
inputs[15] = nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]);
inputs[16] = nodeValue_Vector("Object position", self, [ 0, 0, 0 ]);
inputs[16] = nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]);
inputs[17] = nodeValue_Enum_Button("Projection", self, 0, [ "Orthographic", "Perspective" ])
.rejectArray();

View file

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

View file

@ -3,12 +3,12 @@
// inputs[2] = nodeValue_Dimension(self);
// inputs[3] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
// inputs[3] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
// .setUnitRef( function() { return getInputData(2); }, VALUE_UNIT.reference);
// inputs[4] = nodeValue_Vector("Render rotation", self, [ 0, 0, 0 ]);
// inputs[4] = nodeValue_Vec3("Render rotation", self, [ 0, 0, 0 ]);
// inputs[5] = nodeValue_Vector("Render scale", self, [ 1, 1 ]);
// inputs[5] = nodeValue_Vec2("Render scale", self, [ 1, 1 ]);
// inputs[6] = nodeValue_Float("Light direction", self, 0)
// .setDisplay(VALUE_DISPLAY.rotation)

View file

@ -3,16 +3,16 @@ function __Node_3D_Repeat(_x, _y, _group = noone) : Node(_x, _y, _group) constru
inputs[0] = nodeValue_Dimension(self);
inputs[1] = nodeValue_Vector("Object position", self, [ 0, 0, 0 ]);
inputs[1] = nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]);
inputs[2] = nodeValue_Vector("Object rotation", self, [ 0, 0, 0 ]);
inputs[2] = nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]);
inputs[3] = nodeValue_Vector("Object scale", self, [ 1, 1, 1 ]);
inputs[3] = nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]);
inputs[4] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
inputs[4] = nodeValue_Vec3("Render position", self, [ 0.5, 0.5 ])
.setUnitRef( function() { return getInputData(0); }, VALUE_UNIT.reference);
inputs[5] = nodeValue_Vector("Render scale", self, [ 1, 1 ]);
inputs[5] = nodeValue_Vec2("Render scale", self, [ 1, 1 ]);
inputs[6] = nodeValue_Rotation("Light direction", self, 0);
@ -31,11 +31,11 @@ function __Node_3D_Repeat(_x, _y, _group = noone) : Node(_x, _y, _group) constru
inputs[12] = nodeValue_Int("Repeat", self, 1, "Amount of copies to be generated.");
inputs[13] = nodeValue_Vector("Repeat position", self, [ 1, 0, 0 ]);
inputs[13] = nodeValue_Vec3("Repeat position", self, [ 1, 0, 0 ]);
inputs[14] = nodeValue_Vector("Repeat rotation", self, [ 0, 0, 0 ]);
inputs[14] = nodeValue_Vec3("Repeat rotation", self, [ 0, 0, 0 ]);
inputs[15] = nodeValue_Vector("Repeat scale", self, [ 1, 1, 1 ]);
inputs[15] = nodeValue_Vec3("Repeat scale", self, [ 1, 1, 1 ]);
inputs[16] = nodeValue_Enum_Button("Repeat pattern", self, 0, [ "Linear", "Circular" ])
.rejectArray();

View file

@ -4,16 +4,16 @@ function __Node_3D_Transform(_x, _y, _group = noone) : Node_Processor(_x, _y, _g
inputs[0] = nodeValue_Dimension(self);
inputs[1] = nodeValue_Vector("Object position", self, [ 0, 0, 0 ]);
inputs[1] = nodeValue_Vec3("Object position", self, [ 0, 0, 0 ]);
inputs[2] = nodeValue_Vector("Object rotation", self, [ 0, 0, 0 ]);
inputs[2] = nodeValue_Vec3("Object rotation", self, [ 0, 0, 0 ]);
inputs[3] = nodeValue_Vector("Object scale", self, [ 1, 1, 1 ]);
inputs[3] = nodeValue_Vec3("Object scale", self, [ 1, 1, 1 ]);
inputs[4] = nodeValue_Vector("Render position", self, [ 0.5, 0.5 ])
inputs[4] = nodeValue_Vec2("Render position", self, [ 0.5, 0.5 ])
.setUnitRef( function() { return getInputData(2); }, VALUE_UNIT.reference);
inputs[5] = nodeValue_Vector("Render scale", self, [ 1, 1 ]);
inputs[5] = nodeValue_Vec2("Render scale", self, [ 1, 1 ]);
inputs[6] = nodeValue_Rotation("Light direction", self, 0);

View file

@ -32,7 +32,7 @@ function Node_VFX_effector(_x, _y, _group = noone) : Node(_x, _y, _group) constr
inputs[3] = nodeValue_Float("Falloff distance", self, 4 )
.rejectArray();
inputs[4] = nodeValue_Vector("Effect Vector", self, [ -1, 0 ] )
inputs[4] = nodeValue_Vec2("Effect Vector", self, [ -1, 0 ] )
.rejectArray();
inputs[5] = nodeValue_Float("Strength", self, 1 )

View file

@ -43,7 +43,7 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
inputs[19] = nodeValue_Range("Gravity", self, [ 0, 0 ] , { linked : true });
inputs[20] = nodeValue_Vector("Direction wiggle", self, [ 0, 0 ] , { label: [ "Amplitude", "Period" ], linkable: false, per_line: true });
inputs[20] = nodeValue_Vec2("Direction wiggle", self, [ 0, 0 ] , { label: [ "Amplitude", "Period" ], linkable: false, per_line: true });
inputs[21] = nodeValue_Bool("Loop", self, true );
@ -95,11 +95,11 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
inputs[40] = nodeValue_Float("Bounce friction", self, 0.1, "Apply horizontal friction once particle stop bouncing." )
.setDisplay(VALUE_DISPLAY.slider);
inputs[41] = nodeValue_Vector("Position wiggle", self, [ 0, 0 ] , { label: [ "Amplitude", "Period" ], linkable: false, per_line: true });
inputs[41] = nodeValue_Vec2("Position wiggle", self, [ 0, 0 ] , { label: [ "Amplitude", "Period" ], linkable: false, per_line: true });
inputs[42] = nodeValue_Vector("Rotation wiggle", self, [ 0, 0 ] , { label: [ "Amplitude", "Period" ], linkable: false, per_line: true });
inputs[42] = nodeValue_Vec2("Rotation wiggle", self, [ 0, 0 ] , { label: [ "Amplitude", "Period" ], linkable: false, per_line: true });
inputs[43] = nodeValue_Vector("Scale wiggle", self, [ 0, 0 ] , { label: [ "Amplitude", "Period" ], linkable: false, per_line: true });
inputs[43] = nodeValue_Vec2("Scale wiggle", self, [ 0, 0 ] , { label: [ "Amplitude", "Period" ], linkable: false, per_line: true });
inputs[44] = nodeValue_Trigger("Spawn", self, false )
.setDisplay(VALUE_DISPLAY.button, { name: "Trigger" });
@ -164,7 +164,7 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
for( var i = 0; i < attributes.part_amount; i++ )
parts[i] = new __part(self);
static spawn = function(_time = CURRENT_FRAME, _pos = -1) { #region
static spawn = function(_time = CURRENT_FRAME, _pos = -1) {
var _inSurf = getInputData( 0);
var _spawn_amount = getInputData( 2);
@ -306,13 +306,13 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
parts_runner = safe_mod(parts_runner + 1, attributes.part_amount);
}
} #endregion
}
static onSpawn = function(_time, part) {}
static updateParticleForward = function() {}
static getSurfaceCache = function() { #region
static getSurfaceCache = function() {
var surfs = getInputData(0);
if(array_empty(surfs)) return;
@ -333,9 +333,9 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
surface_cache[$ surfs[i]] = surface_clone(_s);
}
} #endregion
}
function reset() { #region
function reset() {
getInputs(0);
var keys = variable_struct_get_names(surface_cache);
@ -377,13 +377,13 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
#endregion
render();
} #endregion
}
static resetSeed = function() { #region
static resetSeed = function() {
seed = getInputData(32);
} #endregion
}
function checkPartPool() { #region
function checkPartPool() {
var _part_amo = attributes.part_amount;
var _curr_amo = array_length(parts);
@ -393,9 +393,9 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
} else if(_part_amo < _curr_amo) {
array_resize(parts, _part_amo);
}
} #endregion
}
static runVFX = function(_time = CURRENT_FRAME, _render = true) { #region
static runVFX = function(_time = CURRENT_FRAME, _render = true) {
var _spawn_delay = inputs[1].getValue(_time);
var _spawn_type = inputs[16].getValue(_time);
var _spawn_active = inputs[27].getValue(_time);
@ -425,11 +425,11 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
if(!_render) return;
render(_time);
} #endregion
}
static onStep = function() {}
static step = function() { #region
static step = function() {
var _inSurf = getInputData(0);
var _dist = getInputData(4);
var _scatt = getInputData(24);
@ -471,9 +471,9 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
}
onStep();
} #endregion
}
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
var _spr = getInputData(0);
if(array_empty(_spr)) return;
if(is_array(_spr))
@ -484,17 +484,17 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
inputs[3].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny, _flag);
if(onDrawOverlay != -1)
onDrawOverlay(active, _x, _y, _s, _mx, _my);
} #endregion
}
static onDrawOverlay = -1;
static update = function(frame = CURRENT_FRAME) { #region
static update = function(frame = CURRENT_FRAME) {
var _resetSeed = getInputData(48);
if(_resetSeed) resetSeed();
checkPartPool();
onUpdate(frame);
} #endregion
}
static onUpdate = function(frame = CURRENT_FRAME) {}
@ -504,14 +504,14 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
static onPartStep = noone;
static onPartDestroy = noone;
static doSerialize = function(_map) { #region
static doSerialize = function(_map) {
_map.part_base_length = input_len;
} #endregion
}
static postDeserialize = function() { #region
static postDeserialize = function() {
var _tlen = struct_try_get(load_map, "part_base_length", 40);
for( var i = _tlen; i < input_len; i++ )
array_insert(load_map.inputs, i, noone);
} #endregion
}
}

View file

@ -45,7 +45,7 @@ function _Node_Strand_Affector(_x, _y, _group = noone) : Node(_x, _y, _group) co
inputs[1] = nodeValue_Enum_Scroll("Shape", self, 0, [ "Point", "Band" ]);
inputs[2] = nodeValue_Vector("Position", self, [ 0, 0 ]);
inputs[2] = nodeValue_Vec2("Position", self, [ 0, 0 ]);
inputs[3] = nodeValue_Float("Range", self, 4);

View file

@ -2,7 +2,7 @@ function dialogCall(_dia, _x = noone, _y = noone, param = {}, create = false) {
if(_x == noone) _x = WIN_SW / 2;
if(_y == noone) _y = WIN_SH / 2;
var dia = !create && instance_exists(_dia)? instance_find(_dia, 0) : instance_create_depth(_x, _y, 0, _dia, param);
var dia = (!create && instance_exists(_dia))? instance_find(_dia, 0) : instance_create_depth(_x, _y, 0, _dia, param);
dia.x = _x;
dia.y = _y;

View file

@ -56,6 +56,14 @@ function functionObject(_context, _name, _key, _mod, _action) constructor {
return self;
}
static setMenuAlt = function(_name, _id, _spr = noone, shelf = false) {
menu = menuItemAction(__txt(_name), action, _spr);
if(shelf) menu.setIsShelf();
MENU_ITEMS[$ _id] = menu;
return self;
}
static setMenu = function(_id, _spr = noone, shelf = false) {
menu = menuItemAction(__txt(name), action, _spr);
if(shelf) menu.setIsShelf();

View file

@ -39,7 +39,7 @@
LATEST_VERSION = 11700;
VERSION = 11790;
SAVE_VERSION = 11700;
VERSION_STRING = "1.17.10.004";
VERSION_STRING = "1.17.10.005";
BUILD_NUMBER = 11790;
HOTKEYS = ds_map_create();

View file

@ -14,6 +14,7 @@ function globalvar_viewer_draw(xx, yy, ww, _m, focus, hover, _scrollPane, rx, ry
var chov = false;
var _node = PROJECT.globalNode;
var _font = viewMode == INSP_VIEW_MODE.spacious? f_p0 : f_p2;
if(var_editing) {
var del = noone;
@ -29,35 +30,38 @@ function globalvar_viewer_draw(xx, yy, ww, _m, focus, hover, _scrollPane, rx, ry
var _ins = var_drag_insert;
var_drag_insert = _len;
var _hov = hover && (var_dragging == noone);
var _foc = focus && (var_dragging == noone);
var _hov = hover && (var_dragging == noone);
var _foc = focus && (var_dragging == noone);
var _wd_h = viewMode == INSP_VIEW_MODE.spacious? ui(32) : ui(24);
var _pd_h = viewMode == INSP_VIEW_MODE.spacious? ui(4) : ui(2)
var _dgs = ui(24);
var _dgh = _dgs / 2;
var_drag_shift = lerp_float(var_drag_shift, (var_dragging != noone) * 48, 4);
var_drag_shift = lerp_float(var_drag_shift, (var_dragging != noone) * -16, 4);
for( var j = 0; j < _len; j++ ) {
var _inpu = _node.inputs[j];
var _edit = _inpu.editor;
var _wd_x = wd_x + (var_drag_disp == j) * var_drag_shift;
var wd_h = ui(32);
if(var_dragging != noone && _m[1] < yy && var_drag_insert == _len)
var_drag_insert = j > var_dragging? j : j - 1;
var_drag_insert = max(0, j > var_dragging? j : j - 1);
if(j) {
draw_set_color(merge_color(c_black, COLORS.panel_toolbar_separator, 0.75));
draw_line_round(wd_x + ui(8), yy, wd_x + wd_w - ui(16), yy, 4);
// draw_set_color(merge_color(c_black, COLORS.panel_toolbar_separator, 0.75));
// draw_line_round(wd_x + ui(8), yy, wd_x + wd_w - ui(16), yy, 2);
yy += ui(10);
hh += ui(10);
yy += _pd_h;
hh += _pd_h;
}
if(var_dragging == noone) {
var bx = wd_x + ui(10);
var by = yy + ui(16);
if(hover && point_in_rectangle(_m[0], _m[1], bx - ui(12), by - ui(12), bx + ui(12), by + ui(12))) {
var by = yy + _wd_h / 2;
if(hover && point_in_rectangle(_m[0], _m[1], bx - _dgh, by - _dgh, bx + _dgh, by + _dgh)) {
chov = true;
draw_sprite_stretched_ext(THEME.s_box_r5_clr, 0, bx - ui(12), by - ui(12), ui(24), ui(24), COLORS._main_icon_light, 1);
draw_sprite_stretched_ext(THEME.s_box_r5_clr, 0, bx - _dgh, by - _dgh, _dgs, _dgs, COLORS._main_icon_light, 1);
if(mouse_press(mb_left, _foc)) {
var_drag_disp = j;
@ -65,33 +69,38 @@ function globalvar_viewer_draw(xx, yy, ww, _m, focus, hover, _scrollPane, rx, ry
var_drag_insert = j;
}
} else
draw_sprite_stretched_ext(THEME.s_box_r5_clr, 0, bx - ui(12), by - ui(12), ui(24), ui(24), COLORS._main_icon_light, 0.75);
draw_sprite_stretched_ext(THEME.s_box_r5_clr, 0, bx - _dgh, by - _dgh, _dgs, _dgs, COLORS._main_icon_light, 0.75);
draw_sprite_ext(THEME.hamburger, 0, bx, by, 0.5, 0.5, 0, COLORS._main_icon_light, 1);
}
_edit.tb_name.setFocusHover(_foc, _hov);
_edit.sc_type.setFocusHover(_foc, _hov);
_edit.sc_disp.setFocusHover(_foc, _hov);
_edit.tb_name.setFocusHover(_foc, _hov); _edit.tb_name.font = _font;
_edit.sc_type.setFocusHover(_foc, _hov); _edit.sc_type.font = _font;
_edit.sc_disp.setFocusHover(_foc, _hov); _edit.sc_disp.font = _font;
if(_foc) _edit.tb_name.register(_scrollPane);
_edit.tb_name.draw(_wd_x + ui(32), yy, wd_w - wd_h - ui(32 + 4), wd_h, _inpu.name, _m, TEXTBOX_INPUT.text);
if(buttonInstant(THEME.button_hide, _wd_x + wd_w - wd_h, yy, wd_h, wd_h, _m, _foc, _hov,, THEME.icon_delete,, COLORS._main_value_negative) == 2)
var _wd_xx = _wd_x + ui(32);
var _wd_ww = wd_w - _wd_h - ui(32 + 4);
_edit.tb_name.draw(_wd_xx, yy, _wd_ww, _wd_h, _inpu.name, _m, TEXTBOX_INPUT.text);
if(buttonInstant(THEME.button_hide, _wd_x + wd_w - _wd_h, yy, _wd_h, _wd_h, _m, _foc, _hov,, THEME.icon_delete,, COLORS._main_value_negative) == 2)
del = j;
yy += wd_h + ui(8);
hh += wd_h + ui(8);
yy += _wd_h + _pd_h * 2;
hh += _wd_h + _pd_h * 2;
_edit.sc_type.draw(_wd_x, yy, wd_w / 2 - ui(2), wd_h, _edit.val_type_name[_edit.type_index], _m, rx, ry);
_edit.sc_disp.draw(_wd_x + wd_w / 2 + ui(2), yy, wd_w / 2 - ui(2), wd_h, _edit.sc_disp.data_list[_edit.disp_index], _m, rx, ry);
var _wd_ww = (wd_w - ui(32)) / 2 - ui(2);
yy += wd_h + ui(4);
hh += wd_h + ui(4);
_edit.sc_type.draw(_wd_xx, yy, _wd_ww, _wd_h, _edit.val_type_name[_edit.type_index], _m, rx, ry);
_edit.sc_disp.draw(_wd_xx + _wd_ww + ui(4), yy, _wd_ww, _wd_h, _edit.sc_disp.data_list[_edit.disp_index], _m, rx, ry);
var wd_h = _inpu.editor.draw(_wd_x, yy, wd_w, _m, _foc, _hov);
yy += _wd_h + _pd_h;
hh += _wd_h + _pd_h;
yy += wd_h + ui(4);
hh += wd_h + ui(4);
var wdh = _inpu.editor.draw(_wd_x, yy, wd_w, _m, _foc, _hov);
yy += wdh + _pd_h;
hh += wdh + _pd_h;
}
if(var_dragging != noone) {

View file

@ -3,74 +3,74 @@ globalvar HOTKEYS_CUSTOM;
function __initHotKey() {
HOTKEYS_CUSTOM = {
"Node_Canvas": {
"Selection": new hotkeySimple("S"),
"Magic Selection": new hotkeySimple("W"),
"Pencil": new hotkeySimple("B"),
"Eraser": new hotkeySimple("E"),
"Rectangle": new hotkeySimple("N"),
"Ellipse": new hotkeySimple("M"),
"Iso Cube": new hotkeySimple(""),
"Curve": new hotkeySimple(""),
"Freeform": new hotkeySimple("Q"),
"Fill": new hotkeySimple("G"),
"Selection": new hotkeySimple("S"),
"Magic Selection": new hotkeySimple("W"),
"Pencil": new hotkeySimple("B"),
"Eraser": new hotkeySimple("E"),
"Rectangle": new hotkeySimple("N"),
"Ellipse": new hotkeySimple("M"),
"Iso Cube": new hotkeySimple(""),
"Curve": new hotkeySimple(""),
"Freeform": new hotkeySimple("Q"),
"Fill": new hotkeySimple("G"),
"Outline": new hotkeySimple("O", MOD_KEY.alt),
"Extrude": new hotkeySimple("E", MOD_KEY.alt),
"Inset": new hotkeySimple("I", MOD_KEY.alt),
"Skew": new hotkeySimple("S", MOD_KEY.alt),
"Corner": new hotkeySimple("C", MOD_KEY.alt),
"Outline": new hotkeySimple("O", MOD_KEY.alt),
"Extrude": new hotkeySimple("E", MOD_KEY.alt),
"Inset": new hotkeySimple("I", MOD_KEY.alt),
"Skew": new hotkeySimple("S", MOD_KEY.alt),
"Corner": new hotkeySimple("C", MOD_KEY.alt),
},
"Node_Mesh_Warp": {
"Edit control point": new hotkeySimple("V"),
"Pin mesh": new hotkeySimple("P"),
"Mesh edit": new hotkeySimple("M"),
"Anchor remove": new hotkeySimple("E"),
"Edit control point": new hotkeySimple("V"),
"Pin mesh": new hotkeySimple("P"),
"Mesh edit": new hotkeySimple("M"),
"Anchor remove": new hotkeySimple("E"),
},
"Node_Armature": {
"Move": new hotkeySimple("V"),
"Scale": new hotkeySimple("S"),
"Add bones": new hotkeySimple("A"),
"Remove bones": new hotkeySimple("E"),
"Detach bones": new hotkeySimple("D"),
"IK": new hotkeySimple("K"),
"Move": new hotkeySimple("V"),
"Scale": new hotkeySimple("S"),
"Add bones": new hotkeySimple("A"),
"Remove bones": new hotkeySimple("E"),
"Detach bones": new hotkeySimple("D"),
"IK": new hotkeySimple("K"),
},
"Node_Path": {
"Transform": new hotkeySimple("T"),
"Anchor add / remove": new hotkeySimple("A"),
"Edit Control point": new hotkeySimple("C"),
"Draw path": new hotkeySimple("B"),
"Rectangle path": new hotkeySimple("N"),
"Circle path": new hotkeySimple("M"),
"Transform": new hotkeySimple("T"),
"Anchor add / remove": new hotkeySimple("A"),
"Edit Control point": new hotkeySimple("C"),
"Draw path": new hotkeySimple("B"),
"Rectangle path": new hotkeySimple("N"),
"Circle path": new hotkeySimple("M"),
},
"Node_Rigid_Object": {
"Mesh edit": new hotkeySimple("A"),
"Anchor remove": new hotkeySimple("E"),
"Mesh edit": new hotkeySimple("A"),
"Anchor remove": new hotkeySimple("E"),
},
"Node_Strand_Create": {
"Push": new hotkeySimple("P"),
"Comb": new hotkeySimple("C"),
"Stretch": new hotkeySimple("S"),
"Shorten": new hotkeySimple("D"),
"Grab": new hotkeySimple("G"),
"Push": new hotkeySimple("P"),
"Comb": new hotkeySimple("C"),
"Stretch": new hotkeySimple("S"),
"Shorten": new hotkeySimple("D"),
"Grab": new hotkeySimple("G"),
},
"Node_Path_Anchor": {
"Adjust control point": new hotkeySimple("A"),
"Adjust control point": new hotkeySimple("A"),
},
"Node_3D_Object": {
"Transform": new hotkeySimple("G"),
"Rotate": new hotkeySimple("R"),
"Scale": new hotkeySimple("S"),
"Transform": new hotkeySimple("G"),
"Rotate": new hotkeySimple("R"),
"Scale": new hotkeySimple("S"),
},
"Node_3D_Camera": {
"Move Target": new hotkeySimple("T"),
"Move Target": new hotkeySimple("T"),
},
};
@ -122,6 +122,8 @@ function hotkeyObject(_context, _name, _key, _mod = MOD_KEY.none, _action = noon
modi = is_struct(ll)? ll.modi : ll[3];
}
static full_name = function() { return string_to_var(context == ""? $"global.{name}" : $"{context}.{name}"); }
var _loadKey = $"{context}_{name}";
if(struct_has(HOTKEYS_DATA, _loadKey))
deserialize(HOTKEYS_DATA[$ _loadKey]);

View file

@ -71,7 +71,7 @@ function LOAD_PATH(path, readonly = false, safe_mode = false) {
PROJECT.safeMode = safe_mode;
if(!IS_CMD) setFocus(PANEL_GRAPH.panel);
if(PROJECT.meta.file_id) PROJECT.meta.steam = FILE_STEAM_TYPE.steamOpen;
if(PROJECT.meta.author_steam_id) PROJECT.meta.steam = FILE_STEAM_TYPE.steamOpen;
return PROJECT;
}

View file

@ -22,6 +22,7 @@ function MetaDataManager() constructor {
contact = "";
alias = "";
type = FILE_TYPE.collection;
author_steam_id = 0;
file_id = 0;
tags = [];

View file

@ -22,7 +22,7 @@ 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_Vector("Center", self, [ 16, 16 ])
inputs[2] = nodeValue_Vec2("Center", self, [ 16, 16 ])
.setUnitRef(function(index) { return getDimension(index); });
inputs[3] = nodeValue_Float("Range", self, 16);
@ -32,9 +32,9 @@ function Node_2D_light(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[5] = nodeValue_Color("Color", self, c_white);
inputs[6] = nodeValue_Vector("Start", self, [ 16, 16 ]);
inputs[6] = nodeValue_Vec2("Start", self, [ 16, 16 ]);
inputs[7] = nodeValue_Vector("Finish", self, [ 32, 16 ]);
inputs[7] = nodeValue_Vec2("Finish", self, [ 32, 16 ]);
inputs[8] = nodeValue_Int("Sweep", self, 15)
.setDisplay(VALUE_DISPLAY.slider, { range: [-80, 80, 0.1] });

View file

@ -21,7 +21,7 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
inputs[in_d3d + 0] = nodeValue_Int("FOV", self, 60 )
.setDisplay(VALUE_DISPLAY.slider, { range: [ 10, 90, 0.1 ] });
inputs[in_d3d + 1] = nodeValue_Vector("Clipping Distance", self, [ 1, 10 ] );
inputs[in_d3d + 1] = nodeValue_Vec2("Clipping Distance", self, [ 1, 10 ] );
inputs[in_d3d + 2] = nodeValue_Dimension(self);
@ -41,7 +41,7 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
inputs[in_d3d + 9] = nodeValue_Enum_Scroll("Postioning Mode", self, 2, [ "Position + Rotation", "Position + Lookat", "Lookat + Rotation" ] );
inputs[in_d3d + 10] = nodeValue_Vector("Lookat Position", self, [ 0, 0, 0 ] );
inputs[in_d3d + 10] = nodeValue_Vec3("Lookat Position", self, [ 0, 0, 0 ] );
inputs[in_d3d + 11] = nodeValue_Rotation("Roll", self, 0);

View file

@ -5,7 +5,7 @@ function Node_3D_Depth(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[1] = nodeValue_Surface("Depth", self);
inputs[2] = nodeValue_Vector("Rotation", self, [0, 0, 0] );
inputs[2] = nodeValue_Vec3("Rotation", self, [0, 0, 0] );
outputs[0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);

View file

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

View file

@ -27,7 +27,7 @@ function Node_3D_Mesh_Path_Extrude(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y
inputs[in_mesh + 8] = nodeValue("Radius Over Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11 );
inputs[in_mesh + 9] = nodeValue_Vector("Texture Scale", self, [ 1, 1 ] );
inputs[in_mesh + 9] = nodeValue_Vec2("Texture Scale", self, [ 1, 1 ] );
inputs[in_mesh + 10] = nodeValue_Bool("Loop", self, false );

View file

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

View file

@ -5,12 +5,12 @@ 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_Vector("Points", self, [ 0, 0, 0 ])
inputs[in_d3d + 0] = nodeValue_Vec3("Points", self, [ 0, 0, 0 ])
.setVisible(true, true);
inputs[in_d3d + 1] = nodeValue_Vector("Initial value", self, [ 0, 0, 0 ]);
inputs[in_d3d + 1] = nodeValue_Vec3("Initial value", self, [ 0, 0, 0 ]);
inputs[in_d3d + 2] = nodeValue_Vector("Final value", self, [ 0, 0, 0 ]);
inputs[in_d3d + 2] = nodeValue_Vec3("Final value", self, [ 0, 0, 0 ]);
inputs[in_d3d + 3] = nodeValue_Float("Falloff distance", self, 0.5);

View file

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

View file

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

View file

@ -25,7 +25,7 @@ function Node_FLIP_Apply_Force(_x, _y, _group = noone) : Node(_x, _y, _group) co
inputs[0] = nodeValue_Fdomain("Domain", self, noone )
.setVisible(true, true);
inputs[1] = nodeValue_Vector("Position", self, [ 0, 0 ] )
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ] )
.setUnitRef(function(index) { return getDimension(); });
inputs[2] = nodeValue_Float("Radius", self, 4 )
@ -33,7 +33,7 @@ function Node_FLIP_Apply_Force(_x, _y, _group = noone) : Node(_x, _y, _group) co
inputs[3] = nodeValue_Enum_Scroll("Shape", self, 0 , [ new scrollItem("Circle", s_node_shape_circle, 0), new scrollItem("Rectangle", s_node_shape_rectangle, 0), ]);
inputs[4] = nodeValue_Vector("Size", self, [ 4, 4 ] );
inputs[4] = nodeValue_Vec2("Size", self, [ 4, 4 ] );
inputs[5] = nodeValue_Surface("Texture", self)

View file

@ -9,17 +9,17 @@ function Node_FLIP_Apply_Velocity(_x, _y, _group = noone) : Node(_x, _y, _group)
inputs[0] = nodeValue_Fdomain("Domain", self, noone )
.setVisible(true, true);
inputs[1] = nodeValue_Vector("Position", self, [ 0, 0 ] )
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ] )
.setUnitRef(function(index) { return getDimension(); });
inputs[2] = nodeValue_Float("Radius", self, 4 )
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 0.1] });
inputs[3] = nodeValue_Vector("Velocity", self, [ 0, 0 ] );
inputs[3] = nodeValue_Vec2("Velocity", self, [ 0, 0 ] );
inputs[4] = nodeValue_Enum_Scroll("Shape", self, 0 , [ new scrollItem("Circle", s_node_shape_circle, 0), new scrollItem("Rectangle", s_node_shape_rectangle, 0) ]);
inputs[5] = nodeValue_Vector("Size", self, [ 4, 4 ] );
inputs[5] = nodeValue_Vec2("Size", self, [ 4, 4 ] );
input_display_list = [ 0,
["Velocity", false], 4, 1, 2, 5, 3,

View file

@ -9,7 +9,7 @@ function Node_FLIP_Destroy(_x, _y, _group = noone) : Node(_x, _y, _group) constr
inputs[0] = nodeValue_Fdomain("Domain", self, noone )
.setVisible(true, true);
inputs[1] = nodeValue_Vector("Position", self, [ 0, 0 ] )
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ] )
.setUnitRef(function(index) { return getDimension(); });
inputs[2] = nodeValue_Enum_Scroll("Shape", self, 0 , [ new scrollItem("Circle", s_node_shape_circle, 0), new scrollItem("Rectangle", s_node_shape_rectangle, 0), ]);
@ -17,7 +17,7 @@ function Node_FLIP_Destroy(_x, _y, _group = noone) : Node(_x, _y, _group) constr
inputs[3] = nodeValue_Float("Radius", self, 4 )
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 0.1] });
inputs[4] = nodeValue_Vector("Size", self, [ 4, 4 ] );
inputs[4] = nodeValue_Vec2("Size", self, [ 4, 4 ] );
inputs[5] = nodeValue_Float("Ratio", self, 1 )
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -9,7 +9,7 @@ function Node_FLIP_Repel(_x, _y, _group = noone) : Node(_x, _y, _group) construc
inputs[0] = nodeValue_Fdomain("Domain", self, noone )
.setVisible(true, true);
inputs[1] = nodeValue_Vector("Position", self, [ 0, 0 ] )
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ] )
.setUnitRef(function(index) { return getDimension(); });
inputs[2] = nodeValue_Float("Radius", self, 4 );

View file

@ -11,7 +11,7 @@ function Node_FLIP_Spawner(_x, _y, _group = noone) : Node(_x, _y, _group) constr
inputs[1] = nodeValue_Enum_Scroll("Spawn Shape", self, 0 , [ new scrollItem("Circle", s_node_shape_circle, 0), new scrollItem("Rectangle", s_node_shape_rectangle, 0), "Surface" ]);
inputs[2] = nodeValue_Vector("Spawn Position", self, [ 0.5, 0.25 ] )
inputs[2] = nodeValue_Vec2("Spawn Position", self, [ 0.5, 0.25 ] )
.setUnitRef(function(index) { return getDimension(); }, VALUE_UNIT.reference);
inputs[3] = nodeValue_Enum_Button("Spawn Type", self, 0 , [ "Stream", "Splash" ]);
@ -37,7 +37,7 @@ function Node_FLIP_Spawner(_x, _y, _group = noone) : Node(_x, _y, _group) constr
inputs[12] = nodeValue_Int("Spawn Duration", self, 1 );
inputs[13] = nodeValue_Vector("Spawn Szie", self, [ 2, 2 ] );
inputs[13] = nodeValue_Vec2("Spawn Szie", self, [ 2, 2 ] );
input_display_list = [ 0, 9,
["Spawner", false], 1, 7, 8, 13, 2, 3, 4, 12, 5,

View file

@ -9,7 +9,7 @@ function Node_FLIP_Vortex(_x, _y, _group = noone) : Node(_x, _y, _group) constru
inputs[0] = nodeValue_Fdomain("Domain", self, noone )
.setVisible(true, true);
inputs[1] = nodeValue_Vector("Position", self, [ 0, 0 ] )
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ] )
.setUnitRef(function(index) { return getDimension(); });
inputs[2] = nodeValue_Float("Radius", self, 4 );

View file

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

View file

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

View file

@ -14,7 +14,7 @@ function Node_VFX_Triangulate(_x, _y, _group = noone) : Node(_x, _y, _group) con
manual_ungroupable = false;
inputs[0] = nodeValue_Vector("Output dimension", self, DEF_SURF );
inputs[0] = nodeValue_Vec2("Output dimension", self, DEF_SURF );
inputs[1] = nodeValue_Particle("Particles", self, -1 )
.setVisible(true, true);

View file

@ -5,11 +5,11 @@ function Node_Active_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) const
inputs[1] = nodeValue_Surface("Texture", self);
inputs[2] = nodeValue_Vector("Position", self, [ 0, 0 ] );
inputs[2] = nodeValue_Vec2("Position", self, [ 0, 0 ] );
inputs[3] = nodeValue_Rotation("Rotation", self, 0);
inputs[4] = nodeValue_Vector("Scale", self, [ 1, 1 ] );
inputs[4] = nodeValue_Vec2("Scale", self, [ 1, 1 ] );
inputs[5] = nodeValue_Color("Color", self, c_white );

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_Vector("Position", self, [ 0, 0 ] )
inputs[0] = nodeValue_Vec2("Position", self, [ 0, 0 ] )
.setVisible(true, true);
inputs[1] = nodeValue_Vector("Span", self, [ 16, 16 ] )
inputs[1] = nodeValue_Vec2("Span", self, [ 16, 16 ] )
.setVisible(true, true);
inputs[2] = nodeValue_Enum_Scroll("Shape", self, AREA_SHAPE.rectangle, [

View file

@ -22,7 +22,7 @@ function Node_Armature_Bind(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
.setVisible(true, true)
.setArrayDepth(1);
inputs[3] = nodeValue_Vector("Bone transform", self, [ 0, 0 ]);
inputs[3] = nodeValue_Vec2("Bone transform", self, [ 0, 0 ]);
inputs[4] = nodeValue_Float("Bone scale", self, 1)
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0.1, 2, 0.01 ] });

View file

@ -7,11 +7,11 @@ function Node_Atlas_Set(_x, _y, _group = noone) : Node(_x, _y, _group) construct
inputs[1] = nodeValue_Surface("Surface", self);
inputs[2] = nodeValue_Vector("Position", self, [ 0, 0 ]);
inputs[2] = nodeValue_Vec2("Position", self, [ 0, 0 ]);
inputs[3] = nodeValue_Rotation("Rotation", self, 0);
inputs[4] = nodeValue_Vector("Scale", self, [ 0, 0 ]);
inputs[4] = nodeValue_Vec2("Scale", self, [ 0, 0 ]);
inputs[5] = nodeValue_Color("Blend", self, c_white);

View file

@ -6,9 +6,9 @@ function Node_Bevel(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con
inputs[1] = nodeValue_Int("Height", self, 4)
.setMappable(11);
inputs[2] = nodeValue_Vector("Shift", self, [ 0, 0 ]);
inputs[2] = nodeValue_Vec2("Shift", self, [ 0, 0 ]);
inputs[3] = nodeValue_Vector("Scale", self, [ 1, 1 ] );
inputs[3] = nodeValue_Vec2("Scale", self, [ 1, 1 ] );
inputs[4] = nodeValue_Enum_Scroll("Slope", self, 0, [ new scrollItem("Linear", s_node_curve, 2),
new scrollItem("Smooth", s_node_curve, 4),

View file

@ -49,7 +49,7 @@ function Node_Blend(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con
inputs[6] = nodeValue_Enum_Scroll("Output dimension", self, 0, [ "Background", "Forground", "Mask", "Maximum", "Constant" ])
.rejectArray();
inputs[7] = nodeValue_Vector("Constant dimension", self, DEF_SURF);
inputs[7] = nodeValue_Vec2("Constant dimension", self, DEF_SURF);
inputs[8] = nodeValue_Bool("Active", self, true);
active_index = 8;
@ -67,7 +67,7 @@ function Node_Blend(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con
inputs[13] = nodeValue_Float("Mask feather", self, 1)
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 0.1] });
inputs[14] = nodeValue_Vector("Position", self, [ 0.5, 0.5 ]);
inputs[14] = nodeValue_Vec2("Position", self, [ 0.5, 0.5 ]);
outputs[0] = nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone);

View file

@ -32,7 +32,7 @@ function Node_Bloom(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con
inputs[13] = nodeValue_Enum_Scroll("Types", self, 0, [ "Gaussian", "Zoom" ]);
inputs[14] = nodeValue_Vector("Zoom Origin", self, [ 0.5, 0.5 ])
inputs[14] = nodeValue_Vec2("Zoom Origin", self, [ 0.5, 0.5 ])
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
input_display_list = [ 7, 8,

View file

@ -6,7 +6,7 @@ function Node_Blur_Radial(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
inputs[1] = nodeValue_Rotation("Strength", self, 45)
.setMappable(10);
inputs[2] = nodeValue_Vector("Center", self, [ 0.5, 0.5 ])
inputs[2] = nodeValue_Vec2("Center", self, [ 0.5, 0.5 ])
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
inputs[3] = nodeValue_Enum_Scroll("Oversample mode", self, 0, [ "Empty", "Clamp", "Repeat" ])

View file

@ -6,7 +6,7 @@ function Node_Blur_Zoom(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[1] = nodeValue_Float("Strength", self, 0.2)
.setMappable(12);
inputs[2] = nodeValue_Vector("Center", self, [ 0.5, 0.5 ])
inputs[2] = nodeValue_Vec2("Center", self, [ 0.5, 0.5 ])
.setUnitRef(function(index) { return getDimension(index); });
inputs[3] = nodeValue_Enum_Scroll("Oversample mode", self, 0, [ "Empty", "Clamp", "Repeat" ])

View file

@ -10,7 +10,7 @@ function Node_Box_Pattern(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
inputs[2] = nodeValue_Rotation("Angle", self, 0)
.setMappable(7);
inputs[3] = nodeValue_Vector("Position", self, [0, 0] )
inputs[3] = nodeValue_Vec2("Position", self, [0, 0] )
.setUnitRef(function(index) { return getDimension(index); });
inputs[4] = nodeValue_Color("Color 1", self, c_white);

View file

@ -38,7 +38,7 @@ function Node_Camera(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
inputs[index + 1] = nodeValue_Enum_Button($"Positioning {_s}", self, false, [ "Space", "Camera" ]);
inputs[index + 2] = nodeValue_Vector($"Position {_s}", self, [ 0, 0 ] )
inputs[index + 2] = nodeValue_Vec2($"Position {_s}", self, [ 0, 0 ] )
.setUnitRef(function(index) { return getDimension(index); });
inputs[index + 3] = nodeValue_Enum_Scroll($"Oversample {_s}", self, 0, [ new scrollItem("Empty ", s_node_camera_repeat, 0),
@ -46,7 +46,7 @@ function Node_Camera(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
new scrollItem("Repeat X", s_node_camera_repeat, 2),
new scrollItem("Repeat Y", s_node_camera_repeat, 3), ]);
inputs[index + 4] = nodeValue_Vector($"Parallax {_s}", self, [ 0, 0 ]);
inputs[index + 4] = nodeValue_Vec2($"Parallax {_s}", self, [ 0, 0 ]);
inputs[index + 5] = nodeValue($"Depth {_s}", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0);

View file

@ -50,6 +50,7 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
frame_renderer_x = 0;
frame_renderer_x_to = 0;
frame_renderer_x_max = 0;
_selecting_frame = noone;
frame_renderer_content = surface_create(1, 1);
frame_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus, _full = true, _fx = frame_renderer_x) { #region frame_renderer
@ -120,11 +121,18 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
if(mouse_press(mb_left, _focus))
_del = i;
} else if(point_in_rectangle(_msx, _msy, _sx, _sy, _sx + _ssw, _sy + _ssh)) {
_del_a = 0;
} else if(point_in_rectangle(_msx, _msy, _sx, _sy, _sx + _ssw, _sy + _ssh)) {
draw_sprite_stretched_add(THEME.s_box_r2, 1, _sx, _sy, _ssw, _ssh, c_white, .2);
if(mouse_press(mb_left, _focus))
setFrame(i);
if(mouse_press(mb_right, _focus)) {
_selecting_frame = i;
menuCall("node_canvas_frame", [
menuItem(__txt("Delete"), function() /*=>*/ { removeFrame(_selecting_frame); }, THEME.cross)
]);
}
}
if(_del_a != noone) {
@ -1259,9 +1267,11 @@ function timelineItemNode_Canvas(node) : timelineItemNode(node) constructor {
}
}
if(!_hov && _chv) {
var _fr = round((_msx - _x) / _s);
if(_fr < 1 || _fr > TOTAL_FRAMES) return _hov;
var _fr = round((_msx - _x) / _s);
if(_fr < 1 || _fr > TOTAL_FRAMES) return _hov;
var _frAdd = _fr - node.attributes.frames;
if(!_hov && _chv && _frAdd < 16) {
_rx = _x + _fr * _s;
_rx0 = _rx - _h / 2;

View file

@ -2,11 +2,11 @@ function Node_Caustic(_x, _y, _group = noone) : Node_Shader_Generator(_x, _y, _g
name = "Caustic";
shader = sh_water_caustic;
inputs[1] = nodeValue_Vector("Position", self, [ 0, 0 ])
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ])
.setUnitRef(function(index) { return getDimension(index); });
addShaderProp(SHADER_UNIFORM.float, "position");
inputs[2] = nodeValue_Vector("Scale", self, [ 4, 4 ]);
inputs[2] = nodeValue_Vec2("Scale", self, [ 4, 4 ]);
addShaderProp(SHADER_UNIFORM.float, "scale");
inputs[3] = nodeValue_Float("Seed", self, seed_random(6))

View file

@ -3,7 +3,7 @@ function Node_Cellular(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[0] = nodeValue_Dimension(self);
inputs[1] = nodeValue_Vector("Position", self, [ DEF_SURF_W / 2, DEF_SURF_H / 2])
inputs[1] = nodeValue_Vec2("Position", self, [ DEF_SURF_W / 2, DEF_SURF_H / 2])
.setUnitRef(function(index) { return getDimension(index); });
inputs[2] = nodeValue_Float("Scale", self, 4)

View file

@ -10,7 +10,7 @@ function Node_Checker(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
inputs[2] = nodeValue_Rotation("Angle", self, 0)
.setMappable(7);
inputs[3] = nodeValue_Vector("Position", self, [0, 0] )
inputs[3] = nodeValue_Vec2("Position", self, [0, 0] )
.setUnitRef(function(index) { return getDimension(index); });
inputs[4] = nodeValue_Color("Color 1", self, c_white);

View file

@ -3,7 +3,7 @@ function Node_Chromatic_Aberration(_x, _y, _group = noone) : Node_Processor(_x,
inputs[0] = nodeValue_Surface("Surface in", self);
inputs[1] = nodeValue_Vector("Center", self, [ 0.5, 0.5 ])
inputs[1] = nodeValue_Vec2("Center", self, [ 0.5, 0.5 ])
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
inputs[2] = nodeValue_Float("Strength", self, 1)

View file

@ -415,12 +415,12 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[index + 0] = nodeValue_Surface($"Surface {_s}", self, noone);
inputs[index + 0].hover_effect = 0;
inputs[index + 1] = nodeValue_Vector($"Position {_s}", self, [ 0, 0 ] )
inputs[index + 1] = nodeValue_Vec2($"Position {_s}", self, [ 0, 0 ] )
.setUnitRef(function(index) { return [ overlay_w, overlay_h ]; });
inputs[index + 2] = nodeValue_Rotation($"Rotation {_s}", self, 0);
inputs[index + 3] = nodeValue_Vector($"Scale {_s}", self, [ 1, 1 ] );
inputs[index + 3] = nodeValue_Vec2($"Scale {_s}", self, [ 1, 1 ] );
inputs[index + 4] = nodeValue_Enum_Scroll($"Blend {_s}", self, 0, BLEND_TYPES );

View file

@ -12,9 +12,9 @@ function Node_Crop(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
inputs[3] = nodeValue_Enum_Scroll("Aspect Ratio", self, 0, [ "None", "Manual", "1:1", "3:2", "4:3", "16:9" ]);
inputs[4] = nodeValue_Vector("Ratio", self, [ 1, 1 ]);
inputs[4] = nodeValue_Vec2("Ratio", self, [ 1, 1 ]);
inputs[5] = nodeValue_Vector("Center", self, [ .5, .5 ])
inputs[5] = nodeValue_Vec2("Center", self, [ .5, .5 ])
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
inputs[6] = nodeValue_Float("Width", self, 8 );

View file

@ -932,10 +932,13 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
if(!rendered) return true;
force_requeue = false;
for(var i = 0; i < input_list_size; i++)
if(inputs[i].isActiveDynamic(frame)) return true;
__temp_frame = frame;
return array_any(inputs, function(inp) /*=>*/ {return inp.isActiveDynamic(__temp_frame)});
return false;
// for(var i = 0; i < input_list_size; i++)
// if(inputs[i].isActiveDynamic(frame)) return true;
// return false;
}
static triggerRender = function(resetSelf = true) {

View file

@ -3,7 +3,7 @@ function Node_Dilate(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
inputs[0] = nodeValue_Surface("Surface in", self);
inputs[1] = nodeValue_Vector("Center", self, [ 0, 0 ])
inputs[1] = nodeValue_Vec2("Center", self, [ 0, 0 ])
.setUnitRef(function(index) { return getDimension(index); });
inputs[2] = nodeValue_Float("Strength", self, 1)

View file

@ -5,7 +5,7 @@ function Node_Displace(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[1] = nodeValue_Surface("Displace map", self);
inputs[2] = nodeValue_Vector("Position", self, [ 1, 0 ] )
inputs[2] = nodeValue_Vec2("Position", self, [ 1, 0 ] )
.setTooltip("Vector to displace pixel by.")
.setUnitRef(function(index) { return getDimension(index); });

View file

@ -31,10 +31,10 @@ function Node_Display_Image(_x, _y, _group = noone) : Node(_x, _y, _group) const
.setDisplay(VALUE_DISPLAY.path_load, { filter: "image|*.png;*.jpg" })
.rejectArray();
inputs[1] = nodeValue_Vector("Position", self, [ x, y ])
inputs[1] = nodeValue_Vec2("Position", self, [ x, y ])
.rejectArray();
inputs[2] = nodeValue_Vector("Scale", self, [ 1, 1 ])
inputs[2] = nodeValue_Vec2("Scale", self, [ 1, 1 ])
.rejectArray();
inputs[3] = nodeValue_Bool("Smooth transform", self, true)

View file

@ -32,7 +32,7 @@ function Node_Display_Text(_x, _y, _group = noone) : Node(_x, _y, _group) constr
inputs[4] = nodeValue_Float("Line width", self, -1)
.rejectArray();
inputs[5] = nodeValue_Vector("Position", self, [ x, y ])
inputs[5] = nodeValue_Vec2("Position", self, [ x, y ])
.rejectArray();
inputs[6] = nodeValue_Float("Line height", self, 0)

View file

@ -11,7 +11,7 @@ function Node_Flood_Fill(_x, _y, _group = noone) : Node_Processor(_x, _y, _group
inputs[3] = nodeValue_Bool("Active", self, true);
active_index = 3;
inputs[4] = nodeValue_Vector("Position", self, [ 1, 1 ]);
inputs[4] = nodeValue_Vec2("Position", self, [ 1, 1 ]);
inputs[5] = nodeValue_Color("Colors", self, cola(c_black) );

View file

@ -2,11 +2,11 @@ function Node_Flow_Noise(_x, _y, _group = noone) : Node_Shader_Generator(_x, _y,
name = "Flow Noise";
shader = sh_noise_flow;
inputs[1] = nodeValue_Vector("Position", self, [ 0, 0 ])
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ])
.setUnitRef(function(index) { return getDimension(index); });
addShaderProp(SHADER_UNIFORM.float, "position");
inputs[2] = nodeValue_Vector("Scale", self, [ 2, 2 ]);
inputs[2] = nodeValue_Vec2("Scale", self, [ 2, 2 ]);
addShaderProp(SHADER_UNIFORM.float, "scale");
inputs[3] = nodeValue_Float("Progress", self, 0)

View file

@ -4,7 +4,7 @@ function Node_Fn_WaveTable(_x, _y, _group = noone) : Node_Fn(_x, _y, _group) con
inputs[inl + 0] = nodeValue_Float("Pattern", self, 0 )
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 3, 0.01] });
inputs[inl + 1] = nodeValue_Vector("Range", self, [ 0, 1 ]);
inputs[inl + 1] = nodeValue_Vec2("Range", self, [ 0, 1 ]);
inputs[inl + 2] = nodeValue_Float("Frequency", self, 2 )
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 8, 0.01] });

View file

@ -1,7 +1,7 @@
function Node_Wiggler(_x, _y, _group = noone) : Node_Fn(_x, _y, _group) constructor {
name = "Wiggler";
inputs[inl + 0] = nodeValue_Vector("Range", self, [ 0, 1 ]);
inputs[inl + 0] = nodeValue_Vec2("Range", self, [ 0, 1 ]);
inputs[inl + 1] = nodeValue_Int("Frequency", self, 4 )
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 32, 0.1] });

View file

@ -2,11 +2,11 @@ function Node_Fold_Noise(_x, _y, _group = noone) : Node_Shader_Generator(_x, _y,
name = "Fold Noise";
shader = sh_noise_fold;
inputs[1] = nodeValue_Vector("Position", self, [ 0, 0 ])
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ])
.setUnitRef(function(index) { return getDimension(index); });
addShaderProp(SHADER_UNIFORM.float, "position");
inputs[2] = nodeValue_Vector("Scale", self, [ 2, 2 ]);
inputs[2] = nodeValue_Vec2("Scale", self, [ 2, 2 ]);
addShaderProp(SHADER_UNIFORM.float, "scale");
inputs[3] = nodeValue_Int("Iteration", self, 2)

View file

@ -34,7 +34,7 @@ function Node_Frame(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
draw_y1 = 0;
inputs[0] = nodeValue_Vector("Size", self, [ 240, 160 ] )
inputs[0] = nodeValue_Vec2("Size", self, [ 240, 160 ] )
.rejectArray();
inputs[1] = nodeValue_Color("Color", self, cola(c_white) )

View file

@ -2,11 +2,11 @@ function Node_Gabor_Noise(_x, _y, _group = noone) : Node_Shader_Generator(_x, _y
name = "Gabor Noise";
shader = sh_noise_gabor;
inputs[1] = nodeValue_Vector("Position", self, [ 0, 0 ])
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ])
.setUnitRef(function(index) { return getDimension(index); });
addShaderProp(SHADER_UNIFORM.float, "position");
inputs[2] = nodeValue_Vector("Scale", self, [ 4, 4 ])
inputs[2] = nodeValue_Vec2("Scale", self, [ 4, 4 ])
.setMappable(8);
addShaderProp(SHADER_UNIFORM.float, "scale");
@ -24,7 +24,7 @@ function Node_Gabor_Noise(_x, _y, _group = noone) : Node_Shader_Generator(_x, _y
.setMappable(10);
addShaderProp(SHADER_UNIFORM.float, "sharpness");
inputs[6] = nodeValue_Vector("Augment", self, [ 11, 31 ]);
inputs[6] = nodeValue_Vec2("Augment", self, [ 11, 31 ]);
addShaderProp(SHADER_UNIFORM.float, "augment");
inputs[7] = nodeValue_Rotation("Phase", self, 0)

View file

@ -20,7 +20,7 @@ function Node_Gradient(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
.setDisplay(VALUE_DISPLAY.slider, { range: [-2, 2, 0.01] })
.setMappable(12);
inputs[6] = nodeValue_Vector("Center", self, [ 0.5, 0.5 ])
inputs[6] = nodeValue_Vec2("Center", self, [ 0.5, 0.5 ])
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
inputs[7] = nodeValue_Enum_Button("Loop", self, 0, [ "None", "Loop", "Pingpong" ]);

View file

@ -3,19 +3,19 @@ function Node_Gradient_Points(_x, _y, _group = noone) : Node_Processor(_x, _y, _
inputs[0] = nodeValue_Dimension(self);
inputs[1] = nodeValue_Vector("Center 1", self, [ 0, 0 ] )
inputs[1] = nodeValue_Vec2("Center 1", self, [ 0, 0 ] )
.setUnitRef(function(index) { return getDimension(index); });
inputs[2] = nodeValue_Color("Color 1", self, c_white );
inputs[3] = nodeValue_Vector("Center 2", self, [ DEF_SURF_W, 0 ] )
inputs[3] = nodeValue_Vec2("Center 2", self, [ DEF_SURF_W, 0 ] )
.setUnitRef(function(index) { return getDimension(index); });
inputs[4] = nodeValue_Color("Color 2", self, c_white );
inputs[5] = nodeValue_Vector("Center 3", self, [ 0, DEF_SURF_H ] )
inputs[5] = nodeValue_Vec2("Center 3", self, [ 0, DEF_SURF_H ] )
.setUnitRef(function(index) { return getDimension(index); });
inputs[6] = nodeValue_Color("Color 3", self, c_white );
inputs[7] = nodeValue_Vector("Center 4", self, DEF_SURF , { useGlobal : false })
inputs[7] = nodeValue_Vec2("Center 4", self, DEF_SURF , { useGlobal : false })
.setUnitRef(function(index) { return getDimension(index); });
inputs[8] = nodeValue_Color("Color 4", self, c_white );

View file

@ -5,7 +5,7 @@ function Node_Graph_Preview(_x, _y, _group = noone) : Node(_x, _y, _group) const
inputs[0] = nodeValue_Surface("Surface", self)
.rejectArray();
inputs[1] = nodeValue_Vector("Position", self, [ 0, 0 ])
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ])
.rejectArray();
inputs[2] = nodeValue_Float("Scale", self, 1)

View file

@ -3,10 +3,10 @@ function Node_Grid(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
inputs[0] = nodeValue_Dimension(self);
inputs[1] = nodeValue_Vector("Position", self, [ 0, 0 ])
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ])
.setUnitRef(function(index) { return getDimension(index); });
inputs[2] = nodeValue_Vector("Grid Size", self, [ 8, 8 ])
inputs[2] = nodeValue_Vec2("Grid Size", self, [ 8, 8 ])
.setMappable(13);
inputs[3] = nodeValue_Float("Gap", self, 0.2)

View file

@ -3,10 +3,10 @@ function Node_Grid_Hex(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[0] = nodeValue_Dimension(self);
inputs[1] = nodeValue_Vector("Position", self, [ 0, 0 ])
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ])
.setUnitRef(function(index) { return getDimension(index); });
inputs[2] = nodeValue_Vector("Scale", self, [ 2, 2 ])
inputs[2] = nodeValue_Vec2("Scale", self, [ 2, 2 ])
.setMappable(11);
inputs[3] = nodeValue_Rotation("Angle", self, 0)

View file

@ -3,10 +3,10 @@ function Node_Grid_Noise(_x, _y, _group = noone) : Node_Processor(_x, _y, _group
inputs[0] = nodeValue_Dimension(self);
inputs[1] = nodeValue_Vector("Position", self, [ 0, 0 ])
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ])
.setUnitRef(function(index) { return getDimension(index); });
inputs[2] = nodeValue_Vector("Scale", self, [ 8, 8 ]);
inputs[2] = nodeValue_Vec2("Scale", self, [ 8, 8 ]);
inputs[3] = nodeValue_Float("Seed", self, seed_random(6))
.setDisplay(VALUE_DISPLAY._default, { side_button : button(function() { randomize(); inputs[3].setValue(seed_random(6)); }).setIcon(THEME.icon_random, 0, COLORS._main_icon) });

View file

@ -3,10 +3,10 @@ function Node_Grid_Pentagonal(_x, _y, _group = noone) : Node_Processor(_x, _y, _
inputs[0] = nodeValue_Dimension(self);
inputs[1] = nodeValue_Vector("Position", self, [ 0, 0 ])
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ])
.setUnitRef(function(index) { return getDimension(index); });
inputs[2] = nodeValue_Vector("Scale", self, [ 4, 4 ])
inputs[2] = nodeValue_Vec2("Scale", self, [ 4, 4 ])
.setMappable(11);
inputs[3] = nodeValue_Float("Gap", self, 0.1)

View file

@ -3,10 +3,10 @@ function Node_Grid_Tri(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[0] = nodeValue_Dimension(self);
inputs[1] = nodeValue_Vector("Position", self, [ 0, 0 ])
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ])
.setUnitRef(function(index) { return getDimension(index); });
inputs[2] = nodeValue_Vector("Scale", self, [ 2, 2 ])
inputs[2] = nodeValue_Vec2("Scale", self, [ 2, 2 ])
.setMappable(11);
inputs[3] = nodeValue_Float("Gap", self, 0.1)

View file

@ -3,10 +3,10 @@ function Node_Herringbone_Tile(_x, _y, _group = noone) : Node_Processor(_x, _y,
inputs[0] = nodeValue_Dimension(self);
inputs[1] = nodeValue_Vector("Position", self, [ 0, 0 ])
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ])
.setUnitRef(function(index) { return getDimension(index); });
inputs[2] = nodeValue_Vector("Scale", self, [ 4, 4 ])
inputs[2] = nodeValue_Vec2("Scale", self, [ 4, 4 ])
.setMappable(11);
inputs[3] = nodeValue_Rotation("Angle", self, 0)

View file

@ -2,11 +2,11 @@ function Node_Honeycomb_Noise(_x, _y, _group = noone) : Node_Shader_Generator(_x
name = "Honeycomb Noise";
shader = sh_noise_honey;
inputs[1] = nodeValue_Vector("Position", self, [ 0, 0 ])
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ])
.setUnitRef(function(index) { return getDimension(index); });
addShaderProp(SHADER_UNIFORM.float, "position");
inputs[2] = nodeValue_Vector("Scale", self, [ 2, 2 ]);
inputs[2] = nodeValue_Vec2("Scale", self, [ 2, 2 ]);
addShaderProp(SHADER_UNIFORM.float, "scale");
inputs[3] = nodeValue_Rotation("Rotation", self, 0);

View file

@ -9,7 +9,7 @@ function Node_Image_Grid(_x, _y, _group = noone) : Node(_x, _y, _group) construc
.setValidator(VV_min(1))
.rejectArray();
inputs[2] = nodeValue_Vector("Spacing", self, [ 0, 0 ])
inputs[2] = nodeValue_Vec2("Spacing", self, [ 0, 0 ])
.rejectArray();
inputs[3] = nodeValue_Padding("Padding", self, [ 0, 0, 0, 0 ])

View file

@ -3,14 +3,14 @@ function Node_Image_Sheet(_x, _y, _group = noone) : Node(_x, _y, _group) constru
inputs[0] = nodeValue_Surface("Surface in", self);
inputs[1] = nodeValue_Vector("Sprite size", self, [ 32, 32 ]);
inputs[1] = nodeValue_Vec2("Sprite size", self, [ 32, 32 ]);
inputs[2] = nodeValue_Int("Row", self, 1); //unused
inputs[3] = nodeValue_Vector("Amount", self, [ 1, 1 ]);
inputs[3] = nodeValue_Vec2("Amount", self, [ 1, 1 ]);
inputs[4] = nodeValue_Vector("Offset", self, [ 0, 0 ]);
inputs[4] = nodeValue_Vec2("Offset", self, [ 0, 0 ]);
inputs[5] = nodeValue_Vector("Spacing", self, [ 0, 0 ]);
inputs[5] = nodeValue_Vec2("Spacing", self, [ 0, 0 ]);
inputs[6] = nodeValue_Padding("Padding", self, [0, 0, 0, 0]);

View file

@ -8,7 +8,7 @@ function Node_Line(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
inputs[2] = nodeValue_Int("Segment", self, 1)
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 32, 0.1] });
inputs[3] = nodeValue_Vector("Width", self, [ 2, 2 ]);
inputs[3] = nodeValue_Vec2("Width", self, [ 2, 2 ]);
inputs[4] = nodeValue_Float("Wiggle", self, 0)
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 16, 0.01] });
@ -48,11 +48,11 @@ function Node_Line(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
inputs[20] = nodeValue_Float("Segment length", self, 4);
inputs[21] = nodeValue_Vector("Texture position", self, [ 0, 0 ]);
inputs[21] = nodeValue_Vec2("Texture position", self, [ 0, 0 ]);
inputs[22] = nodeValue_Rotation("Texture Rotation", self, 0);
inputs[23] = nodeValue_Vector("Texture scale", self, [ 1, 1 ]);
inputs[23] = nodeValue_Vec2("Texture scale", self, [ 1, 1 ]);
inputs[24] = nodeValue_Gradient("Random Blend", self, new gradientObject(cola(c_white)));

View file

@ -5,7 +5,7 @@ function Node_Lua_Surface(_x, _y, _group = noone) : Node(_x, _y, _group) constru
inputs[0] = nodeValue_Text("Function name", self, "render" + string(irandom_range(100000, 999999)));
inputs[1] = nodeValue_Vector("Output dimension", self, DEF_SURF);
inputs[1] = nodeValue_Vec2("Output dimension", self, DEF_SURF);
inputs[2] = nodeValue_Text("Lua code", self, "", o_dialog_lua_reference)
.setDisplay(VALUE_DISPLAY.codeLUA);

View file

@ -5,13 +5,13 @@ function Node_Mesh_Transform(_x, _y, _group = noone) : Node(_x, _y, _group) cons
inputs[0] = nodeValue("Mesh", self, JUNCTION_CONNECT.input, VALUE_TYPE.mesh, noone)
.setVisible(true, true);
inputs[1] = nodeValue_Vector("Position", self, [ 0, 0 ]);
inputs[1] = nodeValue_Vec2("Position", self, [ 0, 0 ]);
inputs[2] = nodeValue_Rotation("Rotation", self, 0);
inputs[3] = nodeValue_Vector("Scale", self, [ 1, 1 ]);
inputs[3] = nodeValue_Vec2("Scale", self, [ 1, 1 ]);
inputs[4] = nodeValue_Vector("Anchor", self, [ 0, 0 ]);
inputs[4] = nodeValue_Vec2("Anchor", self, [ 0, 0 ]);
outputs[0] = nodeValue_Output("Mesh", self, VALUE_TYPE.mesh, noone);

View file

@ -4,7 +4,7 @@ function Node_Mirror(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
inputs[0] = nodeValue_Surface("Surface in", self);
inputs[1] = nodeValue_Vector("Position", self, [ 0.5, 0.5 ])
inputs[1] = nodeValue_Vec2("Position", self, [ 0.5, 0.5 ])
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
inputs[2] = nodeValue_Rotation("Angle", self, 0);

View file

@ -3,9 +3,9 @@ function Node_MK_Cable(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[0] = nodeValue_Dimension(self);
inputs[1] = nodeValue_Vector("Point 1", self, [ 0, 0 ]);
inputs[1] = nodeValue_Vec2("Point 1", self, [ 0, 0 ]);
inputs[2] = nodeValue_Vector("Point 2", self, [ 16, 16 ]);
inputs[2] = nodeValue_Vec2("Point 2", self, [ 16, 16 ]);
input_display_list = [ new Inspector_Sprite(s_MKFX), 0,
["Saber", false], 1, 2,

View file

@ -21,13 +21,13 @@ function Node_MK_Fall(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
inputs[8] = nodeValue_Range("Swing frequency", self, [ 1, 1 ], { linked : true });
inputs[9] = nodeValue_Vector("Size", self, [ 4, 2 ]);
inputs[9] = nodeValue_Vec2("Size", self, [ 4, 2 ]);
inputs[10] = nodeValue_Range("Speed", self, [ 1, 1 ], { linked : true });
inputs[11] = nodeValue_Range("X Momentum", self, [ 0, 0 ], { linked : true });
inputs[12] = nodeValue_Vector("Wind", self, [ 0, 0 ]);
inputs[12] = nodeValue_Vec2("Wind", self, [ 0, 0 ]);
inputs[13] = nodeValue_Gradient("Color", self, new gradientObject(cola(c_white)))

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