Loop icon, add node parameters

This commit is contained in:
MakhamDev 2022-01-26 12:57:34 +07:00
parent fd643e05e2
commit f12afc3b4c
34 changed files with 700 additions and 116 deletions

View file

@ -58,6 +58,7 @@
{"id":{"name":"s_animate_node_go","path":"sprites/s_animate_node_go/s_animate_node_go.yy",},"order":26,}, {"id":{"name":"s_animate_node_go","path":"sprites/s_animate_node_go/s_animate_node_go.yy",},"order":26,},
{"id":{"name":"s_node_level_selector","path":"sprites/s_node_level_selector/s_node_level_selector.yy",},"order":64,}, {"id":{"name":"s_node_level_selector","path":"sprites/s_node_level_selector/s_node_level_selector.yy",},"order":64,},
{"id":{"name":"s_node_alpha_grey","path":"sprites/s_node_alpha_grey/s_node_alpha_grey.yy",},"order":8,}, {"id":{"name":"s_node_alpha_grey","path":"sprites/s_node_alpha_grey/s_node_alpha_grey.yy",},"order":8,},
{"id":{"name":"s_node_group","path":"sprites/s_node_group/s_node_group.yy",},"order":114,},
{"id":{"name":"s_node_processor","path":"sprites/s_node_processor/s_node_processor.yy",},"order":18,}, {"id":{"name":"s_node_processor","path":"sprites/s_node_processor/s_node_processor.yy",},"order":18,},
{"id":{"name":"s_canvas_tools_pencil","path":"sprites/s_canvas_tools_pencil/s_canvas_tools_pencil.yy",},"order":4,}, {"id":{"name":"s_canvas_tools_pencil","path":"sprites/s_canvas_tools_pencil/s_canvas_tools_pencil.yy",},"order":4,},
{"id":{"name":"s_add_32","path":"sprites/s_add_32/s_add_32.yy",},"order":1,}, {"id":{"name":"s_add_32","path":"sprites/s_add_32/s_add_32.yy",},"order":1,},
@ -134,6 +135,7 @@
{"id":{"name":"s_node_junctions_single_hover","path":"sprites/s_node_junctions_single_hover/s_node_junctions_single_hover.yy",},"order":3,}, {"id":{"name":"s_node_junctions_single_hover","path":"sprites/s_node_junctions_single_hover/s_node_junctions_single_hover.yy",},"order":3,},
{"id":{"name":"s_node_stripe","path":"sprites/s_node_stripe/s_node_stripe.yy",},"order":95,}, {"id":{"name":"s_node_stripe","path":"sprites/s_node_stripe/s_node_stripe.yy",},"order":95,},
{"id":{"name":"textBox","path":"scripts/textBox/textBox.yy",},"order":17,}, {"id":{"name":"textBox","path":"scripts/textBox/textBox.yy",},"order":17,},
{"id":{"name":"node_statistic","path":"scripts/node_statistic/node_statistic.yy",},"order":15,},
{"id":{"name":"sh_draw_surface_part_tiled","path":"shaders/sh_draw_surface_part_tiled/sh_draw_surface_part_tiled.yy",},"order":32,}, {"id":{"name":"sh_draw_surface_part_tiled","path":"shaders/sh_draw_surface_part_tiled/sh_draw_surface_part_tiled.yy",},"order":32,},
{"id":{"name":"o_dialog_add_node","path":"objects/o_dialog_add_node/o_dialog_add_node.yy",},"order":1,}, {"id":{"name":"o_dialog_add_node","path":"objects/o_dialog_add_node/o_dialog_add_node.yy",},"order":1,},
{"id":{"name":"sh_blend_normal","path":"shaders/sh_blend_normal/sh_blend_normal.yy",},"order":1,}, {"id":{"name":"sh_blend_normal","path":"shaders/sh_blend_normal/sh_blend_normal.yy",},"order":1,},
@ -343,6 +345,7 @@
{"id":{"name":"sh_seperate_shape_ite","path":"shaders/sh_seperate_shape_ite/sh_seperate_shape_ite.yy",},"order":2,}, {"id":{"name":"sh_seperate_shape_ite","path":"shaders/sh_seperate_shape_ite/sh_seperate_shape_ite.yy",},"order":2,},
{"id":{"name":"s_inspector_text_valign","path":"sprites/s_inspector_text_valign/s_inspector_text_valign.yy",},"order":1,}, {"id":{"name":"s_inspector_text_valign","path":"sprites/s_inspector_text_valign/s_inspector_text_valign.yy",},"order":1,},
{"id":{"name":"o_main","path":"objects/o_main/o_main.yy",},"order":1,}, {"id":{"name":"o_main","path":"objects/o_main/o_main.yy",},"order":1,},
{"id":{"name":"s_loop_16","path":"sprites/s_loop_16/s_loop_16.yy",},"order":39,},
{"id":{"name":"area_function","path":"scripts/area_function/area_function.yy",},"order":2,}, {"id":{"name":"area_function","path":"scripts/area_function/area_function.yy",},"order":2,},
{"id":{"name":"sh_blend_alpha_addition","path":"shaders/sh_blend_alpha_addition/sh_blend_alpha_addition.yy",},"order":13,}, {"id":{"name":"sh_blend_alpha_addition","path":"shaders/sh_blend_alpha_addition/sh_blend_alpha_addition.yy",},"order":13,},
{"id":{"name":"sh_erode","path":"shaders/sh_erode/sh_erode.yy",},"order":20,}, {"id":{"name":"sh_erode","path":"shaders/sh_erode/sh_erode.yy",},"order":20,},
@ -443,6 +446,7 @@
{"id":{"name":"node_grid","path":"scripts/node_grid/node_grid.yy",},"order":20,}, {"id":{"name":"node_grid","path":"scripts/node_grid/node_grid.yy",},"order":20,},
{"id":{"name":"s_texture_default","path":"sprites/s_texture_default/s_texture_default.yy",},"order":1,}, {"id":{"name":"s_texture_default","path":"sprites/s_texture_default/s_texture_default.yy",},"order":1,},
{"id":{"name":"node_dilate","path":"scripts/node_dilate/node_dilate.yy",},"order":34,}, {"id":{"name":"node_dilate","path":"scripts/node_dilate/node_dilate.yy",},"order":34,},
{"id":{"name":"s_node_statistic","path":"sprites/s_node_statistic/s_node_statistic.yy",},"order":115,},
{"id":{"name":"sh_stripe","path":"shaders/sh_stripe/sh_stripe.yy",},"order":10,}, {"id":{"name":"sh_stripe","path":"shaders/sh_stripe/sh_stripe.yy",},"order":10,},
{"id":{"name":"s_search_16","path":"sprites/s_search_16/s_search_16.yy",},"order":20,}, {"id":{"name":"s_search_16","path":"sprites/s_search_16/s_search_16.yy",},"order":20,},
{"id":{"name":"node_3d_prim_cube","path":"scripts/node_3d_prim_cube/node_3d_prim_cube.yy",},"order":5,}, {"id":{"name":"node_3d_prim_cube","path":"scripts/node_3d_prim_cube/node_3d_prim_cube.yy",},"order":5,},
@ -543,6 +547,7 @@
{"id":{"name":"preferences","path":"scripts/preferences/preferences.yy",},"order":5,}, {"id":{"name":"preferences","path":"scripts/preferences/preferences.yy",},"order":5,},
{"id":{"name":"s_node_noise_aniso","path":"sprites/s_node_noise_aniso/s_node_noise_aniso.yy",},"order":68,}, {"id":{"name":"s_node_noise_aniso","path":"sprites/s_node_noise_aniso/s_node_noise_aniso.yy",},"order":68,},
{"id":{"name":"timer_function","path":"scripts/timer_function/timer_function.yy",},"order":0,}, {"id":{"name":"timer_function","path":"scripts/timer_function/timer_function.yy",},"order":0,},
{"id":{"name":"s_node_loop","path":"sprites/s_node_loop/s_node_loop.yy",},"order":113,},
{"id":{"name":"sh_mask","path":"shaders/sh_mask/sh_mask.yy",},"order":36,}, {"id":{"name":"sh_mask","path":"shaders/sh_mask/sh_mask.yy",},"order":36,},
{"id":{"name":"s_node_image_sequence","path":"sprites/s_node_image_sequence/s_node_image_sequence.yy",},"order":57,}, {"id":{"name":"s_node_image_sequence","path":"sprites/s_node_image_sequence/s_node_image_sequence.yy",},"order":57,},
{"id":{"name":"node_alpha_to_grey","path":"scripts/node_alpha_to_grey/node_alpha_to_grey.yy",},"order":21,}, {"id":{"name":"node_alpha_to_grey","path":"scripts/node_alpha_to_grey/node_alpha_to_grey.yy",},"order":21,},

View file

@ -294,8 +294,10 @@ event_inherited();
draw_sprite(_node.spr, current_time * PREF_MAP[? "collection_preview_speed"] / 3000, _boxx + grid_size / 2, yy + grid_size / 2); draw_sprite(_node.spr, current_time * PREF_MAP[? "collection_preview_speed"] / 3000, _boxx + grid_size / 2, yy + grid_size / 2);
draw_set_text(f_p1, fa_center, fa_top, c_white); draw_set_text(f_p1, fa_center, fa_top, c_white);
name_height = max(name_height, string_height_ext(_node.name, -1, grid_size) + 8); var txt = _node.name;
draw_text_ext(_boxx + grid_size / 2, yy + grid_size + 4, _node.name, -1, grid_width); if(_param != "") txt += " (" + _param + ")";
name_height = max(name_height, string_height_ext(txt, -1, grid_size) + 8);
draw_text_ext(_boxx + grid_size / 2, yy + grid_size + 4, txt, -1, grid_width);
if(point_in_rectangle(_m[0], _m[1], _nx, yy, _nx + grid_width, yy + grid_size)) { if(point_in_rectangle(_m[0], _m[1], _nx, yy, _nx + grid_width, yy + grid_size)) {
node_selecting = i; node_selecting = i;

View file

@ -1,6 +1,16 @@
function Node_create_Blend(_x, _y) { function Node_create_Blend(_x, _y, _param = "") {
var node = new Node_Blend(_x, _y); var node = new Node_Blend(_x, _y);
ds_list_add(PANEL_GRAPH.nodes_list, node); ds_list_add(PANEL_GRAPH.nodes_list, node);
switch(_param) {
case "normal" : node.inputs[| 2].setValue(BLEND_MODE.normal) break;
case "add" : node.inputs[| 2].setValue(BLEND_MODE.add); break;
case "subtract" : node.inputs[| 2].setValue(BLEND_MODE.subtract); break;
case "multiply" : node.inputs[| 2].setValue(BLEND_MODE.multiply); break;
case "screen" : node.inputs[| 2].setValue(BLEND_MODE.screen); break;
case "maxx" : node.inputs[| 2].setValue(BLEND_MODE.maxx); break;
case "minn" : node.inputs[| 2].setValue(BLEND_MODE.minn); break;
}
return node; return node;
} }

View file

@ -182,9 +182,11 @@ function Node(_x, _y) constructor {
} }
static preDraw = function(_x, _y, _s) { static preDraw = function(_x, _y, _s) {
var yy = y * _s + _y; var xx = x * _s + _x;
var yy = y * _s + _y;
var _in = yy + junction_shift_y * _s; var _in = yy + junction_shift_y * _s;
var amo = input_display_list == -1? ds_list_size(inputs) : max(ds_list_size(inputs), array_length(input_display_list)); var amo = input_display_list == -1? ds_list_size(inputs) : max(ds_list_size(inputs), array_length(input_display_list));
for(var i = 0; i < amo; i++) { for(var i = 0; i < amo; i++) {
@ -196,14 +198,17 @@ function Node(_x, _y) constructor {
jun = inputs[| input_display_list[i]]; jun = inputs[| input_display_list[i]];
} }
jun.x = xx;
jun.y = _in; jun.y = _in;
_in += 24 * _s * jun.isVisible(); _in += 24 * _s * jun.isVisible();
} }
var _in = yy + junction_shift_y * _s; xx = xx + w * _s;
_in = yy + junction_shift_y * _s;
for(var i = 0; i < ds_list_size(outputs); i++) { for(var i = 0; i < ds_list_size(outputs); i++) {
var jun = outputs[| i]; var jun = outputs[| i];
jun.x = xx;
jun.y = _in; jun.y = _in;
_in += 24 * _s * jun.isVisible(); _in += 24 * _s * jun.isVisible();
} }
@ -231,20 +236,16 @@ function Node(_x, _y) constructor {
} }
static drawJunctions = function(_x, _y, _mx, _my, _s) { static drawJunctions = function(_x, _y, _mx, _my, _s) {
var ss = max(0.25, _s / 2);
var xx = x * _s + _x;
var hover = noone; var hover = noone;
var amo = input_display_list == -1? ds_list_size(inputs) : max(ds_list_size(inputs), array_length(input_display_list)); var amo = input_display_list == -1? ds_list_size(inputs) : max(ds_list_size(inputs), array_length(input_display_list));
var _show_in = show_input_name; var _show_in = show_input_name;
var _show_ot = show_output_name; var _show_ot = show_output_name;
var _draw_cc = c_white;
show_input_name = false; show_input_name = false;
show_output_name = false; show_output_name = false;
var jx = xx;
for(var i = 0; i < amo; i++) { for(var i = 0; i < amo; i++) {
if(input_display_list == -1) if(input_display_list == -1)
jun = inputs[| i]; jun = inputs[| i];
@ -254,47 +255,18 @@ function Node(_x, _y) constructor {
jun = inputs[| input_display_list[i]]; jun = inputs[| input_display_list[i]];
} }
var jy = jun.y; if(jun.drawJunction(_s, _mx, _my, _show_in)) {
show_input_name = true;
if(jun.isVisible()) { hover = jun;
if(point_in_rectangle(_mx, _my, jx - 12 * _s, jy - 12 * _s, jx + 12 * _s, jy + 12 * _s) || DEBUG) {
_draw_cc = c_white;
hover = jun;
show_input_name = true;
draw_sprite_ext(jun.isArray()? s_node_junctions_array_hover : s_node_junctions_single_hover, jun.type, jx, jy, ss, ss, 0, c_white, 1);
} else {
_draw_cc = c_ui_blue_grey;
draw_sprite_ext(jun.isArray()? s_node_junctions_array : s_node_junctions_single, jun.type, jx, jy, ss, ss, 0, c_white, 1);
}
if(_show_in) {
draw_set_text(f_p1, fa_right, fa_center, _draw_cc);
draw_text(jx - 12 * _s, jy, jun.name);
}
} }
} }
var jx = xx + w * _s;
for(var i = 0; i < ds_list_size(outputs); i++) { for(var i = 0; i < ds_list_size(outputs); i++) {
var jun = outputs[| i]; var jun = outputs[| i];
if(jun.isVisible()) { if(jun.drawJunction(_s, _mx, _my, _show_ot)) {
var jy = jun.y; show_output_name = true;
hover = jun;
if(point_in_rectangle(_mx, _my, jx - 12 * _s, jy - 12 * _s, jx + 12 * _s, jy + 12 * _s) || DEBUG) {
_draw_cc = c_white;
hover = jun;
show_output_name = true;
draw_sprite_ext(jun.isArray()? s_node_junctions_array_hover : s_node_junctions_single_hover, jun.type, jx, jy, ss, ss, 0, c_white, 1);
} else {
_draw_cc = c_ui_blue_grey;
draw_sprite_ext(jun.isArray()? s_node_junctions_array : s_node_junctions_single, jun.type, jx, jy, ss, ss, 0, c_white, 1);
}
if(_show_ot) {
draw_set_text(f_p1, fa_left, fa_center, _draw_cc);
draw_text(jx + 12 * _s, jy, jun.name);
}
} }
} }
@ -302,15 +274,14 @@ function Node(_x, _y) constructor {
} }
static drawConnections = function(_x, _y, mx, my, _s) { static drawConnections = function(_x, _y, mx, my, _s) {
var xx = x * _s + _x;
var hovering = noone; var hovering = noone;
for(var i = 0; i < ds_list_size(inputs); i++) { for(var i = 0; i < ds_list_size(inputs); i++) {
var jun = inputs[| i]; var jun = inputs[| i];
var jx = xx; var jx = jun.x;
var jy = jun.y; var jy = jun.y;
if(jun.value_from && jun.isVisible()) { if(jun.value_from && jun.isVisible()) {
var frx = _x + jun.value_from.node.x * _s + jun.value_from.node.w * _s; var frx = jun.value_from.x;
var fry = jun.value_from.y; var fry = jun.value_from.y;
var c0 = value_color(jun.value_from.type); var c0 = value_color(jun.value_from.type);
@ -341,6 +312,7 @@ function Node(_x, _y) constructor {
} }
static drawPreview = function(_node, xx, yy, _s) { static drawPreview = function(_node, xx, yy, _s) {
if(_node.type != VALUE_TYPE.surface) return;
var surf = _node.getValue(); var surf = _node.getValue();
if(is_array(surf)) { if(is_array(surf)) {
if(array_length(surf) == 0) return; if(array_length(surf) == 0) return;
@ -380,11 +352,11 @@ function Node(_x, _y) constructor {
unit = "us"; unit = "us";
draw_set_color(c_ui_lime); draw_set_color(c_ui_lime);
} else if(render_time < 1000000) { } else if(render_time < 1000000) {
rt = round(render_time / 1000); rt = string_format(render_time / 1000, -1, 2);
unit = "ms"; unit = "ms";
draw_set_color(c_ui_orange); draw_set_color(c_ui_orange);
} else { } else {
rt = round(render_time / 1000000); rt = string_format(render_time / 1000000, -1, 2);
unit = "s"; unit = "s";
draw_set_color(c_ui_red); draw_set_color(c_ui_red);
} }
@ -437,7 +409,7 @@ function Node(_x, _y) constructor {
static drawOverlay = function(_active, _x, _y, _s, _mx, _my) {} static drawOverlay = function(_active, _x, _y, _s, _mx, _my) {}
static destroy = function() { static destroy = function(_merge = false) {
active = false; active = false;
if(PANEL_GRAPH.node_hover == self) PANEL_GRAPH.node_hover = noone; if(PANEL_GRAPH.node_hover == self) PANEL_GRAPH.node_hover = noone;
if(PANEL_GRAPH.node_focus == self) PANEL_GRAPH.node_focus = noone; if(PANEL_GRAPH.node_focus == self) PANEL_GRAPH.node_focus = noone;
@ -447,9 +419,23 @@ function Node(_x, _y) constructor {
for(var i = 0; i < ds_list_size(outputs); i++) { for(var i = 0; i < ds_list_size(outputs); i++) {
var jun = outputs[| i]; var jun = outputs[| i];
for(var j = 0; j < ds_list_size(jun.value_to); j++) { for(var j = 0; j < ds_list_size(jun.value_to); j++) {
jun.value_to[| j].checkConnection(); var _vt = jun.value_to[| j];
if(_vt.value_from == noone) return;
if(_vt.value_from.node != self) return;
_vt.removeFrom(false);
if(_merge) {
for( var k = 0; k < ds_list_size(inputs); k++ ) {
if(inputs[| k].value_from == noone) continue;
if(_vt.setFrom(inputs[| k].value_from)) break;
}
}
} }
ds_list_clear(jun.value_to);
} }
onDestroy(); onDestroy();

View file

@ -7,7 +7,7 @@ function Node_create_Iterate(_x, _y) {
function Node_Iterate(_x, _y) : Node_Collection(_x, _y) constructor { function Node_Iterate(_x, _y) : Node_Collection(_x, _y) constructor {
name = "Loop"; name = "Loop";
color = c_ui_lime; color = c_ui_lime;
icon = s_group_16; icon = s_loop_16;
iterated = 0; iterated = 0;

View file

@ -12,6 +12,7 @@ function Node_Pin(_x, _y) : Node(_x, _y) constructor {
auto_height = false; auto_height = false;
junction_shift_y = 16; junction_shift_y = 16;
previewable = false; previewable = false;
bg_spr = s_node_pin_bg; bg_spr = s_node_pin_bg;
bg_sel_spr = s_node_pin_bg_active; bg_sel_spr = s_node_pin_bg_active;
@ -27,13 +28,42 @@ function Node_Pin(_x, _y) : Node(_x, _y) constructor {
} }
doUpdate(); doUpdate();
static drawNodeBase = function(xx, yy, _s) { static pointIn = function(_mx, _my) {
if(w * _s > 32) { return point_in_circle(_mx, _my, x, y, 24);
draw_sprite_stretched_ext(s_node_pin_bg, 0, xx, yy, w * _s, h * _s, color, 0.75); }
bg_sel_spr = s_node_pin_bg_active;
} else { static preDraw = function(_x, _y, _s) {
draw_sprite_stretched_ext(s_node_pin_bg_s, 0, xx, yy, w * _s, h * _s, color, 0.75); var xx = x * _s + _x;
bg_sel_spr = s_node_pin_bg_active_s; var yy = y * _s + _y;
inputs[| 0].x = xx;
inputs[| 0].y = yy;
outputs[| 0].x = xx;
outputs[| 0].y = yy;
}
static drawJunctions = function(_x, _y, _mx, _my, _s) {
var hover = noone;
var jun = inputs[| 0].value_from == noone? inputs[| 0] : outputs[| 0];
if(jun.drawJunction(_s, _mx, _my, false))
hover = jun;
return hover;
}
static drawNode = function(_x, _y, _mx, _my, _s) {
if(group != PANEL_GRAPH.getCurrentContext()) return;
var xx = x * _s + _x;
var yy = y * _s + _y;
if(active_draw_index > -1) {
draw_sprite_ext(bg_sel_spr, 0, xx, yy, _s, _s, 0, c_white, 1);
active_draw_index = -1;
} }
return drawJunctions(_x, _y, _mx, _my, _s);
} }
} }

View file

@ -85,7 +85,7 @@ function NodeObject(_name, _spr, _create, tags = []) constructor {
var filter = ds_list_create(); var filter = ds_list_create();
addNodeCatagory("Filter", filter); addNodeCatagory("Filter", filter);
addNodeObject(filter, "Blend", s_node_blend, "Node_Blend", Node_create_Blend, ["merge"]); addNodeObject(filter, "Blend", s_node_blend, "Node_Blend", Node_create_Blend, ["normal", "add", "subtract", "multiply", "screen", "maxx", "minn"]);
addNodeObject(filter, "Outline", s_node_border, "Node_Outline", Node_create_Outline, ["border"]); addNodeObject(filter, "Outline", s_node_border, "Node_Outline", Node_create_Outline, ["border"]);
addNodeObject(filter, "Erode", s_node_erode, "Node_Erode", Node_create_Erode); addNodeObject(filter, "Erode", s_node_erode, "Node_Erode", Node_create_Erode);
addNodeObject(filter, "Trail", s_node_trail, "Node_Trail", Node_create_Trail); addNodeObject(filter, "Trail", s_node_trail, "Node_Trail", Node_create_Trail);
@ -138,6 +138,7 @@ function NodeObject(_name, _spr, _create, tags = []) constructor {
var number = ds_list_create(); var number = ds_list_create();
addNodeCatagory("Number", number); addNodeCatagory("Number", number);
addNodeObject(number, "Math", s_node_math, "Node_Math", Node_create_Math, ["add", "subtract", "multiply", "divide", "power", "modulo", "round", "ceiling", "floor", "sin", "cos", "tan"]); addNodeObject(number, "Math", s_node_math, "Node_Math", Node_create_Math, ["add", "subtract", "multiply", "divide", "power", "modulo", "round", "ceiling", "floor", "sin", "cos", "tan"]);
addNodeObject(number, "Statistic", s_node_statistic, "Node_Statistic", Node_create_Statistic, ["sum", "average", "mean", "median", "min", "max"]);
addNodeObject(number, "Array", s_node_array, "Node_Array", Node_create_Array); addNodeObject(number, "Array", s_node_array, "Node_Array", Node_create_Array);
addNodeObject(number, "Array length", s_node_array_length, "Node_Array_Length", Node_create_Array_Length); addNodeObject(number, "Array length", s_node_array_length, "Node_Array_Length", Node_create_Array_Length);
addNodeObject(number, "Array get", s_node_array_get, "Node_Array_Get", Node_create_Array_Get); addNodeObject(number, "Array get", s_node_array_get, "Node_Array_Get", Node_create_Array_Get);
@ -195,13 +196,12 @@ function NodeObject(_name, _spr, _create, tags = []) constructor {
var node = ds_list_create(); var node = ds_list_create();
addNodeCatagory("Node", node); addNodeCatagory("Node", node);
addNodeObject(node, "Group", s_node_group, "Node_Group", Node_create_Group);
addNodeObject(node, "Loop", s_node_loop, "Node_Iterate", Node_create_Iterate);
addNodeObject(node, "Pin", s_node_pin, "Node_Pin", Node_create_Pin); addNodeObject(node, "Pin", s_node_pin, "Node_Pin", Node_create_Pin);
addNodeObject(node, "Frame", s_node_frame, "Node_Frame", Node_create_Frame); addNodeObject(node, "Frame", s_node_frame, "Node_Frame", Node_create_Frame);
addNodeObject(node, "Display text", s_node_text, "Node_Display_Text", Node_create_Display_Text); addNodeObject(node, "Display text", s_node_text, "Node_Display_Text", Node_create_Display_Text);
addNodeObject(node, "Condition", s_node_condition, "Node_Condition", Node_create_Condition); addNodeObject(node, "Condition", s_node_condition, "Node_Condition", Node_create_Condition);
NODE_CREATE_FUCTION[? "Node_Group"] = Node_create_Group;
NODE_CREATE_FUCTION[? "Node_Iterate"] = Node_create_Iterate;
#endregion #endregion
#region node function #region node function
@ -228,10 +228,10 @@ function NodeObject(_name, _spr, _create, tags = []) constructor {
return _node; return _node;
} }
function nodeDelete(node) { function nodeDelete(node, _merge = false) {
var list = node.group == -1? NODES : node.group.nodes; var list = node.group == -1? NODES : node.group.nodes;
ds_list_delete(list, ds_list_find_index(list, node)); ds_list_delete(list, ds_list_find_index(list, node));
node.destroy(); node.destroy(_merge);
recordAction(ACTION_TYPE.node_delete, node); recordAction(ACTION_TYPE.node_delete, node);
} }

View file

@ -0,0 +1,12 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "variable",
"path": "folders/nodes/data/variable.yy",
},
"resourceVersion": "1.0",
"name": "node_counter",
"tags": [],
"resourceType": "GMScript",
}

View file

@ -0,0 +1,164 @@
enum STAT_OPERATOR {
_sum,
_average,
_median,
_max,
_min
}
function Node_create_Statistic(_x, _y, _param = "") {
var node = new Node_Statistic(_x, _y);
ds_list_add(PANEL_GRAPH.nodes_list, node);
switch(_param) {
case "sum" : node.inputs[| 0].setValue(STAT_OPERATOR._sum); break;
case "mean" :
case "average" : node.inputs[| 0].setValue(STAT_OPERATOR._average); break;
case "median" : node.inputs[| 0].setValue(STAT_OPERATOR._median); break;
case "min" : node.inputs[| 0].setValue(STAT_OPERATOR._min); break;
case "max" : node.inputs[| 0].setValue(STAT_OPERATOR._max); break;
}
return node;
}
function Node_Statistic(_x, _y) : Node(_x, _y) constructor {
name = "Statistic";
previewable = false;
w = 96;
min_h = 0;
inputs[| 0] = nodeValue(0, "Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [
"Sum", "Mean", "Median", "Max", "Min"]);
input_fix_len = ds_list_size(inputs);
static createNewInput = function() {
var index = ds_list_size(inputs);
inputs[| index] = nodeValue( index, "Input", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, -1 )
.setVisible(true, true);
}
createNewInput();
outputs[| 0] = nodeValue(0, "Statistic", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, -1);
static updateValueFrom = function(index) {
var _l = ds_list_create();
for( var i = 0; i < input_fix_len; i++ ) {
_l[| i] = inputs[| i];
}
for( var i = input_fix_len; i < ds_list_size(inputs); i++ ) {
if(inputs[| i].value_from) {
ds_list_add(_l, inputs[| i]);
} else {
delete inputs[| i];
}
}
for( var i = 0; i < ds_list_size(_l); i++ ) {
_l[| i].index = i;
}
ds_list_destroy(inputs);
inputs = _l;
createNewInput();
}
static update = function() {
var type = inputs[| 0].getValue();
var res = 0;
switch(type) {
case STAT_OPERATOR._sum :
for( var i = input_fix_len; i < ds_list_size(inputs) - 1; i++ ) {
var val = inputs[| i].getValue();
res += val;
}
break;
case STAT_OPERATOR._average :
if(ds_list_size(inputs) <= input_fix_len + 1) res = 0;
else {
for( var i = input_fix_len; i < ds_list_size(inputs) - 1; i++ ) {
var val = inputs[| i].getValue();
res += val;
}
res /= ds_list_size(inputs) - 1 - input_fix_len;
}
break;
case STAT_OPERATOR._median :
var len = ds_list_size(inputs) - 1 - input_fix_len;
if(len == 0) {
res = 0;
break;
}
var vals = array_create(len);
for( var i = input_fix_len; i < ds_list_size(inputs) - 1; i++ ) {
vals[i - input_fix_len] = inputs[| i].getValue();
}
if(len == 1) {
res = vals[0];
break;
}
array_sort(vals, true);
if(len % 2 == 0)
res = (vals[len / 2 - 1] + vals[len / 2]) / 2;
else
res = vals[(len - 1) / 2];
break;
case STAT_OPERATOR._min :
var _min = 9999999999;
for( var i = input_fix_len; i < ds_list_size(inputs) - 1; i++ ) {
var val = inputs[| i].getValue();
_min = min(_min, val);
}
res = _min;
break;
case STAT_OPERATOR._max :
var _max = -9999999999;
for( var i = input_fix_len; i < ds_list_size(inputs) - 1; i++ ) {
var val = inputs[| i].getValue();
_max = max(_max, val);
}
res = _max;
break;
}
outputs[| 0].setValue(res);
}
doUpdate();
static postDeserialize = function() {
var _inputs = load_map[? "inputs"];
for(var i = 0; i < ds_list_size(_inputs); i++) {
createNewInput();
}
}
function onDrawNode(xx, yy, _mx, _my, _s) {
draw_set_text(f_h3, fa_center, fa_center, c_white);
var str = "";
switch(inputs[| 0].getValue()) {
case STAT_OPERATOR._average : str = "Avg"; break;
case STAT_OPERATOR._sum : str = "Sum"; break;
case STAT_OPERATOR._median : str = "Med"; break;
case STAT_OPERATOR._min : str = "Min"; break;
case STAT_OPERATOR._max : str = "Max"; break;
}
var _ss = min((w - 16) * _s / string_width(str), (h - 18) * _s / string_height(str));
if(_s * w > 48)
draw_text_transformed(xx + w / 2 * _s, yy + 10 + h / 2 * _s, str, _ss, _ss, 0);
else
draw_text_transformed(xx + w / 2 * _s, yy + h / 2 * _s, str, _ss, _ss, 0);
}
}

View file

@ -0,0 +1,12 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "number",
"path": "folders/nodes/data/number.yy",
},
"resourceVersion": "1.0",
"name": "node_statistic",
"tags": [],
"resourceType": "GMScript",
}

View file

@ -139,6 +139,7 @@ function nodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T
function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_TAG._default) constructor { function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_TAG._default) constructor {
name = _name; name = _name;
node = _node; node = _node;
x = node.x;
y = node.y; y = node.y;
index = _index; index = _index;
type = _type; type = _type;
@ -542,9 +543,9 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T
return true; return true;
} }
static removeFrom = function() { static removeFrom = function(_remove_list = true) {
recordAction(ACTION_TYPE.junction_connect, self, value_from); recordAction(ACTION_TYPE.junction_connect, self, value_from);
if(value_from) if(_remove_list && value_from != noone)
ds_list_remove(value_from.value_to, self); ds_list_remove(value_from.value_to, self);
value_from = noone; value_from = noone;
@ -594,9 +595,11 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T
} }
} }
static checkConnection = function() { static checkConnection = function(_remove_list = true) {
if(value_from && !value_from.node.active) if(value_from == noone) return;
removeFrom(); if(value_from.node.active) return;
removeFrom(_remove_list);
} }
static searchNodeBackward = function(_node) { static searchNodeBackward = function(_node) {
@ -939,6 +942,36 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T
return hover; return hover;
} }
static drawJunction = function(_s, _mx, _my, _show) {
if(!isVisible()) return false;
var ss = max(0.25, _s / 2);
var _draw_cc = c_white;
var is_hover = false;
if(point_in_circle(_mx, _my, x, y, 10 * _s)) {
is_hover = true;
draw_sprite_ext(isArray()? s_node_junctions_array_hover : s_node_junctions_single_hover, type, x, y, ss, ss, 0, c_white, 1);
} else {
_draw_cc = c_ui_blue_grey;
draw_sprite_ext(isArray()? s_node_junctions_array : s_node_junctions_single, type, x, y, ss, ss, 0, c_white, 1);
}
if(_show) {
draw_set_text(f_p1, fa_left, fa_center, _draw_cc);
if(connect_type == JUNCTION_CONNECT.input) {
draw_set_halign(fa_right);
draw_text(x - 12 * _s, y, name);
} else {
draw_set_halign(fa_left);
draw_text(x + 12 * _s, y, name);
}
}
return is_hover;
}
static isVisible = function() { static isVisible = function() {
if(!node.active) return false; if(!node.active) return false;
return value_from || ( visible && show_in_inspector ); return value_from || ( visible && show_in_inspector );

View file

@ -100,11 +100,11 @@ function Panel_Graph(_panel) : PanelContent(_panel) constructor {
addHotkey("Graph", "Frame", "F", MOD_KEY.ctrl, function() { doFrame(); }); addHotkey("Graph", "Frame", "F", MOD_KEY.ctrl, function() { doFrame(); });
addHotkey("Graph", "Delete", vk_delete, MOD_KEY.none, function() { doDelete(); }); addHotkey("Graph", "Delete", vk_delete, MOD_KEY.shift, function() { doDelete(false); });
addHotkey("Graph", "Delete merge", vk_delete, MOD_KEY.none, function() { doDelete(true); });
function stepBegin() { function stepBegin() {
var gr_x = graph_x * graph_s; var gr_x = graph_x * graph_s; var gr_y = graph_y * graph_s;
var gr_y = graph_y * graph_s;
var m_x = (mx - gr_x) / graph_s; var m_x = (mx - gr_x) / graph_s;
var m_y = (my - gr_y) / graph_s; var m_y = (my - gr_y) / graph_s;
mouse_graph_x = m_x; mouse_graph_x = m_x;
@ -219,6 +219,13 @@ function Panel_Graph(_panel) : PanelContent(_panel) constructor {
nodes_list[| i].preDraw(gr_x, gr_y, graph_s); nodes_list[| i].preDraw(gr_x, gr_y, graph_s);
} }
#region draw frame
for(var i = 0; i < ds_list_size(nodes_list); i++) {
if(instanceof(nodes_list[| i]) != "Node_Frame") continue;
nodes_list[| i].drawNode(gr_x, gr_y, mx, my, graph_s);
}
#endregion
#region hover #region hover
node_hovering = noone; node_hovering = noone;
for(var i = 0; i < ds_list_size(nodes_list); i++) { for(var i = 0; i < ds_list_size(nodes_list); i++) {
@ -355,10 +362,6 @@ function Panel_Graph(_panel) : PanelContent(_panel) constructor {
value_focus = noone; value_focus = noone;
#region draw node #region draw node
for(var i = 0; i < ds_list_size(nodes_list); i++) {
if(instanceof(nodes_list[| i]) != "Node_Frame") continue;
nodes_list[| i].drawNode(gr_x, gr_y, mx, my, graph_s);
}
for(var i = 0; i < ds_list_size(nodes_list); i++) { for(var i = 0; i < ds_list_size(nodes_list); i++) {
var n = nodes_list[| i]; var n = nodes_list[| i];
if(instanceof(n) == "Node_Frame") continue; if(instanceof(n) == "Node_Frame") continue;
@ -459,20 +462,32 @@ function Panel_Graph(_panel) : PanelContent(_panel) constructor {
} }
#endregion #endregion
if(FOCUS == panel && node_focus && value_focus == noone) { if(FOCUS == panel) {
if(mouse_check_button_pressed(mb_left) && !keyboard_check(vk_control)) { if(node_focus && value_focus == noone) {
node_dragging = node_focus; if(mouse_check_button_pressed(mb_left) && !keyboard_check(vk_control)) {
node_drag_mx = mouse_graph_x; node_dragging = node_focus;
node_drag_my = mouse_graph_y; node_drag_mx = mouse_graph_x;
node_drag_sx = node_focus.x; node_drag_my = mouse_graph_y;
node_drag_sy = node_focus.y; node_drag_sx = node_focus.x;
node_drag_sy = node_focus.y;
node_drag_ox = -1; node_drag_ox = -1;
node_drag_oy = -1; node_drag_oy = -1;
}
if(keyboard_check_pressed(vk_f5)) {
node_focus.updateForward();
}
} }
if(keyboard_check_pressed(vk_f5)) { if(DOUBLE_CLICK && junction_hovering != noone) {
node_focus.updateForward(); var snap = PREF_MAP[? "node_snapping"];
var _mx = round(mouse_graph_x / snap) * snap;
var _my = round(mouse_graph_y / snap) * snap;
var _pin = Node_create_Pin(_mx, _my);
_pin.inputs[| 0].setFrom(junction_hovering.value_from);
junction_hovering.setFrom(_pin.outputs[| 0]);
} }
} }
@ -663,12 +678,12 @@ function Panel_Graph(_panel) : PanelContent(_panel) constructor {
f.inputs[| 0].setValue([x1 - x0, y1 - y0]); f.inputs[| 0].setValue([x1 - x0, y1 - y0]);
} }
function doDelete() { function doDelete(_merge = false) {
if(node_focus != noone) if(node_focus != noone)
nodeDelete(node_focus); nodeDelete(node_focus, _merge);
for(var i = 0; i < ds_list_size(nodes_select_list); i++) { for(var i = 0; i < ds_list_size(nodes_select_list); i++) {
nodeDelete(nodes_select_list[| i]); nodeDelete(nodes_select_list[| i], _merge);
} }
ds_list_clear(nodes_select_list); ds_list_clear(nodes_select_list);
} }
@ -771,10 +786,9 @@ function Panel_Graph(_panel) : PanelContent(_panel) constructor {
function drawJunctionConnect() { function drawJunctionConnect() {
if(value_dragging) { if(value_dragging) {
draw_set_color(c_ui_orange); draw_set_color(value_color(value_dragging.type));
var xx = value_dragging.node.x + graph_x + (value_dragging.connect_type == JUNCTION_CONNECT.input? 0 : value_dragging.node.w);
xx *= graph_s;
var xx = value_dragging.x;
var yy = value_dragging.y; var yy = value_dragging.y;
if(PREF_MAP[? "curve_connection_line"]) if(PREF_MAP[? "curve_connection_line"])

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 B

View file

@ -24,9 +24,9 @@
"gridX": 0, "gridX": 0,
"gridY": 0, "gridY": 0,
"frames": [ "frames": [
{"compositeImage":{"FrameId":{"name":"fd730733-382b-46ed-96d0-f1cded7d84a6","path":"sprites/s_group_16/s_group_16.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[ {"compositeImage":{"FrameId":{"name":"f519baa7-5340-4119-a1d4-d04fdc3ad6c4","path":"sprites/s_group_16/s_group_16.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"fd730733-382b-46ed-96d0-f1cded7d84a6","path":"sprites/s_group_16/s_group_16.yy",},"LayerId":{"name":"fcd5bc94-4043-4840-bd91-ebdb11c7c0e8","path":"sprites/s_group_16/s_group_16.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",}, {"FrameId":{"name":"f519baa7-5340-4119-a1d4-d04fdc3ad6c4","path":"sprites/s_group_16/s_group_16.yy",},"LayerId":{"name":"968a0483-66d2-4ea1-89c4-0320180f3552","path":"sprites/s_group_16/s_group_16.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"s_group_16","path":"sprites/s_group_16/s_group_16.yy",},"resourceVersion":"1.0","name":"fd730733-382b-46ed-96d0-f1cded7d84a6","tags":[],"resourceType":"GMSpriteFrame",}, ],"parent":{"name":"s_group_16","path":"sprites/s_group_16/s_group_16.yy",},"resourceVersion":"1.0","name":"f519baa7-5340-4119-a1d4-d04fdc3ad6c4","tags":[],"resourceType":"GMSpriteFrame",},
], ],
"sequence": { "sequence": {
"spriteId": {"name":"s_group_16","path":"sprites/s_group_16/s_group_16.yy",}, "spriteId": {"name":"s_group_16","path":"sprites/s_group_16/s_group_16.yy",},
@ -41,7 +41,7 @@
"moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore<MomentsEventKeyframe>",}, "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore<MomentsEventKeyframe>",},
"tracks": [ "tracks": [
{"name":"frames","spriteId":null,"keyframes":{"Keyframes":[ {"name":"frames","spriteId":null,"keyframes":{"Keyframes":[
{"id":"cd931489-a9ec-4f0a-9dfd-c006030dc7f2","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"fd730733-382b-46ed-96d0-f1cded7d84a6","path":"sprites/s_group_16/s_group_16.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe<SpriteFrameKeyframe>",}, {"id":"ecfd6225-716e-4b78-aa1b-a05e9746368e","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"f519baa7-5340-4119-a1d4-d04fdc3ad6c4","path":"sprites/s_group_16/s_group_16.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe<SpriteFrameKeyframe>",},
],"resourceVersion":"1.0","resourceType":"KeyframeStore<SpriteFrameKeyframe>",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"resourceVersion":"1.0","tags":[],"resourceType":"GMSpriteFramesTrack","modifiers":[],}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore<SpriteFrameKeyframe>",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"resourceVersion":"1.0","tags":[],"resourceType":"GMSpriteFramesTrack","modifiers":[],},
], ],
"visibleRange": null, "visibleRange": null,
@ -65,7 +65,7 @@
"resourceType": "GMSequence", "resourceType": "GMSequence",
}, },
"layers": [ "layers": [
{"visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default","resourceVersion":"1.0","name":"fcd5bc94-4043-4840-bd91-ebdb11c7c0e8","tags":[],"resourceType":"GMImageLayer",}, {"visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default","resourceVersion":"1.0","name":"968a0483-66d2-4ea1-89c4-0320180f3552","tags":[],"resourceType":"GMImageLayer",},
], ],
"nineSlice": null, "nineSlice": null,
"parent": { "parent": {

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

View file

@ -0,0 +1,79 @@
{
"bboxMode": 0,
"collisionKind": 1,
"type": 0,
"origin": 4,
"preMultiplyAlpha": false,
"edgeFiltering": false,
"collisionTolerance": 0,
"swfPrecision": 2.525,
"bbox_left": 1,
"bbox_right": 14,
"bbox_top": 2,
"bbox_bottom": 13,
"HTile": false,
"VTile": false,
"For3D": false,
"width": 16,
"height": 16,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"swatchColours": null,
"gridX": 0,
"gridY": 0,
"frames": [
{"compositeImage":{"FrameId":{"name":"ea8927d0-67c9-4828-900b-5254f57c0caf","path":"sprites/s_loop_16/s_loop_16.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"ea8927d0-67c9-4828-900b-5254f57c0caf","path":"sprites/s_loop_16/s_loop_16.yy",},"LayerId":{"name":"5f7b9286-4551-4aac-b972-d489f02fd7d6","path":"sprites/s_loop_16/s_loop_16.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"s_loop_16","path":"sprites/s_loop_16/s_loop_16.yy",},"resourceVersion":"1.0","name":"ea8927d0-67c9-4828-900b-5254f57c0caf","tags":[],"resourceType":"GMSpriteFrame",},
],
"sequence": {
"spriteId": {"name":"s_loop_16","path":"sprites/s_loop_16/s_loop_16.yy",},
"timeUnits": 1,
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"autoRecord": true,
"volume": 1.0,
"length": 1.0,
"events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore<MessageEventKeyframe>",},
"moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore<MomentsEventKeyframe>",},
"tracks": [
{"name":"frames","spriteId":null,"keyframes":{"Keyframes":[
{"id":"33ae9c26-2ebe-4a34-b32a-d30918691358","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"ea8927d0-67c9-4828-900b-5254f57c0caf","path":"sprites/s_loop_16/s_loop_16.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe<SpriteFrameKeyframe>",},
],"resourceVersion":"1.0","resourceType":"KeyframeStore<SpriteFrameKeyframe>",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"resourceVersion":"1.0","tags":[],"resourceType":"GMSpriteFramesTrack","modifiers":[],},
],
"visibleRange": null,
"lockOrigin": false,
"showBackdrop": true,
"showBackdropImage": false,
"backdropImagePath": "",
"backdropImageOpacity": 0.5,
"backdropWidth": 1366,
"backdropHeight": 768,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"xorigin": 8,
"yorigin": 8,
"eventToFunction": {},
"eventStubScript": null,
"parent": {"name":"s_loop_16","path":"sprites/s_loop_16/s_loop_16.yy",},
"resourceVersion": "1.3",
"name": "s_loop_16",
"tags": [],
"resourceType": "GMSequence",
},
"layers": [
{"visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default","resourceVersion":"1.0","name":"5f7b9286-4551-4aac-b972-d489f02fd7d6","tags":[],"resourceType":"GMImageLayer",},
],
"nineSlice": null,
"parent": {
"name": "icon",
"path": "folders/sprites/icon.yy",
},
"resourceVersion": "1.0",
"name": "s_loop_16",
"tags": [],
"resourceType": "GMSprite",
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 525 B

View file

@ -0,0 +1,79 @@
{
"bboxMode": 0,
"collisionKind": 1,
"type": 0,
"origin": 4,
"preMultiplyAlpha": false,
"edgeFiltering": false,
"collisionTolerance": 0,
"swfPrecision": 2.525,
"bbox_left": 0,
"bbox_right": 31,
"bbox_top": 0,
"bbox_bottom": 31,
"HTile": false,
"VTile": false,
"For3D": false,
"width": 32,
"height": 32,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"swatchColours": null,
"gridX": 0,
"gridY": 0,
"frames": [
{"compositeImage":{"FrameId":{"name":"3abce66a-8e22-4146-94d6-07b9273b37f4","path":"sprites/s_node_group/s_node_group.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"3abce66a-8e22-4146-94d6-07b9273b37f4","path":"sprites/s_node_group/s_node_group.yy",},"LayerId":{"name":"29809c12-6302-4391-bf73-0878185bc4bf","path":"sprites/s_node_group/s_node_group.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"s_node_group","path":"sprites/s_node_group/s_node_group.yy",},"resourceVersion":"1.0","name":"3abce66a-8e22-4146-94d6-07b9273b37f4","tags":[],"resourceType":"GMSpriteFrame",},
],
"sequence": {
"spriteId": {"name":"s_node_group","path":"sprites/s_node_group/s_node_group.yy",},
"timeUnits": 1,
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"autoRecord": true,
"volume": 1.0,
"length": 1.0,
"events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore<MessageEventKeyframe>",},
"moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore<MomentsEventKeyframe>",},
"tracks": [
{"name":"frames","spriteId":null,"keyframes":{"Keyframes":[
{"id":"49e5ed65-05c3-4633-aff7-998683309eb2","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"3abce66a-8e22-4146-94d6-07b9273b37f4","path":"sprites/s_node_group/s_node_group.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe<SpriteFrameKeyframe>",},
],"resourceVersion":"1.0","resourceType":"KeyframeStore<SpriteFrameKeyframe>",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"resourceVersion":"1.0","tags":[],"resourceType":"GMSpriteFramesTrack","modifiers":[],},
],
"visibleRange": {"x":0.0,"y":0.0,},
"lockOrigin": false,
"showBackdrop": true,
"showBackdropImage": false,
"backdropImagePath": "",
"backdropImageOpacity": 0.5,
"backdropWidth": 1366,
"backdropHeight": 768,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"xorigin": 16,
"yorigin": 16,
"eventToFunction": {},
"eventStubScript": null,
"parent": {"name":"s_node_group","path":"sprites/s_node_group/s_node_group.yy",},
"resourceVersion": "1.3",
"name": "s_node_group",
"tags": [],
"resourceType": "GMSequence",
},
"layers": [
{"visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default","resourceVersion":"1.0","name":"29809c12-6302-4391-bf73-0878185bc4bf","tags":[],"resourceType":"GMImageLayer",},
],
"nineSlice": null,
"parent": {
"name": "icons",
"path": "folders/nodes/icons.yy",
},
"resourceVersion": "1.0",
"name": "s_node_group",
"tags": [],
"resourceType": "GMSprite",
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 612 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 588 B

View file

@ -0,0 +1,79 @@
{
"bboxMode": 0,
"collisionKind": 1,
"type": 0,
"origin": 4,
"preMultiplyAlpha": false,
"edgeFiltering": false,
"collisionTolerance": 0,
"swfPrecision": 2.525,
"bbox_left": 0,
"bbox_right": 31,
"bbox_top": 0,
"bbox_bottom": 31,
"HTile": false,
"VTile": false,
"For3D": false,
"width": 32,
"height": 32,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"swatchColours": null,
"gridX": 0,
"gridY": 0,
"frames": [
{"compositeImage":{"FrameId":{"name":"1ac6820a-11e3-46a6-be15-03bab6868d56","path":"sprites/s_node_loop/s_node_loop.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"1ac6820a-11e3-46a6-be15-03bab6868d56","path":"sprites/s_node_loop/s_node_loop.yy",},"LayerId":{"name":"28a778f1-a610-49f1-8bca-4be6215c6504","path":"sprites/s_node_loop/s_node_loop.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"s_node_loop","path":"sprites/s_node_loop/s_node_loop.yy",},"resourceVersion":"1.0","name":"1ac6820a-11e3-46a6-be15-03bab6868d56","tags":[],"resourceType":"GMSpriteFrame",},
],
"sequence": {
"spriteId": {"name":"s_node_loop","path":"sprites/s_node_loop/s_node_loop.yy",},
"timeUnits": 1,
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"autoRecord": true,
"volume": 1.0,
"length": 1.0,
"events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore<MessageEventKeyframe>",},
"moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore<MomentsEventKeyframe>",},
"tracks": [
{"name":"frames","spriteId":null,"keyframes":{"Keyframes":[
{"id":"5a35088e-5c73-469a-a1ef-eccef5aaecce","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"1ac6820a-11e3-46a6-be15-03bab6868d56","path":"sprites/s_node_loop/s_node_loop.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe<SpriteFrameKeyframe>",},
],"resourceVersion":"1.0","resourceType":"KeyframeStore<SpriteFrameKeyframe>",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"resourceVersion":"1.0","tags":[],"resourceType":"GMSpriteFramesTrack","modifiers":[],},
],
"visibleRange": {"x":0.0,"y":0.0,},
"lockOrigin": false,
"showBackdrop": true,
"showBackdropImage": false,
"backdropImagePath": "",
"backdropImageOpacity": 0.5,
"backdropWidth": 1366,
"backdropHeight": 768,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"xorigin": 16,
"yorigin": 16,
"eventToFunction": {},
"eventStubScript": null,
"parent": {"name":"s_node_loop","path":"sprites/s_node_loop/s_node_loop.yy",},
"resourceVersion": "1.3",
"name": "s_node_loop",
"tags": [],
"resourceType": "GMSequence",
},
"layers": [
{"visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default","resourceVersion":"1.0","name":"28a778f1-a610-49f1-8bca-4be6215c6504","tags":[],"resourceType":"GMImageLayer",},
],
"nineSlice": null,
"parent": {
"name": "icons",
"path": "folders/nodes/icons.yy",
},
"resourceVersion": "1.0",
"name": "s_node_loop",
"tags": [],
"resourceType": "GMSprite",
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 626 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 742 B

View file

@ -8,14 +8,14 @@
"collisionTolerance": 0, "collisionTolerance": 0,
"swfPrecision": 2.525, "swfPrecision": 2.525,
"bbox_left": 0, "bbox_left": 0,
"bbox_right": 31, "bbox_right": 39,
"bbox_top": 0, "bbox_top": 0,
"bbox_bottom": 31, "bbox_bottom": 39,
"HTile": false, "HTile": false,
"VTile": false, "VTile": false,
"For3D": false, "For3D": false,
"width": 32, "width": 40,
"height": 32, "height": 40,
"textureGroupId": { "textureGroupId": {
"name": "Default", "name": "Default",
"path": "texturegroups/Default", "path": "texturegroups/Default",
@ -24,9 +24,9 @@
"gridX": 0, "gridX": 0,
"gridY": 0, "gridY": 0,
"frames": [ "frames": [
{"compositeImage":{"FrameId":{"name":"604a92a7-301f-4d97-9458-fb3556493573","path":"sprites/s_node_pin_bg_active/s_node_pin_bg_active.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[ {"compositeImage":{"FrameId":{"name":"9732a93b-d483-4e79-bede-d66327c3ff93","path":"sprites/s_node_pin_bg_active/s_node_pin_bg_active.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"604a92a7-301f-4d97-9458-fb3556493573","path":"sprites/s_node_pin_bg_active/s_node_pin_bg_active.yy",},"LayerId":{"name":"8e106beb-1be9-406e-954b-3a5f83ae687e","path":"sprites/s_node_pin_bg_active/s_node_pin_bg_active.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",}, {"FrameId":{"name":"9732a93b-d483-4e79-bede-d66327c3ff93","path":"sprites/s_node_pin_bg_active/s_node_pin_bg_active.yy",},"LayerId":{"name":"f239b3d3-5ebc-44b5-8261-e22fcc347486","path":"sprites/s_node_pin_bg_active/s_node_pin_bg_active.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"s_node_pin_bg_active","path":"sprites/s_node_pin_bg_active/s_node_pin_bg_active.yy",},"resourceVersion":"1.0","name":"604a92a7-301f-4d97-9458-fb3556493573","tags":[],"resourceType":"GMSpriteFrame",}, ],"parent":{"name":"s_node_pin_bg_active","path":"sprites/s_node_pin_bg_active/s_node_pin_bg_active.yy",},"resourceVersion":"1.0","name":"9732a93b-d483-4e79-bede-d66327c3ff93","tags":[],"resourceType":"GMSpriteFrame",},
], ],
"sequence": { "sequence": {
"spriteId": {"name":"s_node_pin_bg_active","path":"sprites/s_node_pin_bg_active/s_node_pin_bg_active.yy",}, "spriteId": {"name":"s_node_pin_bg_active","path":"sprites/s_node_pin_bg_active/s_node_pin_bg_active.yy",},
@ -41,7 +41,7 @@
"moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore<MomentsEventKeyframe>",}, "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore<MomentsEventKeyframe>",},
"tracks": [ "tracks": [
{"name":"frames","spriteId":null,"keyframes":{"Keyframes":[ {"name":"frames","spriteId":null,"keyframes":{"Keyframes":[
{"id":"9eeb162f-8b68-499f-8214-a3b5d1ff852f","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"604a92a7-301f-4d97-9458-fb3556493573","path":"sprites/s_node_pin_bg_active/s_node_pin_bg_active.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe<SpriteFrameKeyframe>",}, {"id":"f73a62f0-c920-4fc2-a716-dc0a607eb6a5","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"9732a93b-d483-4e79-bede-d66327c3ff93","path":"sprites/s_node_pin_bg_active/s_node_pin_bg_active.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe<SpriteFrameKeyframe>",},
],"resourceVersion":"1.0","resourceType":"KeyframeStore<SpriteFrameKeyframe>",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"resourceVersion":"1.0","tags":[],"resourceType":"GMSpriteFramesTrack","modifiers":[],}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore<SpriteFrameKeyframe>",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"resourceVersion":"1.0","tags":[],"resourceType":"GMSpriteFramesTrack","modifiers":[],},
], ],
"visibleRange": null, "visibleRange": null,
@ -54,8 +54,8 @@
"backdropHeight": 768, "backdropHeight": 768,
"backdropXOffset": 0.0, "backdropXOffset": 0.0,
"backdropYOffset": 0.0, "backdropYOffset": 0.0,
"xorigin": 16, "xorigin": 20,
"yorigin": 16, "yorigin": 20,
"eventToFunction": {}, "eventToFunction": {},
"eventStubScript": null, "eventStubScript": null,
"parent": {"name":"s_node_pin_bg_active","path":"sprites/s_node_pin_bg_active/s_node_pin_bg_active.yy",}, "parent": {"name":"s_node_pin_bg_active","path":"sprites/s_node_pin_bg_active/s_node_pin_bg_active.yy",},
@ -65,13 +65,13 @@
"resourceType": "GMSequence", "resourceType": "GMSequence",
}, },
"layers": [ "layers": [
{"visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default","resourceVersion":"1.0","name":"8e106beb-1be9-406e-954b-3a5f83ae687e","tags":[],"resourceType":"GMImageLayer",}, {"visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default","resourceVersion":"1.0","name":"f239b3d3-5ebc-44b5-8261-e22fcc347486","tags":[],"resourceType":"GMImageLayer",},
], ],
"nineSlice": { "nineSlice": {
"left": 15, "left": 19,
"top": 16, "top": 20,
"right": 16, "right": 20,
"bottom": 15, "bottom": 19,
"guideColour": [ "guideColour": [
4294902015, 4294902015,
4294902015, 4294902015,
@ -80,7 +80,7 @@
], ],
"highlightColour": 1728023040, "highlightColour": 1728023040,
"highlightStyle": 0, "highlightStyle": 0,
"enabled": true, "enabled": false,
"tileMode": [ "tileMode": [
0, 0,
0, 0,

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

View file

@ -0,0 +1,79 @@
{
"bboxMode": 0,
"collisionKind": 1,
"type": 0,
"origin": 4,
"preMultiplyAlpha": false,
"edgeFiltering": false,
"collisionTolerance": 0,
"swfPrecision": 2.525,
"bbox_left": 1,
"bbox_right": 30,
"bbox_top": 1,
"bbox_bottom": 30,
"HTile": false,
"VTile": false,
"For3D": false,
"width": 32,
"height": 32,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"swatchColours": null,
"gridX": 0,
"gridY": 0,
"frames": [
{"compositeImage":{"FrameId":{"name":"419fe86d-dec4-4a4c-9e22-5a30877d4901","path":"sprites/s_node_statistic/s_node_statistic.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"419fe86d-dec4-4a4c-9e22-5a30877d4901","path":"sprites/s_node_statistic/s_node_statistic.yy",},"LayerId":{"name":"d15005af-1cac-4443-8a8c-c2e55e3a9569","path":"sprites/s_node_statistic/s_node_statistic.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"s_node_statistic","path":"sprites/s_node_statistic/s_node_statistic.yy",},"resourceVersion":"1.0","name":"419fe86d-dec4-4a4c-9e22-5a30877d4901","tags":[],"resourceType":"GMSpriteFrame",},
],
"sequence": {
"spriteId": {"name":"s_node_statistic","path":"sprites/s_node_statistic/s_node_statistic.yy",},
"timeUnits": 1,
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"autoRecord": true,
"volume": 1.0,
"length": 1.0,
"events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore<MessageEventKeyframe>",},
"moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore<MomentsEventKeyframe>",},
"tracks": [
{"name":"frames","spriteId":null,"keyframes":{"Keyframes":[
{"id":"1c14fa29-6bf4-4e3f-b9d3-7313153e5651","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"419fe86d-dec4-4a4c-9e22-5a30877d4901","path":"sprites/s_node_statistic/s_node_statistic.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe<SpriteFrameKeyframe>",},
],"resourceVersion":"1.0","resourceType":"KeyframeStore<SpriteFrameKeyframe>",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"resourceVersion":"1.0","tags":[],"resourceType":"GMSpriteFramesTrack","modifiers":[],},
],
"visibleRange": {"x":0.0,"y":0.0,},
"lockOrigin": false,
"showBackdrop": true,
"showBackdropImage": false,
"backdropImagePath": "",
"backdropImageOpacity": 0.5,
"backdropWidth": 1366,
"backdropHeight": 768,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"xorigin": 16,
"yorigin": 16,
"eventToFunction": {},
"eventStubScript": null,
"parent": {"name":"s_node_statistic","path":"sprites/s_node_statistic/s_node_statistic.yy",},
"resourceVersion": "1.3",
"name": "s_node_statistic",
"tags": [],
"resourceType": "GMSequence",
},
"layers": [
{"visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default","resourceVersion":"1.0","name":"d15005af-1cac-4443-8a8c-c2e55e3a9569","tags":[],"resourceType":"GMImageLayer",},
],
"nineSlice": null,
"parent": {
"name": "icons",
"path": "folders/nodes/icons.yy",
},
"resourceVersion": "1.0",
"name": "s_node_statistic",
"tags": [],
"resourceType": "GMSprite",
}