diff --git a/PixelComposer.resource_order b/PixelComposer.resource_order index 7027607ff..e2dcaf0b2 100644 --- a/PixelComposer.resource_order +++ b/PixelComposer.resource_order @@ -1905,10 +1905,13 @@ {"name":"s_node_shadow_type","order":1,"path":"sprites/s_node_shadow_type/s_node_shadow_type.yy",}, {"name":"s_node_shadow","order":49,"path":"sprites/s_node_shadow/s_node_shadow.yy",}, {"name":"s_node_shape_blur","order":7,"path":"sprites/s_node_shape_blur/s_node_shape_blur.yy",}, + {"name":"s_node_shape_circle","order":24,"path":"sprites/s_node_shape_circle/s_node_shape_circle.yy",}, + {"name":"s_node_shape_leaf","order":25,"path":"sprites/s_node_shape_leaf/s_node_shape_leaf.yy",}, {"name":"s_node_shape_map","order":21,"path":"sprites/s_node_shape_map/s_node_shape_map.yy",}, {"name":"s_node_shape_misc","order":6,"path":"sprites/s_node_shape_misc/s_node_shape_misc.yy",}, {"name":"s_node_shape_poly_type","order":22,"path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",}, {"name":"s_node_shape_polygon","order":25,"path":"sprites/s_node_shape_polygon/s_node_shape_polygon.yy",}, + {"name":"s_node_shape_rectangle","order":23,"path":"sprites/s_node_shape_rectangle/s_node_shape_rectangle.yy",}, {"name":"s_node_shape","order":14,"path":"sprites/s_node_shape/s_node_shape.yy",}, {"name":"s_node_shard","order":33,"path":"sprites/s_node_shard/s_node_shard.yy",}, {"name":"s_node_shell_excecute","order":33,"path":"sprites/s_node_shell_excecute/s_node_shell_excecute.yy",}, diff --git a/PixelComposer.yyp b/PixelComposer.yyp index 5ad98f6e0..68ac0fec2 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -2478,10 +2478,13 @@ {"id":{"name":"s_node_shadow_type","path":"sprites/s_node_shadow_type/s_node_shadow_type.yy",},}, {"id":{"name":"s_node_shadow","path":"sprites/s_node_shadow/s_node_shadow.yy",},}, {"id":{"name":"s_node_shape_blur","path":"sprites/s_node_shape_blur/s_node_shape_blur.yy",},}, + {"id":{"name":"s_node_shape_circle","path":"sprites/s_node_shape_circle/s_node_shape_circle.yy",},}, + {"id":{"name":"s_node_shape_leaf","path":"sprites/s_node_shape_leaf/s_node_shape_leaf.yy",},}, {"id":{"name":"s_node_shape_map","path":"sprites/s_node_shape_map/s_node_shape_map.yy",},}, {"id":{"name":"s_node_shape_misc","path":"sprites/s_node_shape_misc/s_node_shape_misc.yy",},}, {"id":{"name":"s_node_shape_poly_type","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},}, {"id":{"name":"s_node_shape_polygon","path":"sprites/s_node_shape_polygon/s_node_shape_polygon.yy",},}, + {"id":{"name":"s_node_shape_rectangle","path":"sprites/s_node_shape_rectangle/s_node_shape_rectangle.yy",},}, {"id":{"name":"s_node_shape_type","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},}, {"id":{"name":"s_node_shape","path":"sprites/s_node_shape/s_node_shape.yy",},}, {"id":{"name":"s_node_shard","path":"sprites/s_node_shard/s_node_shard.yy",},}, diff --git a/scripts/_node_VFX_spawner/_node_VFX_spawner.gml b/scripts/_node_VFX_spawner/_node_VFX_spawner.gml index 4af2676d5..6279b2cc7 100644 --- a/scripts/_node_VFX_spawner/_node_VFX_spawner.gml +++ b/scripts/_node_VFX_spawner/_node_VFX_spawner.gml @@ -250,8 +250,6 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co var _path = getInputData(46); - if(_rotation[1] < _rotation[0]) _rotation[1] += 360; - var _posDist = []; random_set_seed(seed); seed++; diff --git a/scripts/array_functions/array_functions.gml b/scripts/array_functions/array_functions.gml index a7f4c1204..ab8c8c40e 100644 --- a/scripts/array_functions/array_functions.gml +++ b/scripts/array_functions/array_functions.gml @@ -149,6 +149,16 @@ function array_find(arr, val) { #region }); } #endregion +function array_find_string(arr, val) { #region + INLINE + self.__temp_val = string_lower(val); + + if(!is_array(arr)) return -1; + return array_find_index(arr, function(_val, _ind) { + return string_lower(_val) == self.__temp_val; + }); +} #endregion + function array_remove(arr, val) { #region INLINE diff --git a/scripts/node_FLIP_apply_force/node_FLIP_apply_force.gml b/scripts/node_FLIP_apply_force/node_FLIP_apply_force.gml index a01fe940c..d3736ddca 100644 --- a/scripts/node_FLIP_apply_force/node_FLIP_apply_force.gml +++ b/scripts/node_FLIP_apply_force/node_FLIP_apply_force.gml @@ -33,7 +33,7 @@ function Node_FLIP_Apply_Force(_x, _y, _group = noone) : Node(_x, _y, _group) co .setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 0.1] }); inputs[| 3] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) - .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Circle", s_node_shape_type, 1), new scrollItem("Rectangle", s_node_shape_type, 0), ]); + .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Circle", s_node_shape_circle, 0), new scrollItem("Rectangle", s_node_shape_rectangle, 0), ]); inputs[| 4] = nodeValue("Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 4, 4 ] ) .setDisplay(VALUE_DISPLAY.vector); diff --git a/scripts/node_FLIP_apply_velocity/node_FLIP_apply_velocity.gml b/scripts/node_FLIP_apply_velocity/node_FLIP_apply_velocity.gml index ad7a441e6..c5adb64cd 100644 --- a/scripts/node_FLIP_apply_velocity/node_FLIP_apply_velocity.gml +++ b/scripts/node_FLIP_apply_velocity/node_FLIP_apply_velocity.gml @@ -20,7 +20,7 @@ function Node_FLIP_Apply_Velocity(_x, _y, _group = noone) : Node(_x, _y, _group) .setDisplay(VALUE_DISPLAY.vector); inputs[| 4] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) - .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Circle", s_node_shape_type, 1), new scrollItem("Rectangle", s_node_shape_type, 0), ]); + .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Circle", s_node_shape_circle, 0), new scrollItem("Rectangle", s_node_shape_rectangle, 0) ]); inputs[| 5] = nodeValue("Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 4, 4 ] ) .setDisplay(VALUE_DISPLAY.vector); diff --git a/scripts/node_FLIP_destroy/node_FLIP_destroy.gml b/scripts/node_FLIP_destroy/node_FLIP_destroy.gml index 8f313d930..6ece23a1d 100644 --- a/scripts/node_FLIP_destroy/node_FLIP_destroy.gml +++ b/scripts/node_FLIP_destroy/node_FLIP_destroy.gml @@ -14,7 +14,7 @@ function Node_FLIP_Destroy(_x, _y, _group = noone) : Node(_x, _y, _group) constr .setUnitRef(function(index) { return getDimension(); }); inputs[| 2] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) - .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Circle", s_node_shape_type, 1), new scrollItem("Rectangle", s_node_shape_type, 0), ]); + .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Circle", s_node_shape_circle, 0), new scrollItem("Rectangle", s_node_shape_rectangle, 0), ]); inputs[| 3] = nodeValue("Radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 4 ) .setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 0.1] }); diff --git a/scripts/node_FLIP_spawner/node_FLIP_spawner.gml b/scripts/node_FLIP_spawner/node_FLIP_spawner.gml index edc4766f8..bb559f500 100644 --- a/scripts/node_FLIP_spawner/node_FLIP_spawner.gml +++ b/scripts/node_FLIP_spawner/node_FLIP_spawner.gml @@ -10,7 +10,7 @@ function Node_FLIP_Spawner(_x, _y, _group = noone) : Node(_x, _y, _group) constr .setVisible(true, true); inputs[| 1] = nodeValue("Spawn Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) - .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Circle", s_node_shape_type, 1), new scrollItem("Rectangle", s_node_shape_type, 0), "Surface" ]); + .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Circle", s_node_shape_circle, 0), new scrollItem("Rectangle", s_node_shape_rectangle, 0), "Surface" ]); inputs[| 2] = nodeValue("Spawn Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0.5, 0.25 ] ) .setDisplay(VALUE_DISPLAY.vector) diff --git a/scripts/node_area/node_area.gml b/scripts/node_area/node_area.gml index 821800e52..192e560ad 100644 --- a/scripts/node_area/node_area.gml +++ b/scripts/node_area/node_area.gml @@ -11,7 +11,7 @@ function Node_Area(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons .setVisible(true, true); inputs[| 2] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, AREA_SHAPE.rectangle ) - .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Rectangle", s_node_shape_type, 0), new scrollItem("Elipse", s_node_shape_type, 1) ]); + .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Rectangle", s_node_shape_rectangle, 0), new scrollItem("Elipse", s_node_shape_circle, 0) ]); outputs[| 0] = nodeValue("Area", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, [ 0, 0, 0, 0, AREA_SHAPE.rectangle ]) .setDisplay(VALUE_DISPLAY.vector); diff --git a/scripts/node_directory_search/node_directory_search.gml b/scripts/node_directory_search/node_directory_search.gml index b91b7766e..080dc36b6 100644 --- a/scripts/node_directory_search/node_directory_search.gml +++ b/scripts/node_directory_search/node_directory_search.gml @@ -33,6 +33,8 @@ function Node_Directory_Search(_x, _y, _group = noone) : Node(_x, _y, _group) co inputs[| 2] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Surface", "Text" ]); + + inputs[| 3] = nodeValue("Recursive", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false) outputs[| 0] = nodeValue("Outputs", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, []) .setVisible(true, true); @@ -93,13 +95,19 @@ function Node_Directory_Search(_x, _y, _group = noone) : Node(_x, _y, _group) co var path = getInputData(0); var filter = getInputData(1); var type = getInputData(2); + var recurs = getInputData(3); var _paths = struct_get_names(paths); for (var i = 0, n = array_length(_paths); i < n; i++) deleteSprite(paths[$ _paths[i]]); paths = {}; - var _paths = path_dir_get_files(path, filter); + var _paths = path_dir_get_files(path, filter, recurs); + + if(array_empty(_paths)) { + noti_warning("Directory Search: Empty search results.") + return; + } for (var i = 0, n = array_length(_paths); i < n; i++) { var _path = _paths[i]; @@ -109,7 +117,8 @@ function Node_Directory_Search(_x, _y, _group = noone) : Node(_x, _y, _group) co else if(type == 1) refreshText(paths[$ _path]); } - setDisplayName(filename_name_only(path)); + var _p = string_trim_end(path, ["/", "\\"]); + setDisplayName(filename_name_only(_p)); } #endregion insp1UpdateTooltip = __txt("Refresh"); diff --git a/scripts/node_local_analyze/node_local_analyze.gml b/scripts/node_local_analyze/node_local_analyze.gml index a95a87575..dccce05fe 100644 --- a/scripts/node_local_analyze/node_local_analyze.gml +++ b/scripts/node_local_analyze/node_local_analyze.gml @@ -13,8 +13,8 @@ function Node_Local_Analyze(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Empty", "Clamp", "Repeat" ]); inputs[| 4] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) - .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Square", s_node_shape_type, 0), - new scrollItem("Circle", s_node_shape_type, 1), + .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Square", s_node_shape_rectangle, 0), + new scrollItem("Circle", s_node_shape_circle, 0), new scrollItem("Diamond", s_node_shape_misc, 0) ]); inputs[| 5] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone); diff --git a/scripts/node_mk_fall/node_mk_fall.gml b/scripts/node_mk_fall/node_mk_fall.gml index 390b7fd1a..51691ce87 100644 --- a/scripts/node_mk_fall/node_mk_fall.gml +++ b/scripts/node_mk_fall/node_mk_fall.gml @@ -62,7 +62,7 @@ function Node_MK_Fall(_x, _y, _group = noone) : Node(_x, _y, _group) constructor .setDisplay(VALUE_DISPLAY.range, { linked : true }); inputs[| 22] = nodeValue("Render Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) - .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Leaf", s_node_shape_type, 7), new scrollItem("Circle", s_node_shape_type, 1) ]); + .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Leaf", s_node_shape_leaf, 0), new scrollItem("Circle", s_node_shape_circle, 0) ]); inputs[| 23] = nodeValue("Twist Radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.7) .setDisplay(VALUE_DISPLAY.slider); diff --git a/scripts/node_rigid_object/node_rigid_object.gml b/scripts/node_rigid_object/node_rigid_object.gml index abda8ac28..05cb3a13f 100644 --- a/scripts/node_rigid_object/node_rigid_object.gml +++ b/scripts/node_rigid_object/node_rigid_object.gml @@ -36,7 +36,7 @@ function Node_Rigid_Object(_x, _y, _group = noone) : Node(_x, _y, _group) constr .setAnimable(false); inputs[| 5] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) - .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Box", s_node_shape_type, 0), new scrollItem("Circle", s_node_shape_type, 1), new scrollItem("Custom", s_node_shape_misc, 1) ]) + .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Box", s_node_shape_rectangle, 0), new scrollItem("Circle", s_node_shape_circle, 0), new scrollItem("Custom", s_node_shape_misc, 1) ]) .rejectArray() .setAnimable(false); diff --git a/scripts/node_shape/node_shape.gml b/scripts/node_shape/node_shape.gml index 95f8bc94d..a5ffd42e6 100644 --- a/scripts/node_shape/node_shape.gml +++ b/scripts/node_shape/node_shape.gml @@ -1,8 +1,8 @@ -enum NODE_SHAPE_TYPE { rectangle, elipse, regular, star, arc, teardrop, cross, leaf, crescent, donut } - #region create - global.node_shape_keys = [ "rectangle", "ellipse", "regular polygon", "star", "arc", "teardrop", "cross", "leaf", "crescent", "donut" ]; - array_append(global.node_shape_keys, [ "square", "circle", "triangle", "pentagon", "hexagon", "ring" ]); + global.node_shape_keys = [ + "rectangle", "ellipse", "regular polygon", "star", "arc", "teardrop", "cross", "leaf", "crescent", "donut", + "square", "circle", "triangle", "pentagon", "hexagon", "ring", "diamond", "trapezoid", "parallelogram", + ]; function Node_create_Shape(_x, _y, _group = noone, _param = {}) { #region var query = struct_try_get(_param, "query", ""); @@ -17,7 +17,7 @@ enum NODE_SHAPE_TYPE { rectangle, elipse, regular, star, arc, teardrop, cross, l case "hexagon" : ind = 2; node.inputs[| 4].setValue(6); break; case "ring" : ind = 9; break; - default : ind = array_find(global.node_shape_keys, query); + default : ind = array_find_string(node.shape_types, query); } if(ind >= 0) node.inputs[| 2].setValue(ind); @@ -37,12 +37,14 @@ function Node_Shape(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con inputs[| 1] = nodeValue("Background", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); - var _types = [ "Rectangle", "Ellipse", "Regular polygon", "Star", "Arc", "Teardrop", "Cross", "Leaf", "Crescent", "Donut" ]; - for( var i = 0, n = array_length(_types); i < n; i++ ) - _types[i] = new scrollItem(_types[i], s_node_shape_type, i); + shape_types = [ "Rectangle", "Diamond", "Trapezoid", "Parallelogram", "Ellipse", "Regular polygon", "Star", "Arc", "Teardrop", "Cross", "Leaf", "Crescent", "Donut", ]; + shape_types_str = []; + + for( var i = 0, n = array_length(shape_types); i < n; i++ ) + shape_types_str[i] = new scrollItem(shape_types[i], s_node_shape_type, i); inputs[| 2] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) - .setDisplay(VALUE_DISPLAY.enum_scroll, _types); + .setDisplay(VALUE_DISPLAY.enum_scroll, shape_types_str); inputs[| 3] = nodeValue("Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, DEF_AREA_REF) .setUnitRef(onSurfaceSize, VALUE_UNIT.reference) @@ -98,12 +100,18 @@ function Node_Shape(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con inputs[| 20] = nodeValue("Level", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 1 ]) .setDisplay(VALUE_DISPLAY.slider_range); + inputs[| 21] = nodeValue("Angles", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0.5, 1.0 ]) + .setDisplay(VALUE_DISPLAY.slider_range); + + inputs[| 22] = nodeValue("Skew", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5 ) + .setDisplay(VALUE_DISPLAY.slider); + outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); input_display_list = [ ["Output", false], 0, 6, ["Transform", false], 15, 3, 16, 17, 19, - ["Shape", false], 14, 2, 9, 4, 13, 5, 7, 8, + ["Shape", false], 14, 2, 9, 4, 13, 5, 7, 8, 21, 22, ["Render", true], 10, 12, 20, 18, ["Background", true, 1], 11, ]; @@ -267,23 +275,60 @@ function Node_Shape(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con inputs[| 9].setVisible(false); inputs[| 13].setVisible(false); inputs[| 18].setVisible( true); + inputs[| 21].setVisible(false); + inputs[| 22].setVisible(false); - switch(_shape) { #region - case NODE_SHAPE_TYPE.rectangle : + var _shp = array_safe_get(shape_types, _shape, ""); + if(is_struct(_shp)) _shp = _shp.data; + + switch(_shp) { #region + case "Rectangle" : inputs[| 9].setVisible( true); inputs[| 18].setVisible(false); + + shader_set_i("shape", 0); break; - case NODE_SHAPE_TYPE.elipse : + + case "Diamond" : + inputs[| 9].setVisible( true); + inputs[| 18].setVisible(false); + + shader_set_i("shape", 10); break; - case NODE_SHAPE_TYPE.regular : + + case "Trapezoid" : + inputs[| 9].setVisible( true); + inputs[| 18].setVisible(false); + inputs[| 21].setVisible( true); + + shader_set_i("shape", 11); + shader_set_f("trep", _data[21]); + break; + + case "Parallelogram" : + inputs[| 9].setVisible( true); + inputs[| 18].setVisible(false); + inputs[| 22].setVisible( true); + + shader_set_i("shape", 12); + shader_set_f("parall", _data[22]); + break; + + case "Ellipse" : + shader_set_i("shape", 1); + break; + + case "Regular polygon" : inputs[| 4].setVisible(true); inputs[| 7].setVisible(true); inputs[| 9].setVisible(true); + shader_set_i("shape", 2); shader_set_i("sides", _data[4]); shader_set_f("angle", degtorad(_data[7])); break; - case NODE_SHAPE_TYPE.star : + + case "Star" : inputs[| 4].setVisible(true); inputs[| 5].setVisible(true); inputs[| 7].setVisible(true); @@ -291,11 +336,13 @@ function Node_Shape(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con inputs[| 5].name = "Inner radius"; + shader_set_i("shape", 3); shader_set_i("sides", _data[4]); shader_set_f("angle", degtorad(_data[7])); shader_set_f("inner", _data[5]); break; - case NODE_SHAPE_TYPE.arc : + + case "Arc" : inputs[| 5].setVisible(true); inputs[| 8].setVisible(true); @@ -304,39 +351,48 @@ function Node_Shape(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con var ar = _data[8]; var center = degtorad(ar[0] + ar[1]) / 2; var range = degtorad(ar[0] - ar[1]) / 2; + + shader_set_i("shape", 4); shader_set_f("angle", center); shader_set_f("angle_range", [ sin(range), cos(range) ] ); shader_set_f("inner", _data[5] / 2); break; - case NODE_SHAPE_TYPE.teardrop : + + case "Teardrop" : inputs[| 5].setVisible(true); inputs[| 13].setVisible(true); inputs[| 5].name = "End radius"; inputs[| 13].name = "Start radius"; + shader_set_i("shape", 5); shader_set_f("edRad", _data[ 5]); shader_set_f("stRad", _data[13]); break; - case NODE_SHAPE_TYPE.cross : + + case "Cross" : inputs[| 9].setVisible(true); inputs[| 13].setVisible(true); inputs[| 13].name = "Outer radius"; + shader_set_i("shape", 6); shader_set_f("outer", _data[13]); break; - case NODE_SHAPE_TYPE.leaf : + + case "Leaf" : inputs[| 5].setVisible(true); inputs[| 13].setVisible(true); inputs[| 5].name = "Inner radius"; inputs[| 13].name = "Outer radius"; + shader_set_i("shape", 7); shader_set_f("inner", _data[ 5]); shader_set_f("outer", _data[13]); break; - case NODE_SHAPE_TYPE.crescent : + + case "Crescent" : inputs[| 5].setVisible(true); inputs[| 7].setVisible(true); inputs[| 13].setVisible(true); @@ -344,21 +400,24 @@ function Node_Shape(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con inputs[| 5].name = "Shift"; inputs[| 13].name = "Inner circle"; + shader_set_i("shape", 8); shader_set_f("outer", _data[ 5]); shader_set_f("angle", -degtorad(_data[7])); shader_set_f("inner", _data[13]); break; - case NODE_SHAPE_TYPE.donut : + + case "Donut" : inputs[| 13].setVisible(true); inputs[| 13].name = "Inner circle"; + shader_set_i("shape", 9); shader_set_f("inner", _data[13]); break; + } #endregion shader_set_f("dimension", _dim); - shader_set_i("shape", _shape); shader_set_f("bgColor", _bgcol); shader_set_i("aa", _aa); shader_set_i("drawDF", _df); diff --git a/scripts/node_shape_map/node_shape_map.gml b/scripts/node_shape_map/node_shape_map.gml index d1ea7abd8..a84194d6c 100644 --- a/scripts/node_shape_map/node_shape_map.gml +++ b/scripts/node_shape_map/node_shape_map.gml @@ -7,8 +7,8 @@ function Node_Shape_Map(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) active_index = 1; inputs[| 2] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) - .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Circle", s_node_shape_type, 1), - new scrollItem("Polygon", s_node_shape_type, 2), ]); + .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Circle", s_node_shape_circle, 0), + new scrollItem("Polygon", s_node_shape_misc, 1), ]); inputs[| 3] = nodeValue("Map Scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 4, 1 ]) .setDisplay(VALUE_DISPLAY.vector); diff --git a/scripts/node_value/node_value.gml b/scripts/node_value/node_value.gml index 24ce48379..7207a3de2 100644 --- a/scripts/node_value/node_value.gml +++ b/scripts/node_value/node_value.gml @@ -543,20 +543,15 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru case VALUE_DISPLAY.vector_range : #region var val = animator.getValue(); - editWidget = new vectorRangeBox(array_length(val), _txt, function(index, val) { - return setValueInspector(val, index); - }, unit ); + editWidget = new vectorRangeBox(array_length(val), _txt, function(index, val) { return setValueInspector(val, index); }, unit ); if(type == VALUE_TYPE.integer) editWidget.setSlideSpeed(1 / 10); if(!struct_has(display_data, "linked")) display_data.linked = false; - if(array_length(val) == 2) - extract_node = "Node_Vector2"; - else if(array_length(val) == 3) - extract_node = "Node_Vector3"; - else if(array_length(val) == 4) - extract_node = "Node_Vector4"; + if(array_length(val) == 2) extract_node = "Node_Vector2"; + else if(array_length(val) == 3) extract_node = "Node_Vector3"; + else if(array_length(val) == 4) extract_node = "Node_Vector4"; for( var i = 0, n = array_length(animators); i < n; i++ ) animators[i].suffix = " " + string(array_safe_get_fast(global.displaySuffix_VecRange, i)); @@ -574,9 +569,7 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; #endregion case VALUE_DISPLAY.rotation_range : #region - editWidget = new rotatorRange(function(index, val) { - return setValueInspector(val, index); - } ); + editWidget = new rotatorRange(function(index, val) { return setValueInspector(val, index); } ); for( var i = 0, n = array_length(animators); i < n; i++ ) animators[i].suffix = " " + array_safe_get_fast(global.displaySuffix_Range, i); @@ -584,10 +577,8 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru extract_node = "Node_Vector2"; break; #endregion - case VALUE_DISPLAY.rotation_random: #region - editWidget = new rotatorRandom(function(index, val) { - return setValueInspector(val, index); - } ); + case VALUE_DISPLAY.rotation_random : #region + editWidget = new rotatorRandom(function(index, val) { return setValueInspector(val, index); } ); extract_node = "Node_Vector2"; break; #endregion @@ -617,9 +608,7 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; #endregion case VALUE_DISPLAY.area : #region - editWidget = new areaBox(function(index, val) { - return setValueInspector(val, index); - }, unit); + editWidget = new areaBox(function(index, val) { return setValueInspector(val, index); }, unit); if(type == VALUE_TYPE.integer) editWidget.setSlideSpeed(1 / 10); @@ -633,11 +622,7 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; #endregion case VALUE_DISPLAY.padding : #region - editWidget = new paddingBox(function(index, val) { - //var _val = animator.getValue(); - //_val[index] = val; - return setValueInspector(val, index); - }, unit); + editWidget = new paddingBox(function(index, val) { return setValueInspector(val, index); }, unit); if(type == VALUE_TYPE.integer) editWidget.setSlideSpeed(1 / 10); for( var i = 0, n = array_length(animators); i < n; i++ ) @@ -647,9 +632,7 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; #endregion case VALUE_DISPLAY.corner : #region - editWidget = new cornerBox(function(index, val) { - return setValueInspector(val, index); - }, unit); + editWidget = new cornerBox(function(index, val) { return setValueInspector(val, index); }, unit); if(type == VALUE_TYPE.integer) editWidget.setSlideSpeed(1 / 10); for( var i = 0, n = array_length(animators); i < n; i++ ) @@ -659,9 +642,7 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; #endregion case VALUE_DISPLAY.puppet_control : #region - editWidget = new controlPointBox(function(index, val) { - return setValueInspector(val, index); - }); + editWidget = new controlPointBox(function(index, val) { return setValueInspector(val, index); }); extract_node = ""; break; #endregion @@ -686,9 +667,7 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru if(!is_struct(display_data)) display_data = { data: display_data }; var choices = __txt_junction_data(instanceof(node), connect_type, index, display_data.data); - editWidget = new buttonGroup(choices, function(val) { - return setValueInspector(val); - } ); + editWidget = new buttonGroup(choices, function(val) { return setValueInspector(val); } ); rejectConnect(); key_inter = CURVE_TYPE.cut; @@ -696,9 +675,7 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; #endregion case VALUE_DISPLAY.matrix : #region - editWidget = new matrixGrid(_txt, display_data.size, function(index, val) { - return setValueInspector(val, index); - }, unit ); + editWidget = new matrixGrid(_txt, display_data.size, function(index, val) { return setValueInspector(val, index); }, unit ); if(type == VALUE_TYPE.integer) editWidget.setSlideSpeed(1 / 10); for( var i = 0, n = array_length(animators); i < n; i++ ) @@ -708,9 +685,7 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; #endregion case VALUE_DISPLAY.boolean_grid : #region - editWidget = new matrixGrid(_txt, display_data.size, function(index, val) { - return setValueInspector(val, index); - }, unit ); + editWidget = new matrixGrid(_txt, display_data.size, function(index, val) { return setValueInspector(val, index); }, unit ); for( var i = 0, n = array_length(animators); i < n; i++ ) animators[i].suffix = $" {i}"; @@ -725,9 +700,7 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; #endregion case VALUE_DISPLAY.toggle : #region - editWidget = new toggleGroup(display_data.data, function(val) { - return setValueInspector(val); - } ); + editWidget = new toggleGroup(display_data.data, function(val) { return setValueInspector(val); } ); rejectConnect(); key_inter = CURVE_TYPE.cut; @@ -735,18 +708,14 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; #endregion case VALUE_DISPLAY.d3quarternion : #region - editWidget = new quarternionBox(function(index, val) { - return setValueInspector(val, index); - }); + editWidget = new quarternionBox(function(index, val) { return setValueInspector(val, index); }); extract_node = "Node_Vector4"; display_data.angle_display = QUARTERNION_DISPLAY.euler; break; #endregion case VALUE_DISPLAY.path_anchor : #region - editWidget = new pathAnchorBox(function(index, val) { - return setValueInspector(val, index); - }); + editWidget = new pathAnchorBox(function(index, val) { return setValueInspector(val, index); }); extract_node = "Node_Path_Anchor"; break; #endregion @@ -770,6 +739,7 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru graph_h = ui(16); extract_node = "Node_Color"; break; + case VALUE_DISPLAY.palette : editWidget = new buttonPalette(function(color) { return setValueInspector(color); } ); @@ -789,6 +759,7 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru case VALUE_DISPLAY.path_array : editWidget = new pathArrayBox(node, display_data.filter, function(path) { setValueInspector(path); } ); break; + case VALUE_DISPLAY.path_load : editWidget = new textBox(TEXTBOX_INPUT.text, function(str) { setValueInspector(str); } ); diff --git a/scripts/path_reader/path_reader.gml b/scripts/path_reader/path_reader.gml index b26ff010a..b5760f89b 100644 --- a/scripts/path_reader/path_reader.gml +++ b/scripts/path_reader/path_reader.gml @@ -5,14 +5,15 @@ function path_search(paths, _filter = ".png") { return _paths; } -function path_dir_get_files(paths, _extension = ".png") { +function path_dir_get_files(paths, _extension = ".png", _recur = true) { paths = string_trim_end(paths, ["/", "\\"]); var _ext = string_splice(_extension, ";", false, false); var _paths = []; - if(!directory_exists(paths)) return []; + if(!directory_exists(paths)) return _paths; - var st = ds_stack_create(); + var st = ds_stack_create(); + var _root = true; ds_stack_push(st, paths); while(!ds_stack_empty(st)) { @@ -22,15 +23,17 @@ function path_dir_get_files(paths, _extension = ".png") { while(file != "") { var file_full = curr_path + "/" + file; - if(directory_exists(file_full)) + if((_recur || _root) && directory_exists(file_full)) ds_stack_push(st, file_full); - else if(array_exists(_ext, filename_ext(file))) + else if(array_exists(_ext, string_lower(filename_ext(file)))) array_push(_paths, file_full); file = file_find_next(); } file_find_close(); + + _root = false; } ds_stack_destroy(st); diff --git a/shaders/sh_shape/sh_shape.fsh b/shaders/sh_shape/sh_shape.fsh index 56ad6cca9..0e11de00c 100644 --- a/shaders/sh_shape/sh_shape.fsh +++ b/shaders/sh_shape/sh_shape.fsh @@ -20,19 +20,24 @@ uniform float corner; uniform float stRad; uniform float edRad; +uniform float parall; uniform vec2 angle_range; uniform vec2 dimension; uniform vec2 center; uniform vec2 scale; +uniform vec2 trep; uniform vec4 bgColor; #define PI 3.14159265359 #define TAU 6.283185307179586 -float sdRegularPolygon(in vec2 p, in float r, in int n, in float ang ) { #region +float ndot(vec2 a, vec2 b ) { return a.x*b.x - a.y*b.y; } +float dot2(in vec2 v ) { return dot(v,v); } + +float sdRegularPolygon(in vec2 p, in float r, in int n, in float ang ) { // these 4 lines can be precomputed for a given shape float an = PI / float(n); vec2 acs = vec2(cos(an), sin(an)); @@ -45,10 +50,10 @@ float sdRegularPolygon(in vec2 p, in float r, in int n, in float ang ) { #region p -= r * acs; p.y += clamp( -p.y, 0.0, r * acs.y); return length(p) * sign(p.x); -} #endregion +} // signed distance to a n-star polygon with external angle en -float sdStar(in vec2 p, in float r, in int n, in float m, in float ang) { #region m=[2,n] +float sdStar(in vec2 p, in float r, in int n, in float m, in float ang) { //m=[2,n] // these 4 lines can be precomputed for a given shape float an = PI / float(n); float en = PI / m; @@ -63,68 +68,107 @@ float sdStar(in vec2 p, in float r, in int n, in float m, in float ang) { #regio p -= r * acs; p += ecs * clamp( -dot(p, ecs), 0.0, r * acs.y / ecs.y); return length(p)*sign(p.x); -} #endregion +} // sca is the sin/cos of the orientation // scb is the sin/cos of the aperture -float sdArc( in vec2 p, in vec2 sca, in vec2 scb, in float ra, in float rb ) { #region +float sdArc( in vec2 p, in vec2 sca, in vec2 scb, in float ra, in float rb ) { p *= mat2(sca.x, sca.y, -sca.y, sca.x); p.x = abs(p.x); float k = (scb.y * p.x > scb.x * p.y) ? dot(p.xy,scb) : length(p); return sqrt( dot(p, p) + ra * ra - 2.0 * ra * k ) - rb; -} #endregion +} -float sdRoundBox( in vec2 p, in vec2 b, in vec4 r ) { #region +float sdRoundBox( in vec2 p, in vec2 b, in vec4 r ) { r.xy = (p.x > 0.0)? r.xy : r.zw; r.x = (p.y > 0.0)? r.x : r.y; vec2 q = abs(p) - b + r.x; return min(max(q.x, q.y), 0.0) + length(max(q, 0.0)) - r.x; -} #endregion +} -float sdBox( in vec2 p, in vec2 b ) { #region +float sdBox( in vec2 p, in vec2 b ) { vec2 d = abs(p) - b; return length(max(d, 0.0)) + min(max(d.x, d.y), 0.0); -} #endregion +} -float sdTearDrop( vec2 p, float r1, float r2, float h ) { #region +float sdTearDrop( vec2 p, float r1, float r2, float h ) { p.x = abs(p.x); - float b = (r1-r2)/h; - float a = sqrt(1.0-b*b); - float k = dot(p,vec2(-b,a)); - if( k < 0.0 ) return length(p) - r1; - if( k > a*h ) return length(p-vec2(0.0,h)) - r2; - return dot(p, vec2(a,b) ) - r1; -} #endregion + float b = (r1 - r2) / h; + float a = sqrt(1.0 - b * b); + float k = dot(p, vec2(-b, a)); + if( k < 0.0 ) return length(p) - r1; + if( k > a * h ) return length(p - vec2(0.0, h)) - r2; + return dot(p, vec2(a, b) ) - r1; +} -float sdCross( in vec2 p, in vec2 b, float r ) { #region - p = abs(p); p = (p.y>p.x) ? p.yx : p.xy; +float sdCross( in vec2 p, in vec2 b, float r ) { + p = abs(p); + p = (p.y > p.x) ? p.yx : p.xy; vec2 q = p - b; - float k = max(q.y,q.x); - vec2 w = (k>0.0) ? q : vec2(b.y-p.x,-k); - return sign(k)*length(max(w,0.0)) + r; -} #endregion + float k = max(q.y, q.x); + vec2 w = (k > 0.0) ? q : vec2(b.y - p.x, -k); + return sign(k) * length(max(w, 0.0)) + r; +} -float sdVesica(vec2 p, float r, float d) { #region +float sdVesica(vec2 p, float r, float d) { p = abs(p); - float b = sqrt(r*r-d*d); // can delay this sqrt by rewriting the comparison - return ((p.y-b)*d > p.x*b) ? length(p-vec2(0.0,b))*sign(d) - : length(p-vec2(-d,0.0))-r; -} #endregion + float b = sqrt(r * r - d * d); // can delay this sqrt by rewriting the comparison + return ((p.y - b) * d > p.x * b) ? length(p - vec2(0.0, b)) * sign(d) + : length(p - vec2(-d, 0.0)) - r; +} -float sdCrescent(vec2 p, float s, float c, float a) { #region +float sdCrescent(vec2 p, float s, float c, float a) { float o = length(p) - 1.; float i = length(p - vec2(cos(a) * (1. - s * c), sin(a) * (1. - s * c))) / s - 1.; return max(o, -i); -} #endregion +} -float sdDonut(vec2 p, float s) { #region +float sdDonut(vec2 p, float s) { float o = length(p) - 1.; float i = length(p) / s - 1.; return max(o, -i); -} #endregion +} + +float sdRhombus( in vec2 p, in vec2 b ) { + p = abs(p); + + float h = clamp( ndot(b - 2.0 * p,b) / dot(b, b), -1.0, 1.0 ); + float d = length( p - 0.5 * b * vec2(1.0 - h, 1.0 + h) ); + + return d * sign( p.x * b.y + p.y * b.x - b.x * b.y ); +} + +float sdSegment( in vec2 p, in vec2 a, in vec2 b ) { + vec2 pa = p - a, ba = b - a; + float h = clamp( dot(pa, ba) / dot(ba, ba), 0.0, 1.0 ); + return length( pa - ba * h ); +} + +float sdTrapezoid( in vec2 p, in float r1, float r2, float he ) { + vec2 k1 = vec2(r2, he); + vec2 k2 = vec2(r2 - r1, 2.0 * he); + p.x = abs(p.x); + + vec2 ca = vec2(p.x - min(p.x, (p.y < 0.0)? r1 : r2), abs(p.y) - he); + vec2 cb = p - k1 + k2 * clamp( dot(k1 - p, k2) / dot2(k2), 0.0, 1.0 ); + float s = (cb.x < 0.0 && ca.y < 0.0) ? -1.0 : 1.0; + return s * sqrt( min(dot2(ca), dot2(cb)) ); +} + +float sdParallelogram( in vec2 p, float wi, float he, float sk ) { + vec2 e = vec2(sk, he); + p = (p.y < 0.0)? -p : p; + vec2 w = p - e; w.x -= clamp(w.x, -wi, wi); + vec2 d = vec2(dot(w, w), -w.y); + float s = p.x * e.y - p.y * e.x; + p = (s < 0.0)? -p : p; + vec2 v = p - vec2(wi, 0); v -= e * clamp(dot(v, e) / dot(e, e), -1.0, 1.0); + d = min( d, vec2(dot(v, v), wi * he - abs(s))); + return sqrt(d.x) * sign(-d.y); +} void main() { float color = 0.; @@ -137,20 +181,27 @@ void main() { if(shape == 0) { d = sdBox( (v_vTexcoord - center) * mat2(cos(rotation), -sin(rotation), sin(rotation), cos(rotation)) * ratio, (scale * ratio - corner)); d -= corner; + } else if(shape == 1) { d = length(coord) - 1.; + } else if(shape == 2) { d = sdRegularPolygon( coord, 0.9 - corner, sides, angle ); d -= corner; + } else if(shape == 3) { d = sdStar( coord, 0.9 - corner, sides, 2. + inner * (float(sides) - 2.), angle ); d -= corner; - } else if(shape == 4) d = sdArc( coord, vec2(sin(angle), cos(angle)), angle_range, 0.9 - inner, inner ); - else if(shape == 5) d = sdTearDrop( coord + vec2(0., 0.5), stRad, edRad, 1. ); - else if(shape == 6) d = sdCross( coord, vec2(1. + corner, outer), corner ); - else if(shape == 7) d = sdVesica( coord, inner, outer ); - else if(shape == 8) d = sdCrescent( coord, inner, outer, angle ); - else if(shape == 9) d = sdDonut( coord, inner ); + + } else if(shape == 4) d = sdArc( coord, vec2(sin(angle), cos(angle)), angle_range, 0.9 - inner, inner ); + else if(shape == 5) d = sdTearDrop( coord + vec2(0., 0.5), stRad, edRad, 1. ); + else if(shape == 6) d = sdCross( coord, vec2(1. + corner, outer), corner ); + else if(shape == 7) d = sdVesica( coord, inner, outer ); + else if(shape == 8) d = sdCrescent( coord, inner, outer, angle ); + else if(shape == 9) d = sdDonut( coord, inner ); + else if(shape == 10) d = sdRhombus( coord, vec2(1. - corner) ) - corner; + else if(shape == 11) d = sdTrapezoid( coord, trep.x - corner, trep.y - corner, 1. - corner ) - corner; + else if(shape == 12) d = sdParallelogram( coord, 1. - corner - parall, 1. - corner, parall) - corner; if(drawDF == 1) { color = -d; diff --git a/sprites/s_node_shape_type/layers/3c16b005-0fdf-4af6-bbd0-f6b29328ec70/af3459aa-e234-4282-ba5c-db0e34f3c62b.png b/sprites/s_node_shape_circle/cf030556-92eb-437b-80ed-1fbaec3ab825.png similarity index 57% rename from sprites/s_node_shape_type/layers/3c16b005-0fdf-4af6-bbd0-f6b29328ec70/af3459aa-e234-4282-ba5c-db0e34f3c62b.png rename to sprites/s_node_shape_circle/cf030556-92eb-437b-80ed-1fbaec3ab825.png index 031ae5376..570e0a7f0 100644 Binary files a/sprites/s_node_shape_type/layers/3c16b005-0fdf-4af6-bbd0-f6b29328ec70/af3459aa-e234-4282-ba5c-db0e34f3c62b.png and b/sprites/s_node_shape_circle/cf030556-92eb-437b-80ed-1fbaec3ab825.png differ diff --git a/sprites/s_node_shape_type/3c16b005-0fdf-4af6-bbd0-f6b29328ec70.png b/sprites/s_node_shape_circle/layers/cf030556-92eb-437b-80ed-1fbaec3ab825/2cf10068-76aa-4aa4-8fdc-cf8df2b3f52f.png similarity index 57% rename from sprites/s_node_shape_type/3c16b005-0fdf-4af6-bbd0-f6b29328ec70.png rename to sprites/s_node_shape_circle/layers/cf030556-92eb-437b-80ed-1fbaec3ab825/2cf10068-76aa-4aa4-8fdc-cf8df2b3f52f.png index 031ae5376..09b17bcff 100644 Binary files a/sprites/s_node_shape_type/3c16b005-0fdf-4af6-bbd0-f6b29328ec70.png and b/sprites/s_node_shape_circle/layers/cf030556-92eb-437b-80ed-1fbaec3ab825/2cf10068-76aa-4aa4-8fdc-cf8df2b3f52f.png differ diff --git a/sprites/s_node_shape_circle/s_node_shape_circle.yy b/sprites/s_node_shape_circle/s_node_shape_circle.yy new file mode 100644 index 000000000..dd86b8501 --- /dev/null +++ b/sprites/s_node_shape_circle/s_node_shape_circle.yy @@ -0,0 +1,95 @@ +{ + "$GMSprite":"", + "%Name":"s_node_shape_circle", + "bboxMode":0, + "bbox_bottom":20, + "bbox_left":3, + "bbox_right":20, + "bbox_top":3, + "collisionKind":1, + "collisionTolerance":0, + "ConfigValues":{ + "Itch":{ + "textureGroupId":"{ \"name\":\"Default\", \"path\":\"texturegroups/Default\" }", + }, + }, + "DynamicTexturePage":false, + "edgeFiltering":false, + "For3D":false, + "frames":[ + {"$GMSpriteFrame":"","%Name":"cf030556-92eb-437b-80ed-1fbaec3ab825","name":"cf030556-92eb-437b-80ed-1fbaec3ab825","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + ], + "gridX":0, + "gridY":0, + "height":24, + "HTile":false, + "layers":[ + {"$GMImageLayer":"","%Name":"2cf10068-76aa-4aa4-8fdc-cf8df2b3f52f","blendMode":0,"displayName":"default","isLocked":false,"name":"2cf10068-76aa-4aa4-8fdc-cf8df2b3f52f","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, + ], + "name":"s_node_shape_circle", + "nineSlice":null, + "origin":4, + "parent":{ + "name":"nodes", + "path":"folders/sprites/nodes.yy", + }, + "preMultiplyAlpha":false, + "resourceType":"GMSprite", + "resourceVersion":"2.0", + "sequence":{ + "$GMSequence":"", + "%Name":"s_node_shape_circle", + "autoRecord":true, + "backdropHeight":768, + "backdropImageOpacity":0.5, + "backdropImagePath":"", + "backdropWidth":1366, + "backdropXOffset":0.0, + "backdropYOffset":0.0, + "events":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "eventStubScript":null, + "eventToFunction":{}, + "length":1.0, + "lockOrigin":false, + "moments":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "name":"s_node_shape_circle", + "playback":1, + "playbackSpeed":30.0, + "playbackSpeedType":0, + "resourceType":"GMSequence", + "resourceVersion":"2.0", + "showBackdrop":true, + "showBackdropImage":false, + "timeUnits":1, + "tracks":[ + {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore":"","Keyframes":[ + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"cf030556-92eb-437b-80ed-1fbaec3ab825","path":"sprites/s_node_shape_circle/s_node_shape_circle.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"52176aad-60cc-4bb8-a0ea-04ba50d60741","IsCreationKey":false,"Key":0.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, + "volume":1.0, + "xorigin":12, + "yorigin":12, + }, + "swatchColours":null, + "swfPrecision":2.525, + "textureGroupId":{ + "name":"Default", + "path":"texturegroups/Default", + }, + "type":0, + "VTile":false, + "width":24, +} \ No newline at end of file diff --git a/sprites/s_node_shape_type/7a4c420e-5fd3-43de-a420-d37bc8deb71d.png b/sprites/s_node_shape_leaf/3b6185db-9a13-4cdc-a4e6-a483cf4d6281.png similarity index 60% rename from sprites/s_node_shape_type/7a4c420e-5fd3-43de-a420-d37bc8deb71d.png rename to sprites/s_node_shape_leaf/3b6185db-9a13-4cdc-a4e6-a483cf4d6281.png index cb0216dab..9cffa5b1b 100644 Binary files a/sprites/s_node_shape_type/7a4c420e-5fd3-43de-a420-d37bc8deb71d.png and b/sprites/s_node_shape_leaf/3b6185db-9a13-4cdc-a4e6-a483cf4d6281.png differ diff --git a/sprites/s_node_shape_type/layers/7a4c420e-5fd3-43de-a420-d37bc8deb71d/af3459aa-e234-4282-ba5c-db0e34f3c62b.png b/sprites/s_node_shape_leaf/layers/3b6185db-9a13-4cdc-a4e6-a483cf4d6281/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png similarity index 60% rename from sprites/s_node_shape_type/layers/7a4c420e-5fd3-43de-a420-d37bc8deb71d/af3459aa-e234-4282-ba5c-db0e34f3c62b.png rename to sprites/s_node_shape_leaf/layers/3b6185db-9a13-4cdc-a4e6-a483cf4d6281/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png index cb0216dab..c308f966b 100644 Binary files a/sprites/s_node_shape_type/layers/7a4c420e-5fd3-43de-a420-d37bc8deb71d/af3459aa-e234-4282-ba5c-db0e34f3c62b.png and b/sprites/s_node_shape_leaf/layers/3b6185db-9a13-4cdc-a4e6-a483cf4d6281/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png differ diff --git a/sprites/s_node_shape_leaf/s_node_shape_leaf.yy b/sprites/s_node_shape_leaf/s_node_shape_leaf.yy new file mode 100644 index 000000000..c9f357d9c --- /dev/null +++ b/sprites/s_node_shape_leaf/s_node_shape_leaf.yy @@ -0,0 +1,95 @@ +{ + "$GMSprite":"", + "%Name":"s_node_shape_leaf", + "bboxMode":0, + "bbox_bottom":20, + "bbox_left":7, + "bbox_right":16, + "bbox_top":3, + "collisionKind":1, + "collisionTolerance":0, + "ConfigValues":{ + "Itch":{ + "textureGroupId":"{ \"name\":\"Default\", \"path\":\"texturegroups/Default\" }", + }, + }, + "DynamicTexturePage":false, + "edgeFiltering":false, + "For3D":false, + "frames":[ + {"$GMSpriteFrame":"","%Name":"3b6185db-9a13-4cdc-a4e6-a483cf4d6281","name":"3b6185db-9a13-4cdc-a4e6-a483cf4d6281","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + ], + "gridX":0, + "gridY":0, + "height":24, + "HTile":false, + "layers":[ + {"$GMImageLayer":"","%Name":"4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4","blendMode":0,"displayName":"default","isLocked":false,"name":"4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, + ], + "name":"s_node_shape_leaf", + "nineSlice":null, + "origin":4, + "parent":{ + "name":"nodes", + "path":"folders/sprites/nodes.yy", + }, + "preMultiplyAlpha":false, + "resourceType":"GMSprite", + "resourceVersion":"2.0", + "sequence":{ + "$GMSequence":"", + "%Name":"s_node_shape_leaf", + "autoRecord":true, + "backdropHeight":768, + "backdropImageOpacity":0.5, + "backdropImagePath":"", + "backdropWidth":1366, + "backdropXOffset":0.0, + "backdropYOffset":0.0, + "events":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "eventStubScript":null, + "eventToFunction":{}, + "length":1.0, + "lockOrigin":false, + "moments":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "name":"s_node_shape_leaf", + "playback":1, + "playbackSpeed":30.0, + "playbackSpeedType":0, + "resourceType":"GMSequence", + "resourceVersion":"2.0", + "showBackdrop":true, + "showBackdropImage":false, + "timeUnits":1, + "tracks":[ + {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore":"","Keyframes":[ + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"3b6185db-9a13-4cdc-a4e6-a483cf4d6281","path":"sprites/s_node_shape_leaf/s_node_shape_leaf.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"60c28ee2-65e2-4896-923e-2ed609102398","IsCreationKey":false,"Key":0.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, + "volume":1.0, + "xorigin":12, + "yorigin":12, + }, + "swatchColours":null, + "swfPrecision":2.525, + "textureGroupId":{ + "name":"Default", + "path":"texturegroups/Default", + }, + "type":0, + "VTile":false, + "width":24, +} \ No newline at end of file diff --git a/sprites/s_node_shape_rectangle/c062d35a-662c-46c4-9898-cf687121115d.png b/sprites/s_node_shape_rectangle/c062d35a-662c-46c4-9898-cf687121115d.png new file mode 100644 index 000000000..20e68fbf5 Binary files /dev/null and b/sprites/s_node_shape_rectangle/c062d35a-662c-46c4-9898-cf687121115d.png differ diff --git a/sprites/s_node_shape_rectangle/layers/c062d35a-662c-46c4-9898-cf687121115d/2cf10068-76aa-4aa4-8fdc-cf8df2b3f52f.png b/sprites/s_node_shape_rectangle/layers/c062d35a-662c-46c4-9898-cf687121115d/2cf10068-76aa-4aa4-8fdc-cf8df2b3f52f.png new file mode 100644 index 000000000..25745dc6f Binary files /dev/null and b/sprites/s_node_shape_rectangle/layers/c062d35a-662c-46c4-9898-cf687121115d/2cf10068-76aa-4aa4-8fdc-cf8df2b3f52f.png differ diff --git a/sprites/s_node_shape_rectangle/s_node_shape_rectangle.yy b/sprites/s_node_shape_rectangle/s_node_shape_rectangle.yy new file mode 100644 index 000000000..55aad358e --- /dev/null +++ b/sprites/s_node_shape_rectangle/s_node_shape_rectangle.yy @@ -0,0 +1,95 @@ +{ + "$GMSprite":"", + "%Name":"s_node_shape_rectangle", + "bboxMode":0, + "bbox_bottom":19, + "bbox_left":4, + "bbox_right":19, + "bbox_top":4, + "collisionKind":1, + "collisionTolerance":0, + "ConfigValues":{ + "Itch":{ + "textureGroupId":"{ \"name\":\"Default\", \"path\":\"texturegroups/Default\" }", + }, + }, + "DynamicTexturePage":false, + "edgeFiltering":false, + "For3D":false, + "frames":[ + {"$GMSpriteFrame":"","%Name":"c062d35a-662c-46c4-9898-cf687121115d","name":"c062d35a-662c-46c4-9898-cf687121115d","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + ], + "gridX":0, + "gridY":0, + "height":24, + "HTile":false, + "layers":[ + {"$GMImageLayer":"","%Name":"2cf10068-76aa-4aa4-8fdc-cf8df2b3f52f","blendMode":0,"displayName":"default","isLocked":false,"name":"2cf10068-76aa-4aa4-8fdc-cf8df2b3f52f","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, + ], + "name":"s_node_shape_rectangle", + "nineSlice":null, + "origin":4, + "parent":{ + "name":"nodes", + "path":"folders/sprites/nodes.yy", + }, + "preMultiplyAlpha":false, + "resourceType":"GMSprite", + "resourceVersion":"2.0", + "sequence":{ + "$GMSequence":"", + "%Name":"s_node_shape_rectangle", + "autoRecord":true, + "backdropHeight":768, + "backdropImageOpacity":0.5, + "backdropImagePath":"", + "backdropWidth":1366, + "backdropXOffset":0.0, + "backdropYOffset":0.0, + "events":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "eventStubScript":null, + "eventToFunction":{}, + "length":1.0, + "lockOrigin":false, + "moments":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "name":"s_node_shape_rectangle", + "playback":1, + "playbackSpeed":30.0, + "playbackSpeedType":0, + "resourceType":"GMSequence", + "resourceVersion":"2.0", + "showBackdrop":true, + "showBackdropImage":false, + "timeUnits":1, + "tracks":[ + {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore":"","Keyframes":[ + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"c062d35a-662c-46c4-9898-cf687121115d","path":"sprites/s_node_shape_rectangle/s_node_shape_rectangle.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"0f523f3d-7e20-4e72-b9ee-526dba4a192e","IsCreationKey":false,"Key":0.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, + "volume":1.0, + "xorigin":12, + "yorigin":12, + }, + "swatchColours":null, + "swfPrecision":2.525, + "textureGroupId":{ + "name":"Default", + "path":"texturegroups/Default", + }, + "type":0, + "VTile":false, + "width":24, +} \ No newline at end of file diff --git a/sprites/s_node_shape_type/layers/69eff4a9-10e5-497d-96ae-b8b66f9a07b0/af3459aa-e234-4282-ba5c-db0e34f3c62b.png b/sprites/s_node_shape_type/2893727a-1872-4e51-b211-59df36bbc651.png similarity index 53% rename from sprites/s_node_shape_type/layers/69eff4a9-10e5-497d-96ae-b8b66f9a07b0/af3459aa-e234-4282-ba5c-db0e34f3c62b.png rename to sprites/s_node_shape_type/2893727a-1872-4e51-b211-59df36bbc651.png index 6340d3ade..fee407c12 100644 Binary files a/sprites/s_node_shape_type/layers/69eff4a9-10e5-497d-96ae-b8b66f9a07b0/af3459aa-e234-4282-ba5c-db0e34f3c62b.png and b/sprites/s_node_shape_type/2893727a-1872-4e51-b211-59df36bbc651.png differ diff --git a/sprites/s_node_shape_type/3b6185db-9a13-4cdc-a4e6-a483cf4d6281.png b/sprites/s_node_shape_type/3b6185db-9a13-4cdc-a4e6-a483cf4d6281.png new file mode 100644 index 000000000..c308f966b Binary files /dev/null and b/sprites/s_node_shape_type/3b6185db-9a13-4cdc-a4e6-a483cf4d6281.png differ diff --git a/sprites/s_node_shape_type/48bc866d-ad21-4667-bec2-914ec021c526.png b/sprites/s_node_shape_type/48bc866d-ad21-4667-bec2-914ec021c526.png deleted file mode 100644 index 6c3fccf8a..000000000 Binary files a/sprites/s_node_shape_type/48bc866d-ad21-4667-bec2-914ec021c526.png and /dev/null differ diff --git a/sprites/s_node_shape_type/5526c2ef-3545-4dca-bec6-85357e76b6b1.png b/sprites/s_node_shape_type/5526c2ef-3545-4dca-bec6-85357e76b6b1.png new file mode 100644 index 000000000..aeffc17b9 Binary files /dev/null and b/sprites/s_node_shape_type/5526c2ef-3545-4dca-bec6-85357e76b6b1.png differ diff --git a/sprites/s_node_shape_type/5695f049-b1d1-49f5-b3aa-e1e963a85824.png b/sprites/s_node_shape_type/651de5b3-7033-4983-aa29-7308549c5997.png similarity index 65% rename from sprites/s_node_shape_type/5695f049-b1d1-49f5-b3aa-e1e963a85824.png rename to sprites/s_node_shape_type/651de5b3-7033-4983-aa29-7308549c5997.png index f874815ba..91d92ebc4 100644 Binary files a/sprites/s_node_shape_type/5695f049-b1d1-49f5-b3aa-e1e963a85824.png and b/sprites/s_node_shape_type/651de5b3-7033-4983-aa29-7308549c5997.png differ diff --git a/sprites/s_node_shape_type/6c545309-6ffe-4c08-bed2-9c82065ad8d4.png b/sprites/s_node_shape_type/6c545309-6ffe-4c08-bed2-9c82065ad8d4.png new file mode 100644 index 000000000..133219dbd Binary files /dev/null and b/sprites/s_node_shape_type/6c545309-6ffe-4c08-bed2-9c82065ad8d4.png differ diff --git a/sprites/s_node_shape_type/0412b90e-66c7-4dd8-a11e-19d68da47a0c.png b/sprites/s_node_shape_type/71d205ee-df82-4582-bf38-39392d51dd23.png similarity index 57% rename from sprites/s_node_shape_type/0412b90e-66c7-4dd8-a11e-19d68da47a0c.png rename to sprites/s_node_shape_type/71d205ee-df82-4582-bf38-39392d51dd23.png index dfdc4e114..31b767bbb 100644 Binary files a/sprites/s_node_shape_type/0412b90e-66c7-4dd8-a11e-19d68da47a0c.png and b/sprites/s_node_shape_type/71d205ee-df82-4582-bf38-39392d51dd23.png differ diff --git a/sprites/s_node_shape_type/7a237ffa-be4c-4d8e-bd2f-ae809eb3b319.png b/sprites/s_node_shape_type/7a237ffa-be4c-4d8e-bd2f-ae809eb3b319.png new file mode 100644 index 000000000..b23724e60 Binary files /dev/null and b/sprites/s_node_shape_type/7a237ffa-be4c-4d8e-bd2f-ae809eb3b319.png differ diff --git a/sprites/s_node_shape_type/83508ab4-faeb-411c-8b6e-d29be9cddea9.png b/sprites/s_node_shape_type/83508ab4-faeb-411c-8b6e-d29be9cddea9.png new file mode 100644 index 000000000..4ef3e9fd3 Binary files /dev/null and b/sprites/s_node_shape_type/83508ab4-faeb-411c-8b6e-d29be9cddea9.png differ diff --git a/sprites/s_node_shape_type/layers/49220458-bf1c-4c96-b39f-29641a235a59/af3459aa-e234-4282-ba5c-db0e34f3c62b.png b/sprites/s_node_shape_type/84e23289-8dc8-4aeb-b056-57889a5a04a9.png similarity index 72% rename from sprites/s_node_shape_type/layers/49220458-bf1c-4c96-b39f-29641a235a59/af3459aa-e234-4282-ba5c-db0e34f3c62b.png rename to sprites/s_node_shape_type/84e23289-8dc8-4aeb-b056-57889a5a04a9.png index 07e161aae..b17144d25 100644 Binary files a/sprites/s_node_shape_type/layers/49220458-bf1c-4c96-b39f-29641a235a59/af3459aa-e234-4282-ba5c-db0e34f3c62b.png and b/sprites/s_node_shape_type/84e23289-8dc8-4aeb-b056-57889a5a04a9.png differ diff --git a/sprites/s_node_shape_type/f95f551b-65f3-47ca-86f4-341c8de92bf8.png b/sprites/s_node_shape_type/8973bafa-9ba5-4018-82fe-49369c528c77.png similarity index 65% rename from sprites/s_node_shape_type/f95f551b-65f3-47ca-86f4-341c8de92bf8.png rename to sprites/s_node_shape_type/8973bafa-9ba5-4018-82fe-49369c528c77.png index 50314bd88..806e8e83e 100644 Binary files a/sprites/s_node_shape_type/f95f551b-65f3-47ca-86f4-341c8de92bf8.png and b/sprites/s_node_shape_type/8973bafa-9ba5-4018-82fe-49369c528c77.png differ diff --git a/sprites/s_node_shape_type/e39a435f-a2e0-4394-816a-0434f1ae62d1.png b/sprites/s_node_shape_type/bab10856-f499-4364-8bdb-230f241dcf0d.png similarity index 63% rename from sprites/s_node_shape_type/e39a435f-a2e0-4394-816a-0434f1ae62d1.png rename to sprites/s_node_shape_type/bab10856-f499-4364-8bdb-230f241dcf0d.png index 20cd06a3c..b49582419 100644 Binary files a/sprites/s_node_shape_type/e39a435f-a2e0-4394-816a-0434f1ae62d1.png and b/sprites/s_node_shape_type/bab10856-f499-4364-8bdb-230f241dcf0d.png differ diff --git a/sprites/s_node_shape_type/d3111831-695a-4461-9130-3228744761bb.png b/sprites/s_node_shape_type/d3111831-695a-4461-9130-3228744761bb.png new file mode 100644 index 000000000..b58f9e8ec Binary files /dev/null and b/sprites/s_node_shape_type/d3111831-695a-4461-9130-3228744761bb.png differ diff --git a/sprites/s_node_shape_type/eda5c901-9a81-421c-89a9-1b3c83ef0483.png b/sprites/s_node_shape_type/d3655d0c-9269-4162-9ae7-82c547edf674.png similarity index 67% rename from sprites/s_node_shape_type/eda5c901-9a81-421c-89a9-1b3c83ef0483.png rename to sprites/s_node_shape_type/d3655d0c-9269-4162-9ae7-82c547edf674.png index 35d04e9c9..66916a7f6 100644 Binary files a/sprites/s_node_shape_type/eda5c901-9a81-421c-89a9-1b3c83ef0483.png and b/sprites/s_node_shape_type/d3655d0c-9269-4162-9ae7-82c547edf674.png differ diff --git a/sprites/s_node_shape_type/69eff4a9-10e5-497d-96ae-b8b66f9a07b0.png b/sprites/s_node_shape_type/layers/2893727a-1872-4e51-b211-59df36bbc651/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png similarity index 53% rename from sprites/s_node_shape_type/69eff4a9-10e5-497d-96ae-b8b66f9a07b0.png rename to sprites/s_node_shape_type/layers/2893727a-1872-4e51-b211-59df36bbc651/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png index 6340d3ade..fee407c12 100644 Binary files a/sprites/s_node_shape_type/69eff4a9-10e5-497d-96ae-b8b66f9a07b0.png and b/sprites/s_node_shape_type/layers/2893727a-1872-4e51-b211-59df36bbc651/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png differ diff --git a/sprites/s_node_shape_type/layers/3b6185db-9a13-4cdc-a4e6-a483cf4d6281/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png b/sprites/s_node_shape_type/layers/3b6185db-9a13-4cdc-a4e6-a483cf4d6281/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png new file mode 100644 index 000000000..c308f966b Binary files /dev/null and b/sprites/s_node_shape_type/layers/3b6185db-9a13-4cdc-a4e6-a483cf4d6281/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png differ diff --git a/sprites/s_node_shape_type/layers/48bc866d-ad21-4667-bec2-914ec021c526/af3459aa-e234-4282-ba5c-db0e34f3c62b.png b/sprites/s_node_shape_type/layers/48bc866d-ad21-4667-bec2-914ec021c526/af3459aa-e234-4282-ba5c-db0e34f3c62b.png deleted file mode 100644 index 6c3fccf8a..000000000 Binary files a/sprites/s_node_shape_type/layers/48bc866d-ad21-4667-bec2-914ec021c526/af3459aa-e234-4282-ba5c-db0e34f3c62b.png and /dev/null differ diff --git a/sprites/s_node_shape_type/layers/5526c2ef-3545-4dca-bec6-85357e76b6b1/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png b/sprites/s_node_shape_type/layers/5526c2ef-3545-4dca-bec6-85357e76b6b1/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png new file mode 100644 index 000000000..aeffc17b9 Binary files /dev/null and b/sprites/s_node_shape_type/layers/5526c2ef-3545-4dca-bec6-85357e76b6b1/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png differ diff --git a/sprites/s_node_shape_type/layers/5695f049-b1d1-49f5-b3aa-e1e963a85824/af3459aa-e234-4282-ba5c-db0e34f3c62b.png b/sprites/s_node_shape_type/layers/651de5b3-7033-4983-aa29-7308549c5997/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png similarity index 65% rename from sprites/s_node_shape_type/layers/5695f049-b1d1-49f5-b3aa-e1e963a85824/af3459aa-e234-4282-ba5c-db0e34f3c62b.png rename to sprites/s_node_shape_type/layers/651de5b3-7033-4983-aa29-7308549c5997/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png index f874815ba..91d92ebc4 100644 Binary files a/sprites/s_node_shape_type/layers/5695f049-b1d1-49f5-b3aa-e1e963a85824/af3459aa-e234-4282-ba5c-db0e34f3c62b.png and b/sprites/s_node_shape_type/layers/651de5b3-7033-4983-aa29-7308549c5997/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png differ diff --git a/sprites/s_node_shape_type/layers/6c545309-6ffe-4c08-bed2-9c82065ad8d4/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png b/sprites/s_node_shape_type/layers/6c545309-6ffe-4c08-bed2-9c82065ad8d4/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png new file mode 100644 index 000000000..133219dbd Binary files /dev/null and b/sprites/s_node_shape_type/layers/6c545309-6ffe-4c08-bed2-9c82065ad8d4/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png differ diff --git a/sprites/s_node_shape_type/layers/0412b90e-66c7-4dd8-a11e-19d68da47a0c/af3459aa-e234-4282-ba5c-db0e34f3c62b.png b/sprites/s_node_shape_type/layers/71d205ee-df82-4582-bf38-39392d51dd23/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png similarity index 57% rename from sprites/s_node_shape_type/layers/0412b90e-66c7-4dd8-a11e-19d68da47a0c/af3459aa-e234-4282-ba5c-db0e34f3c62b.png rename to sprites/s_node_shape_type/layers/71d205ee-df82-4582-bf38-39392d51dd23/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png index dfdc4e114..31b767bbb 100644 Binary files a/sprites/s_node_shape_type/layers/0412b90e-66c7-4dd8-a11e-19d68da47a0c/af3459aa-e234-4282-ba5c-db0e34f3c62b.png and b/sprites/s_node_shape_type/layers/71d205ee-df82-4582-bf38-39392d51dd23/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png differ diff --git a/sprites/s_node_shape_type/layers/7a237ffa-be4c-4d8e-bd2f-ae809eb3b319/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png b/sprites/s_node_shape_type/layers/7a237ffa-be4c-4d8e-bd2f-ae809eb3b319/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png new file mode 100644 index 000000000..b23724e60 Binary files /dev/null and b/sprites/s_node_shape_type/layers/7a237ffa-be4c-4d8e-bd2f-ae809eb3b319/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png differ diff --git a/sprites/s_node_shape_type/layers/83508ab4-faeb-411c-8b6e-d29be9cddea9/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png b/sprites/s_node_shape_type/layers/83508ab4-faeb-411c-8b6e-d29be9cddea9/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png new file mode 100644 index 000000000..4ef3e9fd3 Binary files /dev/null and b/sprites/s_node_shape_type/layers/83508ab4-faeb-411c-8b6e-d29be9cddea9/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png differ diff --git a/sprites/s_node_shape_type/49220458-bf1c-4c96-b39f-29641a235a59.png b/sprites/s_node_shape_type/layers/84e23289-8dc8-4aeb-b056-57889a5a04a9/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png similarity index 72% rename from sprites/s_node_shape_type/49220458-bf1c-4c96-b39f-29641a235a59.png rename to sprites/s_node_shape_type/layers/84e23289-8dc8-4aeb-b056-57889a5a04a9/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png index 07e161aae..b17144d25 100644 Binary files a/sprites/s_node_shape_type/49220458-bf1c-4c96-b39f-29641a235a59.png and b/sprites/s_node_shape_type/layers/84e23289-8dc8-4aeb-b056-57889a5a04a9/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png differ diff --git a/sprites/s_node_shape_type/layers/f95f551b-65f3-47ca-86f4-341c8de92bf8/af3459aa-e234-4282-ba5c-db0e34f3c62b.png b/sprites/s_node_shape_type/layers/8973bafa-9ba5-4018-82fe-49369c528c77/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png similarity index 65% rename from sprites/s_node_shape_type/layers/f95f551b-65f3-47ca-86f4-341c8de92bf8/af3459aa-e234-4282-ba5c-db0e34f3c62b.png rename to sprites/s_node_shape_type/layers/8973bafa-9ba5-4018-82fe-49369c528c77/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png index 50314bd88..806e8e83e 100644 Binary files a/sprites/s_node_shape_type/layers/f95f551b-65f3-47ca-86f4-341c8de92bf8/af3459aa-e234-4282-ba5c-db0e34f3c62b.png and b/sprites/s_node_shape_type/layers/8973bafa-9ba5-4018-82fe-49369c528c77/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png differ diff --git a/sprites/s_node_shape_type/layers/e39a435f-a2e0-4394-816a-0434f1ae62d1/af3459aa-e234-4282-ba5c-db0e34f3c62b.png b/sprites/s_node_shape_type/layers/bab10856-f499-4364-8bdb-230f241dcf0d/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png similarity index 63% rename from sprites/s_node_shape_type/layers/e39a435f-a2e0-4394-816a-0434f1ae62d1/af3459aa-e234-4282-ba5c-db0e34f3c62b.png rename to sprites/s_node_shape_type/layers/bab10856-f499-4364-8bdb-230f241dcf0d/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png index 20cd06a3c..b49582419 100644 Binary files a/sprites/s_node_shape_type/layers/e39a435f-a2e0-4394-816a-0434f1ae62d1/af3459aa-e234-4282-ba5c-db0e34f3c62b.png and b/sprites/s_node_shape_type/layers/bab10856-f499-4364-8bdb-230f241dcf0d/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png differ diff --git a/sprites/s_node_shape_type/layers/d3111831-695a-4461-9130-3228744761bb/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png b/sprites/s_node_shape_type/layers/d3111831-695a-4461-9130-3228744761bb/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png new file mode 100644 index 000000000..b58f9e8ec Binary files /dev/null and b/sprites/s_node_shape_type/layers/d3111831-695a-4461-9130-3228744761bb/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png differ diff --git a/sprites/s_node_shape_type/layers/eda5c901-9a81-421c-89a9-1b3c83ef0483/af3459aa-e234-4282-ba5c-db0e34f3c62b.png b/sprites/s_node_shape_type/layers/d3655d0c-9269-4162-9ae7-82c547edf674/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png similarity index 67% rename from sprites/s_node_shape_type/layers/eda5c901-9a81-421c-89a9-1b3c83ef0483/af3459aa-e234-4282-ba5c-db0e34f3c62b.png rename to sprites/s_node_shape_type/layers/d3655d0c-9269-4162-9ae7-82c547edf674/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png index 35d04e9c9..66916a7f6 100644 Binary files a/sprites/s_node_shape_type/layers/eda5c901-9a81-421c-89a9-1b3c83ef0483/af3459aa-e234-4282-ba5c-db0e34f3c62b.png and b/sprites/s_node_shape_type/layers/d3655d0c-9269-4162-9ae7-82c547edf674/4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4.png differ diff --git a/sprites/s_node_shape_type/s_node_shape_type.yy b/sprites/s_node_shape_type/s_node_shape_type.yy index 80afb6f24..5953b33f9 100644 --- a/sprites/s_node_shape_type/s_node_shape_type.yy +++ b/sprites/s_node_shape_type/s_node_shape_type.yy @@ -12,23 +12,26 @@ "edgeFiltering":false, "For3D":false, "frames":[ - {"$GMSpriteFrame":"","%Name":"48bc866d-ad21-4667-bec2-914ec021c526","name":"48bc866d-ad21-4667-bec2-914ec021c526","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, - {"$GMSpriteFrame":"","%Name":"3c16b005-0fdf-4af6-bbd0-f6b29328ec70","name":"3c16b005-0fdf-4af6-bbd0-f6b29328ec70","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, - {"$GMSpriteFrame":"","%Name":"0412b90e-66c7-4dd8-a11e-19d68da47a0c","name":"0412b90e-66c7-4dd8-a11e-19d68da47a0c","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, - {"$GMSpriteFrame":"","%Name":"e39a435f-a2e0-4394-816a-0434f1ae62d1","name":"e39a435f-a2e0-4394-816a-0434f1ae62d1","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, - {"$GMSpriteFrame":"","%Name":"eda5c901-9a81-421c-89a9-1b3c83ef0483","name":"eda5c901-9a81-421c-89a9-1b3c83ef0483","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, - {"$GMSpriteFrame":"","%Name":"49220458-bf1c-4c96-b39f-29641a235a59","name":"49220458-bf1c-4c96-b39f-29641a235a59","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, - {"$GMSpriteFrame":"","%Name":"69eff4a9-10e5-497d-96ae-b8b66f9a07b0","name":"69eff4a9-10e5-497d-96ae-b8b66f9a07b0","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, - {"$GMSpriteFrame":"","%Name":"7a4c420e-5fd3-43de-a420-d37bc8deb71d","name":"7a4c420e-5fd3-43de-a420-d37bc8deb71d","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, - {"$GMSpriteFrame":"","%Name":"f95f551b-65f3-47ca-86f4-341c8de92bf8","name":"f95f551b-65f3-47ca-86f4-341c8de92bf8","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, - {"$GMSpriteFrame":"","%Name":"5695f049-b1d1-49f5-b3aa-e1e963a85824","name":"5695f049-b1d1-49f5-b3aa-e1e963a85824","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"6c545309-6ffe-4c08-bed2-9c82065ad8d4","name":"6c545309-6ffe-4c08-bed2-9c82065ad8d4","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"d3111831-695a-4461-9130-3228744761bb","name":"d3111831-695a-4461-9130-3228744761bb","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"5526c2ef-3545-4dca-bec6-85357e76b6b1","name":"5526c2ef-3545-4dca-bec6-85357e76b6b1","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"7a237ffa-be4c-4d8e-bd2f-ae809eb3b319","name":"7a237ffa-be4c-4d8e-bd2f-ae809eb3b319","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"83508ab4-faeb-411c-8b6e-d29be9cddea9","name":"83508ab4-faeb-411c-8b6e-d29be9cddea9","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"71d205ee-df82-4582-bf38-39392d51dd23","name":"71d205ee-df82-4582-bf38-39392d51dd23","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"bab10856-f499-4364-8bdb-230f241dcf0d","name":"bab10856-f499-4364-8bdb-230f241dcf0d","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"d3655d0c-9269-4162-9ae7-82c547edf674","name":"d3655d0c-9269-4162-9ae7-82c547edf674","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"84e23289-8dc8-4aeb-b056-57889a5a04a9","name":"84e23289-8dc8-4aeb-b056-57889a5a04a9","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"2893727a-1872-4e51-b211-59df36bbc651","name":"2893727a-1872-4e51-b211-59df36bbc651","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"3b6185db-9a13-4cdc-a4e6-a483cf4d6281","name":"3b6185db-9a13-4cdc-a4e6-a483cf4d6281","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"8973bafa-9ba5-4018-82fe-49369c528c77","name":"8973bafa-9ba5-4018-82fe-49369c528c77","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"651de5b3-7033-4983-aa29-7308549c5997","name":"651de5b3-7033-4983-aa29-7308549c5997","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, ], "gridX":0, "gridY":0, "height":24, "HTile":false, "layers":[ - {"$GMImageLayer":"","%Name":"af3459aa-e234-4282-ba5c-db0e34f3c62b","blendMode":0,"displayName":"default","isLocked":false,"name":"af3459aa-e234-4282-ba5c-db0e34f3c62b","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, + {"$GMImageLayer":"","%Name":"4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4","blendMode":0,"displayName":"default","isLocked":false,"name":"4d0fb2c0-7da4-4a71-a1ca-6e964555e7d4","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, ], "name":"s_node_shape_type", "nineSlice":null, @@ -58,7 +61,7 @@ }, "eventStubScript":null, "eventToFunction":{}, - "length":10.0, + "length":13.0, "lockOrigin":false, "moments":{ "$KeyframeStore":"", @@ -78,35 +81,44 @@ "tracks":[ {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore":"","Keyframes":[ {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"48bc866d-ad21-4667-bec2-914ec021c526","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"8ab11c56-2330-4aab-a936-1ac4bf582a71","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"6c545309-6ffe-4c08-bed2-9c82065ad8d4","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"ee006fd1-e9eb-4d05-b46f-eae5fa8612b0","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"3c16b005-0fdf-4af6-bbd0-f6b29328ec70","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"48e79bc8-f0c9-4fd9-a88c-6cb18ad2f422","IsCreationKey":false,"Key":1.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"d3111831-695a-4461-9130-3228744761bb","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"46c3d423-c7ec-4994-af09-809ef518a079","IsCreationKey":false,"Key":1.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"0412b90e-66c7-4dd8-a11e-19d68da47a0c","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"cb3b343f-3868-4c9a-8a4e-3925c58f1a06","IsCreationKey":false,"Key":2.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"5526c2ef-3545-4dca-bec6-85357e76b6b1","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"31c2191f-90a4-40a8-89d2-1ff98308a5e7","IsCreationKey":false,"Key":2.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"e39a435f-a2e0-4394-816a-0434f1ae62d1","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"831e6af9-840c-4446-a969-57ecc634f995","IsCreationKey":false,"Key":3.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"7a237ffa-be4c-4d8e-bd2f-ae809eb3b319","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"67b85fa1-1715-453b-a9e3-c936d250dc7d","IsCreationKey":false,"Key":3.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"eda5c901-9a81-421c-89a9-1b3c83ef0483","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"96e8aac1-c3b9-40c3-9bb7-636c1e2309f8","IsCreationKey":false,"Key":4.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"83508ab4-faeb-411c-8b6e-d29be9cddea9","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"21957fda-cd5a-4e10-a5a8-ca944c8ccc65","IsCreationKey":false,"Key":4.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"49220458-bf1c-4c96-b39f-29641a235a59","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"1e665ae4-d8a5-4e11-99d4-4fc073982e0f","IsCreationKey":false,"Key":5.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"71d205ee-df82-4582-bf38-39392d51dd23","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"766e25dd-8b26-47a2-996a-ca9f7b58f9ae","IsCreationKey":false,"Key":5.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"69eff4a9-10e5-497d-96ae-b8b66f9a07b0","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"b5770c65-cc1e-44fd-8da2-7cd5616d4aaa","IsCreationKey":false,"Key":6.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"bab10856-f499-4364-8bdb-230f241dcf0d","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"75551b21-9282-41fa-8c8a-855d0b527fbb","IsCreationKey":false,"Key":6.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"7a4c420e-5fd3-43de-a420-d37bc8deb71d","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"499cfe03-15eb-4887-8794-0b1899ec3f07","IsCreationKey":false,"Key":7.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"d3655d0c-9269-4162-9ae7-82c547edf674","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"f8425249-5e88-4123-a018-c3eb02073c4a","IsCreationKey":false,"Key":7.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"f95f551b-65f3-47ca-86f4-341c8de92bf8","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"a6bdeef0-6045-4107-a5c3-7297315d692b","IsCreationKey":false,"Key":8.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"84e23289-8dc8-4aeb-b056-57889a5a04a9","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"8e68a1ba-fa7b-4a85-b48d-cdf67b539901","IsCreationKey":false,"Key":8.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"5695f049-b1d1-49f5-b3aa-e1e963a85824","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"f557fa96-65bf-44a0-b9ac-99092d804c2c","IsCreationKey":false,"Key":9.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"2893727a-1872-4e51-b211-59df36bbc651","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"7c381e7f-8d22-4f8b-a9a8-00df7fe13c2e","IsCreationKey":false,"Key":9.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"3b6185db-9a13-4cdc-a4e6-a483cf4d6281","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"60c28ee2-65e2-4896-923e-2ed609102398","IsCreationKey":false,"Key":10.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"8973bafa-9ba5-4018-82fe-49369c528c77","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"4c0e2a8c-e36a-43d2-a462-b1f386b96940","IsCreationKey":false,"Key":11.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"651de5b3-7033-4983-aa29-7308549c5997","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"faf1f5e1-c375-4707-bb11-4ecc614a5126","IsCreationKey":false,"Key":12.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,