From 138f93431a306e043c76b67dd27c7961a15eec9d Mon Sep 17 00:00:00 2001 From: Tanasart Date: Mon, 20 May 2024 10:16:05 +0700 Subject: [PATCH] cross section, --- PixelComposer.resource_order | 72 +++++++------- PixelComposer.yyp | 12 ++- objects/o_dialog_add_node/Create_0.gml | 17 ++-- scripts/__surface/__surface.gml | 6 +- scripts/ase_reader/ase_reader.gml | 8 +- scripts/draw_tooltip/draw_tooltip.gml | 5 +- .../node_ase_file_read/node_ase_file_read.gml | 87 ++++++++--------- .../node_atlas_to_struct.gml | 40 ++++++++ .../node_atlas_to_struct.yy | 13 +++ .../node_cross_section/node_cross_section.gml | 56 ++++++++++- scripts/node_registry/node_registry.gml | 8 +- .../node_render_sprite_sheet.gml | 23 +++-- .../sh_cross_histogram/sh_cross_histogram.fsh | 11 +++ .../sh_cross_histogram/sh_cross_histogram.vsh | 19 ++++ .../sh_cross_histogram/sh_cross_histogram.yy | 12 +++ shaders/sh_cross_section/sh_cross_section.fsh | 31 ++++++ shaders/sh_cross_section/sh_cross_section.vsh | 19 ++++ shaders/sh_cross_section/sh_cross_section.yy | 12 +++ .../30325564-3329-4229-b687-4b8190474c17.png | Bin 0 -> 1643 bytes .../ac1b556a-d6b3-4ee6-8b7e-82254462e15a.png | Bin 0 -> 1643 bytes .../s_node_atlas_struct.yy | 90 ++++++++++++++++++ sprites/s_node_character/s_node_character.yy | 2 +- .../034239b3-5e5c-483f-b000-e4b40c2e596f.png | Bin 0 -> 955 bytes .../c3d815aa-174c-4af3-86b9-39877d4c495e.png | Bin 0 -> 955 bytes .../s_node_cross_section.yy | 90 ++++++++++++++++++ sprites/s_node_dynasurf/s_node_dynasurf.yy | 2 +- sprites/s_node_isosurf/s_node_isosurf.yy | 2 +- .../s_node_json_parse/s_node_json_parse.yy | 2 +- sprites/s_node_path/s_node_path.yy | 2 +- .../s_node_path_anchor/s_node_path_anchor.yy | 2 +- .../s_node_path_array/s_node_path_array.yy | 2 +- sprites/s_node_path_bake/s_node_path_bake.yy | 2 +- .../s_node_path_blend/s_node_path_blend.yy | 2 +- .../s_node_path_bridge/s_node_path_bridge.yy | 2 +- .../s_node_path_builder.yy | 2 +- .../s_node_path_from_mask.yy | 2 +- .../s_node_path_l_system.yy | 2 +- sprites/s_node_path_map/s_node_path_map.yy | 2 +- sprites/s_node_path_mapp/s_node_path_mapp.yy | 2 +- sprites/s_node_path_plot/s_node_path_plot.yy | 2 +- .../s_node_path_reverse.yy | 2 +- .../s_node_path_sample/s_node_path_sample.yy | 2 +- .../s_node_path_shift/s_node_path_shift.yy | 2 +- .../s_node_path_smooth/s_node_path_smooth.yy | 2 +- .../s_node_path_transform.yy | 2 +- sprites/s_node_path_trim/s_node_path_trim.yy | 2 +- sprites/s_node_path_wave/s_node_path_wave.yy | 2 +- .../s_node_regex_match/s_node_regex_match.yy | 2 +- .../s_node_regex_replace.yy | 2 +- .../s_node_regex_search.yy | 2 +- .../s_node_separate_file_path.yy | 2 +- sprites/s_node_struct/s_node_struct.yy | 2 +- .../s_node_struct_get/s_node_struct_get.yy | 2 +- .../s_node_surface_from_buffer.yy | 2 +- .../s_node_surface_to_buffer.yy | 2 +- sprites/s_node_text/s_node_text.yy | 2 +- .../s_node_text_char_get.yy | 2 +- .../s_node_text_combine.yy | 2 +- .../s_node_text_display.yy | 2 +- sprites/s_node_text_join/s_node_text_join.yy | 2 +- .../s_node_text_length/s_node_text_length.yy | 2 +- .../s_node_text_splice/s_node_text_splice.yy | 2 +- sprites/s_node_text_trim/s_node_text_trim.yy | 2 +- sprites/s_node_to_text/s_node_to_text.yy | 2 +- sprites/s_node_unicode/s_node_unicode.yy | 2 +- 65 files changed, 570 insertions(+), 143 deletions(-) create mode 100644 scripts/node_atlas_to_struct/node_atlas_to_struct.gml create mode 100644 scripts/node_atlas_to_struct/node_atlas_to_struct.yy create mode 100644 shaders/sh_cross_histogram/sh_cross_histogram.fsh create mode 100644 shaders/sh_cross_histogram/sh_cross_histogram.vsh create mode 100644 shaders/sh_cross_histogram/sh_cross_histogram.yy create mode 100644 shaders/sh_cross_section/sh_cross_section.fsh create mode 100644 shaders/sh_cross_section/sh_cross_section.vsh create mode 100644 shaders/sh_cross_section/sh_cross_section.yy create mode 100644 sprites/s_node_atlas_struct/30325564-3329-4229-b687-4b8190474c17.png create mode 100644 sprites/s_node_atlas_struct/layers/30325564-3329-4229-b687-4b8190474c17/ac1b556a-d6b3-4ee6-8b7e-82254462e15a.png create mode 100644 sprites/s_node_atlas_struct/s_node_atlas_struct.yy create mode 100644 sprites/s_node_cross_section/034239b3-5e5c-483f-b000-e4b40c2e596f.png create mode 100644 sprites/s_node_cross_section/layers/034239b3-5e5c-483f-b000-e4b40c2e596f/c3d815aa-174c-4af3-86b9-39877d4c495e.png create mode 100644 sprites/s_node_cross_section/s_node_cross_section.yy diff --git a/PixelComposer.resource_order b/PixelComposer.resource_order index 5773dd044..c0ac301e0 100644 --- a/PixelComposer.resource_order +++ b/PixelComposer.resource_order @@ -99,7 +99,6 @@ {"name":"struct","order":9,"path":"folders/nodes/data/value/struct.yy",}, {"name":"surface","order":10,"path":"folders/nodes/data/value/surface.yy",}, {"name":"text","order":11,"path":"folders/nodes/data/value/text.yy",}, - {"name":"texts","order":12,"path":"folders/nodes/data/value/texts.yy",}, {"name":"trigger","order":13,"path":"folders/nodes/data/value/trigger.yy",}, {"name":"animation","order":1,"path":"folders/nodes/icons/animation.yy",}, {"name":"filter","order":2,"path":"folders/nodes/icons/filter.yy",}, @@ -116,13 +115,17 @@ {"name":"strandSim","order":12,"path":"folders/nodes/icons/strandSim.yy",}, {"name":"transform","order":13,"path":"folders/nodes/icons/transform.yy",}, {"name":"value","order":14,"path":"folders/nodes/icons/value.yy",}, - {"name":"array","order":21,"path":"folders/nodes/icons/value/array.yy",}, - {"name":"atlas","order":22,"path":"folders/nodes/icons/value/atlas.yy",}, - {"name":"bool","order":23,"path":"folders/nodes/icons/value/bool.yy",}, - {"name":"color","order":24,"path":"folders/nodes/icons/value/color.yy",}, - {"name":"mesh","order":25,"path":"folders/nodes/icons/value/mesh.yy",}, - {"name":"number","order":26,"path":"folders/nodes/icons/value/number.yy",}, - {"name":"VFX","order":15,"path":"folders/nodes/icons/VFX.yy",}, + {"name":"array","order":1,"path":"folders/nodes/icons/value/array.yy",}, + {"name":"atlas","order":2,"path":"folders/nodes/icons/value/atlas.yy",}, + {"name":"bool","order":3,"path":"folders/nodes/icons/value/bool.yy",}, + {"name":"color","order":4,"path":"folders/nodes/icons/value/color.yy",}, + {"name":"path","order":29,"path":"folders/nodes/icons/value/path.yy",}, + {"name":"mesh","order":5,"path":"folders/nodes/icons/value/mesh.yy",}, + {"name":"number","order":6,"path":"folders/nodes/icons/value/number.yy",}, + {"name":"struct","order":9,"path":"folders/nodes/icons/value/struct.yy",}, + {"name":"surface","order":7,"path":"folders/nodes/icons/value/surface.yy",}, + {"name":"texts","order":8,"path":"folders/nodes/icons/value/texts.yy",}, + {"name":"VFX","order":16,"path":"folders/nodes/icons/VFX.yy",}, {"name":"video_banner","order":11,"path":"folders/panels/_others/video_banner.yy",}, {"name":"components","order":3,"path":"folders/panels/inspectors/components.yy",}, {"name":"overlay","order":6,"path":"folders/panels/preview/overlay.yy",}, @@ -655,6 +658,7 @@ {"name":"node_ase_layer","order":14,"path":"scripts/node_ase_layer/node_ase_layer.yy",}, {"name":"node_atlas_get","order":1,"path":"scripts/node_atlas_get/node_atlas_get.yy",}, {"name":"node_atlas_set","order":2,"path":"scripts/node_atlas_set/node_atlas_set.yy",}, + {"name":"node_atlas_to_struct","order":3,"path":"scripts/node_atlas_to_struct/node_atlas_to_struct.yy",}, {"name":"node_atlas","order":1,"path":"scripts/node_atlas/node_atlas.yy",}, {"name":"node_attributes","order":12,"path":"scripts/node_attributes/node_attributes.yy",}, {"name":"node_audio_loudness","order":1,"path":"scripts/node_audio_loudness/node_audio_loudness.yy",}, @@ -702,6 +706,7 @@ {"name":"node_counter","order":1,"path":"scripts/node_counter/node_counter.yy",}, {"name":"node_crop_content","order":14,"path":"scripts/node_crop_content/node_crop_content.yy",}, {"name":"node_crop","order":7,"path":"scripts/node_crop/node_crop.yy",}, + {"name":"node_cross_section","order":20,"path":"scripts/node_cross_section/node_cross_section.yy",}, {"name":"node_csv_file_read","order":8,"path":"scripts/node_csv_file_read/node_csv_file_read.yy",}, {"name":"node_csv_file_write","order":12,"path":"scripts/node_csv_file_write/node_csv_file_write.yy",}, {"name":"node_data","order":1,"path":"scripts/node_data/node_data.yy",}, @@ -1145,7 +1150,6 @@ {"name":"safe_operation","order":6,"path":"scripts/safe_operation/safe_operation.yy",}, {"name":"sample_projects","order":6,"path":"scripts/sample_projects/sample_projects.yy",}, {"name":"save_function","order":1,"path":"scripts/save_function/save_function.yy",}, - {"name":"node_cross_section","order":20,"path":"scripts/node_cross_section/node_cross_section.yy",}, {"name":"scrollBox","order":2,"path":"scripts/scrollBox/scrollBox.yy",}, {"name":"scrollPane","order":3,"path":"scripts/scrollPane/scrollPane.yy",}, {"name":"shell_functions","order":20,"path":"scripts/shell_functions/shell_functions.yy",}, @@ -1279,6 +1283,8 @@ {"name":"sh_convolution","order":23,"path":"shaders/sh_convolution/sh_convolution.yy",}, {"name":"sh_corner_erode","order":1,"path":"shaders/sh_corner_erode/sh_corner_erode.yy",}, {"name":"sh_corner_iterate","order":2,"path":"shaders/sh_corner_iterate/sh_corner_iterate.yy",}, + {"name":"sh_cross_histogram","order":26,"path":"shaders/sh_cross_histogram/sh_cross_histogram.yy",}, + {"name":"sh_cross_section","order":25,"path":"shaders/sh_cross_section/sh_cross_section.yy",}, {"name":"sh_curve","order":3,"path":"shaders/sh_curve/sh_curve.yy",}, {"name":"sh_d3d_background","order":8,"path":"shaders/sh_d3d_background/sh_d3d_background.yy",}, {"name":"sh_d3d_extrude_extends","order":11,"path":"shaders/sh_d3d_extrude_extends/sh_d3d_extrude_extends.yy",}, @@ -1590,6 +1596,7 @@ {"name":"s_node_ase_file","order":15,"path":"sprites/s_node_ase_file/s_node_ase_file.yy",}, {"name":"s_node_ase_layer","order":14,"path":"sprites/s_node_ase_layer/s_node_ase_layer.yy",}, {"name":"s_node_atlas_set","order":1,"path":"sprites/s_node_atlas_set/s_node_atlas_set.yy",}, + {"name":"s_node_atlas_struct","order":3,"path":"sprites/s_node_atlas_struct/s_node_atlas_struct.yy",}, {"name":"s_node_atlas","order":3,"path":"sprites/s_node_atlas/s_node_atlas.yy",}, {"name":"s_node_audio_trim","order":3,"path":"sprites/s_node_audio_trim/s_node_audio_trim.yy",}, {"name":"s_node_audio_volume","order":5,"path":"sprites/s_node_audio_volume/s_node_audio_volume.yy",}, @@ -1636,6 +1643,7 @@ {"name":"s_node_crop","order":2,"path":"sprites/s_node_crop/s_node_crop.yy",}, {"name":"s_node_cross_product_2d","order":1,"path":"sprites/s_node_cross_product_2d/s_node_cross_product_2d.yy",}, {"name":"s_node_cross_product_3d","order":2,"path":"sprites/s_node_cross_product_3d/s_node_cross_product_3d.yy",}, + {"name":"s_node_cross_section","order":50,"path":"sprites/s_node_cross_section/s_node_cross_section.yy",}, {"name":"s_node_csv_file_read","order":31,"path":"sprites/s_node_csv_file_read/s_node_csv_file_read.yy",}, {"name":"s_node_csv_file_write","order":30,"path":"sprites/s_node_csv_file_write/s_node_csv_file_write.yy",}, {"name":"s_node_csv_parse","order":19,"path":"sprites/s_node_csv_parse/s_node_csv_parse.yy",}, @@ -1652,7 +1660,6 @@ {"name":"s_node_dot_product","order":3,"path":"sprites/s_node_dot_product/s_node_dot_product.yy",}, {"name":"s_node_draw_atlas","order":2,"path":"sprites/s_node_draw_atlas/s_node_draw_atlas.yy",}, {"name":"s_node_draw_stack","order":4,"path":"sprites/s_node_draw_stack/s_node_draw_stack.yy",}, - {"name":"s_node_dynasurf","order":3,"path":"sprites/s_node_dynasurf/s_node_dynasurf.yy",}, {"name":"s_node_edge_detect","order":20,"path":"sprites/s_node_edge_detect/s_node_edge_detect.yy",}, {"name":"s_node_equation","order":4,"path":"sprites/s_node_equation/s_node_equation.yy",}, {"name":"s_node_erode","order":21,"path":"sprites/s_node_erode/s_node_erode.yy",}, @@ -1727,13 +1734,12 @@ {"name":"s_node_input","order":6,"path":"sprites/s_node_input/s_node_input.yy",}, {"name":"s_node_interpret_number","order":30,"path":"sprites/s_node_interpret_number/s_node_interpret_number.yy",}, {"name":"s_node_invert","order":30,"path":"sprites/s_node_invert/s_node_invert.yy",}, - {"name":"s_node_isosurf","order":2,"path":"sprites/s_node_isosurf/s_node_isosurf.yy",}, + {"name":"s_node_isosurf","order":1,"path":"sprites/s_node_isosurf/s_node_isosurf.yy",}, {"name":"s_node_iterator_amount","order":26,"path":"sprites/s_node_iterator_amount/s_node_iterator_amount.yy",}, {"name":"s_node_iterator_index","order":8,"path":"sprites/s_node_iterator_index/s_node_iterator_index.yy",}, {"name":"s_node_iterator_length","order":24,"path":"sprites/s_node_iterator_length/s_node_iterator_length.yy",}, {"name":"s_node_json_file_read","order":33,"path":"sprites/s_node_json_file_read/s_node_json_file_read.yy",}, {"name":"s_node_json_file_write","order":32,"path":"sprites/s_node_json_file_write/s_node_json_file_write.yy",}, - {"name":"s_node_json_parse","order":2,"path":"sprites/s_node_json_parse/s_node_json_parse.yy",}, {"name":"s_node_kuwahara","order":31,"path":"sprites/s_node_kuwahara/s_node_kuwahara.yy",}, {"name":"s_node_level_selector","order":33,"path":"sprites/s_node_level_selector/s_node_level_selector.yy",}, {"name":"s_node_level","order":32,"path":"sprites/s_node_level/s_node_level.yy",}, @@ -1792,24 +1798,24 @@ {"name":"s_node_palette","order":14,"path":"sprites/s_node_palette/s_node_palette.yy",}, {"name":"s_node_particle_effector","order":13,"path":"sprites/s_node_particle_effector/s_node_particle_effector.yy",}, {"name":"s_node_particle","order":12,"path":"sprites/s_node_particle/s_node_particle.yy",}, - {"name":"s_node_path_anchor","order":13,"path":"sprites/s_node_path_anchor/s_node_path_anchor.yy",}, - {"name":"s_node_path_array","order":11,"path":"sprites/s_node_path_array/s_node_path_array.yy",}, - {"name":"s_node_path_bake","order":15,"path":"sprites/s_node_path_bake/s_node_path_bake.yy",}, - {"name":"s_node_path_blend","order":1,"path":"sprites/s_node_path_blend/s_node_path_blend.yy",}, - {"name":"s_node_path_bridge","order":16,"path":"sprites/s_node_path_bridge/s_node_path_bridge.yy",}, - {"name":"s_node_path_builder","order":9,"path":"sprites/s_node_path_builder/s_node_path_builder.yy",}, - {"name":"s_node_path_from_mask","order":14,"path":"sprites/s_node_path_from_mask/s_node_path_from_mask.yy",}, - {"name":"s_node_path_l_system","order":10,"path":"sprites/s_node_path_l_system/s_node_path_l_system.yy",}, - {"name":"s_node_path_map","order":2,"path":"sprites/s_node_path_map/s_node_path_map.yy",}, - {"name":"s_node_path_mapp","order":17,"path":"sprites/s_node_path_mapp/s_node_path_mapp.yy",}, - {"name":"s_node_path_plot","order":12,"path":"sprites/s_node_path_plot/s_node_path_plot.yy",}, - {"name":"s_node_path_reverse","order":8,"path":"sprites/s_node_path_reverse/s_node_path_reverse.yy",}, - {"name":"s_node_path_sample","order":3,"path":"sprites/s_node_path_sample/s_node_path_sample.yy",}, - {"name":"s_node_path_shift","order":4,"path":"sprites/s_node_path_shift/s_node_path_shift.yy",}, - {"name":"s_node_path_smooth","order":18,"path":"sprites/s_node_path_smooth/s_node_path_smooth.yy",}, - {"name":"s_node_path_transform","order":5,"path":"sprites/s_node_path_transform/s_node_path_transform.yy",}, - {"name":"s_node_path_trim","order":6,"path":"sprites/s_node_path_trim/s_node_path_trim.yy",}, - {"name":"s_node_path_wave","order":7,"path":"sprites/s_node_path_wave/s_node_path_wave.yy",}, + {"name":"s_node_path_anchor","order":1,"path":"sprites/s_node_path_anchor/s_node_path_anchor.yy",}, + {"name":"s_node_path_array","order":2,"path":"sprites/s_node_path_array/s_node_path_array.yy",}, + {"name":"s_node_path_bake","order":3,"path":"sprites/s_node_path_bake/s_node_path_bake.yy",}, + {"name":"s_node_path_blend","order":4,"path":"sprites/s_node_path_blend/s_node_path_blend.yy",}, + {"name":"s_node_path_bridge","order":5,"path":"sprites/s_node_path_bridge/s_node_path_bridge.yy",}, + {"name":"s_node_path_builder","order":6,"path":"sprites/s_node_path_builder/s_node_path_builder.yy",}, + {"name":"s_node_path_from_mask","order":7,"path":"sprites/s_node_path_from_mask/s_node_path_from_mask.yy",}, + {"name":"s_node_path_l_system","order":8,"path":"sprites/s_node_path_l_system/s_node_path_l_system.yy",}, + {"name":"s_node_path_map","order":9,"path":"sprites/s_node_path_map/s_node_path_map.yy",}, + {"name":"s_node_path_mapp","order":10,"path":"sprites/s_node_path_mapp/s_node_path_mapp.yy",}, + {"name":"s_node_path_plot","order":11,"path":"sprites/s_node_path_plot/s_node_path_plot.yy",}, + {"name":"s_node_path_reverse","order":12,"path":"sprites/s_node_path_reverse/s_node_path_reverse.yy",}, + {"name":"s_node_path_sample","order":13,"path":"sprites/s_node_path_sample/s_node_path_sample.yy",}, + {"name":"s_node_path_shift","order":14,"path":"sprites/s_node_path_shift/s_node_path_shift.yy",}, + {"name":"s_node_path_smooth","order":15,"path":"sprites/s_node_path_smooth/s_node_path_smooth.yy",}, + {"name":"s_node_path_transform","order":16,"path":"sprites/s_node_path_transform/s_node_path_transform.yy",}, + {"name":"s_node_path_trim","order":17,"path":"sprites/s_node_path_trim/s_node_path_trim.yy",}, + {"name":"s_node_path_wave","order":18,"path":"sprites/s_node_path_wave/s_node_path_wave.yy",}, {"name":"s_node_pb_box_contract","order":25,"path":"sprites/s_node_pb_box_contract/s_node_pb_box_contract.yy",}, {"name":"s_node_pb_box_divide_grid","order":23,"path":"sprites/s_node_pb_box_divide_grid/s_node_pb_box_divide_grid.yy",}, {"name":"s_node_pb_box_divide","order":24,"path":"sprites/s_node_pb_box_divide/s_node_pb_box_divide.yy",}, @@ -1930,8 +1936,10 @@ {"name":"s_node_strandSim_update","order":1,"path":"sprites/s_node_strandSim_update/s_node_strandSim_update.yy",}, {"name":"s_node_strandSim","order":3,"path":"sprites/s_node_strandSim/s_node_strandSim.yy",}, {"name":"s_node_stripe","order":16,"path":"sprites/s_node_stripe/s_node_stripe.yy",}, - {"name":"s_node_struct_get","order":1,"path":"sprites/s_node_struct_get/s_node_struct_get.yy",}, - {"name":"s_node_surface_from_buffer","order":1,"path":"sprites/s_node_surface_from_buffer/s_node_surface_from_buffer.yy",}, + {"name":"s_node_struct_get","order":2,"path":"sprites/s_node_struct_get/s_node_struct_get.yy",}, + {"name":"s_node_struct","order":1,"path":"sprites/s_node_struct/s_node_struct.yy",}, + {"name":"s_node_surface_from_buffer","order":2,"path":"sprites/s_node_surface_from_buffer/s_node_surface_from_buffer.yy",}, + {"name":"s_node_surface_to_buffer","order":3,"path":"sprites/s_node_surface_to_buffer/s_node_surface_to_buffer.yy",}, {"name":"s_node_switch","order":20,"path":"sprites/s_node_switch/s_node_switch.yy",}, {"name":"s_node_terminal_trigger","order":41,"path":"sprites/s_node_terminal_trigger/s_node_terminal_trigger.yy",}, {"name":"s_node_text_char_get","order":2,"path":"sprites/s_node_text_char_get/s_node_text_char_get.yy",}, diff --git a/PixelComposer.yyp b/PixelComposer.yyp index 898e95b23..7eeb19999 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -206,7 +206,6 @@ {"$GMFolder":"","%Name":"struct","folderPath":"folders/nodes/data/value/struct.yy","name":"struct","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"surface","folderPath":"folders/nodes/data/value/surface.yy","name":"surface","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"text","folderPath":"folders/nodes/data/value/text.yy","name":"text","resourceType":"GMFolder","resourceVersion":"2.0",}, - {"$GMFolder":"","%Name":"texts","folderPath":"folders/nodes/data/value/texts.yy","name":"texts","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"trigger","folderPath":"folders/nodes/data/value/trigger.yy","name":"trigger","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"icons","folderPath":"folders/nodes/icons.yy","name":"icons","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"3D","folderPath":"folders/nodes/icons/3D.yy","name":"3D","resourceType":"GMFolder","resourceVersion":"2.0",}, @@ -229,8 +228,12 @@ {"$GMFolder":"","%Name":"atlas","folderPath":"folders/nodes/icons/value/atlas.yy","name":"atlas","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"bool","folderPath":"folders/nodes/icons/value/bool.yy","name":"bool","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"color","folderPath":"folders/nodes/icons/value/color.yy","name":"color","resourceType":"GMFolder","resourceVersion":"2.0",}, + {"$GMFolder":"","%Name":"path","folderPath":"folders/nodes/icons/value/path.yy","name":"path","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"mesh","folderPath":"folders/nodes/icons/value/mesh.yy","name":"mesh","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"number","folderPath":"folders/nodes/icons/value/number.yy","name":"number","resourceType":"GMFolder","resourceVersion":"2.0",}, + {"$GMFolder":"","%Name":"struct","folderPath":"folders/nodes/icons/value/struct.yy","name":"struct","resourceType":"GMFolder","resourceVersion":"2.0",}, + {"$GMFolder":"","%Name":"surface","folderPath":"folders/nodes/icons/value/surface.yy","name":"surface","resourceType":"GMFolder","resourceVersion":"2.0",}, + {"$GMFolder":"","%Name":"texts","folderPath":"folders/nodes/icons/value/texts.yy","name":"texts","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"VFX","folderPath":"folders/nodes/icons/VFX.yy","name":"VFX","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"panels","folderPath":"folders/panels.yy","name":"panels","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"_others","folderPath":"folders/panels/_others.yy","name":"_others","resourceType":"GMFolder","resourceVersion":"2.0",}, @@ -1058,6 +1061,7 @@ {"id":{"name":"node_atlas_draw","path":"scripts/node_atlas_draw/node_atlas_draw.yy",},}, {"id":{"name":"node_atlas_get","path":"scripts/node_atlas_get/node_atlas_get.yy",},}, {"id":{"name":"node_atlas_set","path":"scripts/node_atlas_set/node_atlas_set.yy",},}, + {"id":{"name":"node_atlas_to_struct","path":"scripts/node_atlas_to_struct/node_atlas_to_struct.yy",},}, {"id":{"name":"node_atlas","path":"scripts/node_atlas/node_atlas.yy",},}, {"id":{"name":"node_attributes","path":"scripts/node_attributes/node_attributes.yy",},}, {"id":{"name":"node_audio_loudness","path":"scripts/node_audio_loudness/node_audio_loudness.yy",},}, @@ -1115,6 +1119,7 @@ {"id":{"name":"node_counter","path":"scripts/node_counter/node_counter.yy",},}, {"id":{"name":"node_crop_content","path":"scripts/node_crop_content/node_crop_content.yy",},}, {"id":{"name":"node_crop","path":"scripts/node_crop/node_crop.yy",},}, + {"id":{"name":"node_cross_section","path":"scripts/node_cross_section/node_cross_section.yy",},}, {"id":{"name":"node_csv_file_read","path":"scripts/node_csv_file_read/node_csv_file_read.yy",},}, {"id":{"name":"node_csv_file_write","path":"scripts/node_csv_file_write/node_csv_file_write.yy",},}, {"id":{"name":"node_curve","path":"scripts/node_curve/node_curve.yy",},}, @@ -1621,7 +1626,6 @@ {"id":{"name":"safe_operation","path":"scripts/safe_operation/safe_operation.yy",},}, {"id":{"name":"sample_projects","path":"scripts/sample_projects/sample_projects.yy",},}, {"id":{"name":"save_function","path":"scripts/save_function/save_function.yy",},}, - {"id":{"name":"node_cross_section","path":"scripts/node_cross_section/node_cross_section.yy",},}, {"id":{"name":"scrollBox","path":"scripts/scrollBox/scrollBox.yy",},}, {"id":{"name":"scrollPane","path":"scripts/scrollPane/scrollPane.yy",},}, {"id":{"name":"shader_functions","path":"scripts/shader_functions/shader_functions.yy",},}, @@ -1782,6 +1786,8 @@ {"id":{"name":"sh_corner_erode","path":"shaders/sh_corner_erode/sh_corner_erode.yy",},}, {"id":{"name":"sh_corner_iterate","path":"shaders/sh_corner_iterate/sh_corner_iterate.yy",},}, {"id":{"name":"sh_corner","path":"shaders/sh_corner/sh_corner.yy",},}, + {"id":{"name":"sh_cross_histogram","path":"shaders/sh_cross_histogram/sh_cross_histogram.yy",},}, + {"id":{"name":"sh_cross_section","path":"shaders/sh_cross_section/sh_cross_section.yy",},}, {"id":{"name":"sh_curve","path":"shaders/sh_curve/sh_curve.yy",},}, {"id":{"name":"sh_d3d_background","path":"shaders/sh_d3d_background/sh_d3d_background.yy",},}, {"id":{"name":"sh_d3d_default","path":"shaders/sh_d3d_default/sh_d3d_default.yy",},}, @@ -2141,6 +2147,7 @@ {"id":{"name":"s_node_ase_layer","path":"sprites/s_node_ase_layer/s_node_ase_layer.yy",},}, {"id":{"name":"s_node_atlas_get","path":"sprites/s_node_atlas_get/s_node_atlas_get.yy",},}, {"id":{"name":"s_node_atlas_set","path":"sprites/s_node_atlas_set/s_node_atlas_set.yy",},}, + {"id":{"name":"s_node_atlas_struct","path":"sprites/s_node_atlas_struct/s_node_atlas_struct.yy",},}, {"id":{"name":"s_node_atlas","path":"sprites/s_node_atlas/s_node_atlas.yy",},}, {"id":{"name":"s_node_audio_trim","path":"sprites/s_node_audio_trim/s_node_audio_trim.yy",},}, {"id":{"name":"s_node_audio_volume","path":"sprites/s_node_audio_volume/s_node_audio_volume.yy",},}, @@ -2196,6 +2203,7 @@ {"id":{"name":"s_node_crop","path":"sprites/s_node_crop/s_node_crop.yy",},}, {"id":{"name":"s_node_cross_product_2d","path":"sprites/s_node_cross_product_2d/s_node_cross_product_2d.yy",},}, {"id":{"name":"s_node_cross_product_3d","path":"sprites/s_node_cross_product_3d/s_node_cross_product_3d.yy",},}, + {"id":{"name":"s_node_cross_section","path":"sprites/s_node_cross_section/s_node_cross_section.yy",},}, {"id":{"name":"s_node_csv_file_read","path":"sprites/s_node_csv_file_read/s_node_csv_file_read.yy",},}, {"id":{"name":"s_node_csv_file_write","path":"sprites/s_node_csv_file_write/s_node_csv_file_write.yy",},}, {"id":{"name":"s_node_csv_parse","path":"sprites/s_node_csv_parse/s_node_csv_parse.yy",},}, diff --git a/objects/o_dialog_add_node/Create_0.gml b/objects/o_dialog_add_node/Create_0.gml index b02793a6b..9ee9201cb 100644 --- a/objects/o_dialog_add_node/Create_0.gml +++ b/objects/o_dialog_add_node/Create_0.gml @@ -25,6 +25,9 @@ event_inherited(); anchor = ANCHOR.left | ANCHOR.top; node_menu_selecting = noone; + display_grid_size = ui(64); + display_list_size = ui(28); + is_global = PANEL_GRAPH.getCurrentContext() == noone; #region ---- category ---- @@ -418,8 +421,8 @@ event_inherited(); var _hoverContent = _hover; if(PREFERENCES.dialog_add_node_view == 0) { #region grid - var grid_size = ui(64); - var grid_width = ui(80); + var grid_size = display_grid_size; + var grid_width = grid_size * 1.25; var grid_space = ui(12); var col = floor(content_pane.surface_w / (grid_width + grid_space)); var row = ceil(node_count / col); @@ -546,9 +549,10 @@ event_inherited(); hh += curr_height; yy += curr_height; #endregion + } else if(PREFERENCES.dialog_add_node_view == 1) { #region list var list_width = content_pane.surface_w; - var list_height = ui(28); + var list_height = display_list_size; var yy = _y + list_height / 2; var bg_ind = 0; hh += list_height; @@ -787,7 +791,7 @@ event_inherited(); return hh; } #endregion - if(PREFERENCES.dialog_add_node_view == 0) { #region grid + if(PREFERENCES.dialog_add_node_view == 0) { // grid var col = floor(search_pane.surface_w / (grid_width + grid_space)); var yy = _y + grid_space; @@ -909,8 +913,8 @@ event_inherited(); yy += hght; } } - #endregion - } else if(PREFERENCES.dialog_add_node_view == 1) { #region list + + } else if(PREFERENCES.dialog_add_node_view == 1) { // list var list_width = search_pane.surface_w; var list_height = ui(28); @@ -989,7 +993,6 @@ event_inherited(); hh += list_height; yy += list_height; } - #endregion } node_focusing = -1; diff --git a/scripts/__surface/__surface.gml b/scripts/__surface/__surface.gml index 7b49a7886..5fb741396 100644 --- a/scripts/__surface/__surface.gml +++ b/scripts/__surface/__surface.gml @@ -1,4 +1,6 @@ -function SurfaceAtlasFast(surface, _x = 0, _y = 0, rot = 0, sx = 1, sy = 1, blend = c_white, alpha = 1) constructor { +function Atlas() constructor {} + +function SurfaceAtlasFast(surface, _x = 0, _y = 0, rot = 0, sx = 1, sy = 1, blend = c_white, alpha = 1) : Atlas() constructor { self.surface = surface; self.x = _x; self.y = _y; @@ -27,7 +29,7 @@ function SurfaceAtlasFast(surface, _x = 0, _y = 0, rot = 0, sx = 1, sy = 1, blen } } -function SurfaceAtlas(surface, _x = 0, _y = 0, rot = 0, sx = 1, sy = 1, blend = c_white, alpha = 1, setDim = true) constructor { +function SurfaceAtlas(surface, _x = 0, _y = 0, rot = 0, sx = 1, sy = 1, blend = c_white, alpha = 1, setDim = true) : Atlas() constructor { self.surface = new Surface(surface); self.x = _x; self.y = _y; diff --git a/scripts/ase_reader/ase_reader.gml b/scripts/ase_reader/ase_reader.gml index c6c626a40..ec263eac5 100644 --- a/scripts/ase_reader/ase_reader.gml +++ b/scripts/ase_reader/ase_reader.gml @@ -351,8 +351,14 @@ function read_format_array(bin, formatArr, outMap) { } function read_ase(path, fileMap) { - printIf(global.FLAG.ase_import, "===== Reading: " + path + " ====="); + printIf(global.FLAG.ase_import, $"===== Reading: {path} ====="); var file = file_bin_open(path, 0); + + if(file < 0) { + noti_warning($"ASE file read error.") + return noone; + } + file_bin_seek(file, 0); ds_map_clear(fileMap); diff --git a/scripts/draw_tooltip/draw_tooltip.gml b/scripts/draw_tooltip/draw_tooltip.gml index c319d8ea2..426d16c10 100644 --- a/scripts/draw_tooltip/draw_tooltip.gml +++ b/scripts/draw_tooltip/draw_tooltip.gml @@ -205,9 +205,10 @@ function draw_tooltip_atlas(atlas) { #region for( var i = 0; i < amo; i++ ) { var _y = sy + i * ui(48 + 8); - var atl = atlas[i]; - var surf = atl.getSurface(); + var atl = atlas[i]; + if(!is_instanceof(atl, SurfaceAtlas)) continue; + var surf = atl.getSurface(); if(!is_surface(surf)) continue; var sw = surface_get_width_safe(surf); diff --git a/scripts/node_ase_file_read/node_ase_file_read.gml b/scripts/node_ase_file_read/node_ase_file_read.gml index dc3bb46eb..54c25bd6e 100644 --- a/scripts/node_ase_file_read/node_ase_file_read.gml +++ b/scripts/node_ase_file_read/node_ase_file_read.gml @@ -91,63 +91,60 @@ function Node_ASE_File_Read(_x, _y, _group = noone) : Node(_x, _y, _group) const var current_tag = getInputData(2); var amo = array_length(tags); var abx = ui(24); - var lb_h = line_get_height(f_p0); - var lb_y = _y + lb_h / 2 + ui(6); var by = _y; var hh = 32; - var _h = lb_h + hh * amo + 16; + var _h = hh * amo + ui(8); draw_sprite_stretched_ext(THEME.ui_panel_bg, 1, _x, by, _w, _h, COLORS.node_composite_bg_blend, 1); - var index = inputs[| 2].value_from == noone? inputs[| 2].is_anim : 2; - draw_sprite_ui_uniform(THEME.animate_clock, index, abx, lb_y, 1, index == 2? COLORS._main_accent : c_white, 0.8); - if(_hover && point_in_circle(_m[0], _m[1], abx, lb_y, ui(10))) { - draw_sprite_ui_uniform(THEME.animate_clock, index, abx, lb_y, 1, index == 2? COLORS._main_accent : c_white, 1); - TOOLTIP = "Toggle animation"; - - if(mouse_press(mb_left, _focus)) { - if(inputs[| 2].value_from != noone) - inputs[| 2].removeFrom(); - else - inputs[| 2].setAnim(!inputs[| 2].is_anim); - } - } - for( var i = 0, n = array_length(tags); i < n; i++ ) { - var _yy = by + lb_h + 8 + i * hh; + var _yy = by + ui(4) + i * hh; var tag = tags[i]; + var cc = tag[? "Color"]; var st = tag[? "Frame start"]; var ed = tag[? "Frame end"]; var rn = ed - st + 1; + var progFr = safe_mod(CURRENT_FRAME - _tag_delay, rn) + 1; - var prog = progFr / rn; - var txt = ""; + var prog = progFr / rn; + var txt = ""; + + var _tgy = _yy + ui(2); + var _tgh = hh - ui(4); if(tag[? "Name"] == current_tag) { - draw_sprite_stretched_ext(THEME.node_bg_name, 1, _x + 8, _yy, _w - 16, hh, tag[? "Color"], 0.5); - draw_sprite_stretched_ext(THEME.node_bg_name, 1, _x + 8, _yy, (_w - 16) * prog, hh, tag[? "Color"], 1.0); + draw_sprite_stretched_ext(THEME.timeline_node, 0, _x + 8, _tgy, _w - 16, _tgh, cc, 0.5); + + draw_sprite_stretched_ext(THEME.timeline_node, 0, _x + 8, _tgy, (_w - 16) * prog, _tgh, cc, 0.85); + draw_sprite_stretched_ext(THEME.timeline_node, 1, _x + 8, _tgy, (_w - 16) * prog, _tgh, c_white, 0.25); + + txt = $"{progFr}/{rn}"; + + } else { + draw_sprite_stretched_ext(THEME.timeline_node, 0, _x + 8, _tgy, 8, _tgh, cc, 0.85); + draw_sprite_stretched_ext(THEME.timeline_node, 1, _x + 8, _tgy, 8, _tgh, c_white, 0.25); + + txt = $"{rn}"; + } - txt += string(progFr) + "/"; - } else - draw_sprite_stretched_ext(THEME.node_bg_name, 1, _x + 8, _yy, 8, hh, tag[? "Color"], 1.0); txt += string(rn); if(_hover && point_in_rectangle(_m[0], _m[1], _x + 8, _yy, _x + _w - 8, _yy + hh)) { - draw_sprite_stretched_ext(THEME.node_bg_name, 1, _x + 8, _yy, _w - 16, hh, c_white, 0.1); - if(mouse_click(mb_left, _focus)) { + draw_sprite_stretched_ext(THEME.timeline_node, 0, _x + 8, _tgy, _w - 16, _tgh, c_white, 0.1); + if(mouse_press(mb_left, _focus)) { var _currTag = getInputData(2); var _tagName = tag[? "Name"]; inputs[| 2].setValue(_currTag == _tagName? "" : _tagName); } } - draw_set_text(f_p1, fa_left, fa_center, tag[? "Name"] == current_tag? tag[? "Color"] : COLORS._main_text); - draw_text(_x + 24, _yy + hh / 2, tag[? "Name"]); + draw_set_text(f_p1, fa_left, fa_center, COLORS._main_text); + draw_text_add(_x + 24, _yy + hh / 2, tag[? "Name"]); draw_set_text(f_p1, fa_right, fa_center, COLORS._main_text_sub); - draw_text(_x + _w - 20, _yy + hh / 2, txt); + draw_text_add(_x + _w - 20, _yy + hh / 2, txt); } tag_renderer.h = _h; @@ -176,11 +173,9 @@ function Node_ASE_File_Read(_x, _y, _group = noone) : Node(_x, _y, _group) const first_update = false; on_drop_file = function(path) { #region - if(updatePaths(path)) { - doUpdate(); - return true; - } - return false; + inputs[| 0].setValue(path); + doUpdate(); + return true; } #endregion function refreshLayers() { #region @@ -219,21 +214,20 @@ function Node_ASE_File_Read(_x, _y, _group = noone) : Node(_x, _y, _group) const function updatePaths(path = path_current) { #region if(path == -1) return false; + if(!file_exists_empty(path)) return false; path_current = path; edit_time = max(edit_time, file_get_modify_s(path_current)); - var ext = string_lower(filename_ext(path)); - var _name = string_replace(filename_name(path), filename_ext(path), ""); + var ext = string_lower(filename_ext(path)); + var _name = filename_name_only(path); if(ext != ".ase" && ext != ".aseprite") return false; - - outputs[| 2].setValue(path); read_ase(path, content); layers = []; - var vis = attributes.layer_visible; + var vis = attributes.layer_visible; var frames = content[? "Frames"]; for( var i = 0, n = array_length(frames); i < n; i++ ) { @@ -305,11 +299,12 @@ function Node_ASE_File_Read(_x, _y, _group = noone) : Node(_x, _y, _group) const } #endregion static step = function() { #region - if(attributes.file_checker && path_current != "") { - if(file_get_modify_s(path_current) > edit_time) { - updatePaths(); - triggerRender(); - } + if(!attributes.file_checker) return; + if(path_current == "") return; + + if(file_get_modify_s(path_current) > edit_time) { + updatePaths(); + triggerRender(); } } #endregion @@ -317,6 +312,8 @@ function Node_ASE_File_Read(_x, _y, _group = noone) : Node(_x, _y, _group) const var path = path_get(getInputData(0)); var current_tag = getInputData(2); + outputs[| 2].setValue(path); + if(path_current != path) updatePaths(path); if(ds_map_empty(content)) return; diff --git a/scripts/node_atlas_to_struct/node_atlas_to_struct.gml b/scripts/node_atlas_to_struct/node_atlas_to_struct.gml new file mode 100644 index 000000000..dd7b80719 --- /dev/null +++ b/scripts/node_atlas_to_struct/node_atlas_to_struct.gml @@ -0,0 +1,40 @@ +function Node_Atlas_Struct(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { + name = "Atlas to Struct"; + setDimension(96, 48); + + inputs[| 0] = nodeValue("Atlas", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone) + .setVisible(true, true); + + outputs[| 0] = nodeValue("Struct", self, JUNCTION_CONNECT.output, VALUE_TYPE.struct, []) + .setArrayDepth(1); + + static update = function(frame = CURRENT_FRAME) { + var atl = getInputData(0); + + if(atl == noone) return; + + if(!is_array(atl)) atl = [ atl ]; + if(array_empty(atl)) return; + + var n = array_length(atl); + var str = []; + var ind = 0; + + for( var i = 0; i < n; i++ ) { + var _at = atl[i]; + if(!is_instanceof(_at, SurfaceAtlas)) continue; + + str[ind++] = { + surface: _at.surface, + size: surface_get_dimension(_at.getSurface()), + position: [ _at.x, _at.y ], + rotation: _at.rotation, + scale: [ _at.sx, _at.sy ], + blend: _at.blend, + alpha: _at.alpha, + } + } + + outputs[| 0].setValue(str); + } +} \ No newline at end of file diff --git a/scripts/node_atlas_to_struct/node_atlas_to_struct.yy b/scripts/node_atlas_to_struct/node_atlas_to_struct.yy new file mode 100644 index 000000000..9a0765523 --- /dev/null +++ b/scripts/node_atlas_to_struct/node_atlas_to_struct.yy @@ -0,0 +1,13 @@ +{ + "$GMScript":"", + "%Name":"node_atlas_to_struct", + "isCompatibility":false, + "isDnD":false, + "name":"node_atlas_to_struct", + "parent":{ + "name":"atlas", + "path":"folders/nodes/data/value/atlas.yy", + }, + "resourceType":"GMScript", + "resourceVersion":"2.0", +} \ No newline at end of file diff --git a/scripts/node_cross_section/node_cross_section.gml b/scripts/node_cross_section/node_cross_section.gml index a1c0414fd..bd00af02d 100644 --- a/scripts/node_cross_section/node_cross_section.gml +++ b/scripts/node_cross_section/node_cross_section.gml @@ -3,18 +3,72 @@ function Node_Cross_Section(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone ); + inputs[| 1] = nodeValue("Axis", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) + .setDisplay(VALUE_DISPLAY.enum_button, [ "X", "Y" ]); + + inputs[| 2] = nodeValue("Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ) + .setDisplay(VALUE_DISPLAY.slider); + + inputs[| 3] = nodeValue("Anti Aliasing", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false ); + + inputs[| 4] = nodeValue("Mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) + .setDisplay(VALUE_DISPLAY.enum_button, [ "BW", "Colored" ]); + outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone ); input_display_list = [ - ["Surfaces", false], 0, + ["Surfaces", false], 0, + ["Axis", false], 1, 2, + ["Output", false], 4, 3, ]; attribute_surface_depth(); + static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny, params) { #region + PROCESSOR_OVERLAY_CHECK + + var _surf = getSingleValue(0); + var _iaxs = getSingleValue(1); + var _posi = getSingleValue(2); + + var _dim = surface_get_dimension(_surf); + + if(_iaxs == 0) { + var _x0 = _x; + var _y0 = _y + _posi * _dim[1] * _s; + var _x1 = _x + _dim[0] * _s; + var _y1 = _y0; + + } else { + var _x0 = _x + _posi * _dim[0] * _s; + var _y0 = _y; + var _x1 = _x0; + var _y1 = _y + _dim[1] * _s; + } + + draw_set_color(COLORS._main_accent); + draw_line(_x0, _y0, _x1, _y1); + } + static processData = function(_outSurf, _data, _output_index, _array_index) { var _surf = _data[0]; + var _iaxs = _data[1]; + var _posi = _data[2]; + var _aa = _data[3]; + var _mode = _data[4]; + var _dim = surface_get_dimension(_surf); + _outSurf = surface_verify(_outSurf, _dim[0], _dim[1]); + surface_set_shader(_outSurf, sh_cross_section); + shader_set_f("dimension", _dim); + shader_set_i("iAxis", _iaxs); + shader_set_f("position", _posi); + shader_set_i("aa", _aa); + shader_set_i("mode", _mode); + + draw_surface(_surf, 0, 0); + surface_reset_shader(); return _outSurf; } diff --git a/scripts/node_registry/node_registry.gml b/scripts/node_registry/node_registry.gml index 859043a36..d30672618 100644 --- a/scripts/node_registry/node_registry.gml +++ b/scripts/node_registry/node_registry.gml @@ -696,6 +696,7 @@ function __initNodes() { addNodeObject(generator, "Pixel Builder", s_node_pixel_builder, "Node_Pixel_Builder", [1, Node_Pixel_Builder]).setVersion(11540); addNodeObject(generator, "Bar / Graph", s_node_bar_graph, "Node_Plot_Linear", [0, Node_create_Plot_Linear], global.node_plot_linear_keys, "Plot graph or bar chart from array of number.").setVersion(1144); addNodeObject(generator, "Profile", s_node_profile, "Node_Path_Profile", [1, Node_Path_Profile]).setVersion(11660); + addNodeObject(generator, "Cross Section", s_node_cross_section, "Node_Cross_Section", [1, Node_Cross_Section]).setVersion(11710); ds_list_add(generator, "Noises"); addNodeObject(generator, "Noise", s_node_noise, "Node_Noise", [1, Node_Noise],, "Generate white noise."); @@ -896,9 +897,10 @@ function __initNodes() { addNodeObject(values, "Mesh Transform", s_node_mesh_transform, "Node_Mesh_Transform", [1, Node_Mesh_Transform]).setVersion(1140); ds_list_add(values, "Atlas"); - addNodeObject(values, "Draw Atlas", s_node_draw_atlas, "Node_Atlas_Draw", [1, Node_Atlas_Draw],, "Render image atlas to a surface.").setVersion(1141); - addNodeObject(values, "Atlas Get", s_node_atlas_get, "Node_Atlas_Get", [1, Node_Atlas_Get]).setVersion(1141); - addNodeObject(values, "Atlas Set", s_node_atlas_set, "Node_Atlas_Set", [1, Node_Atlas_Set]).setVersion(1141); + addNodeObject(values, "Draw Atlas", s_node_draw_atlas, "Node_Atlas_Draw", [1, Node_Atlas_Draw],, "Render image atlas to a surface.").setVersion(1141); + addNodeObject(values, "Atlas Get", s_node_atlas_get, "Node_Atlas_Get", [1, Node_Atlas_Get]).setVersion(1141); + addNodeObject(values, "Atlas Set", s_node_atlas_set, "Node_Atlas_Set", [1, Node_Atlas_Set]).setVersion(1141); + addNodeObject(values, "Atlas to Struct", s_node_atlas_struct, "Node_Atlas_Struct", [1, Node_Atlas_Struct]).setVersion(11710); ds_list_add(values, "Surface"); //addNodeObject(values, "Dynamic Surface", s_node_dynasurf, "Node_dynaSurf", [1, Node_dynaSurf]).setVersion(11520); diff --git a/scripts/node_render_sprite_sheet/node_render_sprite_sheet.gml b/scripts/node_render_sprite_sheet/node_render_sprite_sheet.gml index 0d81e9d69..8cb9b8c69 100644 --- a/scripts/node_render_sprite_sheet/node_render_sprite_sheet.gml +++ b/scripts/node_render_sprite_sheet/node_render_sprite_sheet.gml @@ -161,15 +161,21 @@ function Node_Render_Sprite_Sheet(_x, _y, _group = noone) : Node(_x, _y, _group) switch(pack) { case SPRITE_STACK.horizontal : for(var i = _st; i <= _ed; i++) { - ww += surface_get_width_safe(inpt[i]); + var _surf = array_safe_get(inpt, i); + if(!is_surface(_surf)) continue; + + ww += surface_get_width_safe(_surf); if(i > _st) ww += spac; - hh = max(hh, surface_get_height_safe(inpt[i])); + hh = max(hh, surface_get_height_safe(_surf)); } break; case SPRITE_STACK.vertical : for(var i = _st; i <= _ed; i++) { - ww = max(ww, surface_get_width_safe(inpt[i])); - hh += surface_get_height_safe(inpt[i]); + var _surf = array_safe_get(inpt, i); + if(!is_surface(_surf)) continue; + + ww = max(ww, surface_get_width_safe(_surf)); + hh += surface_get_height_safe(_surf); if(i > _st) hh += spac; } break; @@ -184,10 +190,13 @@ function Node_Render_Sprite_Sheet(_x, _y, _group = noone) : Node(_x, _y, _group) for(var j = 0; j < col; j++) { var index = _st + i * col + j; if(index > _ed) break; - - row_w += surface_get_width_safe(inpt[index]); + + var _surf = array_safe_get(inpt, index); + if(!is_surface(_surf)) continue; + + row_w += surface_get_width_safe(_surf); if(j) row_w += spc2[0]; - row_h = max(row_h, surface_get_height_safe(inpt[index])); + row_h = max(row_h, surface_get_height_safe(_surf)); } ww = max(ww, row_w); diff --git a/shaders/sh_cross_histogram/sh_cross_histogram.fsh b/shaders/sh_cross_histogram/sh_cross_histogram.fsh new file mode 100644 index 000000000..e69cad85a --- /dev/null +++ b/shaders/sh_cross_histogram/sh_cross_histogram.fsh @@ -0,0 +1,11 @@ +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +uniform vec2 dimension; +uniform sampler2D surface; + +void main() { + vec2 tx = 1. / dimension; + + gl_FragColor = texture2D( gm_BaseTexture, v_vTexcoord ); +} diff --git a/shaders/sh_cross_histogram/sh_cross_histogram.vsh b/shaders/sh_cross_histogram/sh_cross_histogram.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_cross_histogram/sh_cross_histogram.vsh @@ -0,0 +1,19 @@ +// +// Simple passthrough vertex shader +// +attribute vec3 in_Position; // (x,y,z) +//attribute vec3 in_Normal; // (x,y,z) unused in this shader. +attribute vec4 in_Colour; // (r,g,b,a) +attribute vec2 in_TextureCoord; // (u,v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() +{ + vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} diff --git a/shaders/sh_cross_histogram/sh_cross_histogram.yy b/shaders/sh_cross_histogram/sh_cross_histogram.yy new file mode 100644 index 000000000..f49c4c1d1 --- /dev/null +++ b/shaders/sh_cross_histogram/sh_cross_histogram.yy @@ -0,0 +1,12 @@ +{ + "$GMShader":"", + "%Name":"sh_cross_histogram", + "name":"sh_cross_histogram", + "parent":{ + "name":"generator", + "path":"folders/shader/generator.yy", + }, + "resourceType":"GMShader", + "resourceVersion":"2.0", + "type":1, +} \ No newline at end of file diff --git a/shaders/sh_cross_section/sh_cross_section.fsh b/shaders/sh_cross_section/sh_cross_section.fsh new file mode 100644 index 000000000..951ad70e8 --- /dev/null +++ b/shaders/sh_cross_section/sh_cross_section.fsh @@ -0,0 +1,31 @@ +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +uniform sampler2D histogram; + +uniform vec2 dimension; +uniform int iAxis, oAxis; +uniform float position; +uniform int aa; +uniform int mode; + +void main() { + vec2 tx = 1. / dimension; + vec2 sm = iAxis == 0? vec2(v_vTexcoord.x, position) : vec2(position, v_vTexcoord.y); + + vec4 cc = texture2D( gm_BaseTexture, sm ); + float br = 1. - dot(cc.rgb, vec3(0.2126, 0.7152, 0.0722)) * cc.a; + float bw = iAxis == 0? v_vTexcoord.y : 1. - v_vTexcoord.x; + float fa = iAxis == 0? tx.x : tx.y; + + float res = aa == 0? step(br, bw) : smoothstep(br - fa, br + fa, bw); + + if(mode == 0) { + gl_FragColor = vec4(vec3(res), 1.); + + } else if(mode == 1) { + gl_FragColor = vec4(0.); + if(res > 0.) gl_FragColor = vec4(cc.rgb, cc.a * res); + + } +} diff --git a/shaders/sh_cross_section/sh_cross_section.vsh b/shaders/sh_cross_section/sh_cross_section.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_cross_section/sh_cross_section.vsh @@ -0,0 +1,19 @@ +// +// Simple passthrough vertex shader +// +attribute vec3 in_Position; // (x,y,z) +//attribute vec3 in_Normal; // (x,y,z) unused in this shader. +attribute vec4 in_Colour; // (r,g,b,a) +attribute vec2 in_TextureCoord; // (u,v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() +{ + vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} diff --git a/shaders/sh_cross_section/sh_cross_section.yy b/shaders/sh_cross_section/sh_cross_section.yy new file mode 100644 index 000000000..775011de8 --- /dev/null +++ b/shaders/sh_cross_section/sh_cross_section.yy @@ -0,0 +1,12 @@ +{ + "$GMShader":"", + "%Name":"sh_cross_section", + "name":"sh_cross_section", + "parent":{ + "name":"generator", + "path":"folders/shader/generator.yy", + }, + "resourceType":"GMShader", + "resourceVersion":"2.0", + "type":1, +} \ No newline at end of file diff --git a/sprites/s_node_atlas_struct/30325564-3329-4229-b687-4b8190474c17.png b/sprites/s_node_atlas_struct/30325564-3329-4229-b687-4b8190474c17.png new file mode 100644 index 0000000000000000000000000000000000000000..1aeed13ab0d20d64c183149ea470547fad2cd59a GIT binary patch literal 1643 zcmZ{kX;jkr8pnTsGbKT4y(OWo>Qu3%*?YwaSj1R&?SumTTK3n=XF)op`j-|irLw`lK%UMaEtCQD0d9#gNV z1}$vZOuB0Q+p$;^vwu+^dYyC8rfVCbG^$Ii(k_HTg@*X6m3D<6JpYITa-|L}R-*Na zC~MgA*rpCl)tw{3tRS>6Axe+*;N;sT*AWZJWHUp&!gBNa8O;eDq_U>-mL5nxolQ&o zrdMYAF|?uts}u%&r_%4z7)-q9pDKT(mQ-MOwnd!?1Bc7&!KV47>aA#7C$@i(3wsZe z4p99?7u0nBHC3Os=W<$A?(byDsWSl}J$ny>>9md@%vj(4^!asfPx66$U5k57u+`Qb zGryTwF+=PVjG_Nv@VNMlfT0S@(IqyrfqMV#V`^GWm!rYJ$h(=TzLdW5FWD9+15ZX$60FO% zN<#G=p;GSC8`oOYl#oBW+-6AupVN|YDicH6wskT$Os=%JAkOTcC`%Q41@Lp=lKn+< zyZU@E%viN*ybVfA<#`U^ismQ!d3Sd>;iUo~;0p(Ie08u_mM4DPS05hO=`BrOCN_v7 z5-etM7k&*f38SL!S#oYao|{{$sjU{G$0hMKyhm`iZkE07LSDUZkoGO!qaVG*Hv?8* z4Gj+rj)r~@8wekXuwB`_pvrY_d&KKcv=ESMFGGFrM*>u--5wL1Ah7P6ep>ILV;kb* zx#?CeYVhuz&>FAndt0`0pB$wlr;W&kX<3V+k4Q!<@d+iSenZdfJi)_n%t`nCGfBMp z!-c|Ik%sp#jz4`f^iq)Gz7+tuQj6Br`ElnWe+E-zSJoJbdG3WSHA(bI5ZKu2(_`8s z08^8i0xYlH%d_#@t?%xwj%--01%|dSc&Cl&`@EXkU6lg8T>ZjjT%IH#YWpo2Fe11O)Wvp}ch4V2$gAYWcg0N=Q-n^#Q5pzTK*oqH1`sL5K zutsUODSaQOyo(>d*VbHCntpcx|AeCpb#QRkcDebayIkgDSLylY&u|B=hY!_-wAY5; z(eqLXCKAdJ=$MzR8jxMQZGe(NY0Du_&)GD6?t-)Z{OyWAbB&IsAJ$J)z8sNJUiI$1 z2X1!o%Z8RaMP?{o=7H3=M{B89<9RfNO1Snt9H zdY+m%(7HG5s8qJ!sj{84=79SZK&HQ^nt?}Bh0x4y(OWo>Qu3%*?YwaSj1R&?SumTTK3n=XF)op`j-|irLw`lK%UMaEtCQD0d9#gNV z1}$vZOuB0Q+p$;^vwu+^dYyC8rfVCbG^$Ii(k_HTg@*X6m3D<6JpYITa-|L}R-*Na zC~MgA*rpCl)tw{3tRS>6Axe+*;N;sT*AWZJWHUp&!gBNa8O;eDq_U>-mL5nxolQ&o zrdMYAF|?uts}u%&r_%4z7)-q9pDKT(mQ-MOwnd!?1Bc7&!KV47>aA#7C$@i(3wsZe z4p99?7u0nBHC3Os=W<$A?(byDsWSl}J$ny>>9md@%vj(4^!asfPx66$U5k57u+`Qb zGryTwF+=PVjG_Nv@VNMlfT0S@(IqyrfqMV#V`^GWm!rYJ$h(=TzLdW5FWD9+15ZX$60FO% zN<#G=p;GSC8`oOYl#oBW+-6AupVN|YDicH6wskT$Os=%JAkOTcC`%Q41@Lp=lKn+< zyZU@E%viN*ybVfA<#`U^ismQ!d3Sd>;iUo~;0p(Ie08u_mM4DPS05hO=`BrOCN_v7 z5-etM7k&*f38SL!S#oYao|{{$sjU{G$0hMKyhm`iZkE07LSDUZkoGO!qaVG*Hv?8* z4Gj+rj)r~@8wekXuwB`_pvrY_d&KKcv=ESMFGGFrM*>u--5wL1Ah7P6ep>ILV;kb* zx#?CeYVhuz&>FAndt0`0pB$wlr;W&kX<3V+k4Q!<@d+iSenZdfJi)_n%t`nCGfBMp z!-c|Ik%sp#jz4`f^iq)Gz7+tuQj6Br`ElnWe+E-zSJoJbdG3WSHA(bI5ZKu2(_`8s z08^8i0xYlH%d_#@t?%xwj%--01%|dSc&Cl&`@EXkU6lg8T>ZjjT%IH#YWpo2Fe11O)Wvp}ch4V2$gAYWcg0N=Q-n^#Q5pzTK*oqH1`sL5K zutsUODSaQOyo(>d*VbHCntpcx|AeCpb#QRkcDebayIkgDSLylY&u|B=hY!_-wAY5; z(eqLXCKAdJ=$MzR8jxMQZGe(NY0Du_&)GD6?t-)Z{OyWAbB&IsAJ$J)z8sNJUiI$1 z2X1!o%Z8RaMP?{o=7H3=M{B89<9RfNO1Snt9H zdY+m%(7HG5s8qJ!sj{84=79SZK&HQ^nt?}Bh0x":"", + "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_atlas_struct", + "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":"30325564-3329-4229-b687-4b8190474c17","path":"sprites/s_node_atlas_struct/s_node_atlas_struct.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"0ec0f457-c256-467a-a22f-c3a978a84f14","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":32, + "yorigin":32, + }, + "swatchColours":null, + "swfPrecision":0.5, + "textureGroupId":{ + "name":"Default", + "path":"texturegroups/Default", + }, + "type":0, + "VTile":false, + "width":64, +} \ No newline at end of file diff --git a/sprites/s_node_character/s_node_character.yy b/sprites/s_node_character/s_node_character.yy index 8f00b4af1..012a9ef6a 100644 --- a/sprites/s_node_character/s_node_character.yy +++ b/sprites/s_node_character/s_node_character.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"texts", - "path":"folders/nodes/data/value/texts.yy", + "path":"folders/nodes/icons/value/texts.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_cross_section/034239b3-5e5c-483f-b000-e4b40c2e596f.png b/sprites/s_node_cross_section/034239b3-5e5c-483f-b000-e4b40c2e596f.png new file mode 100644 index 0000000000000000000000000000000000000000..f628dd9656255a35edde4e0d927474866f7a7455 GIT binary patch literal 955 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=3dtTpz6=aiY77hwEes65fI|H*Yfq`kAr;B4q#jUrqz58xC z2(;PX&JFXJDczE){X_sQA^uV)+ zdt`lk-e%d?tz^wApZ%+T)vv&^YR^dpjXQOPZ?*Dn*z%O)y-$PS2By5Nx@#q@6S&@- zXO&=#elT@gsp&&b3FhkiVQZ{hC507BkM7vxOn}f%~=Add>%#(XmQ-4fe5O3<{H%U);9J=*UHp9nQ~wbH?vW zH_M*RP-wy=H*rS&#a+u}ndWrV|GB^Jte8SyUW2RPBlaJz)~l5J_9;rwI`m{=r<}sO zeM^?St=ep((D&@bx~*GcT#aoOv_#~u0~+EMvu~2@>f4G6-7`x=pWFo+AvclNXKAO@ zcPEEOwVX989zVY$1>tKF4gPO1AJYhGD!koi%DC+p|kznM-X zYIf z=BmXvSVSrCiyhBZ`cuUCVD+}b(gVFM9{LVo*dSCCKdI{bGu>k|k~w=6P1+8yNC@A0 zuXgp=jqFBF4&RE4@vr#)`o6lnUnKYk@7#Lcam|GbbX&V?=85k^T_qc(gAvZrIGp!Q0hRe4;qyRN&z-=hW d%uOvWNz5(4t*7Pu#oa(X44$rjF6*2UngDarjBx+} literal 0 HcmV?d00001 diff --git a/sprites/s_node_cross_section/layers/034239b3-5e5c-483f-b000-e4b40c2e596f/c3d815aa-174c-4af3-86b9-39877d4c495e.png b/sprites/s_node_cross_section/layers/034239b3-5e5c-483f-b000-e4b40c2e596f/c3d815aa-174c-4af3-86b9-39877d4c495e.png new file mode 100644 index 0000000000000000000000000000000000000000..f628dd9656255a35edde4e0d927474866f7a7455 GIT binary patch literal 955 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=3dtTpz6=aiY77hwEes65fI|H*Yfq`kAr;B4q#jUrqz58xC z2(;PX&JFXJDczE){X_sQA^uV)+ zdt`lk-e%d?tz^wApZ%+T)vv&^YR^dpjXQOPZ?*Dn*z%O)y-$PS2By5Nx@#q@6S&@- zXO&=#elT@gsp&&b3FhkiVQZ{hC507BkM7vxOn}f%~=Add>%#(XmQ-4fe5O3<{H%U);9J=*UHp9nQ~wbH?vW zH_M*RP-wy=H*rS&#a+u}ndWrV|GB^Jte8SyUW2RPBlaJz)~l5J_9;rwI`m{=r<}sO zeM^?St=ep((D&@bx~*GcT#aoOv_#~u0~+EMvu~2@>f4G6-7`x=pWFo+AvclNXKAO@ zcPEEOwVX989zVY$1>tKF4gPO1AJYhGD!koi%DC+p|kznM-X zYIf z=BmXvSVSrCiyhBZ`cuUCVD+}b(gVFM9{LVo*dSCCKdI{bGu>k|k~w=6P1+8yNC@A0 zuXgp=jqFBF4&RE4@vr#)`o6lnUnKYk@7#Lcam|GbbX&V?=85k^T_qc(gAvZrIGp!Q0hRe4;qyRN&z-=hW d%uOvWNz5(4t*7Pu#oa(X44$rjF6*2UngDarjBx+} literal 0 HcmV?d00001 diff --git a/sprites/s_node_cross_section/s_node_cross_section.yy b/sprites/s_node_cross_section/s_node_cross_section.yy new file mode 100644 index 000000000..73519fc76 --- /dev/null +++ b/sprites/s_node_cross_section/s_node_cross_section.yy @@ -0,0 +1,90 @@ +{ + "$GMSprite":"", + "%Name":"s_node_cross_section", + "bboxMode":0, + "bbox_bottom":63, + "bbox_left":0, + "bbox_right":63, + "bbox_top":0, + "collisionKind":1, + "collisionTolerance":0, + "DynamicTexturePage":false, + "edgeFiltering":false, + "For3D":false, + "frames":[ + {"$GMSpriteFrame":"","%Name":"034239b3-5e5c-483f-b000-e4b40c2e596f","name":"034239b3-5e5c-483f-b000-e4b40c2e596f","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + ], + "gridX":0, + "gridY":0, + "height":64, + "HTile":false, + "layers":[ + {"$GMImageLayer":"","%Name":"c3d815aa-174c-4af3-86b9-39877d4c495e","blendMode":0,"displayName":"default","isLocked":false,"name":"c3d815aa-174c-4af3-86b9-39877d4c495e","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, + ], + "name":"s_node_cross_section", + "nineSlice":null, + "origin":4, + "parent":{ + "name":"generator", + "path":"folders/nodes/icons/generator.yy", + }, + "preMultiplyAlpha":false, + "resourceType":"GMSprite", + "resourceVersion":"2.0", + "sequence":{ + "$GMSequence":"", + "%Name":"s_node_cross_section", + "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_cross_section", + "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":"034239b3-5e5c-483f-b000-e4b40c2e596f","path":"sprites/s_node_cross_section/s_node_cross_section.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"72eeacba-3693-4e6f-aaed-b3ba1514140d","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":32, + "yorigin":32, + }, + "swatchColours":null, + "swfPrecision":0.5, + "textureGroupId":{ + "name":"Default", + "path":"texturegroups/Default", + }, + "type":0, + "VTile":false, + "width":64, +} \ No newline at end of file diff --git a/sprites/s_node_dynasurf/s_node_dynasurf.yy b/sprites/s_node_dynasurf/s_node_dynasurf.yy index d8e07ee67..843b5544c 100644 --- a/sprites/s_node_dynasurf/s_node_dynasurf.yy +++ b/sprites/s_node_dynasurf/s_node_dynasurf.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"surface", - "path":"folders/nodes/data/value/surface.yy", + "path":"folders/nodes/icons/value/surface.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_isosurf/s_node_isosurf.yy b/sprites/s_node_isosurf/s_node_isosurf.yy index 706056d1b..6ec0a8e45 100644 --- a/sprites/s_node_isosurf/s_node_isosurf.yy +++ b/sprites/s_node_isosurf/s_node_isosurf.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"surface", - "path":"folders/nodes/data/value/surface.yy", + "path":"folders/nodes/icons/value/surface.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_json_parse/s_node_json_parse.yy b/sprites/s_node_json_parse/s_node_json_parse.yy index 85a9b817e..9ca8b3eae 100644 --- a/sprites/s_node_json_parse/s_node_json_parse.yy +++ b/sprites/s_node_json_parse/s_node_json_parse.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"struct", - "path":"folders/nodes/data/value/struct.yy", + "path":"folders/nodes/icons/value/struct.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_path/s_node_path.yy b/sprites/s_node_path/s_node_path.yy index daca863ee..b284fc1a2 100644 --- a/sprites/s_node_path/s_node_path.yy +++ b/sprites/s_node_path/s_node_path.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"path", - "path":"folders/nodes/data/value/path.yy", + "path":"folders/nodes/icons/value/path.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_path_anchor/s_node_path_anchor.yy b/sprites/s_node_path_anchor/s_node_path_anchor.yy index 3fa5fe212..70de9b1ed 100644 --- a/sprites/s_node_path_anchor/s_node_path_anchor.yy +++ b/sprites/s_node_path_anchor/s_node_path_anchor.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"path", - "path":"folders/nodes/data/value/path.yy", + "path":"folders/nodes/icons/value/path.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_path_array/s_node_path_array.yy b/sprites/s_node_path_array/s_node_path_array.yy index 18f2c715e..768b1c27f 100644 --- a/sprites/s_node_path_array/s_node_path_array.yy +++ b/sprites/s_node_path_array/s_node_path_array.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"path", - "path":"folders/nodes/data/value/path.yy", + "path":"folders/nodes/icons/value/path.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_path_bake/s_node_path_bake.yy b/sprites/s_node_path_bake/s_node_path_bake.yy index a3e520f81..4e5471583 100644 --- a/sprites/s_node_path_bake/s_node_path_bake.yy +++ b/sprites/s_node_path_bake/s_node_path_bake.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"path", - "path":"folders/nodes/data/value/path.yy", + "path":"folders/nodes/icons/value/path.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_path_blend/s_node_path_blend.yy b/sprites/s_node_path_blend/s_node_path_blend.yy index ae9cc5b0c..da2461b47 100644 --- a/sprites/s_node_path_blend/s_node_path_blend.yy +++ b/sprites/s_node_path_blend/s_node_path_blend.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"path", - "path":"folders/nodes/data/value/path.yy", + "path":"folders/nodes/icons/value/path.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_path_bridge/s_node_path_bridge.yy b/sprites/s_node_path_bridge/s_node_path_bridge.yy index c28a7b72b..e799e12a6 100644 --- a/sprites/s_node_path_bridge/s_node_path_bridge.yy +++ b/sprites/s_node_path_bridge/s_node_path_bridge.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"path", - "path":"folders/nodes/data/value/path.yy", + "path":"folders/nodes/icons/value/path.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_path_builder/s_node_path_builder.yy b/sprites/s_node_path_builder/s_node_path_builder.yy index d3501bcc8..bfcc50cc0 100644 --- a/sprites/s_node_path_builder/s_node_path_builder.yy +++ b/sprites/s_node_path_builder/s_node_path_builder.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"path", - "path":"folders/nodes/data/value/path.yy", + "path":"folders/nodes/icons/value/path.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_path_from_mask/s_node_path_from_mask.yy b/sprites/s_node_path_from_mask/s_node_path_from_mask.yy index 7f4899753..533b14457 100644 --- a/sprites/s_node_path_from_mask/s_node_path_from_mask.yy +++ b/sprites/s_node_path_from_mask/s_node_path_from_mask.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"path", - "path":"folders/nodes/data/value/path.yy", + "path":"folders/nodes/icons/value/path.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_path_l_system/s_node_path_l_system.yy b/sprites/s_node_path_l_system/s_node_path_l_system.yy index 26ea75a35..550acf0aa 100644 --- a/sprites/s_node_path_l_system/s_node_path_l_system.yy +++ b/sprites/s_node_path_l_system/s_node_path_l_system.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"path", - "path":"folders/nodes/data/value/path.yy", + "path":"folders/nodes/icons/value/path.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_path_map/s_node_path_map.yy b/sprites/s_node_path_map/s_node_path_map.yy index 731271214..92cd530c2 100644 --- a/sprites/s_node_path_map/s_node_path_map.yy +++ b/sprites/s_node_path_map/s_node_path_map.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"path", - "path":"folders/nodes/data/value/path.yy", + "path":"folders/nodes/icons/value/path.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_path_mapp/s_node_path_mapp.yy b/sprites/s_node_path_mapp/s_node_path_mapp.yy index a8b35d57f..875184ce1 100644 --- a/sprites/s_node_path_mapp/s_node_path_mapp.yy +++ b/sprites/s_node_path_mapp/s_node_path_mapp.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"path", - "path":"folders/nodes/data/value/path.yy", + "path":"folders/nodes/icons/value/path.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_path_plot/s_node_path_plot.yy b/sprites/s_node_path_plot/s_node_path_plot.yy index 8c079c02a..976b9da61 100644 --- a/sprites/s_node_path_plot/s_node_path_plot.yy +++ b/sprites/s_node_path_plot/s_node_path_plot.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"path", - "path":"folders/nodes/data/value/path.yy", + "path":"folders/nodes/icons/value/path.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_path_reverse/s_node_path_reverse.yy b/sprites/s_node_path_reverse/s_node_path_reverse.yy index 364884981..62d4bf7c9 100644 --- a/sprites/s_node_path_reverse/s_node_path_reverse.yy +++ b/sprites/s_node_path_reverse/s_node_path_reverse.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"path", - "path":"folders/nodes/data/value/path.yy", + "path":"folders/nodes/icons/value/path.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_path_sample/s_node_path_sample.yy b/sprites/s_node_path_sample/s_node_path_sample.yy index a86cc04c1..b6df43a7c 100644 --- a/sprites/s_node_path_sample/s_node_path_sample.yy +++ b/sprites/s_node_path_sample/s_node_path_sample.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"path", - "path":"folders/nodes/data/value/path.yy", + "path":"folders/nodes/icons/value/path.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_path_shift/s_node_path_shift.yy b/sprites/s_node_path_shift/s_node_path_shift.yy index 09b4f490d..56119dc9a 100644 --- a/sprites/s_node_path_shift/s_node_path_shift.yy +++ b/sprites/s_node_path_shift/s_node_path_shift.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"path", - "path":"folders/nodes/data/value/path.yy", + "path":"folders/nodes/icons/value/path.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_path_smooth/s_node_path_smooth.yy b/sprites/s_node_path_smooth/s_node_path_smooth.yy index 924559be9..698962e7e 100644 --- a/sprites/s_node_path_smooth/s_node_path_smooth.yy +++ b/sprites/s_node_path_smooth/s_node_path_smooth.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"path", - "path":"folders/nodes/data/value/path.yy", + "path":"folders/nodes/icons/value/path.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_path_transform/s_node_path_transform.yy b/sprites/s_node_path_transform/s_node_path_transform.yy index 9ff105164..853f3f581 100644 --- a/sprites/s_node_path_transform/s_node_path_transform.yy +++ b/sprites/s_node_path_transform/s_node_path_transform.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"path", - "path":"folders/nodes/data/value/path.yy", + "path":"folders/nodes/icons/value/path.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_path_trim/s_node_path_trim.yy b/sprites/s_node_path_trim/s_node_path_trim.yy index 43df00d94..706800deb 100644 --- a/sprites/s_node_path_trim/s_node_path_trim.yy +++ b/sprites/s_node_path_trim/s_node_path_trim.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"path", - "path":"folders/nodes/data/value/path.yy", + "path":"folders/nodes/icons/value/path.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_path_wave/s_node_path_wave.yy b/sprites/s_node_path_wave/s_node_path_wave.yy index 4b87d9213..6476fa1c3 100644 --- a/sprites/s_node_path_wave/s_node_path_wave.yy +++ b/sprites/s_node_path_wave/s_node_path_wave.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"path", - "path":"folders/nodes/data/value/path.yy", + "path":"folders/nodes/icons/value/path.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_regex_match/s_node_regex_match.yy b/sprites/s_node_regex_match/s_node_regex_match.yy index 88827686e..965f8a348 100644 --- a/sprites/s_node_regex_match/s_node_regex_match.yy +++ b/sprites/s_node_regex_match/s_node_regex_match.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"texts", - "path":"folders/nodes/data/value/texts.yy", + "path":"folders/nodes/icons/value/texts.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_regex_replace/s_node_regex_replace.yy b/sprites/s_node_regex_replace/s_node_regex_replace.yy index f8d3d9a60..70793bda0 100644 --- a/sprites/s_node_regex_replace/s_node_regex_replace.yy +++ b/sprites/s_node_regex_replace/s_node_regex_replace.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"texts", - "path":"folders/nodes/data/value/texts.yy", + "path":"folders/nodes/icons/value/texts.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_regex_search/s_node_regex_search.yy b/sprites/s_node_regex_search/s_node_regex_search.yy index cc5e6f093..25925b8fc 100644 --- a/sprites/s_node_regex_search/s_node_regex_search.yy +++ b/sprites/s_node_regex_search/s_node_regex_search.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"texts", - "path":"folders/nodes/data/value/texts.yy", + "path":"folders/nodes/icons/value/texts.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_separate_file_path/s_node_separate_file_path.yy b/sprites/s_node_separate_file_path/s_node_separate_file_path.yy index 2828d4b3f..2b2f9ea99 100644 --- a/sprites/s_node_separate_file_path/s_node_separate_file_path.yy +++ b/sprites/s_node_separate_file_path/s_node_separate_file_path.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"texts", - "path":"folders/nodes/data/value/texts.yy", + "path":"folders/nodes/icons/value/texts.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_struct/s_node_struct.yy b/sprites/s_node_struct/s_node_struct.yy index 7330d8e27..e685b6f00 100644 --- a/sprites/s_node_struct/s_node_struct.yy +++ b/sprites/s_node_struct/s_node_struct.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"struct", - "path":"folders/nodes/data/value/struct.yy", + "path":"folders/nodes/icons/value/struct.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_struct_get/s_node_struct_get.yy b/sprites/s_node_struct_get/s_node_struct_get.yy index f022a7f62..d1e9cc396 100644 --- a/sprites/s_node_struct_get/s_node_struct_get.yy +++ b/sprites/s_node_struct_get/s_node_struct_get.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"struct", - "path":"folders/nodes/data/value/struct.yy", + "path":"folders/nodes/icons/value/struct.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_surface_from_buffer/s_node_surface_from_buffer.yy b/sprites/s_node_surface_from_buffer/s_node_surface_from_buffer.yy index d7fcd7af4..4d08be32c 100644 --- a/sprites/s_node_surface_from_buffer/s_node_surface_from_buffer.yy +++ b/sprites/s_node_surface_from_buffer/s_node_surface_from_buffer.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"surface", - "path":"folders/nodes/data/value/surface.yy", + "path":"folders/nodes/icons/value/surface.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_surface_to_buffer/s_node_surface_to_buffer.yy b/sprites/s_node_surface_to_buffer/s_node_surface_to_buffer.yy index b6a0f0f34..80a0dcd8e 100644 --- a/sprites/s_node_surface_to_buffer/s_node_surface_to_buffer.yy +++ b/sprites/s_node_surface_to_buffer/s_node_surface_to_buffer.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"surface", - "path":"folders/nodes/data/value/surface.yy", + "path":"folders/nodes/icons/value/surface.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_text/s_node_text.yy b/sprites/s_node_text/s_node_text.yy index 1c05ad84b..5be25e02a 100644 --- a/sprites/s_node_text/s_node_text.yy +++ b/sprites/s_node_text/s_node_text.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"texts", - "path":"folders/nodes/data/value/texts.yy", + "path":"folders/nodes/icons/value/texts.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_text_char_get/s_node_text_char_get.yy b/sprites/s_node_text_char_get/s_node_text_char_get.yy index 2482fc99c..55976d8a7 100644 --- a/sprites/s_node_text_char_get/s_node_text_char_get.yy +++ b/sprites/s_node_text_char_get/s_node_text_char_get.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"texts", - "path":"folders/nodes/data/value/texts.yy", + "path":"folders/nodes/icons/value/texts.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_text_combine/s_node_text_combine.yy b/sprites/s_node_text_combine/s_node_text_combine.yy index b46e08672..69b28b3d2 100644 --- a/sprites/s_node_text_combine/s_node_text_combine.yy +++ b/sprites/s_node_text_combine/s_node_text_combine.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"texts", - "path":"folders/nodes/data/value/texts.yy", + "path":"folders/nodes/icons/value/texts.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_text_display/s_node_text_display.yy b/sprites/s_node_text_display/s_node_text_display.yy index 67788c3f4..e2b1cb8f8 100644 --- a/sprites/s_node_text_display/s_node_text_display.yy +++ b/sprites/s_node_text_display/s_node_text_display.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"texts", - "path":"folders/nodes/data/value/texts.yy", + "path":"folders/nodes/icons/value/texts.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_text_join/s_node_text_join.yy b/sprites/s_node_text_join/s_node_text_join.yy index dceebafb7..7abf0ae4d 100644 --- a/sprites/s_node_text_join/s_node_text_join.yy +++ b/sprites/s_node_text_join/s_node_text_join.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"texts", - "path":"folders/nodes/data/value/texts.yy", + "path":"folders/nodes/icons/value/texts.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_text_length/s_node_text_length.yy b/sprites/s_node_text_length/s_node_text_length.yy index fd5b7a500..65a9949aa 100644 --- a/sprites/s_node_text_length/s_node_text_length.yy +++ b/sprites/s_node_text_length/s_node_text_length.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"texts", - "path":"folders/nodes/data/value/texts.yy", + "path":"folders/nodes/icons/value/texts.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_text_splice/s_node_text_splice.yy b/sprites/s_node_text_splice/s_node_text_splice.yy index bcbd00a49..6ba84d44c 100644 --- a/sprites/s_node_text_splice/s_node_text_splice.yy +++ b/sprites/s_node_text_splice/s_node_text_splice.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"texts", - "path":"folders/nodes/data/value/texts.yy", + "path":"folders/nodes/icons/value/texts.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_text_trim/s_node_text_trim.yy b/sprites/s_node_text_trim/s_node_text_trim.yy index 0de5fbca4..1a4ced320 100644 --- a/sprites/s_node_text_trim/s_node_text_trim.yy +++ b/sprites/s_node_text_trim/s_node_text_trim.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"texts", - "path":"folders/nodes/data/value/texts.yy", + "path":"folders/nodes/icons/value/texts.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_to_text/s_node_to_text.yy b/sprites/s_node_to_text/s_node_to_text.yy index 442c49c75..c4041b4f1 100644 --- a/sprites/s_node_to_text/s_node_to_text.yy +++ b/sprites/s_node_to_text/s_node_to_text.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"texts", - "path":"folders/nodes/data/value/texts.yy", + "path":"folders/nodes/icons/value/texts.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite", diff --git a/sprites/s_node_unicode/s_node_unicode.yy b/sprites/s_node_unicode/s_node_unicode.yy index ac8d07b32..b4c99041e 100644 --- a/sprites/s_node_unicode/s_node_unicode.yy +++ b/sprites/s_node_unicode/s_node_unicode.yy @@ -26,7 +26,7 @@ "origin":4, "parent":{ "name":"texts", - "path":"folders/nodes/data/value/texts.yy", + "path":"folders/nodes/icons/value/texts.yy", }, "preMultiplyAlpha":false, "resourceType":"GMSprite",