New Liquefy node.
|
@ -173,6 +173,7 @@
|
||||||
{"name":"corner","order":43,"path":"folders/shader/filter/corner.yy",},
|
{"name":"corner","order":43,"path":"folders/shader/filter/corner.yy",},
|
||||||
{"name":"dither","order":53,"path":"folders/shader/filter/dither.yy",},
|
{"name":"dither","order":53,"path":"folders/shader/filter/dither.yy",},
|
||||||
{"name":"edge_shade","order":44,"path":"folders/shader/filter/edge_shade.yy",},
|
{"name":"edge_shade","order":44,"path":"folders/shader/filter/edge_shade.yy",},
|
||||||
|
{"name":"liquefy","order":60,"path":"folders/shader/filter/liquefy.yy",},
|
||||||
{"name":"jpeg","order":55,"path":"folders/shader/filter/jpeg.yy",},
|
{"name":"jpeg","order":55,"path":"folders/shader/filter/jpeg.yy",},
|
||||||
{"name":"morph","order":45,"path":"folders/shader/filter/morph.yy",},
|
{"name":"morph","order":45,"path":"folders/shader/filter/morph.yy",},
|
||||||
{"name":"shadow_caster","order":46,"path":"folders/shader/filter/shadow_caster.yy",},
|
{"name":"shadow_caster","order":46,"path":"folders/shader/filter/shadow_caster.yy",},
|
||||||
|
@ -383,6 +384,7 @@
|
||||||
{"name":"__node_shader_generator","order":4,"path":"scripts/__node_shader_generator/__node_shader_generator.yy",},
|
{"name":"__node_shader_generator","order":4,"path":"scripts/__node_shader_generator/__node_shader_generator.yy",},
|
||||||
{"name":"__node_shader_processor","order":5,"path":"scripts/__node_shader_processor/__node_shader_processor.yy",},
|
{"name":"__node_shader_processor","order":5,"path":"scripts/__node_shader_processor/__node_shader_processor.yy",},
|
||||||
{"name":"__node_shader","order":3,"path":"scripts/__node_shader/__node_shader.yy",},
|
{"name":"__node_shader","order":3,"path":"scripts/__node_shader/__node_shader.yy",},
|
||||||
|
{"name":"__node_surface_filter","order":15,"path":"scripts/__node_surface_filter/__node_surface_filter.yy",},
|
||||||
{"name":"__node_value_array","order":12,"path":"scripts/__node_value_array/__node_value_array.yy",},
|
{"name":"__node_value_array","order":12,"path":"scripts/__node_value_array/__node_value_array.yy",},
|
||||||
{"name":"__node_value_object","order":3,"path":"scripts/__node_value_object/__node_value_object.yy",},
|
{"name":"__node_value_object","order":3,"path":"scripts/__node_value_object/__node_value_object.yy",},
|
||||||
{"name":"__node_value_processor","order":4,"path":"scripts/__node_value_processor/__node_value_processor.yy",},
|
{"name":"__node_value_processor","order":4,"path":"scripts/__node_value_processor/__node_value_processor.yy",},
|
||||||
|
@ -927,6 +929,7 @@
|
||||||
{"name":"node_level_selector","order":8,"path":"scripts/node_level_selector/node_level_selector.yy",},
|
{"name":"node_level_selector","order":8,"path":"scripts/node_level_selector/node_level_selector.yy",},
|
||||||
{"name":"node_level","order":7,"path":"scripts/node_level/node_level.yy",},
|
{"name":"node_level","order":7,"path":"scripts/node_level/node_level.yy",},
|
||||||
{"name":"node_line","order":4,"path":"scripts/node_line/node_line.yy",},
|
{"name":"node_line","order":4,"path":"scripts/node_line/node_line.yy",},
|
||||||
|
{"name":"node_liquefy","order":10,"path":"scripts/node_liquefy/node_liquefy.yy",},
|
||||||
{"name":"node_local_analyze","order":16,"path":"scripts/node_local_analyze/node_local_analyze.yy",},
|
{"name":"node_local_analyze","order":16,"path":"scripts/node_local_analyze/node_local_analyze.yy",},
|
||||||
{"name":"node_lovify","order":1,"path":"scripts/node_lovify/node_lovify.yy",},
|
{"name":"node_lovify","order":1,"path":"scripts/node_lovify/node_lovify.yy",},
|
||||||
{"name":"node_lua_global","order":1,"path":"scripts/node_lua_global/node_lua_global.yy",},
|
{"name":"node_lua_global","order":1,"path":"scripts/node_lua_global/node_lua_global.yy",},
|
||||||
|
@ -1046,6 +1049,7 @@
|
||||||
{"name":"node_pin","order":2,"path":"scripts/node_pin/node_pin.yy",},
|
{"name":"node_pin","order":2,"path":"scripts/node_pin/node_pin.yy",},
|
||||||
{"name":"node_pixel_builder","order":4,"path":"scripts/node_pixel_builder/node_pixel_builder.yy",},
|
{"name":"node_pixel_builder","order":4,"path":"scripts/node_pixel_builder/node_pixel_builder.yy",},
|
||||||
{"name":"node_pixel_cloud","order":20,"path":"scripts/node_pixel_cloud/node_pixel_cloud.yy",},
|
{"name":"node_pixel_cloud","order":20,"path":"scripts/node_pixel_cloud/node_pixel_cloud.yy",},
|
||||||
|
{"name":"node_pixel_math","order":26,"path":"scripts/node_pixel_math/node_pixel_math.yy",},
|
||||||
{"name":"node_pixel_sampler","order":22,"path":"scripts/node_pixel_sampler/node_pixel_sampler.yy",},
|
{"name":"node_pixel_sampler","order":22,"path":"scripts/node_pixel_sampler/node_pixel_sampler.yy",},
|
||||||
{"name":"node_pixel_sort","order":12,"path":"scripts/node_pixel_sort/node_pixel_sort.yy",},
|
{"name":"node_pixel_sort","order":12,"path":"scripts/node_pixel_sort/node_pixel_sort.yy",},
|
||||||
{"name":"node_plot_linear","order":5,"path":"scripts/node_plot_linear/node_plot_linear.yy",},
|
{"name":"node_plot_linear","order":5,"path":"scripts/node_plot_linear/node_plot_linear.yy",},
|
||||||
|
@ -1600,6 +1604,9 @@
|
||||||
{"name":"sh_kuwahara","order":36,"path":"shaders/sh_kuwahara/sh_kuwahara.yy",},
|
{"name":"sh_kuwahara","order":36,"path":"shaders/sh_kuwahara/sh_kuwahara.yy",},
|
||||||
{"name":"sh_level_selector","order":15,"path":"shaders/sh_level_selector/sh_level_selector.yy",},
|
{"name":"sh_level_selector","order":15,"path":"shaders/sh_level_selector/sh_level_selector.yy",},
|
||||||
{"name":"sh_level","order":14,"path":"shaders/sh_level/sh_level.yy",},
|
{"name":"sh_level","order":14,"path":"shaders/sh_level/sh_level.yy",},
|
||||||
|
{"name":"sh_liquefy_bloat","order":3,"path":"shaders/sh_liquefy_bloat/sh_liquefy_bloat.yy",},
|
||||||
|
{"name":"sh_liquefy_pinch","order":2,"path":"shaders/sh_liquefy_pinch/sh_liquefy_pinch.yy",},
|
||||||
|
{"name":"sh_liquefy_twirl","order":1,"path":"shaders/sh_liquefy_twirl/sh_liquefy_twirl.yy",},
|
||||||
{"name":"sh_local_analyze","order":25,"path":"shaders/sh_local_analyze/sh_local_analyze.yy",},
|
{"name":"sh_local_analyze","order":25,"path":"shaders/sh_local_analyze/sh_local_analyze.yy",},
|
||||||
{"name":"sh_lovify","order":2,"path":"shaders/sh_lovify/sh_lovify.yy",},
|
{"name":"sh_lovify","order":2,"path":"shaders/sh_lovify/sh_lovify.yy",},
|
||||||
{"name":"sh_lum2alpha","order":16,"path":"shaders/sh_lum2alpha/sh_lum2alpha.yy",},
|
{"name":"sh_lum2alpha","order":16,"path":"shaders/sh_lum2alpha/sh_lum2alpha.yy",},
|
||||||
|
@ -1671,6 +1678,7 @@
|
||||||
{"name":"sh_perlin_tiled","order":15,"path":"shaders/sh_perlin_tiled/sh_perlin_tiled.yy",},
|
{"name":"sh_perlin_tiled","order":15,"path":"shaders/sh_perlin_tiled/sh_perlin_tiled.yy",},
|
||||||
{"name":"sh_perlin","order":12,"path":"shaders/sh_perlin/sh_perlin.yy",},
|
{"name":"sh_perlin","order":12,"path":"shaders/sh_perlin/sh_perlin.yy",},
|
||||||
{"name":"sh_pixel_cloud","order":4,"path":"shaders/sh_pixel_cloud/sh_pixel_cloud.yy",},
|
{"name":"sh_pixel_cloud","order":4,"path":"shaders/sh_pixel_cloud/sh_pixel_cloud.yy",},
|
||||||
|
{"name":"sh_pixel_math","order":59,"path":"shaders/sh_pixel_math/sh_pixel_math.yy",},
|
||||||
{"name":"sh_pixel_sample","order":27,"path":"shaders/sh_pixel_sample/sh_pixel_sample.yy",},
|
{"name":"sh_pixel_sample","order":27,"path":"shaders/sh_pixel_sample/sh_pixel_sample.yy",},
|
||||||
{"name":"sh_pixel_sort","order":20,"path":"shaders/sh_pixel_sort/sh_pixel_sort.yy",},
|
{"name":"sh_pixel_sort","order":20,"path":"shaders/sh_pixel_sort/sh_pixel_sort.yy",},
|
||||||
{"name":"sh_polar","order":1,"path":"shaders/sh_polar/sh_polar.yy",},
|
{"name":"sh_polar","order":1,"path":"shaders/sh_polar/sh_polar.yy",},
|
||||||
|
@ -2281,6 +2289,8 @@
|
||||||
{"name":"s_node_level_selector","order":33,"path":"sprites/s_node_level_selector/s_node_level_selector.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",},
|
{"name":"s_node_level","order":32,"path":"sprites/s_node_level/s_node_level.yy",},
|
||||||
{"name":"s_node_line","order":7,"path":"sprites/s_node_line/s_node_line.yy",},
|
{"name":"s_node_line","order":7,"path":"sprites/s_node_line/s_node_line.yy",},
|
||||||
|
{"name":"s_node_liquefy_type","order":30,"path":"sprites/s_node_liquefy_type/s_node_liquefy_type.yy",},
|
||||||
|
{"name":"s_node_liquefy","order":71,"path":"sprites/s_node_liquefy/s_node_liquefy.yy",},
|
||||||
{"name":"s_node_local_analyze","order":34,"path":"sprites/s_node_local_analyze/s_node_local_analyze.yy",},
|
{"name":"s_node_local_analyze","order":34,"path":"sprites/s_node_local_analyze/s_node_local_analyze.yy",},
|
||||||
{"name":"s_node_logic_opr","order":1,"path":"sprites/s_node_logic_opr/s_node_logic_opr.yy",},
|
{"name":"s_node_logic_opr","order":1,"path":"sprites/s_node_logic_opr/s_node_logic_opr.yy",},
|
||||||
{"name":"s_node_logic","order":3,"path":"sprites/s_node_logic/s_node_logic.yy",},
|
{"name":"s_node_logic","order":3,"path":"sprites/s_node_logic/s_node_logic.yy",},
|
||||||
|
@ -2362,40 +2372,42 @@
|
||||||
{"name":"s_node_path_transform","order":16,"path":"sprites/s_node_path_transform/s_node_path_transform.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_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_path_wave","order":18,"path":"sprites/s_node_path_wave/s_node_path_wave.yy",},
|
||||||
{"name":"s_node_pb_box_contract","order":1,"path":"sprites/s_node_pb_box_contract/s_node_pb_box_contract.yy",},
|
{"name":"s_node_pb_box_contract","order":31,"path":"sprites/s_node_pb_box_contract/s_node_pb_box_contract.yy",},
|
||||||
{"name":"s_node_pb_box_divide_grid","order":3,"path":"sprites/s_node_pb_box_divide_grid/s_node_pb_box_divide_grid.yy",},
|
{"name":"s_node_pb_box_divide_grid","order":33,"path":"sprites/s_node_pb_box_divide_grid/s_node_pb_box_divide_grid.yy",},
|
||||||
{"name":"s_node_pb_box_divide","order":2,"path":"sprites/s_node_pb_box_divide/s_node_pb_box_divide.yy",},
|
{"name":"s_node_pb_box_divide","order":32,"path":"sprites/s_node_pb_box_divide/s_node_pb_box_divide.yy",},
|
||||||
{"name":"s_node_pb_box_inset","order":4,"path":"sprites/s_node_pb_box_inset/s_node_pb_box_inset.yy",},
|
{"name":"s_node_pb_box_inset","order":34,"path":"sprites/s_node_pb_box_inset/s_node_pb_box_inset.yy",},
|
||||||
{"name":"s_node_pb_box_mirror","order":5,"path":"sprites/s_node_pb_box_mirror/s_node_pb_box_mirror.yy",},
|
{"name":"s_node_pb_box_mirror","order":35,"path":"sprites/s_node_pb_box_mirror/s_node_pb_box_mirror.yy",},
|
||||||
{"name":"s_node_pb_box_split","order":6,"path":"sprites/s_node_pb_box_split/s_node_pb_box_split.yy",},
|
{"name":"s_node_pb_box_split","order":36,"path":"sprites/s_node_pb_box_split/s_node_pb_box_split.yy",},
|
||||||
{"name":"s_node_pb_box_transform","order":7,"path":"sprites/s_node_pb_box_transform/s_node_pb_box_transform.yy",},
|
{"name":"s_node_pb_box_transform","order":37,"path":"sprites/s_node_pb_box_transform/s_node_pb_box_transform.yy",},
|
||||||
{"name":"s_node_pb_draw_angle","order":8,"path":"sprites/s_node_pb_draw_angle/s_node_pb_draw_angle.yy",},
|
{"name":"s_node_pb_draw_angle","order":39,"path":"sprites/s_node_pb_draw_angle/s_node_pb_draw_angle.yy",},
|
||||||
{"name":"s_node_pb_draw_blob","order":9,"path":"sprites/s_node_pb_draw_blob/s_node_pb_draw_blob.yy",},
|
{"name":"s_node_pb_draw_blob","order":40,"path":"sprites/s_node_pb_draw_blob/s_node_pb_draw_blob.yy",},
|
||||||
{"name":"s_node_pb_draw_diamond","order":10,"path":"sprites/s_node_pb_draw_diamond/s_node_pb_draw_diamond.yy",},
|
{"name":"s_node_pb_draw_diamond","order":30,"path":"sprites/s_node_pb_draw_diamond/s_node_pb_draw_diamond.yy",},
|
||||||
{"name":"s_node_pb_draw_ellipse","order":11,"path":"sprites/s_node_pb_draw_ellipse/s_node_pb_draw_ellipse.yy",},
|
{"name":"s_node_pb_draw_ellipse","order":41,"path":"sprites/s_node_pb_draw_ellipse/s_node_pb_draw_ellipse.yy",},
|
||||||
{"name":"s_node_pb_draw_fill","order":12,"path":"sprites/s_node_pb_draw_fill/s_node_pb_draw_fill.yy",},
|
{"name":"s_node_pb_draw_fill","order":42,"path":"sprites/s_node_pb_draw_fill/s_node_pb_draw_fill.yy",},
|
||||||
{"name":"s_node_pb_draw_line","order":13,"path":"sprites/s_node_pb_draw_line/s_node_pb_draw_line.yy",},
|
{"name":"s_node_pb_draw_line","order":56,"path":"sprites/s_node_pb_draw_line/s_node_pb_draw_line.yy",},
|
||||||
{"name":"s_node_pb_draw_rectangle","order":14,"path":"sprites/s_node_pb_draw_rectangle/s_node_pb_draw_rectangle.yy",},
|
{"name":"s_node_pb_draw_rectangle","order":43,"path":"sprites/s_node_pb_draw_rectangle/s_node_pb_draw_rectangle.yy",},
|
||||||
{"name":"s_node_pb_draw_roundrectangle","order":15,"path":"sprites/s_node_pb_draw_roundrectangle/s_node_pb_draw_roundrectangle.yy",},
|
{"name":"s_node_pb_draw_roundrectangle","order":44,"path":"sprites/s_node_pb_draw_roundrectangle/s_node_pb_draw_roundrectangle.yy",},
|
||||||
{"name":"s_node_pb_draw_semi_ellipse","order":16,"path":"sprites/s_node_pb_draw_semi_ellipse/s_node_pb_draw_semi_ellipse.yy",},
|
{"name":"s_node_pb_draw_semi_ellipse","order":45,"path":"sprites/s_node_pb_draw_semi_ellipse/s_node_pb_draw_semi_ellipse.yy",},
|
||||||
{"name":"s_node_pb_draw_trapezoid","order":17,"path":"sprites/s_node_pb_draw_trapezoid/s_node_pb_draw_trapezoid.yy",},
|
{"name":"s_node_pb_draw_trapezoid","order":46,"path":"sprites/s_node_pb_draw_trapezoid/s_node_pb_draw_trapezoid.yy",},
|
||||||
{"name":"s_node_pb_fx_brick","order":18,"path":"sprites/s_node_pb_fx_brick/s_node_pb_fx_brick.yy",},
|
{"name":"s_node_pb_fx_add","order":47,"path":"sprites/s_node_pb_fx_add/s_node_pb_fx_add.yy",},
|
||||||
{"name":"s_node_pb_fx_hash","order":19,"path":"sprites/s_node_pb_fx_hash/s_node_pb_fx_hash.yy",},
|
{"name":"s_node_pb_fx_brick","order":58,"path":"sprites/s_node_pb_fx_brick/s_node_pb_fx_brick.yy",},
|
||||||
{"name":"s_node_pb_fx_highlight","order":20,"path":"sprites/s_node_pb_fx_highlight/s_node_pb_fx_highlight.yy",},
|
{"name":"s_node_pb_fx_hash","order":48,"path":"sprites/s_node_pb_fx_hash/s_node_pb_fx_hash.yy",},
|
||||||
{"name":"s_node_pb_fx_interesct","order":21,"path":"sprites/s_node_pb_fx_interesct/s_node_pb_fx_interesct.yy",},
|
{"name":"s_node_pb_fx_highlight","order":49,"path":"sprites/s_node_pb_fx_highlight/s_node_pb_fx_highlight.yy",},
|
||||||
{"name":"s_node_pb_fx_outline","order":22,"path":"sprites/s_node_pb_fx_outline/s_node_pb_fx_outline.yy",},
|
{"name":"s_node_pb_fx_interesct","order":50,"path":"sprites/s_node_pb_fx_interesct/s_node_pb_fx_interesct.yy",},
|
||||||
{"name":"s_node_pb_fx_radial","order":23,"path":"sprites/s_node_pb_fx_radial/s_node_pb_fx_radial.yy",},
|
{"name":"s_node_pb_fx_outline","order":51,"path":"sprites/s_node_pb_fx_outline/s_node_pb_fx_outline.yy",},
|
||||||
{"name":"s_node_pb_fx_shading","order":24,"path":"sprites/s_node_pb_fx_shading/s_node_pb_fx_shading.yy",},
|
{"name":"s_node_pb_fx_radial","order":52,"path":"sprites/s_node_pb_fx_radial/s_node_pb_fx_radial.yy",},
|
||||||
{"name":"s_node_pb_fx_stack","order":25,"path":"sprites/s_node_pb_fx_stack/s_node_pb_fx_stack.yy",},
|
{"name":"s_node_pb_fx_shading","order":53,"path":"sprites/s_node_pb_fx_shading/s_node_pb_fx_shading.yy",},
|
||||||
{"name":"s_node_pb_fx_strip","order":26,"path":"sprites/s_node_pb_fx_strip/s_node_pb_fx_strip.yy",},
|
{"name":"s_node_pb_fx_stack","order":54,"path":"sprites/s_node_pb_fx_stack/s_node_pb_fx_stack.yy",},
|
||||||
{"name":"s_node_pb_fx_subtract","order":27,"path":"sprites/s_node_pb_fx_subtract/s_node_pb_fx_subtract.yy",},
|
{"name":"s_node_pb_fx_strip","order":57,"path":"sprites/s_node_pb_fx_strip/s_node_pb_fx_strip.yy",},
|
||||||
{"name":"s_node_pb_layer","order":28,"path":"sprites/s_node_pb_layer/s_node_pb_layer.yy",},
|
{"name":"s_node_pb_fx_subtract","order":55,"path":"sprites/s_node_pb_fx_subtract/s_node_pb_fx_subtract.yy",},
|
||||||
|
{"name":"s_node_pb_layer","order":38,"path":"sprites/s_node_pb_layer/s_node_pb_layer.yy",},
|
||||||
{"name":"s_node_perlin_extra","order":31,"path":"sprites/s_node_perlin_extra/s_node_perlin_extra.yy",},
|
{"name":"s_node_perlin_extra","order":31,"path":"sprites/s_node_perlin_extra/s_node_perlin_extra.yy",},
|
||||||
{"name":"s_node_pin_array","order":42,"path":"sprites/s_node_pin_array/s_node_pin_array.yy",},
|
{"name":"s_node_pin_array","order":42,"path":"sprites/s_node_pin_array/s_node_pin_array.yy",},
|
||||||
{"name":"s_node_pin","order":2,"path":"sprites/s_node_pin/s_node_pin.yy",},
|
{"name":"s_node_pin","order":2,"path":"sprites/s_node_pin/s_node_pin.yy",},
|
||||||
{"name":"s_node_pixel_builder","order":29,"path":"sprites/s_node_pixel_builder/s_node_pixel_builder.yy",},
|
{"name":"s_node_pixel_builder","order":29,"path":"sprites/s_node_pixel_builder/s_node_pixel_builder.yy",},
|
||||||
{"name":"s_node_pixel_cloud","order":40,"path":"sprites/s_node_pixel_cloud/s_node_pixel_cloud.yy",},
|
{"name":"s_node_pixel_cloud","order":40,"path":"sprites/s_node_pixel_cloud/s_node_pixel_cloud.yy",},
|
||||||
{"name":"s_node_pixel_find","order":18,"path":"sprites/s_node_pixel_find/s_node_pixel_find.yy",},
|
{"name":"s_node_pixel_find","order":18,"path":"sprites/s_node_pixel_find/s_node_pixel_find.yy",},
|
||||||
|
{"name":"s_node_pixel_math","order":70,"path":"sprites/s_node_pixel_math/s_node_pixel_math.yy",},
|
||||||
{"name":"s_node_pixel_sampler","order":54,"path":"sprites/s_node_pixel_sampler/s_node_pixel_sampler.yy",},
|
{"name":"s_node_pixel_sampler","order":54,"path":"sprites/s_node_pixel_sampler/s_node_pixel_sampler.yy",},
|
||||||
{"name":"s_node_pixel_sort","order":41,"path":"sprites/s_node_pixel_sort/s_node_pixel_sort.yy",},
|
{"name":"s_node_pixel_sort","order":41,"path":"sprites/s_node_pixel_sort/s_node_pixel_sort.yy",},
|
||||||
{"name":"s_node_plot_linear_type","order":10,"path":"sprites/s_node_plot_linear_type/s_node_plot_linear_type.yy",},
|
{"name":"s_node_plot_linear_type","order":10,"path":"sprites/s_node_plot_linear_type/s_node_plot_linear_type.yy",},
|
||||||
|
|
|
@ -284,6 +284,7 @@
|
||||||
{"$GMFolder":"","%Name":"corner","folderPath":"folders/shader/filter/corner.yy","name":"corner","resourceType":"GMFolder","resourceVersion":"2.0",},
|
{"$GMFolder":"","%Name":"corner","folderPath":"folders/shader/filter/corner.yy","name":"corner","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||||
{"$GMFolder":"","%Name":"dither","folderPath":"folders/shader/filter/dither.yy","name":"dither","resourceType":"GMFolder","resourceVersion":"2.0",},
|
{"$GMFolder":"","%Name":"dither","folderPath":"folders/shader/filter/dither.yy","name":"dither","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||||
{"$GMFolder":"","%Name":"edge_shade","folderPath":"folders/shader/filter/edge_shade.yy","name":"edge_shade","resourceType":"GMFolder","resourceVersion":"2.0",},
|
{"$GMFolder":"","%Name":"edge_shade","folderPath":"folders/shader/filter/edge_shade.yy","name":"edge_shade","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||||
|
{"$GMFolder":"","%Name":"liquefy","folderPath":"folders/shader/filter/liquefy.yy","name":"liquefy","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||||
{"$GMFolder":"","%Name":"jpeg","folderPath":"folders/shader/filter/jpeg.yy","name":"jpeg","resourceType":"GMFolder","resourceVersion":"2.0",},
|
{"$GMFolder":"","%Name":"jpeg","folderPath":"folders/shader/filter/jpeg.yy","name":"jpeg","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||||
{"$GMFolder":"","%Name":"morph","folderPath":"folders/shader/filter/morph.yy","name":"morph","resourceType":"GMFolder","resourceVersion":"2.0",},
|
{"$GMFolder":"","%Name":"morph","folderPath":"folders/shader/filter/morph.yy","name":"morph","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||||
{"$GMFolder":"","%Name":"shadow_caster","folderPath":"folders/shader/filter/shadow_caster.yy","name":"shadow_caster","resourceType":"GMFolder","resourceVersion":"2.0",},
|
{"$GMFolder":"","%Name":"shadow_caster","folderPath":"folders/shader/filter/shadow_caster.yy","name":"shadow_caster","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||||
|
@ -868,6 +869,7 @@
|
||||||
{"id":{"name":"__node_shader_generator","path":"scripts/__node_shader_generator/__node_shader_generator.yy",},},
|
{"id":{"name":"__node_shader_generator","path":"scripts/__node_shader_generator/__node_shader_generator.yy",},},
|
||||||
{"id":{"name":"__node_shader_processor","path":"scripts/__node_shader_processor/__node_shader_processor.yy",},},
|
{"id":{"name":"__node_shader_processor","path":"scripts/__node_shader_processor/__node_shader_processor.yy",},},
|
||||||
{"id":{"name":"__node_shader","path":"scripts/__node_shader/__node_shader.yy",},},
|
{"id":{"name":"__node_shader","path":"scripts/__node_shader/__node_shader.yy",},},
|
||||||
|
{"id":{"name":"__node_surface_filter","path":"scripts/__node_surface_filter/__node_surface_filter.yy",},},
|
||||||
{"id":{"name":"__node_template","path":"scripts/__node_template/__node_template.yy",},},
|
{"id":{"name":"__node_template","path":"scripts/__node_template/__node_template.yy",},},
|
||||||
{"id":{"name":"__node_value_array","path":"scripts/__node_value_array/__node_value_array.yy",},},
|
{"id":{"name":"__node_value_array","path":"scripts/__node_value_array/__node_value_array.yy",},},
|
||||||
{"id":{"name":"__node_value_object","path":"scripts/__node_value_object/__node_value_object.yy",},},
|
{"id":{"name":"__node_value_object","path":"scripts/__node_value_object/__node_value_object.yy",},},
|
||||||
|
@ -1503,6 +1505,7 @@
|
||||||
{"id":{"name":"node_level_selector","path":"scripts/node_level_selector/node_level_selector.yy",},},
|
{"id":{"name":"node_level_selector","path":"scripts/node_level_selector/node_level_selector.yy",},},
|
||||||
{"id":{"name":"node_level","path":"scripts/node_level/node_level.yy",},},
|
{"id":{"name":"node_level","path":"scripts/node_level/node_level.yy",},},
|
||||||
{"id":{"name":"node_line","path":"scripts/node_line/node_line.yy",},},
|
{"id":{"name":"node_line","path":"scripts/node_line/node_line.yy",},},
|
||||||
|
{"id":{"name":"node_liquefy","path":"scripts/node_liquefy/node_liquefy.yy",},},
|
||||||
{"id":{"name":"node_local_analyze","path":"scripts/node_local_analyze/node_local_analyze.yy",},},
|
{"id":{"name":"node_local_analyze","path":"scripts/node_local_analyze/node_local_analyze.yy",},},
|
||||||
{"id":{"name":"node_logic","path":"scripts/node_logic/node_logic.yy",},},
|
{"id":{"name":"node_logic","path":"scripts/node_logic/node_logic.yy",},},
|
||||||
{"id":{"name":"node_lovify","path":"scripts/node_lovify/node_lovify.yy",},},
|
{"id":{"name":"node_lovify","path":"scripts/node_lovify/node_lovify.yy",},},
|
||||||
|
@ -1634,6 +1637,7 @@
|
||||||
{"id":{"name":"node_pin","path":"scripts/node_pin/node_pin.yy",},},
|
{"id":{"name":"node_pin","path":"scripts/node_pin/node_pin.yy",},},
|
||||||
{"id":{"name":"node_pixel_builder","path":"scripts/node_pixel_builder/node_pixel_builder.yy",},},
|
{"id":{"name":"node_pixel_builder","path":"scripts/node_pixel_builder/node_pixel_builder.yy",},},
|
||||||
{"id":{"name":"node_pixel_cloud","path":"scripts/node_pixel_cloud/node_pixel_cloud.yy",},},
|
{"id":{"name":"node_pixel_cloud","path":"scripts/node_pixel_cloud/node_pixel_cloud.yy",},},
|
||||||
|
{"id":{"name":"node_pixel_math","path":"scripts/node_pixel_math/node_pixel_math.yy",},},
|
||||||
{"id":{"name":"node_pixel_sampler","path":"scripts/node_pixel_sampler/node_pixel_sampler.yy",},},
|
{"id":{"name":"node_pixel_sampler","path":"scripts/node_pixel_sampler/node_pixel_sampler.yy",},},
|
||||||
{"id":{"name":"node_pixel_sort","path":"scripts/node_pixel_sort/node_pixel_sort.yy",},},
|
{"id":{"name":"node_pixel_sort","path":"scripts/node_pixel_sort/node_pixel_sort.yy",},},
|
||||||
{"id":{"name":"node_plot_linear","path":"scripts/node_plot_linear/node_plot_linear.yy",},},
|
{"id":{"name":"node_plot_linear","path":"scripts/node_plot_linear/node_plot_linear.yy",},},
|
||||||
|
@ -2272,6 +2276,10 @@
|
||||||
{"id":{"name":"sh_kuwahara","path":"shaders/sh_kuwahara/sh_kuwahara.yy",},},
|
{"id":{"name":"sh_kuwahara","path":"shaders/sh_kuwahara/sh_kuwahara.yy",},},
|
||||||
{"id":{"name":"sh_level_selector","path":"shaders/sh_level_selector/sh_level_selector.yy",},},
|
{"id":{"name":"sh_level_selector","path":"shaders/sh_level_selector/sh_level_selector.yy",},},
|
||||||
{"id":{"name":"sh_level","path":"shaders/sh_level/sh_level.yy",},},
|
{"id":{"name":"sh_level","path":"shaders/sh_level/sh_level.yy",},},
|
||||||
|
{"id":{"name":"sh_liquefy_bloat","path":"shaders/sh_liquefy_bloat/sh_liquefy_bloat.yy",},},
|
||||||
|
{"id":{"name":"sh_liquefy_pinch","path":"shaders/sh_liquefy_pinch/sh_liquefy_pinch.yy",},},
|
||||||
|
{"id":{"name":"sh_liquefy_push","path":"shaders/sh_liquefy_push/sh_liquefy_push.yy",},},
|
||||||
|
{"id":{"name":"sh_liquefy_twirl","path":"shaders/sh_liquefy_twirl/sh_liquefy_twirl.yy",},},
|
||||||
{"id":{"name":"sh_local_analyze","path":"shaders/sh_local_analyze/sh_local_analyze.yy",},},
|
{"id":{"name":"sh_local_analyze","path":"shaders/sh_local_analyze/sh_local_analyze.yy",},},
|
||||||
{"id":{"name":"sh_lovify","path":"shaders/sh_lovify/sh_lovify.yy",},},
|
{"id":{"name":"sh_lovify","path":"shaders/sh_lovify/sh_lovify.yy",},},
|
||||||
{"id":{"name":"sh_lum2alpha","path":"shaders/sh_lum2alpha/sh_lum2alpha.yy",},},
|
{"id":{"name":"sh_lum2alpha","path":"shaders/sh_lum2alpha/sh_lum2alpha.yy",},},
|
||||||
|
@ -2355,6 +2363,7 @@
|
||||||
{"id":{"name":"sh_perlin_tiled","path":"shaders/sh_perlin_tiled/sh_perlin_tiled.yy",},},
|
{"id":{"name":"sh_perlin_tiled","path":"shaders/sh_perlin_tiled/sh_perlin_tiled.yy",},},
|
||||||
{"id":{"name":"sh_perlin","path":"shaders/sh_perlin/sh_perlin.yy",},},
|
{"id":{"name":"sh_perlin","path":"shaders/sh_perlin/sh_perlin.yy",},},
|
||||||
{"id":{"name":"sh_pixel_cloud","path":"shaders/sh_pixel_cloud/sh_pixel_cloud.yy",},},
|
{"id":{"name":"sh_pixel_cloud","path":"shaders/sh_pixel_cloud/sh_pixel_cloud.yy",},},
|
||||||
|
{"id":{"name":"sh_pixel_math","path":"shaders/sh_pixel_math/sh_pixel_math.yy",},},
|
||||||
{"id":{"name":"sh_pixel_sample","path":"shaders/sh_pixel_sample/sh_pixel_sample.yy",},},
|
{"id":{"name":"sh_pixel_sample","path":"shaders/sh_pixel_sample/sh_pixel_sample.yy",},},
|
||||||
{"id":{"name":"sh_pixel_sort","path":"shaders/sh_pixel_sort/sh_pixel_sort.yy",},},
|
{"id":{"name":"sh_pixel_sort","path":"shaders/sh_pixel_sort/sh_pixel_sort.yy",},},
|
||||||
{"id":{"name":"sh_polar","path":"shaders/sh_polar/sh_polar.yy",},},
|
{"id":{"name":"sh_polar","path":"shaders/sh_polar/sh_polar.yy",},},
|
||||||
|
@ -3016,6 +3025,8 @@
|
||||||
{"id":{"name":"s_node_level_selector","path":"sprites/s_node_level_selector/s_node_level_selector.yy",},},
|
{"id":{"name":"s_node_level_selector","path":"sprites/s_node_level_selector/s_node_level_selector.yy",},},
|
||||||
{"id":{"name":"s_node_level","path":"sprites/s_node_level/s_node_level.yy",},},
|
{"id":{"name":"s_node_level","path":"sprites/s_node_level/s_node_level.yy",},},
|
||||||
{"id":{"name":"s_node_line","path":"sprites/s_node_line/s_node_line.yy",},},
|
{"id":{"name":"s_node_line","path":"sprites/s_node_line/s_node_line.yy",},},
|
||||||
|
{"id":{"name":"s_node_liquefy_type","path":"sprites/s_node_liquefy_type/s_node_liquefy_type.yy",},},
|
||||||
|
{"id":{"name":"s_node_liquefy","path":"sprites/s_node_liquefy/s_node_liquefy.yy",},},
|
||||||
{"id":{"name":"s_node_local_analyze","path":"sprites/s_node_local_analyze/s_node_local_analyze.yy",},},
|
{"id":{"name":"s_node_local_analyze","path":"sprites/s_node_local_analyze/s_node_local_analyze.yy",},},
|
||||||
{"id":{"name":"s_node_logic_opr","path":"sprites/s_node_logic_opr/s_node_logic_opr.yy",},},
|
{"id":{"name":"s_node_logic_opr","path":"sprites/s_node_logic_opr/s_node_logic_opr.yy",},},
|
||||||
{"id":{"name":"s_node_logic","path":"sprites/s_node_logic/s_node_logic.yy",},},
|
{"id":{"name":"s_node_logic","path":"sprites/s_node_logic/s_node_logic.yy",},},
|
||||||
|
@ -3135,6 +3146,7 @@
|
||||||
{"id":{"name":"s_node_pixel_builder","path":"sprites/s_node_pixel_builder/s_node_pixel_builder.yy",},},
|
{"id":{"name":"s_node_pixel_builder","path":"sprites/s_node_pixel_builder/s_node_pixel_builder.yy",},},
|
||||||
{"id":{"name":"s_node_pixel_cloud","path":"sprites/s_node_pixel_cloud/s_node_pixel_cloud.yy",},},
|
{"id":{"name":"s_node_pixel_cloud","path":"sprites/s_node_pixel_cloud/s_node_pixel_cloud.yy",},},
|
||||||
{"id":{"name":"s_node_pixel_find","path":"sprites/s_node_pixel_find/s_node_pixel_find.yy",},},
|
{"id":{"name":"s_node_pixel_find","path":"sprites/s_node_pixel_find/s_node_pixel_find.yy",},},
|
||||||
|
{"id":{"name":"s_node_pixel_math","path":"sprites/s_node_pixel_math/s_node_pixel_math.yy",},},
|
||||||
{"id":{"name":"s_node_pixel_sampler","path":"sprites/s_node_pixel_sampler/s_node_pixel_sampler.yy",},},
|
{"id":{"name":"s_node_pixel_sampler","path":"sprites/s_node_pixel_sampler/s_node_pixel_sampler.yy",},},
|
||||||
{"id":{"name":"s_node_pixel_sort","path":"sprites/s_node_pixel_sort/s_node_pixel_sort.yy",},},
|
{"id":{"name":"s_node_pixel_sort","path":"sprites/s_node_pixel_sort/s_node_pixel_sort.yy",},},
|
||||||
{"id":{"name":"s_node_plot_linear_type","path":"sprites/s_node_plot_linear_type/s_node_plot_linear_type.yy",},},
|
{"id":{"name":"s_node_plot_linear_type","path":"sprites/s_node_plot_linear_type/s_node_plot_linear_type.yy",},},
|
||||||
|
|
53
scripts/__node_surface_filter/__node_surface_filter.gml
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
/* Surface filter template
|
||||||
|
function Node_(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
||||||
|
name = "";
|
||||||
|
|
||||||
|
newInput(0, nodeValue_Surface("Surface in", self));
|
||||||
|
|
||||||
|
newInput(1, nodeValue_Bool("Active", self, true));
|
||||||
|
active_index = 1;
|
||||||
|
|
||||||
|
newInput(2, nodeValue_Surface("Mask", self));
|
||||||
|
|
||||||
|
newInput(3, nodeValue_Float("Mix", self, 1))
|
||||||
|
.setDisplay(VALUE_DISPLAY.slider);
|
||||||
|
|
||||||
|
newInput(4, nodeValue_Toggle("Channel", self, 0b1111, { data: array_create(4, THEME.inspector_channel) }));
|
||||||
|
|
||||||
|
__init_mask_modifier(2); // inputs 5, 6,
|
||||||
|
|
||||||
|
input_display_list = [ 1, 4,
|
||||||
|
["Surfaces", true], 0, 2, 3, 5, 6,
|
||||||
|
["Effect", false],
|
||||||
|
]
|
||||||
|
|
||||||
|
newOutput(0, nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone));
|
||||||
|
|
||||||
|
attribute_surface_depth();
|
||||||
|
attribute_oversample();
|
||||||
|
|
||||||
|
static step = function() {
|
||||||
|
__step_mask_modifier();
|
||||||
|
}
|
||||||
|
|
||||||
|
static processData = function(_outSurf, _data, _output_index, _array_index) {
|
||||||
|
|
||||||
|
var _rad = _data[7];
|
||||||
|
var _int = _data[8];
|
||||||
|
var _dim = surface_get_dimension(_data[0]);
|
||||||
|
_outSurf = surface_verify(_outSurf, _dim[0], _dim[1]);
|
||||||
|
|
||||||
|
surface_set_shader(_outSurf, SHADER, true, BLEND.over);
|
||||||
|
shader_set_i("sampleMode", attributes.oversample);
|
||||||
|
shader_set_2("dimension", _dim);
|
||||||
|
|
||||||
|
draw_surface_safe(_data[0]);
|
||||||
|
surface_reset_shader();
|
||||||
|
|
||||||
|
__process_mask_modifier(_data);
|
||||||
|
_outSurf = mask_apply(_data[0], _outSurf, _data[2], _data[3]);
|
||||||
|
_outSurf = channel_apply(_data[0], _outSurf, _data[4]);
|
||||||
|
|
||||||
|
return _outSurf;
|
||||||
|
}
|
||||||
|
}
|
13
scripts/__node_surface_filter/__node_surface_filter.yy
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"$GMScript":"v1",
|
||||||
|
"%Name":"__node_surface_filter",
|
||||||
|
"isCompatibility":false,
|
||||||
|
"isDnD":false,
|
||||||
|
"name":"__node_surface_filter",
|
||||||
|
"parent":{
|
||||||
|
"name":"__base__",
|
||||||
|
"path":"folders/nodes/__base__.yy",
|
||||||
|
},
|
||||||
|
"resourceType":"GMScript",
|
||||||
|
"resourceVersion":"2.0",
|
||||||
|
}
|
|
@ -42,7 +42,7 @@
|
||||||
LATEST_VERSION = 1_18_00_0;
|
LATEST_VERSION = 1_18_00_0;
|
||||||
VERSION = 1_18_01_0;
|
VERSION = 1_18_01_0;
|
||||||
SAVE_VERSION = 1_18_01_0;
|
SAVE_VERSION = 1_18_01_0;
|
||||||
VERSION_STRING = MAC? "1.18.003m" : "1.18.2.003";
|
VERSION_STRING = MAC? "1.18.003m" : "1.18.2.004";
|
||||||
BUILD_NUMBER = 1_18_01_0;
|
BUILD_NUMBER = 1_18_01_0;
|
||||||
|
|
||||||
HOTKEYS = ds_map_create();
|
HOTKEYS = ds_map_create();
|
||||||
|
|
|
@ -73,6 +73,7 @@ function mask_apply(original, edited, mask, mix = 1) {
|
||||||
|
|
||||||
function channel_apply(original, edited, channel) {
|
function channel_apply(original, edited, channel) {
|
||||||
if(channel == 0b1111) return edited;
|
if(channel == 0b1111) return edited;
|
||||||
|
if(!surface_exists(original)) return edited;
|
||||||
|
|
||||||
var _f = surface_get_format(edited);
|
var _f = surface_get_format(edited);
|
||||||
var _s = surface_create_size(original, _f);
|
var _s = surface_create_size(original, _f);
|
||||||
|
|
|
@ -29,16 +29,35 @@ function Node_VFX_Boids(_x, _y, _group = noone) : Node(_x, _y, _group) construct
|
||||||
|
|
||||||
newInput(7, nodeValue_Float("Speed amplification", self, 1 ));
|
newInput(7, nodeValue_Float("Speed amplification", self, 1 ));
|
||||||
|
|
||||||
|
newInput(8, nodeValue_Bool("Follow point", self, false ));
|
||||||
|
|
||||||
|
newInput(9, nodeValue_Vec2("Point", self, [ 0, 0 ] ));
|
||||||
|
|
||||||
|
newInput(10, nodeValue_Float("Fol. influence", self, 0.1 ))
|
||||||
|
.setDisplay(VALUE_DISPLAY.slider);
|
||||||
|
|
||||||
input_display_list = [ 0, 7,
|
input_display_list = [ 0, 7,
|
||||||
["Separation", false], 1, 2,
|
["Separation", false], 1, 2,
|
||||||
["Alignment", false], 3, 4,
|
["Alignment", false], 3, 4,
|
||||||
["Grouping", false], 5, 6,
|
["Grouping", false], 5, 6,
|
||||||
|
["Follow point", true, 8], 9, 10,
|
||||||
];
|
];
|
||||||
|
|
||||||
newOutput(0, nodeValue_Output("Particles", self, VALUE_TYPE.particle, -1 ));
|
newOutput(0, nodeValue_Output("Particles", self, VALUE_TYPE.particle, -1 ));
|
||||||
|
|
||||||
UPDATE_PART_FORWARD
|
UPDATE_PART_FORWARD
|
||||||
|
|
||||||
|
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
|
||||||
|
var _fol_pnt = getInputData(8);
|
||||||
|
var _hov = false;
|
||||||
|
|
||||||
|
if(_fol_pnt) {
|
||||||
|
var hv = inputs[9].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny, 0, 64); _hov |= hv;
|
||||||
|
}
|
||||||
|
|
||||||
|
return _hov;
|
||||||
|
}
|
||||||
|
|
||||||
static update = function(frame = CURRENT_FRAME) {
|
static update = function(frame = CURRENT_FRAME) {
|
||||||
var parts = getInputData(0);
|
var parts = getInputData(0);
|
||||||
|
|
||||||
|
@ -66,12 +85,19 @@ function Node_VFX_Boids(_x, _y, _group = noone) : Node(_x, _y, _group) construct
|
||||||
var _grp_amo = getInputData(6);
|
var _grp_amo = getInputData(6);
|
||||||
var _spd_amp = getInputData(7);
|
var _spd_amp = getInputData(7);
|
||||||
|
|
||||||
|
var _fol_pnt = getInputData( 8);
|
||||||
|
var _pnt_tar = getInputData( 9);
|
||||||
|
var _fol_inf = getInputData(10);
|
||||||
|
|
||||||
var amo = array_length(_allparts);
|
var amo = array_length(_allparts);
|
||||||
var p0, p0x, p0y, p0vx, p0vy;
|
var p0, p0x, p0y, p0vx, p0vy;
|
||||||
var p1, p1x, p1y, p1vx, p1vy;
|
var p1, p1x, p1y, p1vx, p1vy;
|
||||||
var avx, avy, avc;
|
var avx, avy, avc;
|
||||||
var ax, ay, ac;
|
var ax, ay, ac;
|
||||||
|
|
||||||
|
var tarx = _pnt_tar[0];
|
||||||
|
var tary = _pnt_tar[1];
|
||||||
|
|
||||||
var max_rad2 = max(_sep_rad2, _ali_rad2, _grp_rad2);
|
var max_rad2 = max(_sep_rad2, _ali_rad2, _grp_rad2);
|
||||||
|
|
||||||
for( var i = 0; i < amo; i++ ) {
|
for( var i = 0; i < amo; i++ ) {
|
||||||
|
@ -142,6 +168,11 @@ function Node_VFX_Boids(_x, _y, _group = noone) : Node(_x, _y, _group) construct
|
||||||
p0y += (ay - p0y) * _grp_amo;
|
p0y += (ay - p0y) * _grp_amo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(_fol_pnt) {
|
||||||
|
p0x += (tarx - p0x) * _fol_inf;
|
||||||
|
p0y += (tary - p0y) * _fol_inf;
|
||||||
|
}
|
||||||
|
|
||||||
var dir = point_direction(p0.x, p0.y, p0x, p0y);
|
var dir = point_direction(p0.x, p0.y, p0x, p0y);
|
||||||
var _disn = point_distance( p0.x, p0.y, p0x, p0y);
|
var _disn = point_distance( p0.x, p0.y, p0x, p0y);
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ function Node_Blur_Zoom(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||||
attribute_surface_depth();
|
attribute_surface_depth();
|
||||||
attribute_oversample();
|
attribute_oversample();
|
||||||
|
|
||||||
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
|
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
|
||||||
var pos = getInputData(2);
|
var pos = getInputData(2);
|
||||||
var px = _x + pos[0] * _s;
|
var px = _x + pos[0] * _s;
|
||||||
var py = _y + pos[1] * _s;
|
var py = _y + pos[1] * _s;
|
||||||
|
@ -56,15 +56,15 @@ function Node_Blur_Zoom(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||||
var hv = inputs[2].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny); _hov |= hv;
|
var hv = inputs[2].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny); _hov |= hv;
|
||||||
|
|
||||||
return _hov;
|
return _hov;
|
||||||
} #endregion
|
}
|
||||||
|
|
||||||
static step = function() { #region
|
static step = function() {
|
||||||
__step_mask_modifier();
|
__step_mask_modifier();
|
||||||
|
|
||||||
inputs[1].mappableStep();
|
inputs[1].mappableStep();
|
||||||
} #endregion
|
}
|
||||||
|
|
||||||
static processData = function(_outSurf, _data, _output_index, _array_index) { #region
|
static processData = function(_outSurf, _data, _output_index, _array_index) {
|
||||||
var _sam = struct_try_get(attributes, "oversample");
|
var _sam = struct_try_get(attributes, "oversample");
|
||||||
|
|
||||||
var _cen = array_clone(_data[2]);
|
var _cen = array_clone(_data[2]);
|
||||||
|
@ -89,5 +89,5 @@ function Node_Blur_Zoom(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||||
_outSurf = channel_apply(_data[0], _outSurf, _data[9]);
|
_outSurf = channel_apply(_data[0], _outSurf, _data[9]);
|
||||||
|
|
||||||
return _outSurf;
|
return _outSurf;
|
||||||
} #endregion
|
}
|
||||||
}
|
}
|
12
scripts/node_liquefy/node_alpha_to_grey.yy
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"isDnD": false,
|
||||||
|
"isCompatibility": false,
|
||||||
|
"parent": {
|
||||||
|
"name": "filter",
|
||||||
|
"path": "folders/nodes/data/filter.yy",
|
||||||
|
},
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "node_alpha_to_grey",
|
||||||
|
"tags": [],
|
||||||
|
"resourceType": "GMScript",
|
||||||
|
}
|
12
scripts/node_liquefy/node_bw.yy
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"isDnD": false,
|
||||||
|
"isCompatibility": false,
|
||||||
|
"parent": {
|
||||||
|
"name": "filter",
|
||||||
|
"path": "folders/nodes/data/filter.yy",
|
||||||
|
},
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "node_bw",
|
||||||
|
"tags": [],
|
||||||
|
"resourceType": "GMScript",
|
||||||
|
}
|
12
scripts/node_liquefy/node_color_adjustment.yy
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"isDnD": false,
|
||||||
|
"isCompatibility": false,
|
||||||
|
"parent": {
|
||||||
|
"name": "filter",
|
||||||
|
"path": "folders/nodes/data/filter.yy",
|
||||||
|
},
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "node_color_adjustment",
|
||||||
|
"tags": [],
|
||||||
|
"resourceType": "GMScript",
|
||||||
|
}
|
12
scripts/node_liquefy/node_color_replacement.yy
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"isDnD": false,
|
||||||
|
"isCompatibility": false,
|
||||||
|
"parent": {
|
||||||
|
"name": "process",
|
||||||
|
"path": "folders/nodes/data/process.yy",
|
||||||
|
},
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "node_color_replacement",
|
||||||
|
"tags": [],
|
||||||
|
"resourceType": "GMScript",
|
||||||
|
}
|
12
scripts/node_liquefy/node_greyscale.yy
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"isDnD": false,
|
||||||
|
"isCompatibility": false,
|
||||||
|
"parent": {
|
||||||
|
"name": "filter",
|
||||||
|
"path": "folders/nodes/data/filter.yy",
|
||||||
|
},
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "node_greyscale",
|
||||||
|
"tags": [],
|
||||||
|
"resourceType": "GMScript",
|
||||||
|
}
|
346
scripts/node_liquefy/node_liquefy.gml
Normal file
|
@ -0,0 +1,346 @@
|
||||||
|
enum LIQUEFY_TYPE {
|
||||||
|
push,
|
||||||
|
twirl,
|
||||||
|
pinch,
|
||||||
|
bloat,
|
||||||
|
}
|
||||||
|
|
||||||
|
function Node_Liquefy(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
||||||
|
name = "Liquefy";
|
||||||
|
|
||||||
|
newInput(0, nodeValue_Surface("Surface in", self));
|
||||||
|
|
||||||
|
newInput(1, nodeValue_Bool("Active", self, true));
|
||||||
|
active_index = 1;
|
||||||
|
|
||||||
|
newInput(2, nodeValue_Surface("Mask", self));
|
||||||
|
|
||||||
|
newInput(3, nodeValue_Float("Mix", self, 1))
|
||||||
|
.setDisplay(VALUE_DISPLAY.slider);
|
||||||
|
|
||||||
|
newInput(4, nodeValue_Toggle("Channel", self, 0b1111, { data: array_create(4, THEME.inspector_channel) }));
|
||||||
|
|
||||||
|
__init_mask_modifier(2); // inputs 5, 6,
|
||||||
|
|
||||||
|
newOutput(0, nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone));
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
typeList = [
|
||||||
|
new scrollItem("Push", s_node_liquefy_type, 0),
|
||||||
|
new scrollItem("Twirl", s_node_liquefy_type, 1),
|
||||||
|
new scrollItem("Pinch", s_node_liquefy_type, 2),
|
||||||
|
new scrollItem("Bloat", s_node_liquefy_type, 3),
|
||||||
|
];
|
||||||
|
typeListStr = array_create_ext(array_length(typeList), function(i) /*=>*/ {return typeList[i].name});
|
||||||
|
|
||||||
|
static createNewInput = function() {
|
||||||
|
var _index = array_length(inputs);
|
||||||
|
dynamic_input_inspecting = getInputAmount();
|
||||||
|
|
||||||
|
newInput(_index + 0, nodeValue_Enum_Scroll("Type", self, 0, typeList));
|
||||||
|
|
||||||
|
newInput(_index + 1, nodeValue_Vec2("Position", self, [ 0, 0 ]))
|
||||||
|
.setUnitRef(function(index) /*=>*/ {return getDimension(index)}, VALUE_UNIT.reference);
|
||||||
|
|
||||||
|
newInput(_index + 2, nodeValue_Vec2("Position 2", self, [ 1, 0 ])) // push
|
||||||
|
.setUnitRef(function(index) /*=>*/ {return getDimension(index)}, VALUE_UNIT.reference);
|
||||||
|
|
||||||
|
newInput(_index + 3, nodeValue_Float("Radius", self, 8));
|
||||||
|
inputs[_index + 3].overlay_text_valign = fa_bottom;
|
||||||
|
|
||||||
|
newInput(_index + 4, nodeValue_Float("Intensity", self, 0.1))
|
||||||
|
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 4, 0.01] });
|
||||||
|
|
||||||
|
newInput(_index + 5, nodeValue_Float("Falloff", self, 0));
|
||||||
|
|
||||||
|
newInput(_index + 6, nodeValue_Curve("Falloff Curve", self, CURVE_DEF_10));
|
||||||
|
|
||||||
|
newInput(_index + 7, nodeValue_Float("Push", self, 0.1))
|
||||||
|
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 4, 0.01] });
|
||||||
|
|
||||||
|
newInput(_index + 8, nodeValue_PathNode("Push path", self, noone))
|
||||||
|
|
||||||
|
newInput(_index + 9, nodeValue_Int("Push resolution", self, 16));
|
||||||
|
|
||||||
|
newInput(_index + 10, nodeValue_Float("Radius 2", self, 8));
|
||||||
|
inputs[_index + 10].overlay_text_valign = fa_bottom;
|
||||||
|
|
||||||
|
refreshDynamicDisplay();
|
||||||
|
return inputs[_index];
|
||||||
|
}
|
||||||
|
|
||||||
|
effect_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) {
|
||||||
|
|
||||||
|
var bs = ui(24);
|
||||||
|
var bx = _x + ui(20);
|
||||||
|
var by = _y;
|
||||||
|
if(buttonInstant(THEME.button_hide, bx, by, bs, bs, _m, _focus, _hover, "", THEME.add_16, 0, COLORS._main_value_positive) == 2) {
|
||||||
|
createNewInput();
|
||||||
|
triggerRender();
|
||||||
|
}
|
||||||
|
|
||||||
|
var amo = getInputAmount();
|
||||||
|
var lh = ui(28);
|
||||||
|
var _h = ui(12) + lh * amo;
|
||||||
|
var yy = _y + bs + ui(4);
|
||||||
|
|
||||||
|
var del_light = -1;
|
||||||
|
draw_sprite_stretched_ext(THEME.ui_panel_bg, 1, _x, yy, _w, _h, COLORS.node_composite_bg_blend, 1);
|
||||||
|
|
||||||
|
for(var i = 0; i < amo; i++) {
|
||||||
|
var _x0 = _x + ui(24);
|
||||||
|
var _x1 = _x + _w - ui(16);
|
||||||
|
var _yy = ui(6) + yy + i * lh + lh / 2;
|
||||||
|
|
||||||
|
var _ind = input_fix_len + i * data_length;
|
||||||
|
var _typ = current_data[_ind + 0];
|
||||||
|
var _col = COLORS._main_icon;
|
||||||
|
|
||||||
|
var tc = i == dynamic_input_inspecting? COLORS._main_text_accent : COLORS._main_icon;
|
||||||
|
var hov = _hover && point_in_rectangle(_m[0], _m[1], _x0, _yy - lh / 2, _x1, _yy + lh / 2 - 1);
|
||||||
|
|
||||||
|
if(hov && _m[0] < _x1 - ui(32)) {
|
||||||
|
tc = COLORS._main_text;
|
||||||
|
|
||||||
|
if(mouse_press(mb_left, _focus)) {
|
||||||
|
dynamic_input_inspecting = i;
|
||||||
|
refreshDynamicDisplay();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
draw_sprite_ext(s_node_liquefy_type, _typ, _x0 + ui(8), _yy, 1, 1, 0, _col, .5 + .5 * (i == dynamic_input_inspecting));
|
||||||
|
|
||||||
|
draw_set_text(f_p2, fa_left, fa_center, tc);
|
||||||
|
draw_text_add(_x0 + ui(28), _yy, typeListStr[_typ]);
|
||||||
|
|
||||||
|
if(amo > 1) {
|
||||||
|
var bs = ui(24);
|
||||||
|
var bx = _x1 - bs;
|
||||||
|
var by = _yy - bs / 2;
|
||||||
|
if(buttonInstant(THEME.button_hide, bx, by, bs, bs, _m, _focus, _hover, "", THEME.minus_16, 0, hov? COLORS._main_value_negative : COLORS._main_icon) == 2)
|
||||||
|
del_light = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(del_light > -1)
|
||||||
|
deleteDynamicInput(del_light);
|
||||||
|
|
||||||
|
return ui(32) + _h;
|
||||||
|
});
|
||||||
|
|
||||||
|
input_display_dynamic = [ 0,
|
||||||
|
["Regions", false], 1, 2, 8, 9, 3, 10, 5,
|
||||||
|
["Effect", false], 4, 7,
|
||||||
|
];
|
||||||
|
|
||||||
|
input_display_list = [ 1, 4,
|
||||||
|
["Surfaces", true], 0, 2, 3, 5, 6,
|
||||||
|
new Inspector_Spacer(8, true),
|
||||||
|
new Inspector_Spacer(2, false, false),
|
||||||
|
effect_renderer,
|
||||||
|
]
|
||||||
|
|
||||||
|
setDynamicInput(11, false);
|
||||||
|
if(!LOADING && !APPENDING) createNewInput();
|
||||||
|
|
||||||
|
attribute_surface_depth();
|
||||||
|
attribute_oversample();
|
||||||
|
attribute_interpolation();
|
||||||
|
|
||||||
|
temp_surface = [ 0, 0 ];
|
||||||
|
disp_path = [];
|
||||||
|
|
||||||
|
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
|
||||||
|
PROCESSOR_OVERLAY_CHECK
|
||||||
|
|
||||||
|
if(getInputAmount() == 0) return;
|
||||||
|
|
||||||
|
dynamic_input_inspecting = clamp(dynamic_input_inspecting, 0, getInputAmount() - 1);
|
||||||
|
var _ind = input_fix_len + dynamic_input_inspecting * data_length;
|
||||||
|
var _type = current_data[_ind + 0];
|
||||||
|
var _hov = false;
|
||||||
|
|
||||||
|
draw_set_circle_precision(64);
|
||||||
|
|
||||||
|
var pos = current_data[_ind + 1];
|
||||||
|
var rad = current_data[_ind + 3] * _s;
|
||||||
|
var px = _x + pos[0] * _s;
|
||||||
|
var py = _y + pos[1] * _s;
|
||||||
|
|
||||||
|
switch(_type) {
|
||||||
|
case LIQUEFY_TYPE.push :
|
||||||
|
var _path = current_data[_ind + 8];
|
||||||
|
var rad2 = current_data[_ind + 10] * _s;
|
||||||
|
|
||||||
|
if(_path == noone) {
|
||||||
|
var pos2 = current_data[_ind + 2];
|
||||||
|
var qx = _x + pos2[0] * _s;
|
||||||
|
var qy = _y + pos2[1] * _s;
|
||||||
|
|
||||||
|
draw_set_color(COLORS._main_accent);
|
||||||
|
draw_circle(px, py, rad, true);
|
||||||
|
draw_circle(qx, qy, rad2, true);
|
||||||
|
|
||||||
|
var hv = inputs[_ind + 2].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny); _hov |= bool(hv); hover &= !hv;
|
||||||
|
var hv = inputs[_ind + 1].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny); _hov |= bool(hv); hover &= !hv;
|
||||||
|
|
||||||
|
var hv = inputs[_ind + 10].drawOverlay(hover, active, qx, qy, _s, _mx, _my, _snx, _sny); _hov |= bool(hv); hover &= !hv;
|
||||||
|
|
||||||
|
} else if(!array_empty(disp_path)) {
|
||||||
|
var ox, oy, nx, ny;
|
||||||
|
|
||||||
|
ox = _x + disp_path[0] * _s;
|
||||||
|
oy = _y + disp_path[1] * _s;
|
||||||
|
|
||||||
|
px = ox;
|
||||||
|
py = oy;
|
||||||
|
|
||||||
|
draw_set_color(COLORS._main_accent);
|
||||||
|
draw_circle(px, py, rad, true);
|
||||||
|
|
||||||
|
for( var i = 2, n = array_length(disp_path); i < n; i += 2 ) {
|
||||||
|
nx = _x + disp_path[i + 0] * _s;
|
||||||
|
ny = _y + disp_path[i + 1] * _s;
|
||||||
|
|
||||||
|
draw_line(ox, oy, nx, ny);
|
||||||
|
|
||||||
|
ox = nx;
|
||||||
|
oy = ny;
|
||||||
|
}
|
||||||
|
|
||||||
|
draw_circle(ox, oy, rad2, true);
|
||||||
|
|
||||||
|
var hv = inputs[_ind + 10].drawOverlay(hover, active, ox, oy, _s, _mx, _my, _snx, _sny); _hov |= bool(hv); hover &= !hv;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
var hv = inputs[_ind + 1].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny); _hov |= bool(hv); hover &= !hv;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
var hv = inputs[_ind + 3].drawOverlay(hover, active, px, py, _s, _mx, _my, _snx, _sny); _hov |= bool(hv); hover &= !hv;
|
||||||
|
return _hov;
|
||||||
|
}
|
||||||
|
|
||||||
|
static step = function() {
|
||||||
|
__step_mask_modifier();
|
||||||
|
}
|
||||||
|
|
||||||
|
static applyLiquefy = function(_data, _i) {
|
||||||
|
var _ind = input_fix_len + _i * data_length;
|
||||||
|
var _surf = _data[0];
|
||||||
|
var _type = _data[_ind + 0];
|
||||||
|
var _pos1 = _data[_ind + 1];
|
||||||
|
var _pos2 = _data[_ind + 2];
|
||||||
|
var _rad = _data[_ind + 3];
|
||||||
|
var _int = _data[_ind + 4];
|
||||||
|
var _fall = _data[_ind + 5];
|
||||||
|
var _push = _data[_ind + 7];
|
||||||
|
var _path = _data[_ind + 8];
|
||||||
|
var _pthR = min(1024, _data[_ind + 9]);
|
||||||
|
var _rad2 = _data[_ind + 10];
|
||||||
|
|
||||||
|
var _shader = sh_liquefy_push;
|
||||||
|
|
||||||
|
switch(_type) {
|
||||||
|
case LIQUEFY_TYPE.push : _shader = sh_liquefy_push; break;
|
||||||
|
case LIQUEFY_TYPE.twirl : _shader = sh_liquefy_twirl; break;
|
||||||
|
case LIQUEFY_TYPE.pinch : _shader = sh_liquefy_pinch; break;
|
||||||
|
case LIQUEFY_TYPE.bloat : _shader = sh_liquefy_bloat; break;
|
||||||
|
}
|
||||||
|
|
||||||
|
surface_set_shader(temp_surface[0], _shader, true, BLEND.over);
|
||||||
|
shader_set_interpolation(_surf);
|
||||||
|
shader_set_dim("dimension", _surf);
|
||||||
|
shader_set_2("pos1", _pos1);
|
||||||
|
shader_set_2("pos2", _pos2);
|
||||||
|
shader_set_f("radius", _rad);
|
||||||
|
shader_set_f("radius2", _rad2);
|
||||||
|
shader_set_f("intensity", _int);
|
||||||
|
shader_set_f("falloff", _fall);
|
||||||
|
shader_set_f("pushIntens", _push);
|
||||||
|
|
||||||
|
if(_type == LIQUEFY_TYPE.push) {
|
||||||
|
var _usePath = _path != noone;
|
||||||
|
var _pthList = array_create(_pthR * 2);
|
||||||
|
var _p = new __vec2();
|
||||||
|
|
||||||
|
if(_usePath) {
|
||||||
|
for( var i = 0; i < _pthR; i++ ) {
|
||||||
|
_p = _path.getPointRatio(i / (_pthR - 1) ,0, _p);
|
||||||
|
_pthList[i * 2 + 0] = _p.x;
|
||||||
|
_pthList[i * 2 + 1] = _p.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(_i == dynamic_input_inspecting)
|
||||||
|
disp_path = _pthList;
|
||||||
|
}
|
||||||
|
|
||||||
|
shader_set_i("usePath", _usePath);
|
||||||
|
shader_set_i("pathResolution", _pthR);
|
||||||
|
shader_set_f("pathList", _pthList);
|
||||||
|
}
|
||||||
|
|
||||||
|
draw_surface_safe(temp_surface[1]);
|
||||||
|
surface_reset_shader();
|
||||||
|
|
||||||
|
surface_set_shader(temp_surface[1], noone, true, BLEND.over);
|
||||||
|
draw_surface_safe(temp_surface[0]);
|
||||||
|
surface_reset_shader();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static processData = function(_outSurf, _data, _output_index, _array_index) {
|
||||||
|
var _amo = getInputAmount();
|
||||||
|
if(_amo == 0) return _outSurf;
|
||||||
|
|
||||||
|
var sam = struct_try_get(attributes, "oversample");
|
||||||
|
var _surf = _data[0];
|
||||||
|
|
||||||
|
if(!is_surface(_surf)) return _outSurf;
|
||||||
|
|
||||||
|
#region visibility
|
||||||
|
dynamic_input_inspecting = clamp(dynamic_input_inspecting, 0, _amo - 1);
|
||||||
|
var _ind = input_fix_len + dynamic_input_inspecting * data_length;
|
||||||
|
var _type = _data[_ind + 0];
|
||||||
|
|
||||||
|
inputs[_ind + 2].setVisible(_type == 0);
|
||||||
|
inputs[_ind + 7].setVisible(_type == 0);
|
||||||
|
inputs[_ind + 8].setVisible(_type == 0, _type == 0);
|
||||||
|
inputs[_ind + 9].setVisible(_type == 0);
|
||||||
|
inputs[_ind + 10].setVisible(_type == 0);
|
||||||
|
|
||||||
|
if(_type == LIQUEFY_TYPE.push) {
|
||||||
|
var _path = _data[_ind + 8];
|
||||||
|
var _usePath = _path != noone;
|
||||||
|
|
||||||
|
inputs[_ind + 1].setVisible(!_usePath);
|
||||||
|
inputs[_ind + 2].setVisible(!_usePath);
|
||||||
|
inputs[_ind + 9].setVisible( _usePath);
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
var _dim = surface_get_dimension(_surf);
|
||||||
|
for( var i = 0, n = array_length(temp_surface); i < n; i++ )
|
||||||
|
temp_surface[i] = surface_verify(temp_surface[i], _dim[0], _dim[1]);
|
||||||
|
|
||||||
|
surface_set_shader(temp_surface[1], noone, true, BLEND.over);
|
||||||
|
draw_surface_safe(_surf);
|
||||||
|
surface_reset_shader();
|
||||||
|
|
||||||
|
for(var i = 0; i < _amo; i++)
|
||||||
|
applyLiquefy(_data, i);
|
||||||
|
|
||||||
|
surface_set_shader(_outSurf, noone, true, BLEND.over);
|
||||||
|
draw_surface_safe(temp_surface[1]);
|
||||||
|
surface_reset_shader();
|
||||||
|
|
||||||
|
__process_mask_modifier(_data);
|
||||||
|
_outSurf = mask_apply(_surf, _outSurf, _data[2], _data[3]);
|
||||||
|
_outSurf = channel_apply(_surf, _outSurf, _data[4]);
|
||||||
|
|
||||||
|
return _outSurf;
|
||||||
|
}
|
||||||
|
}
|
13
scripts/node_liquefy/node_liquefy.yy
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"$GMScript":"v1",
|
||||||
|
"%Name":"node_liquefy",
|
||||||
|
"isCompatibility":false,
|
||||||
|
"isDnD":false,
|
||||||
|
"name":"node_liquefy",
|
||||||
|
"parent":{
|
||||||
|
"name":"warps",
|
||||||
|
"path":"folders/nodes/data/filter/warps.yy",
|
||||||
|
},
|
||||||
|
"resourceType":"GMScript",
|
||||||
|
"resourceVersion":"2.0",
|
||||||
|
}
|
12
scripts/node_liquefy/node_outline.yy
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"isDnD": false,
|
||||||
|
"isCompatibility": false,
|
||||||
|
"parent": {
|
||||||
|
"name": "process",
|
||||||
|
"path": "folders/nodes/data/process.yy",
|
||||||
|
},
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "node_outline",
|
||||||
|
"tags": [],
|
||||||
|
"resourceType": "GMScript",
|
||||||
|
}
|
12
scripts/node_pixel_math/node_bw.yy
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"isDnD": false,
|
||||||
|
"isCompatibility": false,
|
||||||
|
"parent": {
|
||||||
|
"name": "filter",
|
||||||
|
"path": "folders/nodes/data/filter.yy",
|
||||||
|
},
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "node_bw",
|
||||||
|
"tags": [],
|
||||||
|
"resourceType": "GMScript",
|
||||||
|
}
|
12
scripts/node_pixel_math/node_color_adjustment.yy
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"isDnD": false,
|
||||||
|
"isCompatibility": false,
|
||||||
|
"parent": {
|
||||||
|
"name": "filter",
|
||||||
|
"path": "folders/nodes/data/filter.yy",
|
||||||
|
},
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "node_color_adjustment",
|
||||||
|
"tags": [],
|
||||||
|
"resourceType": "GMScript",
|
||||||
|
}
|
12
scripts/node_pixel_math/node_color_replacement.yy
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"isDnD": false,
|
||||||
|
"isCompatibility": false,
|
||||||
|
"parent": {
|
||||||
|
"name": "process",
|
||||||
|
"path": "folders/nodes/data/process.yy",
|
||||||
|
},
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "node_color_replacement",
|
||||||
|
"tags": [],
|
||||||
|
"resourceType": "GMScript",
|
||||||
|
}
|
12
scripts/node_pixel_math/node_greyscale.yy
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"isDnD": false,
|
||||||
|
"isCompatibility": false,
|
||||||
|
"parent": {
|
||||||
|
"name": "filter",
|
||||||
|
"path": "folders/nodes/data/filter.yy",
|
||||||
|
},
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "node_greyscale",
|
||||||
|
"tags": [],
|
||||||
|
"resourceType": "GMScript",
|
||||||
|
}
|
12
scripts/node_pixel_math/node_outline.yy
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"isDnD": false,
|
||||||
|
"isCompatibility": false,
|
||||||
|
"parent": {
|
||||||
|
"name": "process",
|
||||||
|
"path": "folders/nodes/data/process.yy",
|
||||||
|
},
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "node_outline",
|
||||||
|
"tags": [],
|
||||||
|
"resourceType": "GMScript",
|
||||||
|
}
|
109
scripts/node_pixel_math/node_pixel_math.gml
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
function Node_Pixel_Math(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
||||||
|
name = "Pixel Math";
|
||||||
|
|
||||||
|
newInput(0, nodeValue_Surface("Surface in", self));
|
||||||
|
|
||||||
|
newInput(1, nodeValue_Bool("Active", self, true));
|
||||||
|
active_index = 1;
|
||||||
|
|
||||||
|
newInput(2, nodeValue_Surface("Mask", self));
|
||||||
|
|
||||||
|
newInput(3, nodeValue_Float("Mix", self, 1))
|
||||||
|
.setDisplay(VALUE_DISPLAY.slider);
|
||||||
|
|
||||||
|
newInput(4, nodeValue_Toggle("Channel", self, 0b1111, { data: array_create(4, THEME.inspector_channel) }));
|
||||||
|
|
||||||
|
__init_mask_modifier(2); // inputs 5, 6,
|
||||||
|
|
||||||
|
oprList = [ "Add", "Subtract", "Multiply", "Divide", "Power", "Root", "Sin", "Cos", "Tan", "Modulo",
|
||||||
|
"Floor", "Ceil", "Round", "Abs", "Clamp" ];
|
||||||
|
newInput(7, nodeValue_Enum_Scroll("Operator", self, 0, oprList));
|
||||||
|
|
||||||
|
newInput(8, nodeValue_Vec4("Operand", self, [ 0, 0, 0, 0 ]));
|
||||||
|
|
||||||
|
newInput(9, nodeValue_Vec2("Range", self, [ 0, 0 ]));
|
||||||
|
|
||||||
|
newInput(10, nodeValue_Enum_Button("Operand type", self, 0, [ "Vec4", "Surface" ]));
|
||||||
|
|
||||||
|
newInput(11, nodeValue_Surface("Mask", self));
|
||||||
|
|
||||||
|
newOutput(0, nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone));
|
||||||
|
|
||||||
|
input_display_list = [ 1, 4,
|
||||||
|
["Surfaces", false], 0, 2, 3, 5, 6,
|
||||||
|
["Operation", false], 7, 10, 8, 9, 11,
|
||||||
|
]
|
||||||
|
|
||||||
|
attribute_surface_depth();
|
||||||
|
|
||||||
|
static step = function() {
|
||||||
|
__step_mask_modifier();
|
||||||
|
}
|
||||||
|
|
||||||
|
static processData = function(_outSurf, _data, _output_index, _array_index) {
|
||||||
|
var type = _data[7];
|
||||||
|
var op4 = _data[8];
|
||||||
|
var op2 = _data[9];
|
||||||
|
var opType = _data[10];
|
||||||
|
var opS = _data[11];
|
||||||
|
|
||||||
|
var _oprand = oprList[type];
|
||||||
|
setDisplayName(_oprand);
|
||||||
|
|
||||||
|
if(opType == 0) {
|
||||||
|
switch(_oprand) {
|
||||||
|
case "Add" :
|
||||||
|
case "Subtract" :
|
||||||
|
case "Multiply" :
|
||||||
|
case "Divide" :
|
||||||
|
case "Power" :
|
||||||
|
case "Root" :
|
||||||
|
case "Modulo" :
|
||||||
|
inputs[8].setVisible( true);
|
||||||
|
inputs[9].setVisible(false);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "Sin" :
|
||||||
|
case "Cos" :
|
||||||
|
case "Tan" :
|
||||||
|
|
||||||
|
case "Floor" :
|
||||||
|
case "Ceil" :
|
||||||
|
case "Round" :
|
||||||
|
case "Abs" :
|
||||||
|
inputs[8].setVisible(false);
|
||||||
|
inputs[9].setVisible(false);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "Clamp" :
|
||||||
|
inputs[8].setVisible(false);
|
||||||
|
inputs[9].setVisible( true);
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
inputs[11].setVisible(false, false);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
inputs[ 8].setVisible(false);
|
||||||
|
inputs[ 9].setVisible(false);
|
||||||
|
inputs[11].setVisible(true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
surface_set_shader(_outSurf, sh_pixel_math);
|
||||||
|
shader_set_i("operator", type);
|
||||||
|
|
||||||
|
shader_set_i("operandType", opType );
|
||||||
|
shader_set_surface("operandSurf", opS );
|
||||||
|
shader_set_4("operand", _oprand == "Clamp"? [ op2[0], op2[1], 0, 0] : op4 );
|
||||||
|
|
||||||
|
draw_surface_safe(_data[0]);
|
||||||
|
surface_reset_shader();
|
||||||
|
|
||||||
|
__process_mask_modifier(_data);
|
||||||
|
_outSurf = mask_apply(_data[0], _outSurf, _data[2], _data[3]);
|
||||||
|
_outSurf = channel_apply(_data[0], _outSurf, _data[4]);
|
||||||
|
|
||||||
|
return _outSurf;
|
||||||
|
}
|
||||||
|
}
|
13
scripts/node_pixel_math/node_pixel_math.yy
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"$GMScript":"v1",
|
||||||
|
"%Name":"node_pixel_math",
|
||||||
|
"isCompatibility":false,
|
||||||
|
"isDnD":false,
|
||||||
|
"name":"node_pixel_math",
|
||||||
|
"parent":{
|
||||||
|
"name":"effects",
|
||||||
|
"path":"folders/nodes/data/filter/effects.yy",
|
||||||
|
},
|
||||||
|
"resourceType":"GMScript",
|
||||||
|
"resourceVersion":"2.0",
|
||||||
|
}
|
|
@ -243,9 +243,10 @@ function Node_Processor(_x, _y, _group = noone) : Node(_x, _y, _group) construct
|
||||||
if(dimension_index > -1) {
|
if(dimension_index > -1) {
|
||||||
var _dim = getDimension();
|
var _dim = getDimension();
|
||||||
|
|
||||||
for(var i = 0; i < _os; i++)
|
for(var i = 0; i < _os; i++) {
|
||||||
if(outputs[i].type == VALUE_TYPE.surface) _out[i] = surface_verify(_out[i], _dim[0], _dim[1], _dep);
|
if(outputs[i].type == VALUE_TYPE.surface) _out[i] = surface_verify(_out[i], _dim[0], _dim[1], _dep);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(_os == 1) {
|
if(_os == 1) {
|
||||||
data = processData(_out[0], inputs_data, 0, 0);
|
data = processData(_out[0], inputs_data, 0, 0);
|
||||||
|
|
|
@ -618,6 +618,7 @@ function __initNodes() {
|
||||||
addNodeObject(filter, "Time Remap", s_node_time_map, "Node_Time_Remap", [1, Node_Time_Remap],, "Remap image using texture as time map. Where brighter pixel means using pixel from an older frame.");
|
addNodeObject(filter, "Time Remap", s_node_time_map, "Node_Time_Remap", [1, Node_Time_Remap],, "Remap image using texture as time map. Where brighter pixel means using pixel from an older frame.");
|
||||||
addNodeObject(filter, "Shape Map", s_node_shape_map, "Node_Shape_Map", [1, Node_Shape_Map],, "Map image into shapes.").setVersion(11660);
|
addNodeObject(filter, "Shape Map", s_node_shape_map, "Node_Shape_Map", [1, Node_Shape_Map],, "Map image into shapes.").setVersion(11660);
|
||||||
addNodeObject(filter, "Morph Surface", s_node_morph_surface, "Node_Morph_Surface", [1, Node_Morph_Surface],, "Morph pixel between two surfaces.").setVersion(1141);
|
addNodeObject(filter, "Morph Surface", s_node_morph_surface, "Node_Morph_Surface", [1, Node_Morph_Surface],, "Morph pixel between two surfaces.").setVersion(1141);
|
||||||
|
addNodeObject(filter, "Liquefy", s_node_liquefy, "Node_Liquefy", [1, Node_Liquefy],, "Distort image using variety of tools.").setVersion(1_18_02_0);
|
||||||
|
|
||||||
ds_list_add(filter, "Effects");
|
ds_list_add(filter, "Effects");
|
||||||
addNodeObject(filter, "Outline", s_node_border, "Node_Outline", [1, Node_Outline], ["border"], "Add border to the image.");
|
addNodeObject(filter, "Outline", s_node_border, "Node_Outline", [1, Node_Outline], ["border"], "Add border to the image.");
|
||||||
|
@ -644,6 +645,7 @@ function __initNodes() {
|
||||||
addNodeObject(filter, "JPEG", s_node_JPEG, "Node_JPEG", [1, Node_JPEG],, "Apply JPEG compression to the image.").setVersion(11730);
|
addNodeObject(filter, "JPEG", s_node_JPEG, "Node_JPEG", [1, Node_JPEG],, "Apply JPEG compression to the image.").setVersion(11730);
|
||||||
addNodeObject(filter, "Interlace", s_node_interlace, "Node_Interlaced", [1, Node_Interlaced],, "Apply interlace effect to an image.").setVersion(11760);
|
addNodeObject(filter, "Interlace", s_node_interlace, "Node_Interlaced", [1, Node_Interlaced],, "Apply interlace effect to an image.").setVersion(11760);
|
||||||
addNodeObject(filter, "Blend Edge", s_node_blend_edge, "Node_Blend_Edge", [1, Node_Blend_Edge],, "Blend the edges of an image to create tilable patterns.").setVersion(11740);
|
addNodeObject(filter, "Blend Edge", s_node_blend_edge, "Node_Blend_Edge", [1, Node_Blend_Edge],, "Blend the edges of an image to create tilable patterns.").setVersion(11740);
|
||||||
|
addNodeObject(filter, "Pixel Math", s_node_pixel_math, "Node_Pixel_Math", [1, Node_Pixel_Math],, "Apply mathematical operation directly on RGBA value.").setVersion(1_18_02_0);
|
||||||
|
|
||||||
ds_list_add(filter, "Colors");
|
ds_list_add(filter, "Colors");
|
||||||
addNodeObject(filter, "Replace Palette", s_node_replace_palette, "Node_Color_replace", [1, Node_Color_replace], ["isolate color", "select color", "palette swap", "color replace"], "Match image to a palette then remap it to another palette.");
|
addNodeObject(filter, "Replace Palette", s_node_replace_palette, "Node_Color_replace", [1, Node_Color_replace], ["isolate color", "select color", "palette swap", "color replace"], "Match image to a palette then remap it to another palette.");
|
||||||
|
|
|
@ -415,6 +415,8 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||||
value_draggings = [];
|
value_draggings = [];
|
||||||
value_drag_from = noone;
|
value_drag_from = noone;
|
||||||
|
|
||||||
|
node_drag_search = false;
|
||||||
|
|
||||||
frame_hovering = noone;
|
frame_hovering = noone;
|
||||||
_frame_hovering = noone;
|
_frame_hovering = noone;
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -1992,6 +1994,14 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||||
connectDraggingValueTo(target);
|
connectDraggingValueTo(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if(keyboard_check_pressed(vk_anykey)) {
|
||||||
|
// var k = keyboard_lastkey;
|
||||||
|
|
||||||
|
// if(k >= ord("A") && k <= ord("z") && !node_drag_search) {
|
||||||
|
// node_drag_search = true;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
if(mouse_release(mb_left)) value_draggings = [];
|
if(mouse_release(mb_left)) value_draggings = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2000,6 +2010,8 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||||
|
|
||||||
if(value_dragging)
|
if(value_dragging)
|
||||||
draggingValue();
|
draggingValue();
|
||||||
|
else
|
||||||
|
node_drag_search = false;
|
||||||
|
|
||||||
if(value_dragging == noone && value_focus && mouse_press(mb_left, _focus) && !key_mod_press(ALT)) {
|
if(value_dragging == noone && value_focus && mouse_press(mb_left, _focus) && !key_mod_press(ALT)) {
|
||||||
value_dragging = value_focus;
|
value_dragging = value_focus;
|
||||||
|
@ -2677,6 +2689,8 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||||
//// ============ Action ============
|
//// ============ Action ============
|
||||||
|
|
||||||
function createNodeHotkey(_node, _param = noone) {
|
function createNodeHotkey(_node, _param = noone) {
|
||||||
|
// if(value_dragging != noone) return;
|
||||||
|
|
||||||
var node;
|
var node;
|
||||||
|
|
||||||
if(mouse_create_x == undefined || mouse_create_sx != mouse_grid_x || mouse_create_sy != mouse_grid_y) {
|
if(mouse_create_x == undefined || mouse_create_sx != mouse_grid_x || mouse_create_sy != mouse_grid_y) {
|
||||||
|
|
95
shaders/sh_liquefy_bloat/sh_liquefy_bloat.fsh
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
#define TAU 6.28318530718
|
||||||
|
|
||||||
|
varying vec2 v_vTexcoord;
|
||||||
|
varying vec4 v_vColour;
|
||||||
|
|
||||||
|
uniform vec2 dimension;
|
||||||
|
uniform vec2 pos1;
|
||||||
|
uniform vec2 pos2;
|
||||||
|
uniform float radius;
|
||||||
|
uniform float intensity;
|
||||||
|
uniform float falloff;
|
||||||
|
|
||||||
|
#region /////////////// SAMPLING ///////////////
|
||||||
|
|
||||||
|
const float PI = 3.14159265358979323846;
|
||||||
|
uniform int interpolation;
|
||||||
|
uniform vec2 sampleDimension;
|
||||||
|
|
||||||
|
const int RSIN_RADIUS = 1;
|
||||||
|
|
||||||
|
float sinc ( float x ) { return x == 0.? 1. : sin(x * PI) / (x * PI); }
|
||||||
|
|
||||||
|
vec4 texture2D_bilinear( sampler2D texture, vec2 uv ) {
|
||||||
|
uv = uv * sampleDimension - .5;
|
||||||
|
vec2 iuv = floor( uv );
|
||||||
|
vec2 fuv = fract( uv );
|
||||||
|
|
||||||
|
vec4 mixed = mix(
|
||||||
|
mix(
|
||||||
|
texture2D( texture, (iuv + vec2(0., 0.)) / sampleDimension ),
|
||||||
|
texture2D( texture, (iuv + vec2(1., 0.)) / sampleDimension ),
|
||||||
|
fuv.x
|
||||||
|
),
|
||||||
|
mix(
|
||||||
|
texture2D( texture, (iuv + vec2(0., 1.)) / sampleDimension ),
|
||||||
|
texture2D( texture, (iuv + vec2(1., 1.)) / sampleDimension ),
|
||||||
|
fuv.x
|
||||||
|
),
|
||||||
|
fuv.y
|
||||||
|
);
|
||||||
|
|
||||||
|
mixed.rgb /= mixed.a;
|
||||||
|
|
||||||
|
return mixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 texture2D_rsin( sampler2D texture, vec2 uv ) {
|
||||||
|
vec2 tx = 1.0 / sampleDimension;
|
||||||
|
vec2 p = uv * sampleDimension - vec2(0.5);
|
||||||
|
|
||||||
|
vec4 sum = vec4(0.0);
|
||||||
|
float weights = 0.;
|
||||||
|
|
||||||
|
for (int x = -RSIN_RADIUS; x <= RSIN_RADIUS; x++)
|
||||||
|
for (int y = -RSIN_RADIUS; y <= RSIN_RADIUS; y++) {
|
||||||
|
float a = length(vec2(float(x), float(y))) / float(RSIN_RADIUS);
|
||||||
|
if(a > 1.) continue;
|
||||||
|
float w = sinc(a * PI * tx.x) * sinc(a * PI * tx.y);
|
||||||
|
vec2 offset = vec2(float(x), float(y)) * tx;
|
||||||
|
vec4 sample = texture2D_bilinear(texture, (p + offset + vec2(0.5)) / sampleDimension);
|
||||||
|
sum += w * sample;
|
||||||
|
weights += w;
|
||||||
|
}
|
||||||
|
|
||||||
|
return sum / weights;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 texture2D_bicubic( sampler2D texture, vec2 uv ) {
|
||||||
|
uv = uv * sampleDimension + 0.5;
|
||||||
|
vec2 iuv = floor( uv );
|
||||||
|
vec2 fuv = fract( uv );
|
||||||
|
uv = iuv + fuv * fuv * (3.0 - 2.0 * fuv);
|
||||||
|
uv = (uv - 0.5) / sampleDimension;
|
||||||
|
return texture2D_bilinear( texture, uv );
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 texture2Dintp( sampler2D texture, vec2 uv ) {
|
||||||
|
if(interpolation == 1) return texture2D_bilinear( texture, uv );
|
||||||
|
else if(interpolation == 2) return texture2D_bicubic( texture, uv );
|
||||||
|
else if(interpolation == 3) return texture2D_rsin( texture, uv );
|
||||||
|
return texture2D( texture, uv );
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion /////////////// SAMPLING ///////////////
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec2 tx = 1. / dimension;
|
||||||
|
vec2 p1 = pos1 * tx;
|
||||||
|
|
||||||
|
float dis = distance(v_vTexcoord * dimension, p1 * dimension);
|
||||||
|
float inf = 1. - smoothstep(radius - falloff, radius + falloff, dis);
|
||||||
|
vec2 stx = v_vTexcoord - (v_vTexcoord - p1) * intensity * inf;
|
||||||
|
|
||||||
|
gl_FragColor = texture2Dintp( gm_BaseTexture, stx );
|
||||||
|
}
|
19
shaders/sh_liquefy_bloat/sh_liquefy_bloat.vsh
Normal file
|
@ -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;
|
||||||
|
}
|
12
shaders/sh_liquefy_bloat/sh_liquefy_bloat.yy
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"$GMShader":"",
|
||||||
|
"%Name":"sh_liquefy_bloat",
|
||||||
|
"name":"sh_liquefy_bloat",
|
||||||
|
"parent":{
|
||||||
|
"name":"liquefy",
|
||||||
|
"path":"folders/shader/filter/liquefy.yy",
|
||||||
|
},
|
||||||
|
"resourceType":"GMShader",
|
||||||
|
"resourceVersion":"2.0",
|
||||||
|
"type":1,
|
||||||
|
}
|
95
shaders/sh_liquefy_pinch/sh_liquefy_pinch.fsh
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
#define TAU 6.28318530718
|
||||||
|
|
||||||
|
varying vec2 v_vTexcoord;
|
||||||
|
varying vec4 v_vColour;
|
||||||
|
|
||||||
|
uniform vec2 dimension;
|
||||||
|
uniform vec2 pos1;
|
||||||
|
uniform vec2 pos2;
|
||||||
|
uniform float radius;
|
||||||
|
uniform float intensity;
|
||||||
|
uniform float falloff;
|
||||||
|
|
||||||
|
#region /////////////// SAMPLING ///////////////
|
||||||
|
|
||||||
|
const float PI = 3.14159265358979323846;
|
||||||
|
uniform int interpolation;
|
||||||
|
uniform vec2 sampleDimension;
|
||||||
|
|
||||||
|
const int RSIN_RADIUS = 1;
|
||||||
|
|
||||||
|
float sinc ( float x ) { return x == 0.? 1. : sin(x * PI) / (x * PI); }
|
||||||
|
|
||||||
|
vec4 texture2D_bilinear( sampler2D texture, vec2 uv ) {
|
||||||
|
uv = uv * sampleDimension - .5;
|
||||||
|
vec2 iuv = floor( uv );
|
||||||
|
vec2 fuv = fract( uv );
|
||||||
|
|
||||||
|
vec4 mixed = mix(
|
||||||
|
mix(
|
||||||
|
texture2D( texture, (iuv + vec2(0., 0.)) / sampleDimension ),
|
||||||
|
texture2D( texture, (iuv + vec2(1., 0.)) / sampleDimension ),
|
||||||
|
fuv.x
|
||||||
|
),
|
||||||
|
mix(
|
||||||
|
texture2D( texture, (iuv + vec2(0., 1.)) / sampleDimension ),
|
||||||
|
texture2D( texture, (iuv + vec2(1., 1.)) / sampleDimension ),
|
||||||
|
fuv.x
|
||||||
|
),
|
||||||
|
fuv.y
|
||||||
|
);
|
||||||
|
|
||||||
|
mixed.rgb /= mixed.a;
|
||||||
|
|
||||||
|
return mixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 texture2D_rsin( sampler2D texture, vec2 uv ) {
|
||||||
|
vec2 tx = 1.0 / sampleDimension;
|
||||||
|
vec2 p = uv * sampleDimension - vec2(0.5);
|
||||||
|
|
||||||
|
vec4 sum = vec4(0.0);
|
||||||
|
float weights = 0.;
|
||||||
|
|
||||||
|
for (int x = -RSIN_RADIUS; x <= RSIN_RADIUS; x++)
|
||||||
|
for (int y = -RSIN_RADIUS; y <= RSIN_RADIUS; y++) {
|
||||||
|
float a = length(vec2(float(x), float(y))) / float(RSIN_RADIUS);
|
||||||
|
if(a > 1.) continue;
|
||||||
|
float w = sinc(a * PI * tx.x) * sinc(a * PI * tx.y);
|
||||||
|
vec2 offset = vec2(float(x), float(y)) * tx;
|
||||||
|
vec4 sample = texture2D_bilinear(texture, (p + offset + vec2(0.5)) / sampleDimension);
|
||||||
|
sum += w * sample;
|
||||||
|
weights += w;
|
||||||
|
}
|
||||||
|
|
||||||
|
return sum / weights;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 texture2D_bicubic( sampler2D texture, vec2 uv ) {
|
||||||
|
uv = uv * sampleDimension + 0.5;
|
||||||
|
vec2 iuv = floor( uv );
|
||||||
|
vec2 fuv = fract( uv );
|
||||||
|
uv = iuv + fuv * fuv * (3.0 - 2.0 * fuv);
|
||||||
|
uv = (uv - 0.5) / sampleDimension;
|
||||||
|
return texture2D_bilinear( texture, uv );
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 texture2Dintp( sampler2D texture, vec2 uv ) {
|
||||||
|
if(interpolation == 1) return texture2D_bilinear( texture, uv );
|
||||||
|
else if(interpolation == 2) return texture2D_bicubic( texture, uv );
|
||||||
|
else if(interpolation == 3) return texture2D_rsin( texture, uv );
|
||||||
|
return texture2D( texture, uv );
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion /////////////// SAMPLING ///////////////
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec2 tx = 1. / dimension;
|
||||||
|
vec2 p1 = pos1 * tx;
|
||||||
|
|
||||||
|
float dis = distance(v_vTexcoord * dimension, p1 * dimension);
|
||||||
|
float inf = 1. - smoothstep(radius - falloff, radius + falloff, dis);
|
||||||
|
vec2 stx = v_vTexcoord + (v_vTexcoord - p1) * intensity * inf;
|
||||||
|
|
||||||
|
gl_FragColor = texture2Dintp( gm_BaseTexture, stx );
|
||||||
|
}
|
19
shaders/sh_liquefy_pinch/sh_liquefy_pinch.vsh
Normal file
|
@ -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;
|
||||||
|
}
|
12
shaders/sh_liquefy_pinch/sh_liquefy_pinch.yy
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"$GMShader":"",
|
||||||
|
"%Name":"sh_liquefy_pinch",
|
||||||
|
"name":"sh_liquefy_pinch",
|
||||||
|
"parent":{
|
||||||
|
"name":"liquefy",
|
||||||
|
"path":"folders/shader/filter/liquefy.yy",
|
||||||
|
},
|
||||||
|
"resourceType":"GMShader",
|
||||||
|
"resourceVersion":"2.0",
|
||||||
|
"type":1,
|
||||||
|
}
|
143
shaders/sh_liquefy_push/sh_liquefy_push.fsh
Normal file
|
@ -0,0 +1,143 @@
|
||||||
|
varying vec2 v_vTexcoord;
|
||||||
|
varying vec4 v_vColour;
|
||||||
|
|
||||||
|
uniform vec2 dimension;
|
||||||
|
uniform vec2 pos1;
|
||||||
|
uniform vec2 pos2;
|
||||||
|
uniform int usePath;
|
||||||
|
uniform int pathResolution;
|
||||||
|
uniform vec2 pathList[1024];
|
||||||
|
|
||||||
|
uniform float radius;
|
||||||
|
uniform float radius2;
|
||||||
|
uniform float intensity;
|
||||||
|
uniform float falloff;
|
||||||
|
uniform float pushIntens;
|
||||||
|
|
||||||
|
#region /////////////// SAMPLING ///////////////
|
||||||
|
|
||||||
|
const float PI = 3.14159265358979323846;
|
||||||
|
uniform int interpolation;
|
||||||
|
uniform vec2 sampleDimension;
|
||||||
|
|
||||||
|
const int RSIN_RADIUS = 1;
|
||||||
|
|
||||||
|
float sinc ( float x ) { return x == 0.? 1. : sin(x * PI) / (x * PI); }
|
||||||
|
|
||||||
|
vec4 texture2D_bilinear( sampler2D texture, vec2 uv ) {
|
||||||
|
uv = uv * sampleDimension - .5;
|
||||||
|
vec2 iuv = floor( uv );
|
||||||
|
vec2 fuv = fract( uv );
|
||||||
|
|
||||||
|
vec4 mixed = mix(
|
||||||
|
mix(
|
||||||
|
texture2D( texture, (iuv + vec2(0., 0.)) / sampleDimension ),
|
||||||
|
texture2D( texture, (iuv + vec2(1., 0.)) / sampleDimension ),
|
||||||
|
fuv.x
|
||||||
|
),
|
||||||
|
mix(
|
||||||
|
texture2D( texture, (iuv + vec2(0., 1.)) / sampleDimension ),
|
||||||
|
texture2D( texture, (iuv + vec2(1., 1.)) / sampleDimension ),
|
||||||
|
fuv.x
|
||||||
|
),
|
||||||
|
fuv.y
|
||||||
|
);
|
||||||
|
|
||||||
|
mixed.rgb /= mixed.a;
|
||||||
|
|
||||||
|
return mixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 texture2D_rsin( sampler2D texture, vec2 uv ) {
|
||||||
|
vec2 tx = 1.0 / sampleDimension;
|
||||||
|
vec2 p = uv * sampleDimension - vec2(0.5);
|
||||||
|
|
||||||
|
vec4 sum = vec4(0.0);
|
||||||
|
float weights = 0.;
|
||||||
|
|
||||||
|
for (int x = -RSIN_RADIUS; x <= RSIN_RADIUS; x++)
|
||||||
|
for (int y = -RSIN_RADIUS; y <= RSIN_RADIUS; y++) {
|
||||||
|
float a = length(vec2(float(x), float(y))) / float(RSIN_RADIUS);
|
||||||
|
if(a > 1.) continue;
|
||||||
|
float w = sinc(a * PI * tx.x) * sinc(a * PI * tx.y);
|
||||||
|
vec2 offset = vec2(float(x), float(y)) * tx;
|
||||||
|
vec4 sample = texture2D_bilinear(texture, (p + offset + vec2(0.5)) / sampleDimension);
|
||||||
|
sum += w * sample;
|
||||||
|
weights += w;
|
||||||
|
}
|
||||||
|
|
||||||
|
return sum / weights;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 texture2D_bicubic( sampler2D texture, vec2 uv ) {
|
||||||
|
uv = uv * sampleDimension + 0.5;
|
||||||
|
vec2 iuv = floor( uv );
|
||||||
|
vec2 fuv = fract( uv );
|
||||||
|
uv = iuv + fuv * fuv * (3.0 - 2.0 * fuv);
|
||||||
|
uv = (uv - 0.5) / sampleDimension;
|
||||||
|
return texture2D_bilinear( texture, uv );
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 texture2Dintp( sampler2D texture, vec2 uv ) {
|
||||||
|
if(interpolation == 1) return texture2D_bilinear( texture, uv );
|
||||||
|
else if(interpolation == 2) return texture2D_bicubic( texture, uv );
|
||||||
|
else if(interpolation == 3) return texture2D_rsin( texture, uv );
|
||||||
|
return texture2D( texture, uv );
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion /////////////// SAMPLING ///////////////
|
||||||
|
|
||||||
|
vec2 closestPointOnLine(vec2 P, vec2 A, vec2 B, out float t) {
|
||||||
|
vec2 AP = P - A;
|
||||||
|
vec2 AB = B - A;
|
||||||
|
t = dot(AP, AB) / dot(AB, AB);
|
||||||
|
t = clamp(t, 0.0, 1.0);
|
||||||
|
return A + t * AB;
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec2 tx = 1. / dimension;
|
||||||
|
vec2 pushPoint = vec2(0.);
|
||||||
|
vec2 pushDir = vec2(0.);
|
||||||
|
float pushT = 0.;
|
||||||
|
float inf = 0.;
|
||||||
|
vec2 stx = v_vTexcoord;
|
||||||
|
vec2 p1, p2;
|
||||||
|
|
||||||
|
if(usePath == 0) {
|
||||||
|
p1 = pos1 * tx;
|
||||||
|
p2 = pos2 * tx;
|
||||||
|
pushDir = p2 - p1;
|
||||||
|
|
||||||
|
pushPoint = closestPointOnLine(v_vTexcoord, p1, p2, pushT);
|
||||||
|
float dis = distance(v_vTexcoord * dimension, pushPoint * dimension);
|
||||||
|
float rad = mix(radius, radius2, pushT);
|
||||||
|
inf = 1. - smoothstep(rad - falloff, rad + falloff, dis);
|
||||||
|
stx -= (pushPoint - stx) * inf * intensity * pushIntens;
|
||||||
|
stx -= pushDir * inf * intensity * pushT;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
float minDist = 9999.;
|
||||||
|
float _intRes = intensity;
|
||||||
|
float _pshRes = pushIntens / float(pathResolution);
|
||||||
|
vec2 cpc;
|
||||||
|
|
||||||
|
for(int i = pathResolution - 2; i >= 0; i--) {
|
||||||
|
p1 = pathList[i] * tx;
|
||||||
|
p2 = pathList[i + 1] * tx;
|
||||||
|
cpc = closestPointOnLine(stx, p1, p2, pushT);
|
||||||
|
|
||||||
|
pushPoint = cpc;
|
||||||
|
pushDir = p2 - p1;
|
||||||
|
|
||||||
|
float rad = mix(radius, radius2, (float(i) + pushT) / float(pathResolution));
|
||||||
|
float dis = distance(stx * dimension, pushPoint * dimension);
|
||||||
|
inf = 1. - smoothstep(rad - falloff, rad + falloff, dis);
|
||||||
|
|
||||||
|
stx += (pushPoint - v_vTexcoord) * inf * _intRes * _pshRes;
|
||||||
|
stx -= pushDir * inf * _intRes * pushT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gl_FragColor = texture2Dintp( gm_BaseTexture, stx );
|
||||||
|
}
|
19
shaders/sh_liquefy_push/sh_liquefy_push.vsh
Normal file
|
@ -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;
|
||||||
|
}
|
12
shaders/sh_liquefy_push/sh_liquefy_push.yy
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"$GMShader":"",
|
||||||
|
"%Name":"sh_liquefy_push",
|
||||||
|
"name":"sh_liquefy_push",
|
||||||
|
"parent":{
|
||||||
|
"name":"liquefy",
|
||||||
|
"path":"folders/shader/filter/liquefy.yy",
|
||||||
|
},
|
||||||
|
"resourceType":"GMShader",
|
||||||
|
"resourceVersion":"2.0",
|
||||||
|
"type":1,
|
||||||
|
}
|
99
shaders/sh_liquefy_twirl/sh_liquefy_twirl.fsh
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
#define TAU 6.28318530718
|
||||||
|
|
||||||
|
varying vec2 v_vTexcoord;
|
||||||
|
varying vec4 v_vColour;
|
||||||
|
|
||||||
|
uniform vec2 dimension;
|
||||||
|
uniform vec2 pos1;
|
||||||
|
uniform vec2 pos2;
|
||||||
|
uniform float radius;
|
||||||
|
uniform float intensity;
|
||||||
|
uniform float falloff;
|
||||||
|
|
||||||
|
#region /////////////// SAMPLING ///////////////
|
||||||
|
|
||||||
|
const float PI = 3.14159265358979323846;
|
||||||
|
uniform int interpolation;
|
||||||
|
uniform vec2 sampleDimension;
|
||||||
|
|
||||||
|
const int RSIN_RADIUS = 1;
|
||||||
|
|
||||||
|
float sinc ( float x ) { return x == 0.? 1. : sin(x * PI) / (x * PI); }
|
||||||
|
|
||||||
|
vec4 texture2D_bilinear( sampler2D texture, vec2 uv ) {
|
||||||
|
uv = uv * sampleDimension - .5;
|
||||||
|
vec2 iuv = floor( uv );
|
||||||
|
vec2 fuv = fract( uv );
|
||||||
|
|
||||||
|
vec4 mixed = mix(
|
||||||
|
mix(
|
||||||
|
texture2D( texture, (iuv + vec2(0., 0.)) / sampleDimension ),
|
||||||
|
texture2D( texture, (iuv + vec2(1., 0.)) / sampleDimension ),
|
||||||
|
fuv.x
|
||||||
|
),
|
||||||
|
mix(
|
||||||
|
texture2D( texture, (iuv + vec2(0., 1.)) / sampleDimension ),
|
||||||
|
texture2D( texture, (iuv + vec2(1., 1.)) / sampleDimension ),
|
||||||
|
fuv.x
|
||||||
|
),
|
||||||
|
fuv.y
|
||||||
|
);
|
||||||
|
|
||||||
|
mixed.rgb /= mixed.a;
|
||||||
|
|
||||||
|
return mixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 texture2D_rsin( sampler2D texture, vec2 uv ) {
|
||||||
|
vec2 tx = 1.0 / sampleDimension;
|
||||||
|
vec2 p = uv * sampleDimension - vec2(0.5);
|
||||||
|
|
||||||
|
vec4 sum = vec4(0.0);
|
||||||
|
float weights = 0.;
|
||||||
|
|
||||||
|
for (int x = -RSIN_RADIUS; x <= RSIN_RADIUS; x++)
|
||||||
|
for (int y = -RSIN_RADIUS; y <= RSIN_RADIUS; y++) {
|
||||||
|
float a = length(vec2(float(x), float(y))) / float(RSIN_RADIUS);
|
||||||
|
if(a > 1.) continue;
|
||||||
|
float w = sinc(a * PI * tx.x) * sinc(a * PI * tx.y);
|
||||||
|
vec2 offset = vec2(float(x), float(y)) * tx;
|
||||||
|
vec4 sample = texture2D_bilinear(texture, (p + offset + vec2(0.5)) / sampleDimension);
|
||||||
|
sum += w * sample;
|
||||||
|
weights += w;
|
||||||
|
}
|
||||||
|
|
||||||
|
return sum / weights;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 texture2D_bicubic( sampler2D texture, vec2 uv ) {
|
||||||
|
uv = uv * sampleDimension + 0.5;
|
||||||
|
vec2 iuv = floor( uv );
|
||||||
|
vec2 fuv = fract( uv );
|
||||||
|
uv = iuv + fuv * fuv * (3.0 - 2.0 * fuv);
|
||||||
|
uv = (uv - 0.5) / sampleDimension;
|
||||||
|
return texture2D_bilinear( texture, uv );
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 texture2Dintp( sampler2D texture, vec2 uv ) {
|
||||||
|
if(interpolation == 1) return texture2D_bilinear( texture, uv );
|
||||||
|
else if(interpolation == 2) return texture2D_bicubic( texture, uv );
|
||||||
|
else if(interpolation == 3) return texture2D_rsin( texture, uv );
|
||||||
|
return texture2D( texture, uv );
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion /////////////// SAMPLING ///////////////
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec2 tx = 1. / dimension;
|
||||||
|
vec2 p1 = pos1 * tx;
|
||||||
|
|
||||||
|
float dis = distance(v_vTexcoord * dimension, p1 * dimension);
|
||||||
|
float inf = 1. - smoothstep(radius - falloff, radius + falloff, dis);
|
||||||
|
|
||||||
|
vec2 stx = v_vTexcoord;
|
||||||
|
float ang = TAU * intensity * inf;
|
||||||
|
|
||||||
|
stx = p1 + (v_vTexcoord - p1) * mat2(cos(ang), -sin(ang), sin(ang), cos(ang));
|
||||||
|
|
||||||
|
gl_FragColor = texture2Dintp( gm_BaseTexture, stx );
|
||||||
|
}
|
19
shaders/sh_liquefy_twirl/sh_liquefy_twirl.vsh
Normal file
|
@ -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;
|
||||||
|
}
|
12
shaders/sh_liquefy_twirl/sh_liquefy_twirl.yy
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"$GMShader":"",
|
||||||
|
"%Name":"sh_liquefy_twirl",
|
||||||
|
"name":"sh_liquefy_twirl",
|
||||||
|
"parent":{
|
||||||
|
"name":"liquefy",
|
||||||
|
"path":"folders/shader/filter/liquefy.yy",
|
||||||
|
},
|
||||||
|
"resourceType":"GMShader",
|
||||||
|
"resourceVersion":"2.0",
|
||||||
|
"type":1,
|
||||||
|
}
|
89
shaders/sh_pixel_math/sh_pixel_math.fsh
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
varying vec2 v_vTexcoord;
|
||||||
|
varying vec4 v_vColour;
|
||||||
|
|
||||||
|
uniform int operator;
|
||||||
|
uniform vec4 operand;
|
||||||
|
|
||||||
|
uniform int operandType;
|
||||||
|
uniform sampler2D operandSurf;
|
||||||
|
|
||||||
|
float round(float i) { return floor(i + .5); }
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec4 res = texture2D( gm_BaseTexture, v_vTexcoord );
|
||||||
|
vec4 op = operandType == 1? texture2D( operandSurf, v_vTexcoord ) : operand;
|
||||||
|
|
||||||
|
if(operator == 0) { res = res + op; }
|
||||||
|
else if(operator == 1) { res = res - op; }
|
||||||
|
else if(operator == 2) { res = res * op; }
|
||||||
|
else if(operator == 3) { res = res / op; }
|
||||||
|
else if(operator == 4) {
|
||||||
|
res.r = pow(res.r, op.r);
|
||||||
|
res.g = pow(res.g, op.g);
|
||||||
|
res.b = pow(res.b, op.b);
|
||||||
|
res.a = pow(res.a, op.a);
|
||||||
|
|
||||||
|
} else if(operator == 5) {
|
||||||
|
res.r = pow(res.r, 1. / op.r);
|
||||||
|
res.g = pow(res.g, 1. / op.g);
|
||||||
|
res.b = pow(res.b, 1. / op.b);
|
||||||
|
res.a = pow(res.a, 1. / op.a);
|
||||||
|
|
||||||
|
} else if(operator == 6) {
|
||||||
|
res.r = sin(res.r);
|
||||||
|
res.g = sin(res.g);
|
||||||
|
res.b = sin(res.b);
|
||||||
|
res.a = sin(res.a);
|
||||||
|
|
||||||
|
} else if(operator == 7) {
|
||||||
|
res.r = cos(res.r);
|
||||||
|
res.g = cos(res.g);
|
||||||
|
res.b = cos(res.b);
|
||||||
|
res.a = cos(res.a);
|
||||||
|
|
||||||
|
} else if(operator == 8) {
|
||||||
|
res.r = tan(res.r);
|
||||||
|
res.g = tan(res.g);
|
||||||
|
res.b = tan(res.b);
|
||||||
|
res.a = tan(res.a);
|
||||||
|
|
||||||
|
} else if(operator == 9) {
|
||||||
|
res.r = mod(res.r, op.r);
|
||||||
|
res.g = mod(res.g, op.g);
|
||||||
|
res.b = mod(res.b, op.b);
|
||||||
|
res.a = mod(res.a, op.a);
|
||||||
|
|
||||||
|
} else if(operator == 10) {
|
||||||
|
res.r = floor(res.r);
|
||||||
|
res.g = floor(res.g);
|
||||||
|
res.b = floor(res.b);
|
||||||
|
res.a = floor(res.a);
|
||||||
|
|
||||||
|
} else if(operator == 11) {
|
||||||
|
res.r = ceil(res.r);
|
||||||
|
res.g = ceil(res.g);
|
||||||
|
res.b = ceil(res.b);
|
||||||
|
res.a = ceil(res.a);
|
||||||
|
|
||||||
|
} else if(operator == 12) {
|
||||||
|
res.r = round(res.r);
|
||||||
|
res.g = round(res.g);
|
||||||
|
res.b = round(res.b);
|
||||||
|
res.a = round(res.a);
|
||||||
|
|
||||||
|
} else if(operator == 13) {
|
||||||
|
res.r = abs(res.r);
|
||||||
|
res.g = abs(res.g);
|
||||||
|
res.b = abs(res.b);
|
||||||
|
res.a = abs(res.a);
|
||||||
|
|
||||||
|
} else if(operator == 14) {
|
||||||
|
res.r = clamp(res.r, op.x, op.y);
|
||||||
|
res.g = clamp(res.g, op.x, op.y);
|
||||||
|
res.b = clamp(res.b, op.x, op.y);
|
||||||
|
res.a = clamp(res.a, op.x, op.y);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
gl_FragColor = res;
|
||||||
|
}
|
19
shaders/sh_pixel_math/sh_pixel_math.vsh
Normal file
|
@ -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;
|
||||||
|
}
|
12
shaders/sh_pixel_math/sh_pixel_math.yy
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"$GMShader":"",
|
||||||
|
"%Name":"sh_pixel_math",
|
||||||
|
"name":"sh_pixel_math",
|
||||||
|
"parent":{
|
||||||
|
"name":"filter",
|
||||||
|
"path":"folders/shader/filter.yy",
|
||||||
|
},
|
||||||
|
"resourceType":"GMShader",
|
||||||
|
"resourceVersion":"2.0",
|
||||||
|
"type":1,
|
||||||
|
}
|
Before Width: | Height: | Size: 308 B |
After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 1.9 KiB |
|
@ -4,7 +4,7 @@
|
||||||
"bboxMode":0,
|
"bboxMode":0,
|
||||||
"bbox_bottom":51,
|
"bbox_bottom":51,
|
||||||
"bbox_left":0,
|
"bbox_left":0,
|
||||||
"bbox_right":64,
|
"bbox_right":63,
|
||||||
"bbox_top":6,
|
"bbox_top":6,
|
||||||
"collisionKind":1,
|
"collisionKind":1,
|
||||||
"collisionTolerance":0,
|
"collisionTolerance":0,
|
||||||
|
@ -12,14 +12,14 @@
|
||||||
"edgeFiltering":false,
|
"edgeFiltering":false,
|
||||||
"For3D":false,
|
"For3D":false,
|
||||||
"frames":[
|
"frames":[
|
||||||
{"$GMSpriteFrame":"","%Name":"1abde720-6d65-48cc-a023-6cfc020c025c","name":"1abde720-6d65-48cc-a023-6cfc020c025c","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
{"$GMSpriteFrame":"","%Name":"71e985e8-dfb3-40c4-8851-70a267b541c8","name":"71e985e8-dfb3-40c4-8851-70a267b541c8","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||||
],
|
],
|
||||||
"gridX":0,
|
"gridX":0,
|
||||||
"gridY":0,
|
"gridY":0,
|
||||||
"height":64,
|
"height":64,
|
||||||
"HTile":false,
|
"HTile":false,
|
||||||
"layers":[
|
"layers":[
|
||||||
{"$GMImageLayer":"","%Name":"5a1d002f-016b-4b7f-a707-e48391d86a1e","blendMode":0,"displayName":"default","isLocked":false,"name":"5a1d002f-016b-4b7f-a707-e48391d86a1e","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
{"$GMImageLayer":"","%Name":"f27180a8-7bae-4df5-a475-a888eb83e5a8","blendMode":0,"displayName":"default","isLocked":false,"name":"f27180a8-7bae-4df5-a475-a888eb83e5a8","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
||||||
],
|
],
|
||||||
"name":"s_node_array_rearrange",
|
"name":"s_node_array_rearrange",
|
||||||
"nineSlice":null,
|
"nineSlice":null,
|
||||||
|
@ -69,8 +69,8 @@
|
||||||
"tracks":[
|
"tracks":[
|
||||||
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
||||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"1abde720-6d65-48cc-a023-6cfc020c025c","path":"sprites/s_node_array_rearrange/s_node_array_rearrange.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"71e985e8-dfb3-40c4-8851-70a267b541c8","path":"sprites/s_node_array_rearrange/s_node_array_rearrange.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||||
},"Disabled":false,"id":"7cabea50-6e00-4a39-9c77-a29a5621fe3a","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
},"Disabled":false,"id":"fd124077-7e63-41fb-a695-ecbd385bb9b5","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||||
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
||||||
],
|
],
|
||||||
"visibleRange":null,
|
"visibleRange":null,
|
||||||
|
@ -86,5 +86,5 @@
|
||||||
},
|
},
|
||||||
"type":0,
|
"type":0,
|
||||||
"VTile":false,
|
"VTile":false,
|
||||||
"width":65,
|
"width":64,
|
||||||
}
|
}
|
Before Width: | Height: | Size: 308 B |
After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.3 KiB |
|
@ -4,22 +4,22 @@
|
||||||
"bboxMode":0,
|
"bboxMode":0,
|
||||||
"bbox_bottom":44,
|
"bbox_bottom":44,
|
||||||
"bbox_left":0,
|
"bbox_left":0,
|
||||||
"bbox_right":64,
|
"bbox_right":63,
|
||||||
"bbox_top":18,
|
"bbox_top":19,
|
||||||
"collisionKind":1,
|
"collisionKind":1,
|
||||||
"collisionTolerance":0,
|
"collisionTolerance":0,
|
||||||
"DynamicTexturePage":false,
|
"DynamicTexturePage":false,
|
||||||
"edgeFiltering":false,
|
"edgeFiltering":false,
|
||||||
"For3D":false,
|
"For3D":false,
|
||||||
"frames":[
|
"frames":[
|
||||||
{"$GMSpriteFrame":"","%Name":"250a0cb7-4471-4e96-afd2-601e9f6bacce","name":"250a0cb7-4471-4e96-afd2-601e9f6bacce","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
{"$GMSpriteFrame":"","%Name":"57825667-53dd-4d78-b094-b56ff07b9ec8","name":"57825667-53dd-4d78-b094-b56ff07b9ec8","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||||
],
|
],
|
||||||
"gridX":0,
|
"gridX":0,
|
||||||
"gridY":0,
|
"gridY":0,
|
||||||
"height":64,
|
"height":64,
|
||||||
"HTile":false,
|
"HTile":false,
|
||||||
"layers":[
|
"layers":[
|
||||||
{"$GMImageLayer":"","%Name":"35763b32-1f69-4500-8ebd-2ad0aa7baeae","blendMode":0,"displayName":"default","isLocked":false,"name":"35763b32-1f69-4500-8ebd-2ad0aa7baeae","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
{"$GMImageLayer":"","%Name":"9d6cf28c-9759-4020-b50e-c68339f68afc","blendMode":0,"displayName":"default","isLocked":false,"name":"9d6cf28c-9759-4020-b50e-c68339f68afc","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
||||||
],
|
],
|
||||||
"name":"s_node_array_sample",
|
"name":"s_node_array_sample",
|
||||||
"nineSlice":null,
|
"nineSlice":null,
|
||||||
|
@ -69,8 +69,8 @@
|
||||||
"tracks":[
|
"tracks":[
|
||||||
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
||||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"250a0cb7-4471-4e96-afd2-601e9f6bacce","path":"sprites/s_node_array_sample/s_node_array_sample.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"57825667-53dd-4d78-b094-b56ff07b9ec8","path":"sprites/s_node_array_sample/s_node_array_sample.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||||
},"Disabled":false,"id":"aaebe2c7-6fd2-4905-bb8b-46a235fd1d70","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
},"Disabled":false,"id":"37893806-5f62-4f9a-9ff8-5da4fc2188b2","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||||
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
||||||
],
|
],
|
||||||
"visibleRange":null,
|
"visibleRange":null,
|
||||||
|
@ -86,5 +86,5 @@
|
||||||
},
|
},
|
||||||
"type":0,
|
"type":0,
|
||||||
"VTile":false,
|
"VTile":false,
|
||||||
"width":65,
|
"width":64,
|
||||||
}
|
}
|
After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 308 B |
After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.7 KiB |
|
@ -2,9 +2,9 @@
|
||||||
"$GMSprite":"",
|
"$GMSprite":"",
|
||||||
"%Name":"s_node_array_split",
|
"%Name":"s_node_array_split",
|
||||||
"bboxMode":0,
|
"bboxMode":0,
|
||||||
"bbox_bottom":62,
|
"bbox_bottom":63,
|
||||||
"bbox_left":0,
|
"bbox_left":3,
|
||||||
"bbox_right":64,
|
"bbox_right":59,
|
||||||
"bbox_top":0,
|
"bbox_top":0,
|
||||||
"collisionKind":1,
|
"collisionKind":1,
|
||||||
"collisionTolerance":0,
|
"collisionTolerance":0,
|
||||||
|
@ -12,14 +12,14 @@
|
||||||
"edgeFiltering":false,
|
"edgeFiltering":false,
|
||||||
"For3D":false,
|
"For3D":false,
|
||||||
"frames":[
|
"frames":[
|
||||||
{"$GMSpriteFrame":"","%Name":"55e51c88-9225-4333-808a-b01c472bc894","name":"55e51c88-9225-4333-808a-b01c472bc894","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
{"$GMSpriteFrame":"","%Name":"1852e31e-5ca1-441b-b57b-3fd7b1633e18","name":"1852e31e-5ca1-441b-b57b-3fd7b1633e18","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||||
],
|
],
|
||||||
"gridX":0,
|
"gridX":0,
|
||||||
"gridY":0,
|
"gridY":0,
|
||||||
"height":64,
|
"height":64,
|
||||||
"HTile":false,
|
"HTile":false,
|
||||||
"layers":[
|
"layers":[
|
||||||
{"$GMImageLayer":"","%Name":"52cf3dc8-7774-4149-b00a-619f280008b9","blendMode":0,"displayName":"default","isLocked":false,"name":"52cf3dc8-7774-4149-b00a-619f280008b9","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
{"$GMImageLayer":"","%Name":"5892e839-dbbf-45a0-9893-79f99d208b1d","blendMode":0,"displayName":"default","isLocked":false,"name":"5892e839-dbbf-45a0-9893-79f99d208b1d","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
||||||
],
|
],
|
||||||
"name":"s_node_array_split",
|
"name":"s_node_array_split",
|
||||||
"nineSlice":null,
|
"nineSlice":null,
|
||||||
|
@ -69,8 +69,8 @@
|
||||||
"tracks":[
|
"tracks":[
|
||||||
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
||||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"55e51c88-9225-4333-808a-b01c472bc894","path":"sprites/s_node_array_split/s_node_array_split.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"1852e31e-5ca1-441b-b57b-3fd7b1633e18","path":"sprites/s_node_array_split/s_node_array_split.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||||
},"Disabled":false,"id":"934e9d98-291d-4607-9990-ab1381a0cab7","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
},"Disabled":false,"id":"d50afe7e-04c9-49a5-9939-0917de162282","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||||
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
||||||
],
|
],
|
||||||
"visibleRange":null,
|
"visibleRange":null,
|
||||||
|
@ -86,5 +86,5 @@
|
||||||
},
|
},
|
||||||
"type":0,
|
"type":0,
|
||||||
"VTile":false,
|
"VTile":false,
|
||||||
"width":65,
|
"width":64,
|
||||||
}
|
}
|
After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 308 B |
After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.8 KiB |
|
@ -3,23 +3,23 @@
|
||||||
"%Name":"s_node_audio_volume",
|
"%Name":"s_node_audio_volume",
|
||||||
"bboxMode":0,
|
"bboxMode":0,
|
||||||
"bbox_bottom":56,
|
"bbox_bottom":56,
|
||||||
"bbox_left":0,
|
"bbox_left":1,
|
||||||
"bbox_right":64,
|
"bbox_right":63,
|
||||||
"bbox_top":6,
|
"bbox_top":7,
|
||||||
"collisionKind":1,
|
"collisionKind":1,
|
||||||
"collisionTolerance":0,
|
"collisionTolerance":0,
|
||||||
"DynamicTexturePage":false,
|
"DynamicTexturePage":false,
|
||||||
"edgeFiltering":false,
|
"edgeFiltering":false,
|
||||||
"For3D":false,
|
"For3D":false,
|
||||||
"frames":[
|
"frames":[
|
||||||
{"$GMSpriteFrame":"","%Name":"22015c73-a2da-4804-b114-0d5e033f2a8d","name":"22015c73-a2da-4804-b114-0d5e033f2a8d","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
{"$GMSpriteFrame":"","%Name":"08607cdf-7c44-436a-87a5-1729203ea759","name":"08607cdf-7c44-436a-87a5-1729203ea759","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||||
],
|
],
|
||||||
"gridX":0,
|
"gridX":0,
|
||||||
"gridY":0,
|
"gridY":0,
|
||||||
"height":64,
|
"height":64,
|
||||||
"HTile":false,
|
"HTile":false,
|
||||||
"layers":[
|
"layers":[
|
||||||
{"$GMImageLayer":"","%Name":"9ebaed0c-70ea-4835-8322-15c3933af5b0","blendMode":0,"displayName":"default","isLocked":false,"name":"9ebaed0c-70ea-4835-8322-15c3933af5b0","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
{"$GMImageLayer":"","%Name":"15c3eec1-fdd3-4966-bd31-e1228f4c38e8","blendMode":0,"displayName":"default","isLocked":false,"name":"15c3eec1-fdd3-4966-bd31-e1228f4c38e8","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
||||||
],
|
],
|
||||||
"name":"s_node_audio_volume",
|
"name":"s_node_audio_volume",
|
||||||
"nineSlice":null,
|
"nineSlice":null,
|
||||||
|
@ -69,8 +69,8 @@
|
||||||
"tracks":[
|
"tracks":[
|
||||||
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
||||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"22015c73-a2da-4804-b114-0d5e033f2a8d","path":"sprites/s_node_audio_volume/s_node_audio_volume.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"08607cdf-7c44-436a-87a5-1729203ea759","path":"sprites/s_node_audio_volume/s_node_audio_volume.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||||
},"Disabled":false,"id":"480b6822-b883-48c7-bb72-0b99824b450d","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
},"Disabled":false,"id":"34116eaa-7e2b-4890-9be8-d3c83a20eb6b","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||||
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
||||||
],
|
],
|
||||||
"visibleRange":null,
|
"visibleRange":null,
|
||||||
|
@ -86,5 +86,5 @@
|
||||||
},
|
},
|
||||||
"type":0,
|
"type":0,
|
||||||
"VTile":false,
|
"VTile":false,
|
||||||
"width":65,
|
"width":64,
|
||||||
}
|
}
|
BIN
sprites/s_node_liquefy/666ec55f-187c-41d8-8780-d3f0d57c0a79.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 3.1 KiB |
90
sprites/s_node_liquefy/s_node_liquefy.yy
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
{
|
||||||
|
"$GMSprite":"",
|
||||||
|
"%Name":"s_node_liquefy",
|
||||||
|
"bboxMode":0,
|
||||||
|
"bbox_bottom":61,
|
||||||
|
"bbox_left":2,
|
||||||
|
"bbox_right":61,
|
||||||
|
"bbox_top":2,
|
||||||
|
"collisionKind":1,
|
||||||
|
"collisionTolerance":0,
|
||||||
|
"DynamicTexturePage":false,
|
||||||
|
"edgeFiltering":false,
|
||||||
|
"For3D":false,
|
||||||
|
"frames":[
|
||||||
|
{"$GMSpriteFrame":"","%Name":"666ec55f-187c-41d8-8780-d3f0d57c0a79","name":"666ec55f-187c-41d8-8780-d3f0d57c0a79","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||||
|
],
|
||||||
|
"gridX":0,
|
||||||
|
"gridY":0,
|
||||||
|
"height":64,
|
||||||
|
"HTile":false,
|
||||||
|
"layers":[
|
||||||
|
{"$GMImageLayer":"","%Name":"29af7d9b-aac3-4b5b-83f4-254c46568644","blendMode":0,"displayName":"default","isLocked":false,"name":"29af7d9b-aac3-4b5b-83f4-254c46568644","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
||||||
|
],
|
||||||
|
"name":"s_node_liquefy",
|
||||||
|
"nineSlice":null,
|
||||||
|
"origin":4,
|
||||||
|
"parent":{
|
||||||
|
"name":"filter",
|
||||||
|
"path":"folders/nodes/icons/filter.yy",
|
||||||
|
},
|
||||||
|
"preMultiplyAlpha":false,
|
||||||
|
"resourceType":"GMSprite",
|
||||||
|
"resourceVersion":"2.0",
|
||||||
|
"sequence":{
|
||||||
|
"$GMSequence":"",
|
||||||
|
"%Name":"s_node_liquefy",
|
||||||
|
"autoRecord":true,
|
||||||
|
"backdropHeight":768,
|
||||||
|
"backdropImageOpacity":0.5,
|
||||||
|
"backdropImagePath":"",
|
||||||
|
"backdropWidth":1366,
|
||||||
|
"backdropXOffset":0.0,
|
||||||
|
"backdropYOffset":0.0,
|
||||||
|
"events":{
|
||||||
|
"$KeyframeStore<MessageEventKeyframe>":"",
|
||||||
|
"Keyframes":[],
|
||||||
|
"resourceType":"KeyframeStore<MessageEventKeyframe>",
|
||||||
|
"resourceVersion":"2.0",
|
||||||
|
},
|
||||||
|
"eventStubScript":null,
|
||||||
|
"eventToFunction":{},
|
||||||
|
"length":1.0,
|
||||||
|
"lockOrigin":false,
|
||||||
|
"moments":{
|
||||||
|
"$KeyframeStore<MomentsEventKeyframe>":"",
|
||||||
|
"Keyframes":[],
|
||||||
|
"resourceType":"KeyframeStore<MomentsEventKeyframe>",
|
||||||
|
"resourceVersion":"2.0",
|
||||||
|
},
|
||||||
|
"name":"s_node_liquefy",
|
||||||
|
"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<SpriteFrameKeyframe>":"","Keyframes":[
|
||||||
|
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||||
|
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"666ec55f-187c-41d8-8780-d3f0d57c0a79","path":"sprites/s_node_liquefy/s_node_liquefy.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||||
|
},"Disabled":false,"id":"f01792d4-7af9-45d2-b926-7370eb473145","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||||
|
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","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,
|
||||||
|
}
|
After Width: | Height: | Size: 647 B |
After Width: | Height: | Size: 762 B |
After Width: | Height: | Size: 815 B |
After Width: | Height: | Size: 713 B |
After Width: | Height: | Size: 647 B |
After Width: | Height: | Size: 762 B |
After Width: | Height: | Size: 815 B |
After Width: | Height: | Size: 713 B |
102
sprites/s_node_liquefy_type/s_node_liquefy_type.yy
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
{
|
||||||
|
"$GMSprite":"",
|
||||||
|
"%Name":"s_node_liquefy_type",
|
||||||
|
"bboxMode":0,
|
||||||
|
"bbox_bottom":21,
|
||||||
|
"bbox_left":1,
|
||||||
|
"bbox_right":22,
|
||||||
|
"bbox_top":2,
|
||||||
|
"collisionKind":1,
|
||||||
|
"collisionTolerance":0,
|
||||||
|
"DynamicTexturePage":false,
|
||||||
|
"edgeFiltering":false,
|
||||||
|
"For3D":false,
|
||||||
|
"frames":[
|
||||||
|
{"$GMSpriteFrame":"","%Name":"b55fa215-e0e0-4c7e-8066-d41490cd6294","name":"b55fa215-e0e0-4c7e-8066-d41490cd6294","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||||
|
{"$GMSpriteFrame":"","%Name":"223bdbc0-caf0-4d86-8193-c10664f72d21","name":"223bdbc0-caf0-4d86-8193-c10664f72d21","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||||
|
{"$GMSpriteFrame":"","%Name":"62795d6f-8d6c-4771-9a1c-b96157bc70ff","name":"62795d6f-8d6c-4771-9a1c-b96157bc70ff","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||||
|
{"$GMSpriteFrame":"","%Name":"4d22cb3d-17d5-4430-ac44-65302d0e6e3c","name":"4d22cb3d-17d5-4430-ac44-65302d0e6e3c","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||||
|
],
|
||||||
|
"gridX":0,
|
||||||
|
"gridY":0,
|
||||||
|
"height":24,
|
||||||
|
"HTile":false,
|
||||||
|
"layers":[
|
||||||
|
{"$GMImageLayer":"","%Name":"54188ba3-61f3-4275-a410-170437c12ecd","blendMode":0,"displayName":"default","isLocked":false,"name":"54188ba3-61f3-4275-a410-170437c12ecd","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
||||||
|
],
|
||||||
|
"name":"s_node_liquefy_type",
|
||||||
|
"nineSlice":null,
|
||||||
|
"origin":4,
|
||||||
|
"parent":{
|
||||||
|
"name":"nodes",
|
||||||
|
"path":"folders/sprites/nodes.yy",
|
||||||
|
},
|
||||||
|
"preMultiplyAlpha":false,
|
||||||
|
"resourceType":"GMSprite",
|
||||||
|
"resourceVersion":"2.0",
|
||||||
|
"sequence":{
|
||||||
|
"$GMSequence":"",
|
||||||
|
"%Name":"s_node_liquefy_type",
|
||||||
|
"autoRecord":true,
|
||||||
|
"backdropHeight":768,
|
||||||
|
"backdropImageOpacity":0.5,
|
||||||
|
"backdropImagePath":"",
|
||||||
|
"backdropWidth":1366,
|
||||||
|
"backdropXOffset":0.0,
|
||||||
|
"backdropYOffset":0.0,
|
||||||
|
"events":{
|
||||||
|
"$KeyframeStore<MessageEventKeyframe>":"",
|
||||||
|
"Keyframes":[],
|
||||||
|
"resourceType":"KeyframeStore<MessageEventKeyframe>",
|
||||||
|
"resourceVersion":"2.0",
|
||||||
|
},
|
||||||
|
"eventStubScript":null,
|
||||||
|
"eventToFunction":{},
|
||||||
|
"length":4.0,
|
||||||
|
"lockOrigin":false,
|
||||||
|
"moments":{
|
||||||
|
"$KeyframeStore<MomentsEventKeyframe>":"",
|
||||||
|
"Keyframes":[],
|
||||||
|
"resourceType":"KeyframeStore<MomentsEventKeyframe>",
|
||||||
|
"resourceVersion":"2.0",
|
||||||
|
},
|
||||||
|
"name":"s_node_liquefy_type",
|
||||||
|
"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<SpriteFrameKeyframe>":"","Keyframes":[
|
||||||
|
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||||
|
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"b55fa215-e0e0-4c7e-8066-d41490cd6294","path":"sprites/s_node_liquefy_type/s_node_liquefy_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||||
|
},"Disabled":false,"id":"14852392-fc66-4c6a-b3c4-5bb9d458a6d8","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||||
|
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||||
|
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"223bdbc0-caf0-4d86-8193-c10664f72d21","path":"sprites/s_node_liquefy_type/s_node_liquefy_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||||
|
},"Disabled":false,"id":"7f7051ec-26af-4598-81b9-3a7d56b279dd","IsCreationKey":false,"Key":1.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||||
|
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||||
|
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"62795d6f-8d6c-4771-9a1c-b96157bc70ff","path":"sprites/s_node_liquefy_type/s_node_liquefy_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||||
|
},"Disabled":false,"id":"a977655a-54ce-4a09-8f63-ba7a843ba9c8","IsCreationKey":false,"Key":2.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||||
|
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||||
|
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"4d22cb3d-17d5-4430-ac44-65302d0e6e3c","path":"sprites/s_node_liquefy_type/s_node_liquefy_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||||
|
},"Disabled":false,"id":"2f94942e-0c9a-4192-b055-eb0083e5ae9c","IsCreationKey":false,"Key":3.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||||
|
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","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":0.5,
|
||||||
|
"textureGroupId":{
|
||||||
|
"name":"Default",
|
||||||
|
"path":"texturegroups/Default",
|
||||||
|
},
|
||||||
|
"type":0,
|
||||||
|
"VTile":false,
|
||||||
|
"width":24,
|
||||||
|
}
|
After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 308 B |
After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 4.3 KiB |
|
@ -2,9 +2,9 @@
|
||||||
"$GMSprite":"",
|
"$GMSprite":"",
|
||||||
"%Name":"s_node_noise_perlin",
|
"%Name":"s_node_noise_perlin",
|
||||||
"bboxMode":0,
|
"bboxMode":0,
|
||||||
"bbox_bottom":62,
|
"bbox_bottom":61,
|
||||||
"bbox_left":0,
|
"bbox_left":2,
|
||||||
"bbox_right":63,
|
"bbox_right":62,
|
||||||
"bbox_top":2,
|
"bbox_top":2,
|
||||||
"collisionKind":1,
|
"collisionKind":1,
|
||||||
"collisionTolerance":0,
|
"collisionTolerance":0,
|
||||||
|
@ -12,14 +12,14 @@
|
||||||
"edgeFiltering":false,
|
"edgeFiltering":false,
|
||||||
"For3D":false,
|
"For3D":false,
|
||||||
"frames":[
|
"frames":[
|
||||||
{"$GMSpriteFrame":"","%Name":"b67f0b73-3a58-4fdb-a7a5-66fecbbae2c9","name":"b67f0b73-3a58-4fdb-a7a5-66fecbbae2c9","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
{"$GMSpriteFrame":"","%Name":"806e8bf8-289a-4cb0-878d-c2c0017b72cf","name":"806e8bf8-289a-4cb0-878d-c2c0017b72cf","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||||
],
|
],
|
||||||
"gridX":0,
|
"gridX":0,
|
||||||
"gridY":0,
|
"gridY":0,
|
||||||
"height":64,
|
"height":64,
|
||||||
"HTile":false,
|
"HTile":false,
|
||||||
"layers":[
|
"layers":[
|
||||||
{"$GMImageLayer":"","%Name":"1e673824-1dd2-491d-9822-3b5a58956e5a","blendMode":0,"displayName":"default","isLocked":false,"name":"1e673824-1dd2-491d-9822-3b5a58956e5a","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
{"$GMImageLayer":"","%Name":"7cb1626c-f19d-40a9-8ed3-b3f819754668","blendMode":0,"displayName":"default","isLocked":false,"name":"7cb1626c-f19d-40a9-8ed3-b3f819754668","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
||||||
],
|
],
|
||||||
"name":"s_node_noise_perlin",
|
"name":"s_node_noise_perlin",
|
||||||
"nineSlice":null,
|
"nineSlice":null,
|
||||||
|
@ -69,14 +69,11 @@
|
||||||
"tracks":[
|
"tracks":[
|
||||||
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
||||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"b67f0b73-3a58-4fdb-a7a5-66fecbbae2c9","path":"sprites/s_node_noise_perlin/s_node_noise_perlin.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"806e8bf8-289a-4cb0-878d-c2c0017b72cf","path":"sprites/s_node_noise_perlin/s_node_noise_perlin.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||||
},"Disabled":false,"id":"177721c5-d5a0-40e1-9638-766534ff633e","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
},"Disabled":false,"id":"7d669c96-d6be-4a49-97f7-779124219369","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||||
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
||||||
],
|
],
|
||||||
"visibleRange":{
|
"visibleRange":null,
|
||||||
"x":0.0,
|
|
||||||
"y":0.0,
|
|
||||||
},
|
|
||||||
"volume":1.0,
|
"volume":1.0,
|
||||||
"xorigin":32,
|
"xorigin":32,
|
||||||
"yorigin":32,
|
"yorigin":32,
|
||||||
|
@ -89,5 +86,5 @@
|
||||||
},
|
},
|
||||||
"type":0,
|
"type":0,
|
||||||
"VTile":false,
|
"VTile":false,
|
||||||
"width":64,
|
"width":65,
|
||||||
}
|
}
|
Before Width: | Height: | Size: 308 B |
After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 2.1 KiB |
|
@ -2,9 +2,9 @@
|
||||||
"$GMSprite":"",
|
"$GMSprite":"",
|
||||||
"%Name":"s_node_path_from_mask",
|
"%Name":"s_node_path_from_mask",
|
||||||
"bboxMode":0,
|
"bboxMode":0,
|
||||||
"bbox_bottom":59,
|
"bbox_bottom":60,
|
||||||
"bbox_left":0,
|
"bbox_left":7,
|
||||||
"bbox_right":64,
|
"bbox_right":56,
|
||||||
"bbox_top":3,
|
"bbox_top":3,
|
||||||
"collisionKind":1,
|
"collisionKind":1,
|
||||||
"collisionTolerance":0,
|
"collisionTolerance":0,
|
||||||
|
@ -12,14 +12,14 @@
|
||||||
"edgeFiltering":false,
|
"edgeFiltering":false,
|
||||||
"For3D":false,
|
"For3D":false,
|
||||||
"frames":[
|
"frames":[
|
||||||
{"$GMSpriteFrame":"","%Name":"6f414f05-5229-4d82-80d0-2b4b1751ceed","name":"6f414f05-5229-4d82-80d0-2b4b1751ceed","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
{"$GMSpriteFrame":"","%Name":"d4a52f42-d7f5-4ad8-8f47-cc76e8aedc45","name":"d4a52f42-d7f5-4ad8-8f47-cc76e8aedc45","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||||
],
|
],
|
||||||
"gridX":0,
|
"gridX":0,
|
||||||
"gridY":0,
|
"gridY":0,
|
||||||
"height":64,
|
"height":64,
|
||||||
"HTile":false,
|
"HTile":false,
|
||||||
"layers":[
|
"layers":[
|
||||||
{"$GMImageLayer":"","%Name":"b4080dbe-183a-4e0b-a864-33ac939af08a","blendMode":0,"displayName":"default","isLocked":false,"name":"b4080dbe-183a-4e0b-a864-33ac939af08a","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
{"$GMImageLayer":"","%Name":"3047c127-f811-4ee7-9eca-328c264f5472","blendMode":0,"displayName":"default","isLocked":false,"name":"3047c127-f811-4ee7-9eca-328c264f5472","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
||||||
],
|
],
|
||||||
"name":"s_node_path_from_mask",
|
"name":"s_node_path_from_mask",
|
||||||
"nineSlice":null,
|
"nineSlice":null,
|
||||||
|
@ -69,8 +69,8 @@
|
||||||
"tracks":[
|
"tracks":[
|
||||||
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
||||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"6f414f05-5229-4d82-80d0-2b4b1751ceed","path":"sprites/s_node_path_from_mask/s_node_path_from_mask.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"d4a52f42-d7f5-4ad8-8f47-cc76e8aedc45","path":"sprites/s_node_path_from_mask/s_node_path_from_mask.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||||
},"Disabled":false,"id":"a10eef47-8695-40cf-a856-053639e2c6cb","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
},"Disabled":false,"id":"0f0aaddb-96f3-4c4c-9bd7-bdf7103b2370","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||||
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
||||||
],
|
],
|
||||||
"visibleRange":null,
|
"visibleRange":null,
|
||||||
|
@ -86,5 +86,5 @@
|
||||||
},
|
},
|
||||||
"type":0,
|
"type":0,
|
||||||
"VTile":false,
|
"VTile":false,
|
||||||
"width":65,
|
"width":64,
|
||||||
}
|
}
|
After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 308 B |
After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 4.5 KiB |
|
@ -2,24 +2,24 @@
|
||||||
"$GMSprite":"",
|
"$GMSprite":"",
|
||||||
"%Name":"s_node_path_mapp",
|
"%Name":"s_node_path_mapp",
|
||||||
"bboxMode":0,
|
"bboxMode":0,
|
||||||
"bbox_bottom":59,
|
"bbox_bottom":60,
|
||||||
"bbox_left":0,
|
"bbox_left":2,
|
||||||
"bbox_right":64,
|
"bbox_right":60,
|
||||||
"bbox_top":4,
|
"bbox_top":5,
|
||||||
"collisionKind":1,
|
"collisionKind":1,
|
||||||
"collisionTolerance":0,
|
"collisionTolerance":0,
|
||||||
"DynamicTexturePage":false,
|
"DynamicTexturePage":false,
|
||||||
"edgeFiltering":false,
|
"edgeFiltering":false,
|
||||||
"For3D":false,
|
"For3D":false,
|
||||||
"frames":[
|
"frames":[
|
||||||
{"$GMSpriteFrame":"","%Name":"9d8c0dbe-84df-4114-af56-7dc2f6c33138","name":"9d8c0dbe-84df-4114-af56-7dc2f6c33138","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
{"$GMSpriteFrame":"","%Name":"7402137e-9a3a-4a5b-81a8-89090fb58e80","name":"7402137e-9a3a-4a5b-81a8-89090fb58e80","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||||
],
|
],
|
||||||
"gridX":0,
|
"gridX":0,
|
||||||
"gridY":0,
|
"gridY":0,
|
||||||
"height":64,
|
"height":64,
|
||||||
"HTile":false,
|
"HTile":false,
|
||||||
"layers":[
|
"layers":[
|
||||||
{"$GMImageLayer":"","%Name":"83408926-eb4a-491e-a535-c8dee4c222ba","blendMode":0,"displayName":"default","isLocked":false,"name":"83408926-eb4a-491e-a535-c8dee4c222ba","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
{"$GMImageLayer":"","%Name":"1b164945-5656-400e-9de1-56abf195c56d","blendMode":0,"displayName":"default","isLocked":false,"name":"1b164945-5656-400e-9de1-56abf195c56d","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
||||||
],
|
],
|
||||||
"name":"s_node_path_mapp",
|
"name":"s_node_path_mapp",
|
||||||
"nineSlice":null,
|
"nineSlice":null,
|
||||||
|
@ -69,8 +69,8 @@
|
||||||
"tracks":[
|
"tracks":[
|
||||||
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
||||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"9d8c0dbe-84df-4114-af56-7dc2f6c33138","path":"sprites/s_node_path_mapp/s_node_path_mapp.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"7402137e-9a3a-4a5b-81a8-89090fb58e80","path":"sprites/s_node_path_mapp/s_node_path_mapp.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||||
},"Disabled":false,"id":"93b1b957-a621-4531-b996-86a1747de5df","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
},"Disabled":false,"id":"7ee51f9c-3e87-44e5-8b05-c7fb27219781","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||||
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
||||||
],
|
],
|
||||||
"visibleRange":null,
|
"visibleRange":null,
|
||||||
|
@ -86,5 +86,5 @@
|
||||||
},
|
},
|
||||||
"type":0,
|
"type":0,
|
||||||
"VTile":false,
|
"VTile":false,
|
||||||
"width":65,
|
"width":64,
|
||||||
}
|
}
|
Before Width: | Height: | Size: 308 B |
After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 2.4 KiB |
|
@ -2,9 +2,9 @@
|
||||||
"$GMSprite":"",
|
"$GMSprite":"",
|
||||||
"%Name":"s_node_path_scatter",
|
"%Name":"s_node_path_scatter",
|
||||||
"bboxMode":0,
|
"bboxMode":0,
|
||||||
"bbox_bottom":61,
|
"bbox_bottom":60,
|
||||||
"bbox_left":0,
|
"bbox_left":5,
|
||||||
"bbox_right":63,
|
"bbox_right":60,
|
||||||
"bbox_top":3,
|
"bbox_top":3,
|
||||||
"collisionKind":1,
|
"collisionKind":1,
|
||||||
"collisionTolerance":0,
|
"collisionTolerance":0,
|
||||||
|
@ -12,14 +12,14 @@
|
||||||
"edgeFiltering":false,
|
"edgeFiltering":false,
|
||||||
"For3D":false,
|
"For3D":false,
|
||||||
"frames":[
|
"frames":[
|
||||||
{"$GMSpriteFrame":"","%Name":"02cb8882-7fbe-42bc-9a5e-e9fc2f54d2ab","name":"02cb8882-7fbe-42bc-9a5e-e9fc2f54d2ab","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
{"$GMSpriteFrame":"","%Name":"a7b696ed-a140-4934-a4e3-7ba2d2444747","name":"a7b696ed-a140-4934-a4e3-7ba2d2444747","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||||
],
|
],
|
||||||
"gridX":0,
|
"gridX":0,
|
||||||
"gridY":0,
|
"gridY":0,
|
||||||
"height":64,
|
"height":64,
|
||||||
"HTile":false,
|
"HTile":false,
|
||||||
"layers":[
|
"layers":[
|
||||||
{"$GMImageLayer":"","%Name":"1bc10b85-a441-42ec-a5a5-2d4f6b3dfdcc","blendMode":0,"displayName":"default","isLocked":false,"name":"1bc10b85-a441-42ec-a5a5-2d4f6b3dfdcc","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
{"$GMImageLayer":"","%Name":"cb6a988a-f423-44a9-bb83-2467a447614e","blendMode":0,"displayName":"default","isLocked":false,"name":"cb6a988a-f423-44a9-bb83-2467a447614e","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
||||||
],
|
],
|
||||||
"name":"s_node_path_scatter",
|
"name":"s_node_path_scatter",
|
||||||
"nineSlice":null,
|
"nineSlice":null,
|
||||||
|
@ -69,8 +69,8 @@
|
||||||
"tracks":[
|
"tracks":[
|
||||||
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
||||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"02cb8882-7fbe-42bc-9a5e-e9fc2f54d2ab","path":"sprites/s_node_path_scatter/s_node_path_scatter.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"a7b696ed-a140-4934-a4e3-7ba2d2444747","path":"sprites/s_node_path_scatter/s_node_path_scatter.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||||
},"Disabled":false,"id":"1904a981-39d4-4ba3-b2bb-17009bb6c5e1","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
},"Disabled":false,"id":"ee4532b3-9814-42e2-a0ba-32e83dd5f948","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||||
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
||||||
],
|
],
|
||||||
"visibleRange":null,
|
"visibleRange":null,
|
||||||
|
@ -86,5 +86,5 @@
|
||||||
},
|
},
|
||||||
"type":0,
|
"type":0,
|
||||||
"VTile":false,
|
"VTile":false,
|
||||||
"width":64,
|
"width":65,
|
||||||
}
|
}
|
After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 308 B |
After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 2.5 KiB |
|
@ -2,9 +2,9 @@
|
||||||
"$GMSprite":"",
|
"$GMSprite":"",
|
||||||
"%Name":"s_node_path_smooth",
|
"%Name":"s_node_path_smooth",
|
||||||
"bboxMode":0,
|
"bboxMode":0,
|
||||||
"bbox_bottom":57,
|
"bbox_bottom":58,
|
||||||
"bbox_left":0,
|
"bbox_left":2,
|
||||||
"bbox_right":64,
|
"bbox_right":60,
|
||||||
"bbox_top":2,
|
"bbox_top":2,
|
||||||
"collisionKind":1,
|
"collisionKind":1,
|
||||||
"collisionTolerance":0,
|
"collisionTolerance":0,
|
||||||
|
@ -12,14 +12,14 @@
|
||||||
"edgeFiltering":false,
|
"edgeFiltering":false,
|
||||||
"For3D":false,
|
"For3D":false,
|
||||||
"frames":[
|
"frames":[
|
||||||
{"$GMSpriteFrame":"","%Name":"7c3c3b80-585f-46e9-b5f2-761883e36c30","name":"7c3c3b80-585f-46e9-b5f2-761883e36c30","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
{"$GMSpriteFrame":"","%Name":"6eb91a9b-3c6e-48cf-9663-0e1b58a33577","name":"6eb91a9b-3c6e-48cf-9663-0e1b58a33577","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||||
],
|
],
|
||||||
"gridX":0,
|
"gridX":0,
|
||||||
"gridY":0,
|
"gridY":0,
|
||||||
"height":64,
|
"height":64,
|
||||||
"HTile":false,
|
"HTile":false,
|
||||||
"layers":[
|
"layers":[
|
||||||
{"$GMImageLayer":"","%Name":"9fcb5c62-43f1-458a-9dfd-a972443c7639","blendMode":0,"displayName":"default","isLocked":false,"name":"9fcb5c62-43f1-458a-9dfd-a972443c7639","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
{"$GMImageLayer":"","%Name":"73953ad8-f02b-484e-a290-b9e168fea387","blendMode":0,"displayName":"default","isLocked":false,"name":"73953ad8-f02b-484e-a290-b9e168fea387","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
||||||
],
|
],
|
||||||
"name":"s_node_path_smooth",
|
"name":"s_node_path_smooth",
|
||||||
"nineSlice":null,
|
"nineSlice":null,
|
||||||
|
@ -69,8 +69,8 @@
|
||||||
"tracks":[
|
"tracks":[
|
||||||
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
||||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"7c3c3b80-585f-46e9-b5f2-761883e36c30","path":"sprites/s_node_path_smooth/s_node_path_smooth.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"6eb91a9b-3c6e-48cf-9663-0e1b58a33577","path":"sprites/s_node_path_smooth/s_node_path_smooth.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||||
},"Disabled":false,"id":"8690a239-dda4-401e-a2d1-ab925c5dde04","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
},"Disabled":false,"id":"a956220c-5760-4d88-926b-003a7503235a","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||||
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
||||||
],
|
],
|
||||||
"visibleRange":null,
|
"visibleRange":null,
|
||||||
|
@ -86,5 +86,5 @@
|
||||||
},
|
},
|
||||||
"type":0,
|
"type":0,
|
||||||
"VTile":false,
|
"VTile":false,
|
||||||
"width":65,
|
"width":64,
|
||||||
}
|
}
|
Before Width: | Height: | Size: 782 B After Width: | Height: | Size: 782 B |
After Width: | Height: | Size: 782 B |