diff --git a/datafiles/data/Nodes/Internal.zip b/datafiles/data/Nodes/Internal.zip index 65c896c46..0629f937d 100644 Binary files a/datafiles/data/Nodes/Internal.zip and b/datafiles/data/Nodes/Internal.zip differ diff --git a/datafiles/data/Theme.zip b/datafiles/data/Theme.zip index 62e1d6cb8..c0ec27ba9 100644 Binary files a/datafiles/data/Theme.zip and b/datafiles/data/Theme.zip differ diff --git a/objects/o_dialog_add_node/Create_0.gml b/objects/o_dialog_add_node/Create_0.gml index 202a240ec..6c51fb6c8 100644 --- a/objects/o_dialog_add_node/Create_0.gml +++ b/objects/o_dialog_add_node/Create_0.gml @@ -160,14 +160,16 @@ event_inherited(); array_push(node_list, "Favourites"); var _favs = struct_get_names(global.FAV_NODES); + var _fvnd = []; for( var i = 0, n = array_length(_favs); i < n; i++ ) { var _nodeIndex = _favs[i]; if(!struct_has(ALL_NODES, _nodeIndex)) continue; var _node = ALL_NODES[$ _nodeIndex]; - if(_node.show_in_recent) - array_push(node_list, _node); + if(_node.show_in_recent) array_push(_fvnd, _node); } + array_sort(_fvnd, function(v1, v2) /*=>*/ {return string_compare(v1.name, v2.name)}); + for( var i = 0, n = array_length(_fvnd); i < n; i++ ) array_push(node_list, _fvnd[i]); array_push(node_list, "Recents"); if(is_array(global.RECENT_NODES)) @@ -304,7 +306,7 @@ event_inherited(); if(junction_called == noone) return; - //connect to called junction + // connect to called junction var _call_input = junction_called.connect_type == CONNECT_TYPE.input; var _from = junction_called.value_from; var _junc_list = _call_input? _outputs : _inputs; diff --git a/objects/o_dialog_group_input_order/Create_0.gml b/objects/o_dialog_group_input_order/Create_0.gml index 67f753639..ebf6f6069 100644 --- a/objects/o_dialog_group_input_order/Create_0.gml +++ b/objects/o_dialog_group_input_order/Create_0.gml @@ -37,7 +37,7 @@ event_inherited(); #region content sc_group = new scrollPane(dialog_w - ui(padding + padding), dialog_h - ui(title_height + padding), function(_y, _m) { - draw_clear_alpha(COLORS.panel_bg_clear, 0); + draw_clear_alpha(COLORS.panel_bg_clear_inner, 1); if(node == noone) return 0; var _h = 0; diff --git a/objects/o_dialog_group_output_order/Create_0.gml b/objects/o_dialog_group_output_order/Create_0.gml index e3820bcaa..b18b388ff 100644 --- a/objects/o_dialog_group_output_order/Create_0.gml +++ b/objects/o_dialog_group_output_order/Create_0.gml @@ -22,7 +22,7 @@ event_inherited(); #region content sc_group = new scrollPane(dialog_w - ui(padding + padding), dialog_h - ui(title_height + padding), function(_y, _m) { - draw_clear_alpha(COLORS.panel_bg_clear, 0); + draw_clear_alpha(COLORS.panel_bg_clear_inner, 1); if(node == noone) return 0; var _h = 0; diff --git a/scripts/__VFX/__VFX.gml b/scripts/__VFX/__VFX.gml index 77e094478..a47a3710f 100644 --- a/scripts/__VFX/__VFX.gml +++ b/scripts/__VFX/__VFX.gml @@ -138,8 +138,7 @@ function __part(_node) : __particleObject() constructor { static reset = function() { INLINE - surf = noone; - + surf = noone; prevx = undefined; prevy = undefined; } @@ -152,8 +151,8 @@ function __part(_node) : __particleObject() constructor { x = _x; y = _y; - drawx = undefined; - drawy = undefined; + drawx = undefined; + drawy = undefined; anim_len = is_array(surf)? array_length(surf) : 1; @@ -247,13 +246,13 @@ function __part(_node) : __particleObject() constructor { node.onPartDestroy(self); } - static step = function(frame = 0) { + static step = function(_frame = 0) { INLINE trailLife++; if(!active) return; x += speedx; - self.frame = frame; + frame = _frame; random_set_seed(seed + life); @@ -361,10 +360,12 @@ function __part(_node) : __particleObject() constructor { case ANIM_END_ACTION.loop: ss = surf[safe_mod(ind, anim_len)]; break; + case ANIM_END_ACTION.pingpong: var ping = safe_mod(ind, (anim_len - 1) * 2 + 1); ss = surf[ping >= anim_len? (anim_len - 1) * 2 - ping : ping]; break; + case ANIM_END_ACTION.destroy: if(ind >= anim_len) { kill(); @@ -435,9 +436,8 @@ function __part(_node) : __particleObject() constructor { var _s = shader_current(); shader_reset(); - draw_set_color(cc); - draw_set_alpha(alp_draw); - dynaSurf_circle_fill(_xx, _yy, exact? round(ss) : ss); + draw_set_color_alpha(cc, alp_draw); + dynaSurf_circle_fill(round(_xx), round(_yy), exact? round(ss) : ss); draw_set_alpha(1); shader_set(_s); diff --git a/scripts/__shapes/__shapes.gml b/scripts/__shapes/__shapes.gml index 3b31b637f..babe4de56 100644 --- a/scripts/__shapes/__shapes.gml +++ b/scripts/__shapes/__shapes.gml @@ -6,21 +6,65 @@ enum SHAPE_TYPE { rectangle } -function SHAPE_rectangle(_sca) { - var triangles = [ - [ new __vec2(-_sca[0], -_sca[1]), new __vec2(-_sca[0], _sca[1]), new __vec2( _sca[0], -_sca[1]), c_white ], - [ new __vec2( _sca[0], -_sca[1]), new __vec2(-_sca[0], _sca[1]), new __vec2( _sca[0], _sca[1]), c_white ], - ]; - var segment = [ new __vec2(-_sca[0], -_sca[1]), new __vec2( _sca[0], -_sca[1]), - new __vec2( _sca[0], _sca[1]), new __vec2(-_sca[0], _sca[1]), - new __vec2(-_sca[0], -_sca[1]) ]; +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +function SHAPE_rectangle(_sca, data = {}) { + var w = _sca[0], h = _sca[1]; - return [ - [ { type: SHAPE_TYPE.rectangle, triangles: triangles } ], - segment - ]; + var triangles = [ [ new __vec2(-w, -h), new __vec2(-w, h), new __vec2( w, -h), c_white ], + [ new __vec2( w, -h), new __vec2(-w, h), new __vec2( w, h), c_white ], ]; + var segment = [ new __vec2(-w, -h), new __vec2(w, -h), new __vec2(w, h), new __vec2(-w, h), new __vec2(-w, -h) ]; + + return [ [ { type: SHAPE_TYPE.rectangle, triangles: triangles } ], segment ]; } +function SHAPE_diamond(_sca, data = {}) { + var w = _sca[0], h = _sca[1]; + + var triangles = [ [ new __vec2( 0, 0), new __vec2( w, 0), new __vec2( 0, -h), c_white ], + [ new __vec2( 0, 0), new __vec2( 0, -h), new __vec2(-w, 0), c_white ], + [ new __vec2( 0, 0), new __vec2(-w, 0), new __vec2( 0, h), c_white ], + [ new __vec2( 0, 0), new __vec2( 0, h), new __vec2( w, 0), c_white ], ]; + var segment = [ new __vec2(w, 0), new __vec2(0, -h), new __vec2(-w, 0), new __vec2(0, h), new __vec2(w, 0) ]; + + return [ [ { type: SHAPE_TYPE.rectangle, triangles: triangles } ], segment ]; +} + +function SHAPE_trapezoid(_sca, data = {}) { + var w = _sca[0], h = _sca[1]; + var v = w * data.trep; + + var triangles = [ [ new __vec2(-v, -h), new __vec2(-w, h), new __vec2( v, -h), c_white ], + [ new __vec2( v, -h), new __vec2(-w, h), new __vec2( w, h), c_white ], ]; + var segment = [ new __vec2(-v, -h), new __vec2(v, -h), new __vec2(w, h), new __vec2(-w, h), new __vec2(-v, -h) ]; + + return [ [ { type: SHAPE_TYPE.rectangle, triangles: triangles } ], segment ]; +} + +function SHAPE_parallelogram(_sca, data = {}) { + var w = _sca[0], h = _sca[1]; + var a = data.palAng; + + var x0 = -w, x1 = w; + var x2 = -w, x3 = w; + + if(a > 0) { + x0 = lerp(w, -w, 1 - abs(a)); + x3 = lerp(-w, w, 1 - abs(a)); + } else { + x2 = lerp(w, -w, 1 - abs(a)); + x1 = lerp(-w, w, 1 - abs(a)); + } + + var triangles = [ [ new __vec2(x0, -h), new __vec2(x2, h), new __vec2(x1, -h), c_white ], + [ new __vec2(x1, -h), new __vec2(x2, h), new __vec2(x3, h), c_white ], ]; + var segment = [ new __vec2(x0, -h), new __vec2(x1, -h), new __vec2(x3, h), new __vec2(x2, h), new __vec2(x0, -h) ]; + + return [ [ { type: SHAPE_TYPE.rectangle, triangles: triangles } ], segment ]; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + function SHAPE_circle(_sca, data = {}) { var prec = max(3, data.side); var ang = 360 / prec; @@ -47,238 +91,43 @@ function SHAPE_circle(_sca, data = {}) { segment[i + 1] = new __vec2(x1, y1); } - return [ - [{ type: SHAPE_TYPE.triangles, triangles: triangles }], - segment - ]; -} - -function SHAPE_star(_sca, data = {}) { - var prec = max(3, data.side); - var inner = data.inner; - var triangles = []; - var segment = []; - - for( var i = 0; i < prec; i++ ) { - var otx = lengthdir_x(0.5, i / prec * 360) * _sca[0] * 2; - var oty = lengthdir_y(0.5, i / prec * 360) * _sca[1] * 2; - - var inx = lengthdir_x(inner / 2, (i + 0.5) / prec * 360) * _sca[0] * 2; - var iny = lengthdir_y(inner / 2, (i + 0.5) / prec * 360) * _sca[1] * 2; - array_push(triangles, [ new __vec2(0, 0), new __vec2(otx, oty), new __vec2(inx, iny), c_white ]); - - var pi0 = new __vec2(inx, iny); - - var inx = lengthdir_x(inner / 2, (i - 0.5) / prec * 360) * _sca[0] * 2; - var iny = lengthdir_y(inner / 2, (i - 0.5) / prec * 360) * _sca[1] * 2; - array_push(triangles, [ new __vec2(0, 0), new __vec2(inx, iny), new __vec2(otx, oty), c_white ]); - - array_push(segment, new __vec2(inx, iny)); - array_push(segment, new __vec2(otx, oty)); - array_push(segment, pi0); - } - - return [ - [{ type: SHAPE_TYPE.triangles, triangles: triangles }], - segment - ]; -} - -function SHAPE_capsule(_sca, data = {}) { - var rad = data.radius; - var prec = max(2, data.side); - var hh = _sca[1] * rad; - var shapes = []; - var segment = []; - array_push(segment, new __vec2(-_sca[0] + _sca[1], _sca[1]), new __vec2( _sca[0] - hh, hh)); - - var triangles = [ - [ new __vec2(-_sca[0] + _sca[1], -_sca[1]), new __vec2(-_sca[0] + _sca[1], _sca[1]), new __vec2(_sca[0] - hh, -hh), c_white ], - [ new __vec2(_sca[0] - hh, -hh), new __vec2(-_sca[0] + _sca[1], _sca[1]), new __vec2(_sca[0] - hh, hh), c_white ], - ]; - shapes[0] = { type: SHAPE_TYPE.rectangle, triangles: triangles }; - - var triangles = []; - var cx = -_sca[0] + _sca[1]; - var cy = 0; - var ox, oy, nx, ny, oa, na; - for( var i = 0; i <= prec; i++ ) { - na = lerp(270, 90, i / prec); - nx = cx + lengthdir_x(_sca[1], na); - ny = cy + lengthdir_y(_sca[1], na); - - if(i) { - array_push(triangles, [ new __vec2(cx, cy), new __vec2(nx, ny), new __vec2(ox, oy), c_white ]); - array_push(segment, new __vec2(ox, oy)); - } - array_push(segment, new __vec2(nx, ny)); - - oa = na; - ox = nx; - oy = ny; - } - - array_push(segment, new __vec2(-_sca[0] + _sca[1], -_sca[1]), new __vec2( _sca[0] - hh, -hh)); - shapes[1] = { type: SHAPE_TYPE.triangles, triangles: triangles }; - - var triangles = []; - var cx = _sca[0] - hh; - var cy = 0; - var ox, oy, nx, ny, oa, na; - var _seg = []; - for( var i = 0; i <= prec; i++ ) { - na = lerp(-90, 90, i / prec); - nx = cx + lengthdir_x(hh, na); - ny = cy + lengthdir_y(hh, na); - - if(i) { - array_push(triangles, [ new __vec2(cx, cy), new __vec2(ox, oy), new __vec2(nx, ny), c_white ]); - array_push(_seg, new __vec2(ox, oy)); - } - array_push(_seg, new __vec2(nx, ny)); - - oa = na; - ox = nx; - oy = ny; - } - - for( var i = 0, n = array_length(_seg); i < n; i++ ) - array_push(segment, _seg[array_length(_seg) - i - 1]); - - shapes[2] = { type: SHAPE_TYPE.triangles, triangles: triangles }; - - return [ - shapes, - segment - ]; + return [ [{ type: SHAPE_TYPE.triangles, triangles: triangles }], segment ]; } function SHAPE_ring(_sca, data = {}) { - var prec = max(3, data.side); - var inner = data.inner; + var w = _sca[0], h = _sca[1]; + var s = max(3, data.side); + var ow = w; + var oh = h; + var iw = w * data.inner; + var ih = h * data.inner; + var an = 360 / s; + var triangles = []; var segment = []; - for( var i = 0; i < prec; i++ ) { - var ix0 = lengthdir_x(0.5 * inner, i / prec * 360) * _sca[0] * 2; - var iy0 = lengthdir_y(0.5 * inner, i / prec * 360) * _sca[1] * 2; + for( var i = 0; i < s; i++ ) { + var a0 = i * an; + var a1 = a0 + an; - var nx0 = lengthdir_x(0.5, i / prec * 360) * _sca[0] * 2; - var ny0 = lengthdir_y(0.5, i / prec * 360) * _sca[1] * 2; + var ix0 = lengthdir_x(iw, a0); + var iy0 = lengthdir_y(ih, a0); + var ix1 = lengthdir_x(iw, a1); + var iy1 = lengthdir_y(ih, a1); - var ix1 = lengthdir_x(0.5 * inner, (i + 1) / prec * 360) * _sca[0] * 2; - var iy1 = lengthdir_y(0.5 * inner, (i + 1) / prec * 360) * _sca[1] * 2; + var ox0 = lengthdir_x(ow, a0); + var oy0 = lengthdir_y(oh, a0); + var ox1 = lengthdir_x(ow, a1); + var oy1 = lengthdir_y(oh, a1); - var nx1 = lengthdir_x(0.5, (i + 1) / prec * 360) * _sca[0] * 2; - var ny1 = lengthdir_y(0.5, (i + 1) / prec * 360) * _sca[1] * 2; + array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(ox0, oy0), new __vec2(ox1, oy1), c_white ]); + array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(ox1, oy1), new __vec2(ix1, iy1), c_white ]); - array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(nx0, ny0), new __vec2(nx1, ny1), c_white ]); - array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(nx1, ny1), new __vec2(ix1, iy1), c_white ]); - - if(i == 0) - array_push(segment, new __vec2(nx0, ny0)); - array_push(segment, new __vec2(nx1, ny1)); + if(i == 0) array_push(segment, new __vec2(ox0, oy0)); + array_push(segment, new __vec2(ox1, oy1)); } - return [ - [{ type: SHAPE_TYPE.rectangle, triangles: triangles }], - segment - ]; -} - -function SHAPE_gear(_sca, data = {}) { - var teeth = max(3, data.teeth); - var teethH = data.teethH; - var teethT = data.teethT; - var prec = teeth * 2; - var inner = data.inner; - var body = 0.5 * (1 - teethH); - var teth = 0.5 * teethH; - var triangles = []; - var segment = []; - - for( var i = 0; i < prec; i++ ) { - var ix0 = lengthdir_x(body * inner, i / prec * 360) * _sca[0] * 2; - var iy0 = lengthdir_y(body * inner, i / prec * 360) * _sca[1] * 2; - - var nx0 = lengthdir_x(body, i / prec * 360) * _sca[0] * 2; - var ny0 = lengthdir_y(body, i / prec * 360) * _sca[1] * 2; - - var ix1 = lengthdir_x(body * inner, (i + 1) / prec * 360) * _sca[0] * 2; - var iy1 = lengthdir_y(body * inner, (i + 1) / prec * 360) * _sca[1] * 2; - - var nx1 = lengthdir_x(body, (i + 1) / prec * 360) * _sca[0] * 2; - var ny1 = lengthdir_y(body, (i + 1) / prec * 360) * _sca[1] * 2; - - array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(nx0, ny0), new __vec2(nx1, ny1), c_white ]); - array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(nx1, ny1), new __vec2(ix1, iy1), c_white ]); - - if(i == 0) - array_push(segment, new __vec2(nx0, ny0)); - - if(i % 2) { - var tx0 = nx0 + lengthdir_x(teth, (i + 0.5 - teethT) / prec * 360) * _sca[0] * 2; - var ty0 = ny0 + lengthdir_y(teth, (i + 0.5 - teethT) / prec * 360) * _sca[1] * 2; - - var tx1 = nx1 + lengthdir_x(teth, (i + 0.5 + teethT) / prec * 360) * _sca[0] * 2; - var ty1 = ny1 + lengthdir_y(teth, (i + 0.5 + teethT) / prec * 360) * _sca[1] * 2; - - array_push(triangles, [ new __vec2(tx0, ty0), new __vec2(nx1, ny1), new __vec2(nx0, ny0), c_white ]); - array_push(triangles, [ new __vec2(tx0, ty0), new __vec2(tx1, ty1), new __vec2(nx1, ny1), c_white ]); - - array_push(segment, new __vec2(tx0, ty0)); - array_push(segment, new __vec2(tx1, ty1)); - } - - array_push(segment, new __vec2(nx1, ny1)); - } - - return [ - [{ type: SHAPE_TYPE.rectangle, triangles: triangles }], - segment - ]; -} - -function SHAPE_cross(_sca, data = {}) { - var inner = data.inner; - var triangles = []; - var segment = []; - var side = min(_sca[0], _sca[1]) * inner; - - array_push(triangles, - [ new __vec2(-side, -side), new __vec2(-side, side), new __vec2( side, -side), c_white ], - [ new __vec2( side, -side), new __vec2(-side, side), new __vec2( side, side), c_white ], - ); - - array_push(triangles, //top - [ new __vec2(-side, -side), new __vec2( side, -side), new __vec2(-side, -_sca[1]), c_white ], - [ new __vec2( side, -side), new __vec2( side, -_sca[1]), new __vec2(-side, -_sca[1]), c_white ], - ); - - array_push(triangles, //bottom - [ new __vec2(-side, _sca[1]), new __vec2( side, _sca[1]), new __vec2(-side, side), c_white ], - [ new __vec2( side, _sca[1]), new __vec2( side, side), new __vec2(-side, side), c_white ], - ); - - array_push(triangles, //left - [ new __vec2( -side, -side), new __vec2(-_sca[0], -side), new __vec2(-side, side), c_white ], - [ new __vec2(-_sca[0], -side), new __vec2(-_sca[0], side), new __vec2(-side, side), c_white ], - ); - - array_push(triangles, //right - [ new __vec2(_sca[0], -side), new __vec2( side, -side), new __vec2(_sca[0], side), c_white ], - [ new __vec2( side, -side), new __vec2( side, side), new __vec2(_sca[0], side), c_white ], - ); - - array_push(segment, new __vec2(-side, -side), new __vec2(-side, -_sca[1]), new __vec2( side, -_sca[1]), new __vec2(side, -side) ); - array_push(segment, new __vec2( _sca[0], -side), new __vec2( _sca[0], side), new __vec2( side, side)); - array_push(segment, new __vec2( side, _sca[1]), new __vec2(-side, _sca[1]), new __vec2(-side, side)); - array_push(segment, new __vec2(-_sca[0], side), new __vec2(-_sca[0], -side), new __vec2(-side, -side)); - - return [ - [{ type: SHAPE_TYPE.rectangle, triangles: triangles }], - segment - ]; + return [ [{ type: SHAPE_TYPE.rectangle, triangles: triangles }], segment ]; } function SHAPE_arc(_sca, data = {}) { @@ -368,8 +217,351 @@ function SHAPE_arc(_sca, data = {}) { array_push(segment, sgArcI[0].clone()); } - return [ - [{ type: SHAPE_TYPE.rectangle, triangles: triangles }], - segment - ]; + return [ [{ type: SHAPE_TYPE.rectangle, triangles: triangles }], segment ]; +} + +function SHAPE_crescent(_sca, data = {}) { + var w = _sca[0], h = _sca[1]; + var s = max(3, data.side); + var ow = w; + var oh = h; + var iw = w * data.inner; + var ih = h * data.inner; + var an = 360 / s; + + var cx = w - w * data.inner; + var cy = 0; + + var triangles = []; + var segment = []; + + for( var i = 0; i < s; i++ ) { + var a0 = i * an; + var a1 = a0 + an; + + var ox0 = lengthdir_x(ow, a0); + var oy0 = lengthdir_y(oh, a0); + var ox1 = lengthdir_x(ow, a1); + var oy1 = lengthdir_y(oh, a1); + + var ix0 = cx + lengthdir_x(iw, a0); + var iy0 = cy + lengthdir_y(ih, a0); + var ix1 = cx + lengthdir_x(iw, a1); + var iy1 = cy + lengthdir_y(ih, a1); + + if(triangle_area_points(ix0, iy0, ox0, oy0, ox1, oy1) > 0.1) array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(ox0, oy0), new __vec2(ox1, oy1), c_white ]); + if(triangle_area_points(ix0, iy0, ox1, oy1, ix1, iy1) > 0.1) array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(ox1, oy1), new __vec2(ix1, iy1), c_white ]); + + if(array_empty(segment)) array_push(segment, new __vec2(ox0, oy0)); array_push(segment, new __vec2(ox1, oy1)); + } + + return [ [{ type: SHAPE_TYPE.triangles, triangles: triangles }], segment ]; +} + +function SHAPE_pie(_sca, data = {}) { + var w = _sca[0], h = _sca[1]; + var p = max(3, data.side); + var a = 1 / p; + var r = data.radRan; + + var triangles = array_create(p); + var segment = array_create(p + 1); + + for( var i = 0; i < p; i++ ) { + var d0 = lerp(r[0], r[1], i * a); + var d1 = lerp(r[0], r[1], i * a + a); + + var x0 = lengthdir_x(w, d0); + var y0 = lengthdir_y(h, d0); + var x1 = lengthdir_x(w, d1); + var y1 = lengthdir_y(h, d1); + + triangles[i] = [ new __vec2(0, 0), new __vec2(x0, y0), new __vec2(x1, y1), c_white ]; + + if(i == 0) segment[0] = new __vec2(x0, y0); + segment[i+1] = new __vec2(x1, y1); + } + + return [ [{ type: SHAPE_TYPE.triangles, triangles: triangles }], segment ]; +} + +function SHAPE_squircle(_sca, data = {}) { + var w = _sca[0], h = _sca[1]; + var s = max(3, data.side); + var a = 360 / s; + var f = max(.001, data.factor); + var triangles = []; + var segment = []; + + var ox, oy, nx, ny; + var s2 = sqrt(2); + + for( var i = 0; i <= s; i++ ) { + var d = i * a; + var r = 1 / power(power(abs(dcos(d)), f) + power(abs(dsin(d)), f), 1 / f); + + var nx = lengthdir_x(r * w, d); + var ny = lengthdir_y(r * h, d); + + if(i) array_push(triangles, [ new __vec2(0, 0), new __vec2(ox, oy), new __vec2(nx, ny), c_white ]); + array_push(segment, new __vec2(nx, ny)); + + ox = nx; + oy = ny; + } + + segment[s] = segment[0].clone(); + + return [ [{ type: SHAPE_TYPE.triangles, triangles: triangles }], segment ]; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +function SHAPE_reg_poly(_sca, data = {}) { + var w = _sca[0], h = _sca[1]; + var p = max(3, data.side); + var a = 360 / p; + + var triangles = array_create(p); + var segment = array_create(p + 1); + + for( var i = 0; i < p; i++ ) { + var d0 = i * a; + var d1 = d0 + a; + + var x0 = lengthdir_x(w, d0); + var y0 = lengthdir_y(h, d0); + var x1 = lengthdir_x(w, d1); + var y1 = lengthdir_y(h, d1); + + triangles[i] = [ new __vec2(0, 0), new __vec2(x0, y0), new __vec2(x1, y1), c_white ]; + + if(i == 0) segment[0] = new __vec2(x0, y0); + segment[i+1] = new __vec2(x1, y1); + } + + return [ [{ type: SHAPE_TYPE.triangles, triangles: triangles }], segment ]; +} + +function SHAPE_star(_sca, data = {}) { + var prec = max(3, data.side); + var inner = data.inner; + var triangles = []; + var segment = []; + + for( var i = 0; i < prec; i++ ) { + var otx = lengthdir_x(0.5, i / prec * 360) * _sca[0] * 2; + var oty = lengthdir_y(0.5, i / prec * 360) * _sca[1] * 2; + + var inx = lengthdir_x(inner / 2, (i + 0.5) / prec * 360) * _sca[0] * 2; + var iny = lengthdir_y(inner / 2, (i + 0.5) / prec * 360) * _sca[1] * 2; + array_push(triangles, [ new __vec2(0, 0), new __vec2(otx, oty), new __vec2(inx, iny), c_white ]); + + var pi0 = new __vec2(inx, iny); + + var inx = lengthdir_x(inner / 2, (i - 0.5) / prec * 360) * _sca[0] * 2; + var iny = lengthdir_y(inner / 2, (i - 0.5) / prec * 360) * _sca[1] * 2; + array_push(triangles, [ new __vec2(0, 0), new __vec2(inx, iny), new __vec2(otx, oty), c_white ]); + + array_push(segment, new __vec2(inx, iny)); + array_push(segment, new __vec2(otx, oty)); + array_push(segment, pi0); + } + + return [ [{ type: SHAPE_TYPE.triangles, triangles: triangles }], segment ]; +} + +function SHAPE_cross(_sca, data = {}) { + var inner = data.inner; + var triangles = []; + var segment = []; + var side = min(_sca[0], _sca[1]) * inner; + + array_push(triangles, + [ new __vec2(-side, -side), new __vec2(-side, side), new __vec2( side, -side), c_white ], + [ new __vec2( side, -side), new __vec2(-side, side), new __vec2( side, side), c_white ], + ); + + array_push(triangles, //top + [ new __vec2(-side, -side), new __vec2( side, -side), new __vec2(-side, -_sca[1]), c_white ], + [ new __vec2( side, -side), new __vec2( side, -_sca[1]), new __vec2(-side, -_sca[1]), c_white ], + ); + + array_push(triangles, //bottom + [ new __vec2(-side, _sca[1]), new __vec2( side, _sca[1]), new __vec2(-side, side), c_white ], + [ new __vec2( side, _sca[1]), new __vec2( side, side), new __vec2(-side, side), c_white ], + ); + + array_push(triangles, //left + [ new __vec2( -side, -side), new __vec2(-_sca[0], -side), new __vec2(-side, side), c_white ], + [ new __vec2(-_sca[0], -side), new __vec2(-_sca[0], side), new __vec2(-side, side), c_white ], + ); + + array_push(triangles, //right + [ new __vec2(_sca[0], -side), new __vec2( side, -side), new __vec2(_sca[0], side), c_white ], + [ new __vec2( side, -side), new __vec2( side, side), new __vec2(_sca[0], side), c_white ], + ); + + array_push(segment, new __vec2(-side, -side), new __vec2(-side, -_sca[1]), new __vec2( side, -_sca[1]), new __vec2(side, -side) ); + array_push(segment, new __vec2( _sca[0], -side), new __vec2( _sca[0], side), new __vec2( side, side)); + array_push(segment, new __vec2( side, _sca[1]), new __vec2(-side, _sca[1]), new __vec2(-side, side)); + array_push(segment, new __vec2(-_sca[0], side), new __vec2(-_sca[0], -side), new __vec2(-side, -side)); + + return [ [{ type: SHAPE_TYPE.rectangle, triangles: triangles }], segment ]; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +function SHAPE_capsule(_sca, data = {}) { + var rad = data.radius; + var prec = max(2, data.side); + var hh = _sca[1] * rad; + var shapes = []; + var segment = []; + array_push(segment, new __vec2(-_sca[0] + _sca[1], _sca[1]), new __vec2( _sca[0] - hh, hh)); + + var triangles = [ + [ new __vec2(-_sca[0] + _sca[1], -_sca[1]), new __vec2(-_sca[0] + _sca[1], _sca[1]), new __vec2(_sca[0] - hh, -hh), c_white ], + [ new __vec2(_sca[0] - hh, -hh), new __vec2(-_sca[0] + _sca[1], _sca[1]), new __vec2(_sca[0] - hh, hh), c_white ], + ]; + shapes[0] = { type: SHAPE_TYPE.rectangle, triangles: triangles }; + + var triangles = []; + var cx = -_sca[0] + _sca[1]; + var cy = 0; + var ox, oy, nx, ny, oa, na; + for( var i = 0; i <= prec; i++ ) { + na = lerp(270, 90, i / prec); + nx = cx + lengthdir_x(_sca[1], na); + ny = cy + lengthdir_y(_sca[1], na); + + if(i) { + array_push(triangles, [ new __vec2(cx, cy), new __vec2(nx, ny), new __vec2(ox, oy), c_white ]); + array_push(segment, new __vec2(ox, oy)); + } + array_push(segment, new __vec2(nx, ny)); + + oa = na; + ox = nx; + oy = ny; + } + + array_push(segment, new __vec2(-_sca[0] + _sca[1], -_sca[1]), new __vec2( _sca[0] - hh, -hh)); + shapes[1] = { type: SHAPE_TYPE.triangles, triangles: triangles }; + + var triangles = []; + var cx = _sca[0] - hh; + var cy = 0; + var _seg = []; + var ox, oy, nx, ny, oa, na; + for( var i = 0; i <= prec; i++ ) { + na = lerp(-90, 90, i / prec); + nx = cx + lengthdir_x(hh, na); + ny = cy + lengthdir_y(hh, na); + + if(i) { + array_push(triangles, [ new __vec2(cx, cy), new __vec2(ox, oy), new __vec2(nx, ny), c_white ]); + array_push(_seg, new __vec2(ox, oy)); + } + array_push(_seg, new __vec2(nx, ny)); + + oa = na; + ox = nx; + oy = ny; + } + + for( var i = 0, n = array_length(_seg); i < n; i++ ) + array_push(segment, _seg[array_length(_seg) - i - 1]); + + shapes[2] = { type: SHAPE_TYPE.triangles, triangles: triangles }; + + return [ shapes, segment ]; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +function SHAPE_leaf(_sca, data = {}) { + var w = _sca[0], h = _sca[1]; + var p = max(3, data.side); + var a = 180 / (p - 1); + + var triangles = []; + var s0 = [], s1 = []; + + var _oy, _ox0, _ox1; + + for( var i = 0; i < p; i++ ) { + var d = lerp(-60, 60, i / (p - 1)); + + var _ny = lengthdir_y(h, d) / dsin(60); + var _nx0 = -w + lengthdir_x(w * 2, d); + var _nx1 = w - lengthdir_x(w * 2, d); + + if(i) { + array_push(triangles, [ new __vec2(_nx0, _ny), new __vec2(_nx1, _ny), new __vec2(_ox0, _oy), c_white ]); + array_push(triangles, [ new __vec2(_ox0, _oy), new __vec2(_nx1, _ny), new __vec2(_ox1, _oy), c_white ]); + + if(array_empty(s0)) array_push(s0, new __vec2(_ox0, _oy)); array_push(s0, new __vec2(_nx0, _ny)); + if(array_empty(s1)) array_push(s1, new __vec2(_ox1, _oy)); array_push(s1, new __vec2(_nx1, _ny)); + } + + _oy = _ny; + _ox0 = _nx0; + _ox1 = _nx1; + } + + array_reverse_ext(s1); + var segment = array_merge(s0, s1); + + return [ [{ type: SHAPE_TYPE.rectangle, triangles: triangles }], segment ]; +} + +function SHAPE_gear(_sca, data = {}) { + var teeth = max(3, data.teeth); + var teethH = data.teethH; + var teethT = data.teethT; + var prec = teeth * 2; + var inner = data.inner; + var body = 0.5 * (1 - teethH); + var teth = 0.5 * teethH; + var triangles = []; + var segment = []; + + for( var i = 0; i < prec; i++ ) { + var ix0 = lengthdir_x(body * inner, i / prec * 360) * _sca[0] * 2; + var iy0 = lengthdir_y(body * inner, i / prec * 360) * _sca[1] * 2; + + var nx0 = lengthdir_x(body, i / prec * 360) * _sca[0] * 2; + var ny0 = lengthdir_y(body, i / prec * 360) * _sca[1] * 2; + + var ix1 = lengthdir_x(body * inner, (i + 1) / prec * 360) * _sca[0] * 2; + var iy1 = lengthdir_y(body * inner, (i + 1) / prec * 360) * _sca[1] * 2; + + var nx1 = lengthdir_x(body, (i + 1) / prec * 360) * _sca[0] * 2; + var ny1 = lengthdir_y(body, (i + 1) / prec * 360) * _sca[1] * 2; + + array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(nx0, ny0), new __vec2(nx1, ny1), c_white ]); + array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(nx1, ny1), new __vec2(ix1, iy1), c_white ]); + + if(i == 0) + array_push(segment, new __vec2(nx0, ny0)); + + if(i % 2) { + var tx0 = nx0 + lengthdir_x(teth, (i + 0.5 - teethT) / prec * 360) * _sca[0] * 2; + var ty0 = ny0 + lengthdir_y(teth, (i + 0.5 - teethT) / prec * 360) * _sca[1] * 2; + + var tx1 = nx1 + lengthdir_x(teth, (i + 0.5 + teethT) / prec * 360) * _sca[0] * 2; + var ty1 = ny1 + lengthdir_y(teth, (i + 0.5 + teethT) / prec * 360) * _sca[1] * 2; + + array_push(triangles, [ new __vec2(tx0, ty0), new __vec2(nx1, ny1), new __vec2(nx0, ny0), c_white ]); + array_push(triangles, [ new __vec2(tx0, ty0), new __vec2(tx1, ty1), new __vec2(nx1, ny1), c_white ]); + + array_push(segment, new __vec2(tx0, ty0)); + array_push(segment, new __vec2(tx1, ty1)); + } + + array_push(segment, new __vec2(nx1, ny1)); + } + + return [ [{ type: SHAPE_TYPE.rectangle, triangles: triangles }], segment ]; } diff --git a/scripts/_node_VFX_spawner/_node_VFX_spawner.gml b/scripts/_node_VFX_spawner/_node_VFX_spawner.gml index 3810c79c6..cebfa82d9 100644 --- a/scripts/_node_VFX_spawner/_node_VFX_spawner.gml +++ b/scripts/_node_VFX_spawner/_node_VFX_spawner.gml @@ -135,19 +135,18 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co ]; attributes.part_amount = 512; - array_push(attributeEditors, ["Maximum particles", function() { return attributes.part_amount; }, - new textBox(TEXTBOX_INPUT.number, function(val) { attributes.part_amount = val; }) ]); + array_push(attributeEditors, [ "Maximum particles", function() /*=>*/ {return attributes.part_amount}, new textBox(TEXTBOX_INPUT.number, function(v) /*=>*/ { attributes.part_amount = v; }) ]); - parts = array_create(attributes.part_amount); - parts_runner = 0; + parts = array_create(attributes.part_amount); + for( var i = 0; i < attributes.part_amount; i++ ) parts[i] = new __part(self); + parts_runner = 0; seed = 0; spawn_index_raw = 0; spawn_index = 0; scatter_index = 0; def_surface = -1; - - surface_cache = {}; + surface_cache = {}; wiggle_maps = { wig_psx: new wiggleMap(seed, 1, 1000), @@ -158,12 +157,9 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co wig_dir: new wiggleMap(seed, 1, 1000), }; - curve_scale = noone; - curve_alpha = noone; + curve_scale = noone; + curve_alpha = noone; curve_path_div = noone; - - for( var i = 0; i < attributes.part_amount; i++ ) - parts[i] = new __part(self); static spawn = function(_time = CURRENT_FRAME, _pos = -1) { var _inSurf = getInputData( 0); diff --git a/scripts/collection_data/collection_data.gml b/scripts/collection_data/collection_data.gml index cb3e1b1fd..a192e8586 100644 --- a/scripts/collection_data/collection_data.gml +++ b/scripts/collection_data/collection_data.gml @@ -7,8 +7,7 @@ function __initCollection() { var root = DIRECTORY + "Collections"; directory_verify(root); var rootz = DIRECTORY + "Collections_cache"; directory_verify(rootz); - if(check_version($"{root}/version")) - zip_unzip("data/Collections.zip", root); + // if(check_version($"{root}/version")) zip_unzip("data/Collections.zip", root); COLLECTIONS = new DirectoryObject(DIRECTORY + "Collections"); refreshCollections(); @@ -34,8 +33,7 @@ function searchCollection(_list, _search_str, _toList = true) { while(!ds_stack_empty(st)) { var _st = ds_stack_pop(st); for( var i = 0; i < ds_list_size(_st.content); i++ ) { - var _nd = _st.content[| i]; - + var _nd = _st.content[| i]; var match = string_partial_match(string_lower(_nd.name), search_lower); if(match == -9999) continue; diff --git a/scripts/dynaSurf_circle_fill/dynaSurf_circle_fill.gml b/scripts/dynaSurf_circle_fill/dynaSurf_circle_fill.gml index a782c6eff..cb99d4054 100644 --- a/scripts/dynaSurf_circle_fill/dynaSurf_circle_fill.gml +++ b/scripts/dynaSurf_circle_fill/dynaSurf_circle_fill.gml @@ -2,21 +2,24 @@ function dynaSurf_circle_fill(_x, _y, ss) { switch(round(ss)) { case 0 : case 1 : - draw_point(_x, _y); + draw_point( _x, _y ); break; + case 2 : - draw_point(_x + 0, _y + 0); - draw_point(_x + 1, _y + 0); - draw_point(_x + 0, _y + 1); - draw_point(_x + 1, _y + 1); + draw_point( _x + 0, _y + 0 ); + draw_point( _x + 1, _y + 0 ); + draw_point( _x + 0, _y + 1 ); + draw_point( _x + 1, _y + 1 ); break; + case 3 : - draw_point(_x, _y); - draw_point(_x - 1, _y); - draw_point(_x + 1, _y); - draw_point(_x, _y + 1); - draw_point(_x, _y - 1); + draw_point( _x, _y ); + draw_point( _x - 1, _y ); + draw_point( _x + 1, _y ); + draw_point( _x, _y + 1 ); + draw_point( _x, _y - 1 ); break; + default : draw_circle(_x, _y, ss - 2, false); break; diff --git a/scripts/globals/globals.gml b/scripts/globals/globals.gml index 31002aebd..e458a3460 100644 --- a/scripts/globals/globals.gml +++ b/scripts/globals/globals.gml @@ -42,8 +42,8 @@ LATEST_VERSION = 1_18_00_0; VERSION = 1_18_08_0; - SAVE_VERSION = 1_18_05_0; - VERSION_STRING = MAC? "1.18.003m" : "1.18.8.1.002"; + SAVE_VERSION = 1_18_09_0; + VERSION_STRING = MAC? "1.18.003m" : "1.18.9.001"; BUILD_NUMBER = 118080.002; PREF_VERSION = 1_17_1; diff --git a/scripts/math_function/math_function.gml b/scripts/math_function/math_function.gml index 56e7dace0..71ef6a5ea 100644 --- a/scripts/math_function/math_function.gml +++ b/scripts/math_function/math_function.gml @@ -1,5 +1,6 @@ function value_map(_val, _omin, _omax, _nmin, _nmax) { if(_omax == _omin) return _nmin; - return _nmin + (_val - _omin) / (_omax - _omin) * (_nmax - _nmin); -} \ No newline at end of file +} + +function triangle_area_points(x0, y0, x1, y1, x2, y2) { return abs(x0 * (y1 - y2) + x1 * (y2 - y0) + x2 * (y0 - y1)) / 2; } \ No newline at end of file diff --git a/scripts/node_3d_mesh_extrude_mesh/node_3d_mesh_extrude_mesh.gml b/scripts/node_3d_mesh_extrude_mesh/node_3d_mesh_extrude_mesh.gml index 96b50e41f..1b0ce21e3 100644 --- a/scripts/node_3d_mesh_extrude_mesh/node_3d_mesh_extrude_mesh.gml +++ b/scripts/node_3d_mesh_extrude_mesh/node_3d_mesh_extrude_mesh.gml @@ -24,7 +24,7 @@ function Node_3D_Mesh_Extrude_Mesh(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y __d3d_input_list_mesh, __d3d_input_list_transform, ["Mesh", false], in_mesh + 0, in_mesh + 1, in_mesh + 2, - ["Render", false], in_mesh + 3, in_mesh + 4, in_mesh + 5, in_mesh + 6, + ["Render", false], in_mesh + 4, in_mesh + 5, in_mesh + 6, ] temp_surface = [ noone, noone ]; diff --git a/scripts/node_array_pin/node_array_pin.gml b/scripts/node_array_pin/node_array_pin.gml index 8b89aca4b..e844303fa 100644 --- a/scripts/node_array_pin/node_array_pin.gml +++ b/scripts/node_array_pin/node_array_pin.gml @@ -64,7 +64,7 @@ function Node_Array_Pin(_x, _y, _group = noone) : Node(_x, _y, _group) construct } static drawBadge = function(_x, _y, _s) {} - static drawJunctionNames = function(_x, _y, _mx, _my, _s) {} + static drawJunctionNames = function(_x, _y, _mx, _my, _s, _panel = noone) {} static drawJunctions = function(_draw, _x, _y, _mx, _my, _s) { var _dval = PANEL_GRAPH.value_dragging; diff --git a/scripts/node_data/node_data.gml b/scripts/node_data/node_data.gml index 3f600f92d..420f434d9 100644 --- a/scripts/node_data/node_data.gml +++ b/scripts/node_data/node_data.gml @@ -709,7 +709,7 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor { var _input = getInputJunctionIndex(i); if(_input == noone) continue; - var _inp = inputs[_input]; + var _inp = array_safe_get(inputs, _input); if(!is_struct(_inp) || !is_instanceof(_inp, NodeValue)) continue; _inp.visible_in_list = true; @@ -1670,7 +1670,7 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor { draw_set_alpha(1); } - static drawJunctionWidget = function(_x, _y, _mx, _my, _s, _hover, _focus) { + static drawJunctionWidget = function(_x, _y, _mx, _my, _s, _hover, _focus, display_parameter = noone, _panel = noone) { var hover = noone; @@ -1685,8 +1685,8 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor { var jy = _y + con_h * _s + wh / 2; - var rx = PANEL_GRAPH.x; - var ry = PANEL_GRAPH.y; + var rx = _panel.x; + var ry = _panel.y; var extY = 0; var drwT = _s > 0.5; @@ -1843,14 +1843,14 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor { static onDrawJunctions = function(_x, _y, _mx, _my, _s) {} - static drawJunctionNames = function(_x, _y, _mx, _my, _s) { + static drawJunctionNames = function(_x, _y, _mx, _my, _s, _panel = noone) { var amo = input_display_list == -1? array_length(inputs) : array_length(input_display_list); var jun; var xx = x * _s + _x; var yy = y * _s + _y; - var _hov = PANEL_GRAPH.pHOVER && (PANEL_GRAPH.node_hovering == noone || PANEL_GRAPH.node_hovering == self); + var _hov = _panel.pHOVER && (_panel.node_hovering == noone || _panel.node_hovering == self); show_input_name = _hov; show_output_name = _hov; @@ -1861,9 +1861,9 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor { show_input_name &= point_in_rectangle(_mx, _my, xx - ( 12) * _s, _y0, xx + ( 12) * _s, _y1); show_output_name &= point_in_rectangle(_mx, _my, xx + (w - 12) * _s, _y0, xx + (w + 12) * _s, _y1); - if(PANEL_GRAPH.value_dragging && PANEL_GRAPH.node_hovering == self) { - if(PANEL_GRAPH.value_dragging.connect_type == CONNECT_TYPE.input) show_output_name = true; - if(PANEL_GRAPH.value_dragging.connect_type == CONNECT_TYPE.output) show_input_name = true; + if(_panel.value_dragging && _panel.node_hovering == self) { + if(_panel.value_dragging.connect_type == CONNECT_TYPE.input) show_output_name = true; + if(_panel.value_dragging.connect_type == CONNECT_TYPE.output) show_input_name = true; } if(show_input_name) { @@ -1909,12 +1909,12 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor { } - if(hasInspector1Update() && PANEL_GRAPH.pHOVER && point_in_circle(_mx, _my, inspectInput1.x, inspectInput1.y, 10)) { + if(hasInspector1Update() && _panel.pHOVER && point_in_circle(_mx, _my, inspectInput1.x, inspectInput1.y, 10)) { inspectInput1.drawNameBG(_s); inspectInput1.drawName(_s, _mx, _my); } - if(hasInspector2Update() && PANEL_GRAPH.pHOVER && point_in_circle(_mx, _my, inspectInput2.x, inspectInput2.y, 10)) { + if(hasInspector2Update() && _panel.pHOVER && point_in_circle(_mx, _my, inspectInput2.x, inspectInput2.y, 10)) { inspectInput2.drawNameBG(_s); inspectInput2.drawName(_s, _mx, _my); } @@ -2149,15 +2149,15 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor { if(preview_draw) drawPreview(xx, yy, _s); try { - var _hover = PANEL_GRAPH.node_hovering == self; - var _focus = PANEL_GRAPH.getFocusingNode() == self; + var _hover = _panel.node_hovering == self; + var _focus = _panel.getFocusingNode() == self; onDrawNode(xx, yy, _mx, _my, _s, _hover, _focus); } catch(e) { log_warning("NODE onDrawNode", exception_print(e)); } } - if(SHOW_PARAM) drawJunctionWidget(xx, yy, _mx, _my, _s, _hover, _focus); + if(SHOW_PARAM) drawJunctionWidget(xx, yy, _mx, _my, _s, _hover, _focus, display_parameter, _panel); draw_name = false; if((previewable && _s >= 0.5) || (!previewable && h * _s >= name_height * .5)) drawNodeName(xx, yy, _s, _panel); diff --git a/scripts/node_grid/node_grid.gml b/scripts/node_grid/node_grid.gml index 177a75217..cda746bf0 100644 --- a/scripts/node_grid/node_grid.gml +++ b/scripts/node_grid/node_grid.gml @@ -67,7 +67,7 @@ function Node_Grid(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons newInput(24, nodeValue_Slider_Range("Level", self, [ 0, 1 ])); - newInput(25, nodeValue_Bool("Use Texture Dimension", self, true)); + newInput(25, nodeValue_Bool("Use Texture Dimension", self, false)); newInput(26, nodeValue_Float("Gap Width", self, 1)); diff --git a/scripts/node_grid_hex/node_grid_hex.gml b/scripts/node_grid_hex/node_grid_hex.gml index e886b591b..22834c833 100644 --- a/scripts/node_grid_hex/node_grid_hex.gml +++ b/scripts/node_grid_hex/node_grid_hex.gml @@ -64,7 +64,7 @@ function Node_Grid_Hex(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) newInput(20, nodeValue_Slider_Range("Level", self, [ 0, 1 ])); - newInput(21, nodeValue_Bool("Use Texture Dimension", self, true)); + newInput(21, nodeValue_Bool("Use Texture Dimension", self, false)); input_display_list = [ ["Output", false], 0, diff --git a/scripts/node_grid_pentagonal/node_grid_pentagonal.gml b/scripts/node_grid_pentagonal/node_grid_pentagonal.gml index 17916f989..95b937375 100644 --- a/scripts/node_grid_pentagonal/node_grid_pentagonal.gml +++ b/scripts/node_grid_pentagonal/node_grid_pentagonal.gml @@ -51,7 +51,7 @@ function Node_Grid_Pentagonal(_x, _y, _group = noone) : Node_Processor(_x, _y, _ newInput(16, nodeValue_Slider_Range("Level", self, [ 0, 1 ])); - newInput(17, nodeValue_Bool("Use Texture Dimension", self, true)); + newInput(17, nodeValue_Bool("Use Texture Dimension", self, false)); input_display_list = [ ["Output", false], 0, diff --git a/scripts/node_grid_tri/node_grid_tri.gml b/scripts/node_grid_tri/node_grid_tri.gml index a5fe4a02f..b080ff345 100644 --- a/scripts/node_grid_tri/node_grid_tri.gml +++ b/scripts/node_grid_tri/node_grid_tri.gml @@ -64,7 +64,7 @@ function Node_Grid_Tri(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) newInput(20, nodeValue_Slider_Range("Level", self, [ 0, 1 ])); - newInput(21, nodeValue_Bool("Use Texture Dimension", self, true)); + newInput(21, nodeValue_Bool("Use Texture Dimension", self, false)); input_display_list = [ ["Output", false], 0, diff --git a/scripts/node_group_input/node_group_input.gml b/scripts/node_group_input/node_group_input.gml index 1ce6e13ba..9db77f628 100644 --- a/scripts/node_group_input/node_group_input.gml +++ b/scripts/node_group_input/node_group_input.gml @@ -136,7 +136,7 @@ function Node_Group_Input(_x, _y, _group = noone) : Node(_x, _y, _group) constru dtype = -1; range = 0; - onSetDisplayName = function() { attributes.inherit_name = false; } + onSetDisplayName = function() /*=>*/ { attributes.inherit_name = false; } outputs[0].onSetTo = function(juncTo) { if(attributes.inherit_name && !LOADING && !APPENDING) @@ -148,10 +148,46 @@ function Node_Group_Input(_x, _y, _group = noone) : Node(_x, _y, _group) constru var ind = array_find(GROUP_IO_TYPE_MAP, juncTo.type); if(ind == -1) return; - if(ind == inputs[2].getValue()) return; - outputs[0].setType(juncTo.type); inputs[2].setValue(ind); + + switch(instanceof(juncTo)) { + case "__NodeValue_Vec2" : + case "__NodeValue_Dimension" : + inputs[0].setValue(array_find(GROUP_IO_DISPLAY[0], "Vector")); + inputs[4].setValue(0); + break; + + case "__NodeValue_Vec2_Range" : + inputs[0].setValue(array_find(GROUP_IO_DISPLAY[0], "Vector range")); + inputs[4].setValue(0); + break; + + case "__NodeValue_Vec3" : + inputs[0].setValue(array_find(GROUP_IO_DISPLAY[0], "Vector")); + inputs[4].setValue(1); + break; + + case "__NodeValue_Vec3_Range" : + inputs[0].setValue(array_find(GROUP_IO_DISPLAY[0], "Vector range")); + inputs[4].setValue(1); + break; + + case "__NodeValue_Vec4" : + inputs[0].setValue(array_find(GROUP_IO_DISPLAY[0], "Vector")); + inputs[4].setValue(2); + break; + + case "__NodeValue_Rotation" : + inputs[0].setValue(array_find(GROUP_IO_DISPLAY[0], "Rotation")); + inputs[4].setValue(2); + break; + } + + juncTo.value_from = noone; + inParent.setValue(juncTo.getValue()); + juncTo.value_from = outputs[0]; + } static createInput = function() { diff --git a/scripts/node_mirror_polar/node_mirror_polar.gml b/scripts/node_mirror_polar/node_mirror_polar.gml index dcc716232..169a5646f 100644 --- a/scripts/node_mirror_polar/node_mirror_polar.gml +++ b/scripts/node_mirror_polar/node_mirror_polar.gml @@ -116,7 +116,7 @@ function Node_Mirror_Polar(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro shader_set_2("scale", _sca); shader_set_i("rscale", _rsca); - draw_surface_stretched(_suf, 0, 0, _dim[0], _dim[1]); + draw_surface_stretched_safe(_suf, 0, 0, _dim[0], _dim[1]); surface_reset_shader(); return _outSurf; diff --git a/scripts/node_pin/node_pin.gml b/scripts/node_pin/node_pin.gml index 33b83e07f..357de8a76 100644 --- a/scripts/node_pin/node_pin.gml +++ b/scripts/node_pin/node_pin.gml @@ -66,7 +66,7 @@ function Node_Pin(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { } static drawBadge = function(_x, _y, _s) {} - static drawJunctionNames = function(_x, _y, _mx, _my, _s) {} + static drawJunctionNames = function(_x, _y, _mx, _my, _s, _panel = noone) {} static drawJunctions = function(_draw, _x, _y, _mx, _my, _s) { var _dval = PANEL_GRAPH.value_dragging; diff --git a/scripts/node_shape/node_shape.gml b/scripts/node_shape/node_shape.gml index 941d53cf9..bca833f36 100644 --- a/scripts/node_shape/node_shape.gml +++ b/scripts/node_shape/node_shape.gml @@ -53,21 +53,17 @@ function Node_Shape(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con newInput(1, nodeValue_Bool("Background", self, false)); - shape_types = [ + shape_types = [ "Rectangle", "Diamond", "Trapezoid", "Parallelogram", "Half", -1, "Ellipse", "Arc", "Donut", "Crescent", "Disk Segment", "Pie", "Squircle", -1, "Regular polygon", "Star", "Cross", "Rounded Cross", -1, "Line", "Arrow", -1, "Teardrop", "Leaf", "Heart", "Gear", ]; - shape_types_str = []; + __ind = 0; shape_types_str = array_map(shape_types, function(v, i) /*=>*/ {return v == -1? -1 : new scrollItem(v, s_node_shape_type, __ind++)}); - var _ind = 0; - for( var i = 0, n = array_length(shape_types); i < n; i++ ) - shape_types_str[i] = shape_types[i] == -1? -1 : new scrollItem(shape_types[i], s_node_shape_type, _ind++); - - newInput(2, nodeValue_Enum_Scroll("Shape", self, 0, { data: shape_types_str, horizontal: true, text_pad: ui(16) })); - inputs[2].options_histories = [ shape_types, { cond: function() /*=>*/ {return LOADING_VERSION < 1_18_00_0}, list: global.node_shape_keys_18 } ]; + newInput(2, nodeValue_Enum_Scroll("Shape", self, 0, { data: shape_types_str, horizontal: true, text_pad: ui(16) })) + .setHistory([ shape_types, { cond: function() /*=>*/ {return LOADING_VERSION < 1_18_00_0}, list: global.node_shape_keys_18 } ]); newInput(3, nodeValue_Area("Position", self, DEF_AREA_REF, { onSurfaceSize, useShape : false })) .setUnitRef(onSurfaceSize, VALUE_UNIT.reference); @@ -612,4 +608,4 @@ global.node_shape_keys_18 = [ -1, "Ellipse", "Arc", "Donut", "Crescent", "Disk Segment", "Pie", "Squircle", -1, "Regular polygon", "Star", "Cross", "Rounded Cross", -1, "Teardrop", "Leaf", "Heart", "Arrow", "Gear", -]; \ No newline at end of file +]; diff --git a/scripts/node_shape_polygon/node_shape_polygon.gml b/scripts/node_shape_polygon/node_shape_polygon.gml index 9b8fd4b51..ddd03c78d 100644 --- a/scripts/node_shape_polygon/node_shape_polygon.gml +++ b/scripts/node_shape_polygon/node_shape_polygon.gml @@ -8,10 +8,6 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { name = "Draw Shape Polygon"; - shapesArray = [ "Rectangle", "Ellipse", "Star", "Capsule", "Ring", "Arc", "Gear", "Cross" ]; - for( var i = 0, n = array_length(shapesArray); i < n; i++ ) - shapesArray[i] = new scrollItem(shapesArray[i], s_node_shape_poly_type, i); - newInput(0, nodeValue_Dimension(self)); newInput(1, nodeValue_Bool("Background", self, false)); @@ -20,15 +16,25 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr newInput(3, nodeValue_Color("Shape color", self, cola(c_white))); - newInput(4, nodeValue_Enum_Scroll("Shape", self, 0, shapesArray)); + shapesArray = [ + "Rectangle", "Diamond", "Trapezoid", "Parallelogram", + -1, "Ellipse", "Arc", "Ring", "Crescent", "Pie", "Squircle", + -1, "Regular Polygon", "Star", "Cross", + -1, "Capsule", + -1, "Leaf", "Gear", + ]; + __ind = 0; array_map_ext(shapesArray, function(v, i) /*=>*/ {return v == -1? -1 : new scrollItem(v, s_node_shape_poly_type, __ind++)}); + + newInput(4, nodeValue_Enum_Scroll("Shape", self, 0, { data: shapesArray, horizontal: true, text_pad: ui(16) })) + .setHistory([ shapesArray, { cond: function() /*=>*/ {return LOADING_VERSION < 1_18_09_0}, list: global.node_shape_polygon_keys_1809 } ]); newInput(5, nodeValue_Vec2("Position", self, [ 0.5, 0.5 ])) - .setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference); + .setUnitRef(function(i) /*=>*/ {return getDimension(i)}, VALUE_UNIT.reference); newInput(6, nodeValue_Rotation("Rotation", self, 0)); newInput(7, nodeValue_Vec2("Scale", self, [ 0.5, 0.5 ])) - .setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference); + .setUnitRef(function(i) /*=>*/ {return getDimension(i)}, VALUE_UNIT.reference); newInput(8, nodeValue_Int("Sides", self, 16)) .setDisplay(VALUE_DISPLAY.slider, { range: [2, 64, 0.1] }); @@ -78,6 +84,14 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + newInput(25, nodeValue_Float("Trapezoid sides", self, 0.5)) + .setDisplay(VALUE_DISPLAY.slider); + + newInput(26, nodeValue_Float("Skew", self, 0.5)) + .setDisplay(VALUE_DISPLAY.slider, { range: [ -1, 1, 0.01 ] }); + + newInput(27, nodeValue_Float("Factor", self, 3)); + newOutput(0, nodeValue_Output("Surface Out", self, VALUE_TYPE.surface, noone)); newOutput(1, nodeValue_Output("Mesh", self, VALUE_TYPE.mesh, noone)); @@ -87,7 +101,7 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr input_display_list = [ 16, ["Output", false], 0, ["Transform", false], 5, 6, 7, - ["Shape", false], 4, 8, 9, 10, 11, 12, 13, 14, 15, 17, + ["Shape", false], 4, 8, 9, 10, 11, 12, 13, 14, 15, 17, 25, 26, 27, ["Piecewise", false], 18, 22, ["Render", true], 3, 23, 19, 20, 21, 24, ["Background", true, 1], 2, @@ -99,6 +113,9 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr temp_surface = [ noone ]; + mesh = new Mesh(); + path = new PathSegment(); + static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { if(array_length(current_data) != array_length(inputs)) return; if(process_amount > 1) return; @@ -119,9 +136,6 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr draw_vertex_color(_p.x * _aa, _p.y * _aa, _color, _alpha); } - mesh = new Mesh(); - path = new PathSegment(); - static processData = function(_outData, _data, _output_index, _array_index) { var _dim = _data[0]; var _bg = _data[1]; @@ -131,21 +145,27 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr var _pos = _data[5]; var _rot = _data[6]; var _sca = _data[7]; - var _side = _data[8]; - var _inner = _data[9]; - var _rad = _data[10]; - var _teeth = _data[11]; - var _thHei = _data[12]; - var _thTap = _data[13]; - var _aRan = _data[14]; - var _cap = _data[15]; var _mesh = _data[16]; - var _expld = _data[17]; var _prot = _data[18]; var _psca = _data[22]; var _pall = _data[23]; var _aa = power(2, _data[24]); + var data = { + side: _data[ 8], + inner: _data[ 9], + radius: _data[10], + radRan: _data[14], + teeth: _data[11], + teethH: _data[12], + teethT: _data[13], + cap: _data[15], + explode: _data[17], + trep: _data[25], + palAng: _data[26], + factor: _data[27], + }; + inputs[ 8].setVisible(false); inputs[ 9].setVisible(false); inputs[10].setVisible(false); @@ -155,69 +175,99 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr inputs[14].setVisible(false); inputs[15].setVisible(false); inputs[17].setVisible(false); + inputs[25].setVisible(false); + inputs[26].setVisible(false); + inputs[27].setVisible(false); var _shapeName = array_safe_get_fast(shapesArray, _shp).name; + var _shapeFn = noone; switch(_shapeName) { - case "Rectangle" : // 0 + case "Rectangle" : _shapeFn = SHAPE_rectangle; break; + case "Diamond" : _shapeFn = SHAPE_diamond; break; + + case "Trapezoid" : _shapeFn = SHAPE_trapezoid; + inputs[25].setVisible(true); break; - case "Ellipse" : // 1 + case "Parallelogram" : _shapeFn = SHAPE_parallelogram; + inputs[26].setVisible(true); + break; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + case "Ellipse" : _shapeFn = SHAPE_circle; inputs[ 8].setVisible(true); inputs[17].setVisible(true); break; - case "Star" : // 2 - inputs[ 8].setVisible(true); - inputs[ 9].setVisible(true); - break; - - case "Capsule" : // 3 - inputs[ 8].setVisible(true); - inputs[10].setVisible(true); - break; - - case "Ring" : // 4 - inputs[ 8].setVisible(true); - inputs[ 9].setVisible(true); - break; - - case "Arc" : // 5 + case "Arc" : _shapeFn = SHAPE_arc; inputs[ 8].setVisible(true); inputs[ 9].setVisible(true); inputs[14].setVisible(true); inputs[15].setVisible(true); break; - case "Gear" : // 6 + case "Ring" : _shapeFn = SHAPE_ring; + inputs[ 8].setVisible(true); + inputs[ 9].setVisible(true); + break; + + case "Crescent" : _shapeFn = SHAPE_crescent; + inputs[ 8].setVisible(true); + inputs[ 9].setVisible(true); + break; + + case "Pie" : _shapeFn = SHAPE_pie; + inputs[ 8].setVisible(true); + inputs[14].setVisible(true); + break; + + case "Squircle" : _shapeFn = SHAPE_squircle; + inputs[ 8].setVisible(true); + inputs[27].setVisible(true); + break; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + case "Regular Polygon" : _shapeFn = SHAPE_reg_poly; + inputs[ 8].setVisible(true); + break; + + case "Star" : _shapeFn = SHAPE_star; + inputs[ 8].setVisible(true); + inputs[ 9].setVisible(true); + break; + + case "Cross" : _shapeFn = SHAPE_cross; + inputs[ 9].setVisible(true); + break; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + case "Capsule" : _shapeFn = SHAPE_capsule; + inputs[ 8].setVisible(true); + inputs[10].setVisible(true); + break; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + case "Leaf" : _shapeFn = SHAPE_leaf; + inputs[ 8].setVisible(true); + break; + + case "Gear" : _shapeFn = SHAPE_gear; inputs[ 9].setVisible(true); inputs[11].setVisible(true); inputs[12].setVisible(true); inputs[13].setVisible(true); break; - case "Cross" : // 7 - inputs[ 9].setVisible(true); - break; - } - - var _outSurf = surface_verify(_outData[0], _dim[0], _dim[1], attrDepth()); temp_surface[0] = surface_verify(temp_surface[0], _dim[0] * _aa, _dim[1] * _aa, attrDepth()); - var _cPassAA = temp_surface[0]; - - var data = { - side: _side, - inner: _inner, - radius: _rad, - radRan: _aRan, - teeth: _teeth, - teethH: _thHei, - teethT: _thTap, - cap: _cap, - explode: _expld, - }; + var _outSurf = surface_verify(_outData[0], _dim[0], _dim[1], attrDepth()); + var _cPassAA = temp_surface[0]; var tri0 = colorMultiply(_shc, _data[19]); var tri1 = colorMultiply(_shc, _data[20]); @@ -245,28 +295,17 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr } else { - var shapeData = []; - - switch(_shapeName) { - case "Rectangle" : shapeData = SHAPE_rectangle( _sca ); break; - case "Ellipse" : shapeData = SHAPE_circle( _sca, data); break; - case "Star" : shapeData = SHAPE_star( _sca, data); break; - case "Capsule" : shapeData = SHAPE_capsule( _sca, data); break; - case "Ring" : shapeData = SHAPE_ring( _sca, data); break; - case "Arc" : shapeData = SHAPE_arc( _sca, data); break; - case "Gear" : shapeData = SHAPE_gear( _sca, data); break; - case "Cross" : shapeData = SHAPE_cross( _sca, data); break; + if(_shapeFn == noone) { + draw_primitive_end(); + draw_set_alpha(1); - default: - draw_primitive_end(); - draw_set_alpha(1); - - surface_reset_target(); - return [ _outSurf, mesh, path ]; + surface_reset_target(); + return [ _outSurf, mesh, path ]; } - var points = shapeData[0]; - var segment = shapeData[1]; + var shapeData = _shapeFn(_sca, data); + var points = shapeData[0]; + var segment = shapeData[1]; if(_prot != 0 || _psca != 1) for( var i = 0, n = array_length(points); i < n; i++ ) { @@ -306,12 +345,8 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr path.setSegment(segment); var shapes = []; - for( var i = 0, n = array_length(points); i < n; i++ ) { - if(points[i].type == SHAPE_TYPE.points) - shapes[i] = polygon_triangulate(points[i].points)[0]; - else - shapes[i] = points[i].triangles; - } + for( var i = 0, n = array_length(points); i < n; i++ ) + shapes[i] = points[i].type == SHAPE_TYPE.points? polygon_triangulate(points[i].points)[0] : points[i].triangles; var _plen = array_length(_pall); mesh.triangles = []; @@ -348,4 +383,6 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr return [ _outSurf, mesh, path ]; } -} \ No newline at end of file +} + +global.node_shape_polygon_keys_1809 = [ "Rectangle", "Ellipse", "Star", "Capsule", "Ring", "Arc", "Gear", "Cross" ]; \ No newline at end of file diff --git a/scripts/node_tunnel_in/node_tunnel_in.gml b/scripts/node_tunnel_in/node_tunnel_in.gml index c85e649c3..59449c8aa 100644 --- a/scripts/node_tunnel_in/node_tunnel_in.gml +++ b/scripts/node_tunnel_in/node_tunnel_in.gml @@ -165,7 +165,7 @@ function Node_Tunnel_In(_x, _y, _group = noone) : Node(_x, _y, _group) construct } static drawBadge = function(_x, _y, _s) {} - static drawJunctionNames = function(_x, _y, _mx, _my, _s) {} + static drawJunctionNames = function(_x, _y, _mx, _my, _s, _panel = noone) {} static onDrawNodeBehind = function(_x, _y, _mx, _my, _s) { var xx = x * _s + _x; diff --git a/scripts/node_tunnel_out/node_tunnel_out.gml b/scripts/node_tunnel_out/node_tunnel_out.gml index f2d472905..a117389c3 100644 --- a/scripts/node_tunnel_out/node_tunnel_out.gml +++ b/scripts/node_tunnel_out/node_tunnel_out.gml @@ -89,7 +89,7 @@ function Node_Tunnel_Out(_x, _y, _group = noone) : Node(_x, _y, _group) construc } static drawBadge = function(_x, _y, _s) {} - static drawJunctionNames = function(_x, _y, _mx, _my, _s) {} + static drawJunctionNames = function(_x, _y, _mx, _my, _s, _panel = noone) {} static onDrawNodeBehind = function(_x, _y, _mx, _my, _s) { var xx = x * _s + _x; diff --git a/scripts/node_value_enum_scroll/node_value_enum_scroll.gml b/scripts/node_value_enum_scroll/node_value_enum_scroll.gml index 814c326c8..de5fbcaf3 100644 --- a/scripts/node_value_enum_scroll/node_value_enum_scroll.gml +++ b/scripts/node_value_enum_scroll/node_value_enum_scroll.gml @@ -3,6 +3,10 @@ function nodeValue_Enum_Scroll(_name, _node, _value, _data) { return new __NodeV function __NodeValue_Enum_Scroll(_name, _node, _value, _data) : NodeValue(_name, _node, CONNECT_TYPE.input, VALUE_TYPE.integer, _value, "") constructor { setDisplay(VALUE_DISPLAY.enum_scroll, _data); + /////============== SET ============= + + static setHistory = function(h) /*=>*/ { options_histories = h; return self; } + /////============== GET ============= static getValue = function(_time = CURRENT_FRAME, applyUnit = true, arrIndex = 0, useCache = false, log = false) { //// Get value @@ -33,10 +37,7 @@ function __NodeValue_Enum_Scroll(_name, _node, _value, _data) : NodeValue(_name, for( var i = 1, n = array_length(options_histories); i < n; i++ ) { var _oph = options_histories[i]; - if(!_oph.cond()) continue; - - _load = _oph; - break; + if(_oph.cond()) { _load = _oph; break; } } if(_load == noone) return; diff --git a/scripts/panel_graph/panel_graph.gml b/scripts/panel_graph/panel_graph.gml index ea98fc727..0949eb07c 100644 --- a/scripts/panel_graph/panel_graph.gml +++ b/scripts/panel_graph/panel_graph.gml @@ -2179,7 +2179,7 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor { var _node = nodes_list[i]; if(!display_parameter.show_control && _node.is_controller) continue; - _node.drawJunctionNames(gr_x, gr_y, mx, my, graph_s); + _node.drawJunctionNames(gr_x, gr_y, mx, my, graph_s, self); } } diff --git a/sprites/s_node_shape_poly_type/02a2a0d3-3291-4c11-9632-1746a7532fc7.png b/sprites/s_node_shape_poly_type/02a2a0d3-3291-4c11-9632-1746a7532fc7.png new file mode 100644 index 000000000..8b1cd1b77 Binary files /dev/null and b/sprites/s_node_shape_poly_type/02a2a0d3-3291-4c11-9632-1746a7532fc7.png differ diff --git a/sprites/s_node_shape_poly_type/0f886809-387b-4bc8-abd4-387fa813ceab.png b/sprites/s_node_shape_poly_type/0f886809-387b-4bc8-abd4-387fa813ceab.png new file mode 100644 index 000000000..8d4ffddfc Binary files /dev/null and b/sprites/s_node_shape_poly_type/0f886809-387b-4bc8-abd4-387fa813ceab.png differ diff --git a/sprites/s_node_shape_poly_type/1ad21eb3-2957-4d4d-926e-740ae1d19b0f.png b/sprites/s_node_shape_poly_type/1ad21eb3-2957-4d4d-926e-740ae1d19b0f.png deleted file mode 100644 index 909e4cbf1..000000000 Binary files a/sprites/s_node_shape_poly_type/1ad21eb3-2957-4d4d-926e-740ae1d19b0f.png and /dev/null differ diff --git a/sprites/s_node_shape_poly_type/1db8a64c-bca5-4538-91a8-73a616951623.png b/sprites/s_node_shape_poly_type/1db8a64c-bca5-4538-91a8-73a616951623.png new file mode 100644 index 000000000..1a200b0a9 Binary files /dev/null and b/sprites/s_node_shape_poly_type/1db8a64c-bca5-4538-91a8-73a616951623.png differ diff --git a/sprites/s_node_shape_poly_type/21c30ddc-01c0-457b-b4c4-3b7a4d7d3f7b.png b/sprites/s_node_shape_poly_type/21c30ddc-01c0-457b-b4c4-3b7a4d7d3f7b.png new file mode 100644 index 000000000..fcf1547af Binary files /dev/null and b/sprites/s_node_shape_poly_type/21c30ddc-01c0-457b-b4c4-3b7a4d7d3f7b.png differ diff --git a/sprites/s_node_shape_poly_type/2f0bc8fb-dd23-4d74-ac0a-4ec10077859a.png b/sprites/s_node_shape_poly_type/2f0bc8fb-dd23-4d74-ac0a-4ec10077859a.png new file mode 100644 index 000000000..57b006469 Binary files /dev/null and b/sprites/s_node_shape_poly_type/2f0bc8fb-dd23-4d74-ac0a-4ec10077859a.png differ diff --git a/sprites/s_node_shape_poly_type/30159276-e075-41ea-a218-83d883c97e22.png b/sprites/s_node_shape_poly_type/30159276-e075-41ea-a218-83d883c97e22.png new file mode 100644 index 000000000..fb1aa5168 Binary files /dev/null and b/sprites/s_node_shape_poly_type/30159276-e075-41ea-a218-83d883c97e22.png differ diff --git a/sprites/s_node_shape_poly_type/31d077ee-faea-4273-add1-b6fae9778ce2.png b/sprites/s_node_shape_poly_type/31d077ee-faea-4273-add1-b6fae9778ce2.png new file mode 100644 index 000000000..4e8329a52 Binary files /dev/null and b/sprites/s_node_shape_poly_type/31d077ee-faea-4273-add1-b6fae9778ce2.png differ diff --git a/sprites/s_node_shape_poly_type/35aaf398-7487-4e64-a934-b4dd188269d0.png b/sprites/s_node_shape_poly_type/35aaf398-7487-4e64-a934-b4dd188269d0.png new file mode 100644 index 000000000..5aeffa8f3 Binary files /dev/null and b/sprites/s_node_shape_poly_type/35aaf398-7487-4e64-a934-b4dd188269d0.png differ diff --git a/sprites/s_node_shape_poly_type/3bd54037-8259-41e1-8c43-7e6c8353a5ba.png b/sprites/s_node_shape_poly_type/3bd54037-8259-41e1-8c43-7e6c8353a5ba.png new file mode 100644 index 000000000..10e0212a8 Binary files /dev/null and b/sprites/s_node_shape_poly_type/3bd54037-8259-41e1-8c43-7e6c8353a5ba.png differ diff --git a/sprites/s_node_shape_poly_type/3ed05dc1-67c7-4a63-b070-35ea04b1932a.png b/sprites/s_node_shape_poly_type/3ed05dc1-67c7-4a63-b070-35ea04b1932a.png deleted file mode 100644 index 1a5f3beb9..000000000 Binary files a/sprites/s_node_shape_poly_type/3ed05dc1-67c7-4a63-b070-35ea04b1932a.png and /dev/null differ diff --git a/sprites/s_node_shape_poly_type/423b0a1b-c4b4-45f0-bcfa-56109d4cf548.png b/sprites/s_node_shape_poly_type/423b0a1b-c4b4-45f0-bcfa-56109d4cf548.png deleted file mode 100644 index e3c1e0fcf..000000000 Binary files a/sprites/s_node_shape_poly_type/423b0a1b-c4b4-45f0-bcfa-56109d4cf548.png and /dev/null differ diff --git a/sprites/s_node_shape_poly_type/42782bd5-2dd4-444f-b5e4-2c12fc7bed1c.png b/sprites/s_node_shape_poly_type/42782bd5-2dd4-444f-b5e4-2c12fc7bed1c.png deleted file mode 100644 index 9db63bf6b..000000000 Binary files a/sprites/s_node_shape_poly_type/42782bd5-2dd4-444f-b5e4-2c12fc7bed1c.png and /dev/null differ diff --git a/sprites/s_node_shape_poly_type/48474e77-9f5c-4af6-9f7a-a161c3e17279.png b/sprites/s_node_shape_poly_type/48474e77-9f5c-4af6-9f7a-a161c3e17279.png new file mode 100644 index 000000000..89fc9158e Binary files /dev/null and b/sprites/s_node_shape_poly_type/48474e77-9f5c-4af6-9f7a-a161c3e17279.png differ diff --git a/sprites/s_node_shape_poly_type/4ea45f48-7be7-428b-b6d4-d7ae0268f52b.png b/sprites/s_node_shape_poly_type/4ea45f48-7be7-428b-b6d4-d7ae0268f52b.png new file mode 100644 index 000000000..0b9fd1096 Binary files /dev/null and b/sprites/s_node_shape_poly_type/4ea45f48-7be7-428b-b6d4-d7ae0268f52b.png differ diff --git a/sprites/s_node_shape_poly_type/4fb534c1-6beb-4e49-ba04-82a5758bd1a1.png b/sprites/s_node_shape_poly_type/4fb534c1-6beb-4e49-ba04-82a5758bd1a1.png new file mode 100644 index 000000000..2557dcd54 Binary files /dev/null and b/sprites/s_node_shape_poly_type/4fb534c1-6beb-4e49-ba04-82a5758bd1a1.png differ diff --git a/sprites/s_node_shape_poly_type/562c7df2-7190-49c6-8c49-381f8ddfe586.png b/sprites/s_node_shape_poly_type/562c7df2-7190-49c6-8c49-381f8ddfe586.png deleted file mode 100644 index eeb9e1a76..000000000 Binary files a/sprites/s_node_shape_poly_type/562c7df2-7190-49c6-8c49-381f8ddfe586.png and /dev/null differ diff --git a/sprites/s_node_shape_poly_type/59e777c7-dc4a-4538-b767-32cb28b19b58.png b/sprites/s_node_shape_poly_type/59e777c7-dc4a-4538-b767-32cb28b19b58.png new file mode 100644 index 000000000..e7a95e419 Binary files /dev/null and b/sprites/s_node_shape_poly_type/59e777c7-dc4a-4538-b767-32cb28b19b58.png differ diff --git a/sprites/s_node_shape_poly_type/5e248cad-eddf-4c5c-b68b-e62ed03e6125.png b/sprites/s_node_shape_poly_type/5e248cad-eddf-4c5c-b68b-e62ed03e6125.png new file mode 100644 index 000000000..e172f2eea Binary files /dev/null and b/sprites/s_node_shape_poly_type/5e248cad-eddf-4c5c-b68b-e62ed03e6125.png differ diff --git a/sprites/s_node_shape_poly_type/77986572-6597-4906-8c03-54f459fa48aa.png b/sprites/s_node_shape_poly_type/77986572-6597-4906-8c03-54f459fa48aa.png new file mode 100644 index 000000000..5aeffa8f3 Binary files /dev/null and b/sprites/s_node_shape_poly_type/77986572-6597-4906-8c03-54f459fa48aa.png differ diff --git a/sprites/s_node_shape_poly_type/7b8695ca-f0c7-4400-8a0e-5308592be2b5.png b/sprites/s_node_shape_poly_type/7b8695ca-f0c7-4400-8a0e-5308592be2b5.png new file mode 100644 index 000000000..5aeffa8f3 Binary files /dev/null and b/sprites/s_node_shape_poly_type/7b8695ca-f0c7-4400-8a0e-5308592be2b5.png differ diff --git a/sprites/s_node_shape_poly_type/a82a8f00-ddd0-4cf9-aecd-a1aa158d9a38.png b/sprites/s_node_shape_poly_type/a82a8f00-ddd0-4cf9-aecd-a1aa158d9a38.png deleted file mode 100644 index 9e6ea539d..000000000 Binary files a/sprites/s_node_shape_poly_type/a82a8f00-ddd0-4cf9-aecd-a1aa158d9a38.png and /dev/null differ diff --git a/sprites/s_node_shape_poly_type/b98159f6-4d53-421b-ba7d-ba3250d80187.png b/sprites/s_node_shape_poly_type/b98159f6-4d53-421b-ba7d-ba3250d80187.png new file mode 100644 index 000000000..4bfad3f4d Binary files /dev/null and b/sprites/s_node_shape_poly_type/b98159f6-4d53-421b-ba7d-ba3250d80187.png differ diff --git a/sprites/s_node_shape_poly_type/e157170d-c5c2-4511-9b17-829b24b451b0.png b/sprites/s_node_shape_poly_type/e157170d-c5c2-4511-9b17-829b24b451b0.png new file mode 100644 index 000000000..1e70644c4 Binary files /dev/null and b/sprites/s_node_shape_poly_type/e157170d-c5c2-4511-9b17-829b24b451b0.png differ diff --git a/sprites/s_node_shape_poly_type/e2d585d6-df00-47e6-99eb-075f6ae750b3.png b/sprites/s_node_shape_poly_type/e2d585d6-df00-47e6-99eb-075f6ae750b3.png deleted file mode 100644 index ea07601c0..000000000 Binary files a/sprites/s_node_shape_poly_type/e2d585d6-df00-47e6-99eb-075f6ae750b3.png and /dev/null differ diff --git a/sprites/s_node_shape_poly_type/eb1a66c2-82b6-4784-9b4e-65d844adddf4.png b/sprites/s_node_shape_poly_type/eb1a66c2-82b6-4784-9b4e-65d844adddf4.png new file mode 100644 index 000000000..07929a8d3 Binary files /dev/null and b/sprites/s_node_shape_poly_type/eb1a66c2-82b6-4784-9b4e-65d844adddf4.png differ diff --git a/sprites/s_node_shape_poly_type/ee3b6b78-cb81-405c-a667-feb55d72af92.png b/sprites/s_node_shape_poly_type/ee3b6b78-cb81-405c-a667-feb55d72af92.png deleted file mode 100644 index 9d0b7967d..000000000 Binary files a/sprites/s_node_shape_poly_type/ee3b6b78-cb81-405c-a667-feb55d72af92.png and /dev/null differ diff --git a/sprites/s_node_shape_poly_type/ef64a417-ae22-4c2d-a22a-363f98fadc9d.png b/sprites/s_node_shape_poly_type/ef64a417-ae22-4c2d-a22a-363f98fadc9d.png new file mode 100644 index 000000000..e9ae789ba Binary files /dev/null and b/sprites/s_node_shape_poly_type/ef64a417-ae22-4c2d-a22a-363f98fadc9d.png differ diff --git a/sprites/s_node_shape_poly_type/layers/02a2a0d3-3291-4c11-9632-1746a7532fc7/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png b/sprites/s_node_shape_poly_type/layers/02a2a0d3-3291-4c11-9632-1746a7532fc7/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png new file mode 100644 index 000000000..8b1cd1b77 Binary files /dev/null and b/sprites/s_node_shape_poly_type/layers/02a2a0d3-3291-4c11-9632-1746a7532fc7/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png differ diff --git a/sprites/s_node_shape_poly_type/layers/0f886809-387b-4bc8-abd4-387fa813ceab/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png b/sprites/s_node_shape_poly_type/layers/0f886809-387b-4bc8-abd4-387fa813ceab/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png new file mode 100644 index 000000000..8d4ffddfc Binary files /dev/null and b/sprites/s_node_shape_poly_type/layers/0f886809-387b-4bc8-abd4-387fa813ceab/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png differ diff --git a/sprites/s_node_shape_poly_type/layers/1ad21eb3-2957-4d4d-926e-740ae1d19b0f/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png b/sprites/s_node_shape_poly_type/layers/1ad21eb3-2957-4d4d-926e-740ae1d19b0f/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png deleted file mode 100644 index 909e4cbf1..000000000 Binary files a/sprites/s_node_shape_poly_type/layers/1ad21eb3-2957-4d4d-926e-740ae1d19b0f/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png and /dev/null differ diff --git a/sprites/s_node_shape_poly_type/layers/1db8a64c-bca5-4538-91a8-73a616951623/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png b/sprites/s_node_shape_poly_type/layers/1db8a64c-bca5-4538-91a8-73a616951623/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png new file mode 100644 index 000000000..1a200b0a9 Binary files /dev/null and b/sprites/s_node_shape_poly_type/layers/1db8a64c-bca5-4538-91a8-73a616951623/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png differ diff --git a/sprites/s_node_shape_poly_type/layers/21c30ddc-01c0-457b-b4c4-3b7a4d7d3f7b/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png b/sprites/s_node_shape_poly_type/layers/21c30ddc-01c0-457b-b4c4-3b7a4d7d3f7b/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png new file mode 100644 index 000000000..fcf1547af Binary files /dev/null and b/sprites/s_node_shape_poly_type/layers/21c30ddc-01c0-457b-b4c4-3b7a4d7d3f7b/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png differ diff --git a/sprites/s_node_shape_poly_type/layers/2f0bc8fb-dd23-4d74-ac0a-4ec10077859a/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png b/sprites/s_node_shape_poly_type/layers/2f0bc8fb-dd23-4d74-ac0a-4ec10077859a/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png new file mode 100644 index 000000000..57b006469 Binary files /dev/null and b/sprites/s_node_shape_poly_type/layers/2f0bc8fb-dd23-4d74-ac0a-4ec10077859a/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png differ diff --git a/sprites/s_node_shape_poly_type/layers/30159276-e075-41ea-a218-83d883c97e22/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png b/sprites/s_node_shape_poly_type/layers/30159276-e075-41ea-a218-83d883c97e22/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png new file mode 100644 index 000000000..fb1aa5168 Binary files /dev/null and b/sprites/s_node_shape_poly_type/layers/30159276-e075-41ea-a218-83d883c97e22/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png differ diff --git a/sprites/s_node_shape_poly_type/layers/31d077ee-faea-4273-add1-b6fae9778ce2/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png b/sprites/s_node_shape_poly_type/layers/31d077ee-faea-4273-add1-b6fae9778ce2/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png new file mode 100644 index 000000000..4e8329a52 Binary files /dev/null and b/sprites/s_node_shape_poly_type/layers/31d077ee-faea-4273-add1-b6fae9778ce2/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png differ diff --git a/sprites/s_node_shape_poly_type/layers/35aaf398-7487-4e64-a934-b4dd188269d0/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png b/sprites/s_node_shape_poly_type/layers/35aaf398-7487-4e64-a934-b4dd188269d0/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png new file mode 100644 index 000000000..5aeffa8f3 Binary files /dev/null and b/sprites/s_node_shape_poly_type/layers/35aaf398-7487-4e64-a934-b4dd188269d0/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png differ diff --git a/sprites/s_node_shape_poly_type/layers/3bd54037-8259-41e1-8c43-7e6c8353a5ba/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png b/sprites/s_node_shape_poly_type/layers/3bd54037-8259-41e1-8c43-7e6c8353a5ba/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png new file mode 100644 index 000000000..10e0212a8 Binary files /dev/null and b/sprites/s_node_shape_poly_type/layers/3bd54037-8259-41e1-8c43-7e6c8353a5ba/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png differ diff --git a/sprites/s_node_shape_poly_type/layers/3ed05dc1-67c7-4a63-b070-35ea04b1932a/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png b/sprites/s_node_shape_poly_type/layers/3ed05dc1-67c7-4a63-b070-35ea04b1932a/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png deleted file mode 100644 index 1a5f3beb9..000000000 Binary files a/sprites/s_node_shape_poly_type/layers/3ed05dc1-67c7-4a63-b070-35ea04b1932a/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png and /dev/null differ diff --git a/sprites/s_node_shape_poly_type/layers/423b0a1b-c4b4-45f0-bcfa-56109d4cf548/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png b/sprites/s_node_shape_poly_type/layers/423b0a1b-c4b4-45f0-bcfa-56109d4cf548/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png deleted file mode 100644 index e3c1e0fcf..000000000 Binary files a/sprites/s_node_shape_poly_type/layers/423b0a1b-c4b4-45f0-bcfa-56109d4cf548/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png and /dev/null differ diff --git a/sprites/s_node_shape_poly_type/layers/42782bd5-2dd4-444f-b5e4-2c12fc7bed1c/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png b/sprites/s_node_shape_poly_type/layers/42782bd5-2dd4-444f-b5e4-2c12fc7bed1c/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png deleted file mode 100644 index 9db63bf6b..000000000 Binary files a/sprites/s_node_shape_poly_type/layers/42782bd5-2dd4-444f-b5e4-2c12fc7bed1c/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png and /dev/null differ diff --git a/sprites/s_node_shape_poly_type/layers/48474e77-9f5c-4af6-9f7a-a161c3e17279/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png b/sprites/s_node_shape_poly_type/layers/48474e77-9f5c-4af6-9f7a-a161c3e17279/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png new file mode 100644 index 000000000..89fc9158e Binary files /dev/null and b/sprites/s_node_shape_poly_type/layers/48474e77-9f5c-4af6-9f7a-a161c3e17279/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png differ diff --git a/sprites/s_node_shape_poly_type/layers/4ea45f48-7be7-428b-b6d4-d7ae0268f52b/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png b/sprites/s_node_shape_poly_type/layers/4ea45f48-7be7-428b-b6d4-d7ae0268f52b/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png new file mode 100644 index 000000000..0b9fd1096 Binary files /dev/null and b/sprites/s_node_shape_poly_type/layers/4ea45f48-7be7-428b-b6d4-d7ae0268f52b/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png differ diff --git a/sprites/s_node_shape_poly_type/layers/4fb534c1-6beb-4e49-ba04-82a5758bd1a1/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png b/sprites/s_node_shape_poly_type/layers/4fb534c1-6beb-4e49-ba04-82a5758bd1a1/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png new file mode 100644 index 000000000..2557dcd54 Binary files /dev/null and b/sprites/s_node_shape_poly_type/layers/4fb534c1-6beb-4e49-ba04-82a5758bd1a1/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png differ diff --git a/sprites/s_node_shape_poly_type/layers/562c7df2-7190-49c6-8c49-381f8ddfe586/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png b/sprites/s_node_shape_poly_type/layers/562c7df2-7190-49c6-8c49-381f8ddfe586/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png deleted file mode 100644 index eeb9e1a76..000000000 Binary files a/sprites/s_node_shape_poly_type/layers/562c7df2-7190-49c6-8c49-381f8ddfe586/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png and /dev/null differ diff --git a/sprites/s_node_shape_poly_type/layers/59e777c7-dc4a-4538-b767-32cb28b19b58/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png b/sprites/s_node_shape_poly_type/layers/59e777c7-dc4a-4538-b767-32cb28b19b58/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png new file mode 100644 index 000000000..e7a95e419 Binary files /dev/null and b/sprites/s_node_shape_poly_type/layers/59e777c7-dc4a-4538-b767-32cb28b19b58/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png differ diff --git a/sprites/s_node_shape_poly_type/layers/5e248cad-eddf-4c5c-b68b-e62ed03e6125/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png b/sprites/s_node_shape_poly_type/layers/5e248cad-eddf-4c5c-b68b-e62ed03e6125/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png new file mode 100644 index 000000000..e172f2eea Binary files /dev/null and b/sprites/s_node_shape_poly_type/layers/5e248cad-eddf-4c5c-b68b-e62ed03e6125/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png differ diff --git a/sprites/s_node_shape_poly_type/layers/77986572-6597-4906-8c03-54f459fa48aa/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png b/sprites/s_node_shape_poly_type/layers/77986572-6597-4906-8c03-54f459fa48aa/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png new file mode 100644 index 000000000..5aeffa8f3 Binary files /dev/null and b/sprites/s_node_shape_poly_type/layers/77986572-6597-4906-8c03-54f459fa48aa/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png differ diff --git a/sprites/s_node_shape_poly_type/layers/7b8695ca-f0c7-4400-8a0e-5308592be2b5/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png b/sprites/s_node_shape_poly_type/layers/7b8695ca-f0c7-4400-8a0e-5308592be2b5/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png new file mode 100644 index 000000000..5aeffa8f3 Binary files /dev/null and b/sprites/s_node_shape_poly_type/layers/7b8695ca-f0c7-4400-8a0e-5308592be2b5/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png differ diff --git a/sprites/s_node_shape_poly_type/layers/a82a8f00-ddd0-4cf9-aecd-a1aa158d9a38/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png b/sprites/s_node_shape_poly_type/layers/a82a8f00-ddd0-4cf9-aecd-a1aa158d9a38/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png deleted file mode 100644 index 9e6ea539d..000000000 Binary files a/sprites/s_node_shape_poly_type/layers/a82a8f00-ddd0-4cf9-aecd-a1aa158d9a38/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png and /dev/null differ diff --git a/sprites/s_node_shape_poly_type/layers/b98159f6-4d53-421b-ba7d-ba3250d80187/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png b/sprites/s_node_shape_poly_type/layers/b98159f6-4d53-421b-ba7d-ba3250d80187/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png new file mode 100644 index 000000000..4bfad3f4d Binary files /dev/null and b/sprites/s_node_shape_poly_type/layers/b98159f6-4d53-421b-ba7d-ba3250d80187/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png differ diff --git a/sprites/s_node_shape_poly_type/layers/e157170d-c5c2-4511-9b17-829b24b451b0/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png b/sprites/s_node_shape_poly_type/layers/e157170d-c5c2-4511-9b17-829b24b451b0/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png new file mode 100644 index 000000000..1e70644c4 Binary files /dev/null and b/sprites/s_node_shape_poly_type/layers/e157170d-c5c2-4511-9b17-829b24b451b0/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png differ diff --git a/sprites/s_node_shape_poly_type/layers/e2d585d6-df00-47e6-99eb-075f6ae750b3/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png b/sprites/s_node_shape_poly_type/layers/e2d585d6-df00-47e6-99eb-075f6ae750b3/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png deleted file mode 100644 index ea07601c0..000000000 Binary files a/sprites/s_node_shape_poly_type/layers/e2d585d6-df00-47e6-99eb-075f6ae750b3/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png and /dev/null differ diff --git a/sprites/s_node_shape_poly_type/layers/eb1a66c2-82b6-4784-9b4e-65d844adddf4/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png b/sprites/s_node_shape_poly_type/layers/eb1a66c2-82b6-4784-9b4e-65d844adddf4/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png new file mode 100644 index 000000000..07929a8d3 Binary files /dev/null and b/sprites/s_node_shape_poly_type/layers/eb1a66c2-82b6-4784-9b4e-65d844adddf4/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png differ diff --git a/sprites/s_node_shape_poly_type/layers/ee3b6b78-cb81-405c-a667-feb55d72af92/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png b/sprites/s_node_shape_poly_type/layers/ee3b6b78-cb81-405c-a667-feb55d72af92/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png deleted file mode 100644 index 9d0b7967d..000000000 Binary files a/sprites/s_node_shape_poly_type/layers/ee3b6b78-cb81-405c-a667-feb55d72af92/35823b21-ff1a-4246-bb05-7d6f0ef9d118.png and /dev/null differ diff --git a/sprites/s_node_shape_poly_type/layers/ef64a417-ae22-4c2d-a22a-363f98fadc9d/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png b/sprites/s_node_shape_poly_type/layers/ef64a417-ae22-4c2d-a22a-363f98fadc9d/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png new file mode 100644 index 000000000..e9ae789ba Binary files /dev/null and b/sprites/s_node_shape_poly_type/layers/ef64a417-ae22-4c2d-a22a-363f98fadc9d/76176505-d4c8-4e24-bdbc-5b19b83fbcc1.png differ diff --git a/sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy b/sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy index c4b125468..fb1ff771c 100644 --- a/sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy +++ b/sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy @@ -3,30 +3,42 @@ "%Name":"s_node_shape_poly_type", "bboxMode":0, "bbox_bottom":21, - "bbox_left":2, - "bbox_right":21, - "bbox_top":2, + "bbox_left":0, + "bbox_right":22, + "bbox_top":0, "collisionKind":1, "collisionTolerance":0, "DynamicTexturePage":false, "edgeFiltering":false, "For3D":false, "frames":[ - {"$GMSpriteFrame":"","%Name":"e2d585d6-df00-47e6-99eb-075f6ae750b3","name":"e2d585d6-df00-47e6-99eb-075f6ae750b3","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, - {"$GMSpriteFrame":"","%Name":"ee3b6b78-cb81-405c-a667-feb55d72af92","name":"ee3b6b78-cb81-405c-a667-feb55d72af92","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, - {"$GMSpriteFrame":"","%Name":"562c7df2-7190-49c6-8c49-381f8ddfe586","name":"562c7df2-7190-49c6-8c49-381f8ddfe586","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, - {"$GMSpriteFrame":"","%Name":"1ad21eb3-2957-4d4d-926e-740ae1d19b0f","name":"1ad21eb3-2957-4d4d-926e-740ae1d19b0f","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, - {"$GMSpriteFrame":"","%Name":"3ed05dc1-67c7-4a63-b070-35ea04b1932a","name":"3ed05dc1-67c7-4a63-b070-35ea04b1932a","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, - {"$GMSpriteFrame":"","%Name":"423b0a1b-c4b4-45f0-bcfa-56109d4cf548","name":"423b0a1b-c4b4-45f0-bcfa-56109d4cf548","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, - {"$GMSpriteFrame":"","%Name":"a82a8f00-ddd0-4cf9-aecd-a1aa158d9a38","name":"a82a8f00-ddd0-4cf9-aecd-a1aa158d9a38","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, - {"$GMSpriteFrame":"","%Name":"42782bd5-2dd4-444f-b5e4-2c12fc7bed1c","name":"42782bd5-2dd4-444f-b5e4-2c12fc7bed1c","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"eb1a66c2-82b6-4784-9b4e-65d844adddf4","name":"eb1a66c2-82b6-4784-9b4e-65d844adddf4","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"02a2a0d3-3291-4c11-9632-1746a7532fc7","name":"02a2a0d3-3291-4c11-9632-1746a7532fc7","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"4fb534c1-6beb-4e49-ba04-82a5758bd1a1","name":"4fb534c1-6beb-4e49-ba04-82a5758bd1a1","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"5e248cad-eddf-4c5c-b68b-e62ed03e6125","name":"5e248cad-eddf-4c5c-b68b-e62ed03e6125","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"31d077ee-faea-4273-add1-b6fae9778ce2","name":"31d077ee-faea-4273-add1-b6fae9778ce2","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"b98159f6-4d53-421b-ba7d-ba3250d80187","name":"b98159f6-4d53-421b-ba7d-ba3250d80187","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"ef64a417-ae22-4c2d-a22a-363f98fadc9d","name":"ef64a417-ae22-4c2d-a22a-363f98fadc9d","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"30159276-e075-41ea-a218-83d883c97e22","name":"30159276-e075-41ea-a218-83d883c97e22","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"21c30ddc-01c0-457b-b4c4-3b7a4d7d3f7b","name":"21c30ddc-01c0-457b-b4c4-3b7a4d7d3f7b","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"e157170d-c5c2-4511-9b17-829b24b451b0","name":"e157170d-c5c2-4511-9b17-829b24b451b0","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"2f0bc8fb-dd23-4d74-ac0a-4ec10077859a","name":"2f0bc8fb-dd23-4d74-ac0a-4ec10077859a","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"1db8a64c-bca5-4538-91a8-73a616951623","name":"1db8a64c-bca5-4538-91a8-73a616951623","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"3bd54037-8259-41e1-8c43-7e6c8353a5ba","name":"3bd54037-8259-41e1-8c43-7e6c8353a5ba","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"4ea45f48-7be7-428b-b6d4-d7ae0268f52b","name":"4ea45f48-7be7-428b-b6d4-d7ae0268f52b","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"0f886809-387b-4bc8-abd4-387fa813ceab","name":"0f886809-387b-4bc8-abd4-387fa813ceab","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"59e777c7-dc4a-4538-b767-32cb28b19b58","name":"59e777c7-dc4a-4538-b767-32cb28b19b58","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"48474e77-9f5c-4af6-9f7a-a161c3e17279","name":"48474e77-9f5c-4af6-9f7a-a161c3e17279","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"77986572-6597-4906-8c03-54f459fa48aa","name":"77986572-6597-4906-8c03-54f459fa48aa","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"7b8695ca-f0c7-4400-8a0e-5308592be2b5","name":"7b8695ca-f0c7-4400-8a0e-5308592be2b5","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"35aaf398-7487-4e64-a934-b4dd188269d0","name":"35aaf398-7487-4e64-a934-b4dd188269d0","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, ], "gridX":0, "gridY":0, "height":24, "HTile":false, "layers":[ - {"$GMImageLayer":"","%Name":"35823b21-ff1a-4246-bb05-7d6f0ef9d118","blendMode":0,"displayName":"default","isLocked":false,"name":"35823b21-ff1a-4246-bb05-7d6f0ef9d118","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, + {"$GMImageLayer":"","%Name":"76176505-d4c8-4e24-bdbc-5b19b83fbcc1","blendMode":0,"displayName":"default","isLocked":false,"name":"76176505-d4c8-4e24-bdbc-5b19b83fbcc1","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, ], "name":"s_node_shape_poly_type", "nineSlice":null, @@ -56,7 +68,7 @@ }, "eventStubScript":null, "eventToFunction":{}, - "length":8.0, + "length":20.0, "lockOrigin":false, "moments":{ "$KeyframeStore":"", @@ -76,29 +88,65 @@ "tracks":[ {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore":"","Keyframes":[ {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"e2d585d6-df00-47e6-99eb-075f6ae750b3","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"9ef851f0-6902-4d24-9bfe-265eb3acfd03","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"eb1a66c2-82b6-4784-9b4e-65d844adddf4","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"d999d736-5bf3-46ca-b27b-9fb89ad510af","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"ee3b6b78-cb81-405c-a667-feb55d72af92","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"436e524f-51d7-45d4-883d-60f2a12074eb","IsCreationKey":false,"Key":1.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"02a2a0d3-3291-4c11-9632-1746a7532fc7","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"9a049ce1-3918-4957-9265-680946b16c11","IsCreationKey":false,"Key":1.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"562c7df2-7190-49c6-8c49-381f8ddfe586","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"aa0b06fe-23a4-428f-bd81-9b2795ea6a94","IsCreationKey":false,"Key":2.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"4fb534c1-6beb-4e49-ba04-82a5758bd1a1","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"25aca6cf-d94e-4d6f-811a-2442d4738c3f","IsCreationKey":false,"Key":2.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"1ad21eb3-2957-4d4d-926e-740ae1d19b0f","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"23162782-5342-425e-b8c6-25ea9d2d967a","IsCreationKey":false,"Key":3.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"5e248cad-eddf-4c5c-b68b-e62ed03e6125","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"bd2296a3-ce47-4e69-8b0c-7ebeb98b485e","IsCreationKey":false,"Key":3.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"3ed05dc1-67c7-4a63-b070-35ea04b1932a","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"b44e1bc3-662e-40d2-af20-29c554ed2fa2","IsCreationKey":false,"Key":4.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"31d077ee-faea-4273-add1-b6fae9778ce2","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"9977db6f-854f-438c-9983-e62c78a0e3a8","IsCreationKey":false,"Key":4.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"423b0a1b-c4b4-45f0-bcfa-56109d4cf548","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"54efa6bb-8740-4590-9b07-0e81a70c1701","IsCreationKey":false,"Key":5.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"b98159f6-4d53-421b-ba7d-ba3250d80187","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"4c5a91e4-3a19-4728-bb27-825cd19a1801","IsCreationKey":false,"Key":5.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"a82a8f00-ddd0-4cf9-aecd-a1aa158d9a38","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"eb4429ba-e2cc-4dfe-95fa-c703fdf49969","IsCreationKey":false,"Key":6.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"ef64a417-ae22-4c2d-a22a-363f98fadc9d","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"b698112a-1090-43fc-97a3-ec03f1a86521","IsCreationKey":false,"Key":6.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"42782bd5-2dd4-444f-b5e4-2c12fc7bed1c","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"23165818-4a4d-42f6-9b70-596187996c9a","IsCreationKey":false,"Key":7.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"30159276-e075-41ea-a218-83d883c97e22","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"0d305ab9-0305-41ff-b5e9-8b204095b856","IsCreationKey":false,"Key":7.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"21c30ddc-01c0-457b-b4c4-3b7a4d7d3f7b","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"853cecfa-b5e0-4402-ba2b-7e479564260c","IsCreationKey":false,"Key":8.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"e157170d-c5c2-4511-9b17-829b24b451b0","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"da9d447b-a308-46aa-979c-26722d012645","IsCreationKey":false,"Key":9.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"2f0bc8fb-dd23-4d74-ac0a-4ec10077859a","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"12709f8a-7d50-46ac-be2f-579f8b884828","IsCreationKey":false,"Key":10.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"1db8a64c-bca5-4538-91a8-73a616951623","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"47d51700-8936-4e1f-88ec-6cd4ed2253f8","IsCreationKey":false,"Key":11.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"3bd54037-8259-41e1-8c43-7e6c8353a5ba","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"55ca2dea-9755-4c6d-9cf0-31c76cb1b215","IsCreationKey":false,"Key":12.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"4ea45f48-7be7-428b-b6d4-d7ae0268f52b","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"19f94ab1-a6fe-481c-b96a-0a8b0fcd9c9c","IsCreationKey":false,"Key":13.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"0f886809-387b-4bc8-abd4-387fa813ceab","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"91646157-4019-4e40-b1c3-38f4cdc46fe8","IsCreationKey":false,"Key":14.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"59e777c7-dc4a-4538-b767-32cb28b19b58","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"d1ec1839-434b-4585-9ffb-9399c528ab60","IsCreationKey":false,"Key":15.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"48474e77-9f5c-4af6-9f7a-a161c3e17279","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"fde7359f-6b0c-4282-a3d0-8e64f0de73ec","IsCreationKey":false,"Key":16.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"77986572-6597-4906-8c03-54f459fa48aa","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"1973058e-eb19-4392-a6a6-34ae158dde79","IsCreationKey":false,"Key":17.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"7b8695ca-f0c7-4400-8a0e-5308592be2b5","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"36f0c724-edac-4b34-99a9-c0b6d2cb3142","IsCreationKey":false,"Key":18.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"35aaf398-7487-4e64-a934-b4dd188269d0","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"764bbc87-456e-4a77-beb9-1c3dfe506597","IsCreationKey":false,"Key":19.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, ],"resourceType":"KeyframeStore","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], "visibleRange":null,