Loop icon, add node parameters
|
@ -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_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_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_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,},
|
||||
|
@ -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_stripe","path":"sprites/s_node_stripe/s_node_stripe.yy",},"order":95,},
|
||||
{"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":"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,},
|
||||
|
@ -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":"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":"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":"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,},
|
||||
|
@ -443,6 +446,7 @@
|
|||
{"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":"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":"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,},
|
||||
|
@ -543,6 +547,7 @@
|
|||
{"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":"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":"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,},
|
||||
|
|
|
@ -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_set_text(f_p1, fa_center, fa_top, c_white);
|
||||
name_height = max(name_height, string_height_ext(_node.name, -1, grid_size) + 8);
|
||||
draw_text_ext(_boxx + grid_size / 2, yy + grid_size + 4, _node.name, -1, grid_width);
|
||||
var txt = _node.name;
|
||||
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)) {
|
||||
node_selecting = i;
|
||||
|
|
|
@ -1,6 +1,16 @@
|
|||
function Node_create_Blend(_x, _y) {
|
||||
function Node_create_Blend(_x, _y, _param = "") {
|
||||
var node = new Node_Blend(_x, _y);
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -182,9 +182,11 @@ function Node(_x, _y) constructor {
|
|||
}
|
||||
|
||||
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 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++) {
|
||||
|
@ -196,14 +198,17 @@ function Node(_x, _y) constructor {
|
|||
jun = inputs[| input_display_list[i]];
|
||||
}
|
||||
|
||||
jun.x = xx;
|
||||
jun.y = _in;
|
||||
_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++) {
|
||||
var jun = outputs[| i];
|
||||
|
||||
jun.x = xx;
|
||||
jun.y = _in;
|
||||
_in += 24 * _s * jun.isVisible();
|
||||
}
|
||||
|
@ -231,20 +236,16 @@ function Node(_x, _y) constructor {
|
|||
}
|
||||
|
||||
static drawJunctions = function(_x, _y, _mx, _my, _s) {
|
||||
var ss = max(0.25, _s / 2);
|
||||
var xx = x * _s + _x;
|
||||
var hover = noone;
|
||||
|
||||
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_ot = show_output_name;
|
||||
var _draw_cc = c_white;
|
||||
|
||||
show_input_name = false;
|
||||
show_output_name = false;
|
||||
|
||||
var jx = xx;
|
||||
for(var i = 0; i < amo; i++) {
|
||||
if(input_display_list == -1)
|
||||
jun = inputs[| i];
|
||||
|
@ -254,47 +255,18 @@ function Node(_x, _y) constructor {
|
|||
jun = inputs[| input_display_list[i]];
|
||||
}
|
||||
|
||||
var jy = jun.y;
|
||||
|
||||
if(jun.isVisible()) {
|
||||
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);
|
||||
}
|
||||
if(jun.drawJunction(_s, _mx, _my, _show_in)) {
|
||||
show_input_name = true;
|
||||
hover = jun;
|
||||
}
|
||||
}
|
||||
|
||||
var jx = xx + w * _s;
|
||||
for(var i = 0; i < ds_list_size(outputs); i++) {
|
||||
var jun = outputs[| i];
|
||||
|
||||
if(jun.isVisible()) {
|
||||
var jy = jun.y;
|
||||
|
||||
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);
|
||||
}
|
||||
if(jun.drawJunction(_s, _mx, _my, _show_ot)) {
|
||||
show_output_name = true;
|
||||
hover = jun;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -302,15 +274,14 @@ function Node(_x, _y) constructor {
|
|||
}
|
||||
|
||||
static drawConnections = function(_x, _y, mx, my, _s) {
|
||||
var xx = x * _s + _x;
|
||||
var hovering = noone;
|
||||
for(var i = 0; i < ds_list_size(inputs); i++) {
|
||||
var jun = inputs[| i];
|
||||
var jx = xx;
|
||||
var jx = jun.x;
|
||||
var jy = jun.y;
|
||||
|
||||
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 c0 = value_color(jun.value_from.type);
|
||||
|
@ -341,6 +312,7 @@ function Node(_x, _y) constructor {
|
|||
}
|
||||
|
||||
static drawPreview = function(_node, xx, yy, _s) {
|
||||
if(_node.type != VALUE_TYPE.surface) return;
|
||||
var surf = _node.getValue();
|
||||
if(is_array(surf)) {
|
||||
if(array_length(surf) == 0) return;
|
||||
|
@ -380,11 +352,11 @@ function Node(_x, _y) constructor {
|
|||
unit = "us";
|
||||
draw_set_color(c_ui_lime);
|
||||
} else if(render_time < 1000000) {
|
||||
rt = round(render_time / 1000);
|
||||
rt = string_format(render_time / 1000, -1, 2);
|
||||
unit = "ms";
|
||||
draw_set_color(c_ui_orange);
|
||||
} else {
|
||||
rt = round(render_time / 1000000);
|
||||
rt = string_format(render_time / 1000000, -1, 2);
|
||||
unit = "s";
|
||||
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 destroy = function() {
|
||||
static destroy = function(_merge = false) {
|
||||
active = false;
|
||||
if(PANEL_GRAPH.node_hover == self) PANEL_GRAPH.node_hover = 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++) {
|
||||
var jun = outputs[| i];
|
||||
|
||||
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();
|
||||
|
|
|
@ -7,7 +7,7 @@ function Node_create_Iterate(_x, _y) {
|
|||
function Node_Iterate(_x, _y) : Node_Collection(_x, _y) constructor {
|
||||
name = "Loop";
|
||||
color = c_ui_lime;
|
||||
icon = s_group_16;
|
||||
icon = s_loop_16;
|
||||
|
||||
iterated = 0;
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ function Node_Pin(_x, _y) : Node(_x, _y) constructor {
|
|||
auto_height = false;
|
||||
junction_shift_y = 16;
|
||||
previewable = false;
|
||||
|
||||
bg_spr = s_node_pin_bg;
|
||||
bg_sel_spr = s_node_pin_bg_active;
|
||||
|
||||
|
@ -27,13 +28,42 @@ function Node_Pin(_x, _y) : Node(_x, _y) constructor {
|
|||
}
|
||||
doUpdate();
|
||||
|
||||
static drawNodeBase = function(xx, yy, _s) {
|
||||
if(w * _s > 32) {
|
||||
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 {
|
||||
draw_sprite_stretched_ext(s_node_pin_bg_s, 0, xx, yy, w * _s, h * _s, color, 0.75);
|
||||
bg_sel_spr = s_node_pin_bg_active_s;
|
||||
static pointIn = function(_mx, _my) {
|
||||
return point_in_circle(_mx, _my, x, y, 24);
|
||||
}
|
||||
|
||||
static preDraw = function(_x, _y, _s) {
|
||||
var xx = x * _s + _x;
|
||||
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);
|
||||
}
|
||||
}
|
|
@ -85,7 +85,7 @@ function NodeObject(_name, _spr, _create, tags = []) constructor {
|
|||
|
||||
var filter = ds_list_create();
|
||||
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, "Erode", s_node_erode, "Node_Erode", Node_create_Erode);
|
||||
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();
|
||||
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, "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 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);
|
||||
|
@ -195,13 +196,12 @@ function NodeObject(_name, _spr, _create, tags = []) constructor {
|
|||
|
||||
var node = ds_list_create();
|
||||
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, "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, "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
|
||||
|
||||
#region node function
|
||||
|
@ -228,10 +228,10 @@ function NodeObject(_name, _spr, _create, tags = []) constructor {
|
|||
return _node;
|
||||
}
|
||||
|
||||
function nodeDelete(node) {
|
||||
function nodeDelete(node, _merge = false) {
|
||||
var list = node.group == -1? NODES : node.group.nodes;
|
||||
ds_list_delete(list, ds_list_find_index(list, node));
|
||||
node.destroy();
|
||||
node.destroy(_merge);
|
||||
|
||||
recordAction(ACTION_TYPE.node_delete, node);
|
||||
}
|
||||
|
|
12
scripts/node_statistic/node_counter.yy
Normal 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",
|
||||
}
|
164
scripts/node_statistic/node_statistic.gml
Normal 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);
|
||||
}
|
||||
}
|
12
scripts/node_statistic/node_statistic.yy
Normal 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",
|
||||
}
|
|
@ -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 {
|
||||
name = _name;
|
||||
node = _node;
|
||||
x = node.x;
|
||||
y = node.y;
|
||||
index = _index;
|
||||
type = _type;
|
||||
|
@ -542,9 +543,9 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T
|
|||
return true;
|
||||
}
|
||||
|
||||
static removeFrom = function() {
|
||||
static removeFrom = function(_remove_list = true) {
|
||||
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);
|
||||
value_from = noone;
|
||||
|
||||
|
@ -594,9 +595,11 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T
|
|||
}
|
||||
}
|
||||
|
||||
static checkConnection = function() {
|
||||
if(value_from && !value_from.node.active)
|
||||
removeFrom();
|
||||
static checkConnection = function(_remove_list = true) {
|
||||
if(value_from == noone) return;
|
||||
if(value_from.node.active) return;
|
||||
|
||||
removeFrom(_remove_list);
|
||||
}
|
||||
|
||||
static searchNodeBackward = function(_node) {
|
||||
|
@ -939,6 +942,36 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T
|
|||
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() {
|
||||
if(!node.active) return false;
|
||||
return value_from || ( visible && show_in_inspector );
|
||||
|
|
|
@ -100,11 +100,11 @@ function Panel_Graph(_panel) : PanelContent(_panel) constructor {
|
|||
|
||||
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() {
|
||||
var gr_x = graph_x * graph_s;
|
||||
var gr_y = graph_y * graph_s;
|
||||
var gr_x = graph_x * graph_s; var gr_y = graph_y * graph_s;
|
||||
var m_x = (mx - gr_x) / graph_s;
|
||||
var m_y = (my - gr_y) / graph_s;
|
||||
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);
|
||||
}
|
||||
|
||||
#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
|
||||
node_hovering = noone;
|
||||
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;
|
||||
|
||||
#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++) {
|
||||
var n = nodes_list[| i];
|
||||
if(instanceof(n) == "Node_Frame") continue;
|
||||
|
@ -459,20 +462,32 @@ function Panel_Graph(_panel) : PanelContent(_panel) constructor {
|
|||
}
|
||||
#endregion
|
||||
|
||||
if(FOCUS == panel && node_focus && value_focus == noone) {
|
||||
if(mouse_check_button_pressed(mb_left) && !keyboard_check(vk_control)) {
|
||||
node_dragging = node_focus;
|
||||
node_drag_mx = mouse_graph_x;
|
||||
node_drag_my = mouse_graph_y;
|
||||
node_drag_sx = node_focus.x;
|
||||
node_drag_sy = node_focus.y;
|
||||
if(FOCUS == panel) {
|
||||
if(node_focus && value_focus == noone) {
|
||||
if(mouse_check_button_pressed(mb_left) && !keyboard_check(vk_control)) {
|
||||
node_dragging = node_focus;
|
||||
node_drag_mx = mouse_graph_x;
|
||||
node_drag_my = mouse_graph_y;
|
||||
node_drag_sx = node_focus.x;
|
||||
node_drag_sy = node_focus.y;
|
||||
|
||||
node_drag_ox = -1;
|
||||
node_drag_oy = -1;
|
||||
node_drag_ox = -1;
|
||||
node_drag_oy = -1;
|
||||
}
|
||||
|
||||
if(keyboard_check_pressed(vk_f5)) {
|
||||
node_focus.updateForward();
|
||||
}
|
||||
}
|
||||
|
||||
if(keyboard_check_pressed(vk_f5)) {
|
||||
node_focus.updateForward();
|
||||
if(DOUBLE_CLICK && junction_hovering != noone) {
|
||||
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]);
|
||||
}
|
||||
|
||||
function doDelete() {
|
||||
function doDelete(_merge = false) {
|
||||
if(node_focus != noone)
|
||||
nodeDelete(node_focus);
|
||||
nodeDelete(node_focus, _merge);
|
||||
|
||||
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);
|
||||
}
|
||||
|
@ -771,10 +786,9 @@ function Panel_Graph(_panel) : PanelContent(_panel) constructor {
|
|||
|
||||
function drawJunctionConnect() {
|
||||
if(value_dragging) {
|
||||
draw_set_color(c_ui_orange);
|
||||
var xx = value_dragging.node.x + graph_x + (value_dragging.connect_type == JUNCTION_CONNECT.input? 0 : value_dragging.node.w);
|
||||
xx *= graph_s;
|
||||
draw_set_color(value_color(value_dragging.type));
|
||||
|
||||
var xx = value_dragging.x;
|
||||
var yy = value_dragging.y;
|
||||
|
||||
if(PREF_MAP[? "curve_connection_line"])
|
||||
|
|
BIN
sprites/s_group_16/f519baa7-5340-4119-a1d4-d04fdc3ad6c4.png
Normal file
After Width: | Height: | Size: 132 B |
Before Width: | Height: | Size: 181 B |
After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 178 B |
|
@ -24,9 +24,9 @@
|
|||
"gridX": 0,
|
||||
"gridY": 0,
|
||||
"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":[
|
||||
{"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",},
|
||||
],"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",},
|
||||
{"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":"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":"f519baa7-5340-4119-a1d4-d04fdc3ad6c4","tags":[],"resourceType":"GMSpriteFrame",},
|
||||
],
|
||||
"sequence": {
|
||||
"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>",},
|
||||
"tracks": [
|
||||
{"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":[],},
|
||||
],
|
||||
"visibleRange": null,
|
||||
|
@ -65,7 +65,7 @@
|
|||
"resourceType": "GMSequence",
|
||||
},
|
||||
"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,
|
||||
"parent": {
|
||||
|
|
BIN
sprites/s_loop_16/ea8927d0-67c9-4828-900b-5254f57c0caf.png
Normal file
After Width: | Height: | Size: 189 B |
After Width: | Height: | Size: 196 B |
79
sprites/s_loop_16/s_loop_16.yy
Normal 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",
|
||||
}
|
BIN
sprites/s_node_group/3abce66a-8e22-4146-94d6-07b9273b37f4.png
Normal file
After Width: | Height: | Size: 554 B |
After Width: | Height: | Size: 525 B |
79
sprites/s_node_group/s_node_group.yy
Normal 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",
|
||||
}
|
BIN
sprites/s_node_loop/1ac6820a-11e3-46a6-be15-03bab6868d56.png
Normal file
After Width: | Height: | Size: 612 B |
After Width: | Height: | Size: 588 B |
79
sprites/s_node_loop/s_node_loop.yy
Normal 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",
|
||||
}
|
Before Width: | Height: | Size: 626 B |
After Width: | Height: | Size: 742 B |
Before Width: | Height: | Size: 630 B |
After Width: | Height: | Size: 749 B |
|
@ -8,14 +8,14 @@
|
|||
"collisionTolerance": 0,
|
||||
"swfPrecision": 2.525,
|
||||
"bbox_left": 0,
|
||||
"bbox_right": 31,
|
||||
"bbox_right": 39,
|
||||
"bbox_top": 0,
|
||||
"bbox_bottom": 31,
|
||||
"bbox_bottom": 39,
|
||||
"HTile": false,
|
||||
"VTile": false,
|
||||
"For3D": false,
|
||||
"width": 32,
|
||||
"height": 32,
|
||||
"width": 40,
|
||||
"height": 40,
|
||||
"textureGroupId": {
|
||||
"name": "Default",
|
||||
"path": "texturegroups/Default",
|
||||
|
@ -24,9 +24,9 @@
|
|||
"gridX": 0,
|
||||
"gridY": 0,
|
||||
"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":[
|
||||
{"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",},
|
||||
],"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",},
|
||||
{"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":"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":"9732a93b-d483-4e79-bede-d66327c3ff93","tags":[],"resourceType":"GMSpriteFrame",},
|
||||
],
|
||||
"sequence": {
|
||||
"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>",},
|
||||
"tracks": [
|
||||
{"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":[],},
|
||||
],
|
||||
"visibleRange": null,
|
||||
|
@ -54,8 +54,8 @@
|
|||
"backdropHeight": 768,
|
||||
"backdropXOffset": 0.0,
|
||||
"backdropYOffset": 0.0,
|
||||
"xorigin": 16,
|
||||
"yorigin": 16,
|
||||
"xorigin": 20,
|
||||
"yorigin": 20,
|
||||
"eventToFunction": {},
|
||||
"eventStubScript": null,
|
||||
"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",
|
||||
},
|
||||
"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": {
|
||||
"left": 15,
|
||||
"top": 16,
|
||||
"right": 16,
|
||||
"bottom": 15,
|
||||
"left": 19,
|
||||
"top": 20,
|
||||
"right": 20,
|
||||
"bottom": 19,
|
||||
"guideColour": [
|
||||
4294902015,
|
||||
4294902015,
|
||||
|
@ -80,7 +80,7 @@
|
|||
],
|
||||
"highlightColour": 1728023040,
|
||||
"highlightStyle": 0,
|
||||
"enabled": true,
|
||||
"enabled": false,
|
||||
"tileMode": [
|
||||
0,
|
||||
0,
|
||||
|
|
After Width: | Height: | Size: 302 B |
After Width: | Height: | Size: 295 B |
79
sprites/s_node_statistic/s_node_statistic.yy
Normal 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",
|
||||
}
|