diff --git a/PixelComposer.resource_order b/PixelComposer.resource_order index fba7306ee..9c3536258 100644 --- a/PixelComposer.resource_order +++ b/PixelComposer.resource_order @@ -174,7 +174,7 @@ {"name":"3D","order":133,"path":"folders/nodes/icons/3D.yy",}, {"name":"animation","order":135,"path":"folders/nodes/icons/animation.yy",}, {"name":"filter","order":141,"path":"folders/nodes/icons/filter.yy",}, - {"name":"blur","order":64,"path":"folders/nodes/icons/filter/blur.yy",}, + {"name":"blur","order":57,"path":"folders/nodes/icons/filter/blur.yy",}, {"name":"fluidSim","order":147,"path":"folders/nodes/icons/fluidSim.yy",}, {"name":"generator","order":142,"path":"folders/nodes/icons/generator.yy",}, {"name":"IO","order":143,"path":"folders/nodes/icons/IO.yy",}, @@ -220,14 +220,16 @@ {"name":"color selector","order":14,"path":"folders/shader/color selector.yy",}, {"name":"draw","order":7,"path":"folders/shader/draw.yy",}, {"name":"filter","order":4,"path":"folders/shader/filter.yy",}, - {"name":"blur","order":41,"path":"folders/shader/filter/blur.yy",}, - {"name":"channels","order":40,"path":"folders/shader/filter/channels.yy",}, - {"name":"color","order":34,"path":"folders/shader/filter/color.yy",}, - {"name":"morph","order":42,"path":"folders/shader/filter/morph.yy",}, - {"name":"shadow caster","order":27,"path":"folders/shader/filter/shadow caster.yy",}, - {"name":"shape seperator","order":39,"path":"folders/shader/filter/shape seperator.yy",}, - {"name":"surface replace","order":43,"path":"folders/shader/filter/surface replace.yy",}, - {"name":"warp","order":44,"path":"folders/shader/filter/warp.yy",}, + {"name":"blur","order":40,"path":"folders/shader/filter/blur.yy",}, + {"name":"channels","order":39,"path":"folders/shader/filter/channels.yy",}, + {"name":"color","order":33,"path":"folders/shader/filter/color.yy",}, + {"name":"corner","order":48,"path":"folders/shader/filter/corner.yy",}, + {"name":"edge shade","order":46,"path":"folders/shader/filter/edge shade.yy",}, + {"name":"morph","order":41,"path":"folders/shader/filter/morph.yy",}, + {"name":"shadow caster","order":26,"path":"folders/shader/filter/shadow caster.yy",}, + {"name":"shape seperator","order":38,"path":"folders/shader/filter/shape seperator.yy",}, + {"name":"surface replace","order":42,"path":"folders/shader/filter/surface replace.yy",}, + {"name":"warp","order":43,"path":"folders/shader/filter/warp.yy",}, {"name":"flood fill","order":11,"path":"folders/shader/flood fill.yy",}, {"name":"generator","order":1,"path":"folders/shader/generator.yy",}, {"name":"blinker","order":12,"path":"folders/shader/generator/blinker.yy",}, @@ -266,7 +268,7 @@ {"name":"text","order":36,"path":"folders/widgets/text.yy",}, ], "ResourceOrderSettings": [ - {"name":"s_node_corner","order":16,"path":"sprites/s_node_corner/s_node_corner.yy",}, + {"name":"s_node_corner","order":13,"path":"sprites/s_node_corner/s_node_corner.yy",}, {"name":"sh_cell_noise_crystal","order":1,"path":"shaders/sh_cell_noise_crystal/sh_cell_noise_crystal.yy",}, {"name":"panel_function","order":2,"path":"scripts/panel_function/panel_function.yy",}, {"name":"node_time_remap","order":3,"path":"scripts/node_time_remap/node_time_remap.yy",}, @@ -289,7 +291,7 @@ {"name":"_f_sdf","order":13,"path":"fonts/_f_sdf/_f_sdf.yy",}, {"name":"dynaSurf_iso","order":1,"path":"scripts/dynaSurf_iso/dynaSurf_iso.yy",}, {"name":"sh_fd_add_velocity_glsl","order":1,"path":"shaders/sh_fd_add_velocity_glsl/sh_fd_add_velocity_glsl.yy",}, - {"name":"s_node_normal","order":30,"path":"sprites/s_node_normal/s_node_normal.yy",}, + {"name":"s_node_normal","order":27,"path":"sprites/s_node_normal/s_node_normal.yy",}, {"name":"node_pixel_sort","order":12,"path":"scripts/node_pixel_sort/node_pixel_sort.yy",}, {"name":"node_hlsl","order":13,"path":"scripts/node_hlsl/node_hlsl.yy",}, {"name":"sh_dither","order":15,"path":"shaders/sh_dither/sh_dither.yy",}, @@ -346,7 +348,6 @@ {"name":"s_node_gradient_type","order":8,"path":"sprites/s_node_gradient_type/s_node_gradient_type.yy",}, {"name":"rotator_Rotator","order":3,"path":"objects/rotator_Rotator/rotator_Rotator.yy",}, {"name":"node_switch","order":5,"path":"scripts/node_switch/node_switch.yy",}, - {"name":"sh_corner","order":11,"path":"shaders/sh_corner/sh_corner.yy",}, {"name":"node_array","order":5,"path":"scripts/node_array/node_array.yy",}, {"name":"discordBridge","order":8,"path":"extensions/discordBridge/discordBridge.yy",}, {"name":"pack_corner","order":3,"path":"scripts/pack_corner/pack_corner.yy",}, @@ -383,8 +384,9 @@ {"name":"Obj_FirebaseREST_Listener_On_Firestore","order":1,"path":"objects/Obj_FirebaseREST_Listener_On_Firestore/Obj_FirebaseREST_Listener_On_Firestore.yy",}, {"name":"credit_badge_popular","order":2,"path":"sprites/credit_badge_popular/credit_badge_popular.yy",}, {"name":"s_node_path_sample","order":3,"path":"sprites/s_node_path_sample/s_node_path_sample.yy",}, - {"name":"s_node_colorize","order":15,"path":"sprites/s_node_colorize/s_node_colorize.yy",}, - {"name":"s_node_sepearte_shape","order":35,"path":"sprites/s_node_sepearte_shape/s_node_sepearte_shape.yy",}, + {"name":"s_node_colorize","order":12,"path":"sprites/s_node_colorize/s_node_colorize.yy",}, + {"name":"s_node_blobify","order":58,"path":"sprites/s_node_blobify/s_node_blobify.yy",}, + {"name":"s_node_sepearte_shape","order":32,"path":"sprites/s_node_sepearte_shape/s_node_sepearte_shape.yy",}, {"name":"s_node_websocket_send","order":21,"path":"sprites/s_node_websocket_send/s_node_websocket_send.yy",}, {"name":"s_node_text_join","order":5,"path":"sprites/s_node_text_join/s_node_text_join.yy",}, {"name":"s_node_3d_affector_shape","order":13,"path":"sprites/s_node_3d_affector_shape/s_node_3d_affector_shape.yy",}, @@ -410,7 +412,7 @@ {"name":"node_array_reverse","order":2,"path":"scripts/node_array_reverse/node_array_reverse.yy",}, {"name":"_f_h1","order":11,"path":"fonts/_f_h1/_f_h1.yy",}, {"name":"_f_h2","order":12,"path":"fonts/_f_h2/_f_h2.yy",}, - {"name":"s_node_level","order":28,"path":"sprites/s_node_level/s_node_level.yy",}, + {"name":"s_node_level","order":25,"path":"sprites/s_node_level/s_node_level.yy",}, {"name":"panel_graph_view_settings","order":8,"path":"scripts/panel_graph_view_settings/panel_graph_view_settings.yy",}, {"name":"node_scatter","order":1,"path":"scripts/node_scatter/node_scatter.yy",}, {"name":"s_node_bloom","order":8,"path":"sprites/s_node_bloom/s_node_bloom.yy",}, @@ -431,11 +433,12 @@ {"name":"__3D","order":8,"path":"scripts/__3D/__3D.yy",}, {"name":"node_vector_cross2D","order":11,"path":"scripts/node_vector_cross2D/node_vector_cross2D.yy",}, {"name":"FirebaseREST_asyncFunction_Firestore","order":4,"path":"scripts/FirebaseREST_asyncFunction_Firestore/FirebaseREST_asyncFunction_Firestore.yy",}, - {"name":"sh_corner_erode","order":29,"path":"shaders/sh_corner_erode/sh_corner_erode.yy",}, + {"name":"sh_corner_erode","order":1,"path":"shaders/sh_corner_erode/sh_corner_erode.yy",}, {"name":"node_outline","order":11,"path":"scripts/node_outline/node_outline.yy",}, {"name":"sh_mesh_generation","order":4,"path":"shaders/sh_mesh_generation/sh_mesh_generation.yy",}, {"name":"math_function","order":7,"path":"scripts/math_function/math_function.yy",}, {"name":"panel_preview_snap_setting","order":5,"path":"scripts/panel_preview_snap_setting/panel_preview_snap_setting.yy",}, + {"name":"sh_edge_shade_convert","order":1,"path":"shaders/sh_edge_shade_convert/sh_edge_shade_convert.yy",}, {"name":"sh_d3d_extrude_extends","order":26,"path":"shaders/sh_d3d_extrude_extends/sh_d3d_extrude_extends.yy",}, {"name":"scrollBox","order":13,"path":"scripts/scrollBox/scrollBox.yy",}, {"name":"o_dialog_exit","order":2,"path":"objects/o_dialog_exit/o_dialog_exit.yy",}, @@ -446,7 +449,7 @@ {"name":"Room_FirebaseFirestore_Query","order":1,"path":"rooms/Room_FirebaseFirestore_Query/Room_FirebaseFirestore_Query.yy",}, {"name":"node_FLIP_spawner","order":6,"path":"scripts/node_FLIP_spawner/node_FLIP_spawner.yy",}, {"name":"Obj_FirebaseREST_Listener_Once_Firestore","order":4,"path":"objects/Obj_FirebaseREST_Listener_Once_Firestore/Obj_FirebaseREST_Listener_Once_Firestore.yy",}, - {"name":"sh_FXAA","order":33,"path":"shaders/sh_FXAA/sh_FXAA.yy",}, + {"name":"sh_FXAA","order":32,"path":"shaders/sh_FXAA/sh_FXAA.yy",}, {"name":"s_biterator_slider","order":6,"path":"sprites/s_biterator_slider/s_biterator_slider.yy",}, {"name":"libfilesystem","order":12,"path":"extensions/libfilesystem/libfilesystem.yy",}, {"name":"node_gradient_points","order":7,"path":"scripts/node_gradient_points/node_gradient_points.yy",}, @@ -480,11 +483,11 @@ {"name":"sh_cell_noise_edge","order":2,"path":"shaders/sh_cell_noise_edge/sh_cell_noise_edge.yy",}, {"name":"node_pb_fx_strip","order":11,"path":"scripts/node_pb_fx_strip/node_pb_fx_strip.yy",}, {"name":"node_stripe","order":4,"path":"scripts/node_stripe/node_stripe.yy",}, - {"name":"sh_texture_atlas","order":24,"path":"shaders/sh_texture_atlas/sh_texture_atlas.yy",}, + {"name":"sh_texture_atlas","order":23,"path":"shaders/sh_texture_atlas/sh_texture_atlas.yy",}, {"name":"__vec4","order":9,"path":"scripts/__vec4/__vec4.yy",}, {"name":"GMSSimpleMIDI","order":15,"path":"extensions/GMSSimpleMIDI/GMSSimpleMIDI.yy",}, {"name":"s_node_fluidSim_domain","order":6,"path":"sprites/s_node_fluidSim_domain/s_node_fluidSim_domain.yy",}, - {"name":"s_node_displace","order":20,"path":"sprites/s_node_displace/s_node_displace.yy",}, + {"name":"s_node_displace","order":17,"path":"sprites/s_node_displace/s_node_displace.yy",}, {"name":"sh_polar","order":1,"path":"shaders/sh_polar/sh_polar.yy",}, {"name":"s_node_warp_mesh","order":10,"path":"sprites/s_node_warp_mesh/s_node_warp_mesh.yy",}, {"name":"sh_pixel_cloud","order":4,"path":"shaders/sh_pixel_cloud/sh_pixel_cloud.yy",}, @@ -494,12 +497,12 @@ {"name":"printer","order":2,"path":"scripts/printer/printer.yy",}, {"name":"sh_de_stray","order":7,"path":"shaders/sh_de_stray/sh_de_stray.yy",}, {"name":"s_node_vfx_osc","order":14,"path":"sprites/s_node_vfx_osc/s_node_vfx_osc.yy",}, - {"name":"sh_chromatic_aberration","order":18,"path":"shaders/sh_chromatic_aberration/sh_chromatic_aberration.yy",}, + {"name":"sh_chromatic_aberration","order":17,"path":"shaders/sh_chromatic_aberration/sh_chromatic_aberration.yy",}, {"name":"fd_rectangle_create_view","order":3,"path":"scripts/fd_rectangle_create_view/fd_rectangle_create_view.yy",}, {"name":"node_fluid_vortex","order":8,"path":"scripts/node_fluid_vortex/node_fluid_vortex.yy",}, {"name":"node_pb_draw_angle","order":7,"path":"scripts/node_pb_draw_angle/node_pb_draw_angle.yy",}, {"name":"s_node_3d_set_material","order":20,"path":"sprites/s_node_3d_set_material/s_node_3d_set_material.yy",}, - {"name":"s_node_replace_palette","order":59,"path":"sprites/s_node_replace_palette/s_node_replace_palette.yy",}, + {"name":"s_node_replace_palette","order":53,"path":"sprites/s_node_replace_palette/s_node_replace_palette.yy",}, {"name":"sh_cell_noise_round","order":4,"path":"shaders/sh_cell_noise_round/sh_cell_noise_round.yy",}, {"name":"s_node_cross_product_2d","order":12,"path":"sprites/s_node_cross_product_2d/s_node_cross_product_2d.yy",}, {"name":"d3d_uvsphere","order":3,"path":"scripts/d3d_uvsphere/d3d_uvsphere.yy",}, @@ -521,7 +524,7 @@ {"name":"s_node_color_adjust","order":2,"path":"sprites/s_node_color_adjust/s_node_color_adjust.yy",}, {"name":"sh_channel_B","order":1,"path":"shaders/sh_channel_B/sh_channel_B.yy",}, {"name":"s_node_2d_light","order":2,"path":"sprites/s_node_2d_light/s_node_2d_light.yy",}, - {"name":"s_node_trail","order":40,"path":"sprites/s_node_trail/s_node_trail.yy",}, + {"name":"s_node_trail","order":37,"path":"sprites/s_node_trail/s_node_trail.yy",}, {"name":"fd_rectangle_update_view","order":5,"path":"scripts/fd_rectangle_update_view/fd_rectangle_update_view.yy",}, {"name":"s_node_rigidSim_renderer","order":1,"path":"sprites/s_node_rigidSim_renderer/s_node_rigidSim_renderer.yy",}, {"name":"__init_background","order":4,"path":"scripts/__init_background/__init_background.yy",}, @@ -542,7 +545,7 @@ {"name":"node_stagger","order":4,"path":"scripts/node_stagger/node_stagger.yy",}, {"name":"s_node_gabor","order":32,"path":"sprites/s_node_gabor/s_node_gabor.yy",}, {"name":"s_node_axis_type","order":17,"path":"sprites/s_node_axis_type/s_node_axis_type.yy",}, - {"name":"s_node_dithering","order":21,"path":"sprites/s_node_dithering/s_node_dithering.yy",}, + {"name":"s_node_dithering","order":18,"path":"sprites/s_node_dithering/s_node_dithering.yy",}, {"name":"node_3d_mesh_extrude","order":8,"path":"scripts/node_3d_mesh_extrude/node_3d_mesh_extrude.yy",}, {"name":"sh_find_boundary_stretch_x","order":1,"path":"shaders/sh_find_boundary_stretch_x/sh_find_boundary_stretch_x.yy",}, {"name":"s_node_image_grid","order":6,"path":"sprites/s_node_image_grid/s_node_image_grid.yy",}, @@ -554,7 +557,7 @@ {"name":"node_iterator_each_size","order":3,"path":"scripts/node_iterator_each_size/node_iterator_each_size.yy",}, {"name":"panel_console","order":8,"path":"scripts/panel_console/panel_console.yy",}, {"name":"sh_gradient_display_alpha","order":19,"path":"shaders/sh_gradient_display_alpha/sh_gradient_display_alpha.yy",}, - {"name":"s_node_HSV_combine","order":44,"path":"sprites/s_node_HSV_combine/s_node_HSV_combine.yy",}, + {"name":"s_node_HSV_combine","order":40,"path":"sprites/s_node_HSV_combine/s_node_HSV_combine.yy",}, {"name":"Obj_FirebaseFirestore_Collection_Query_GreaterEqual","order":5,"path":"objects/Obj_FirebaseFirestore_Collection_Query_GreaterEqual/Obj_FirebaseFirestore_Collection_Query_GreaterEqual.yy",}, {"name":"s_node_pb_box_contract","order":25,"path":"sprites/s_node_pb_box_contract/s_node_pb_box_contract.yy",}, {"name":"s_node_image_transform_3d","order":25,"path":"sprites/s_node_image_transform_3d/s_node_image_transform_3d.yy",}, @@ -566,11 +569,11 @@ {"name":"libborderless","order":1,"path":"extensions/libborderless/libborderless.yy",}, {"name":"node_dynamic_surface_in","order":4,"path":"scripts/node_dynamic_surface_in/node_dynamic_surface_in.yy",}, {"name":"s_node_vfx_attract","order":8,"path":"sprites/s_node_vfx_attract/s_node_vfx_attract.yy",}, - {"name":"s_node_pixel_cloud","order":32,"path":"sprites/s_node_pixel_cloud/s_node_pixel_cloud.yy",}, + {"name":"s_node_pixel_cloud","order":29,"path":"sprites/s_node_pixel_cloud/s_node_pixel_cloud.yy",}, {"name":"node_noise_grid","order":4,"path":"scripts/node_noise_grid/node_noise_grid.yy",}, {"name":"node_palette_sort","order":9,"path":"scripts/node_palette_sort/node_palette_sort.yy",}, {"name":"node_path_wave","order":7,"path":"scripts/node_path_wave/node_path_wave.yy",}, - {"name":"s_node_HSV","order":46,"path":"sprites/s_node_HSV/s_node_HSV.yy",}, + {"name":"s_node_HSV","order":42,"path":"sprites/s_node_HSV/s_node_HSV.yy",}, {"name":"node_point_move","order":8,"path":"scripts/node_point_move/node_point_move.yy",}, {"name":"s_node_3d_cone","order":9,"path":"sprites/s_node_3d_cone/s_node_3d_cone.yy",}, {"name":"sh_draw_grey_alpha","order":13,"path":"shaders/sh_draw_grey_alpha/sh_draw_grey_alpha.yy",}, @@ -590,7 +593,7 @@ {"name":"font_loader","order":8,"path":"scripts/font_loader/font_loader.yy",}, {"name":"sh_water_caustic","order":18,"path":"shaders/sh_water_caustic/sh_water_caustic.yy",}, {"name":"node_iterator_filter_input","order":1,"path":"scripts/node_iterator_filter_input/node_iterator_filter_input.yy",}, - {"name":"s_node_ovreride_channel","order":62,"path":"sprites/s_node_ovreride_channel/s_node_ovreride_channel.yy",}, + {"name":"s_node_ovreride_channel","order":56,"path":"sprites/s_node_ovreride_channel/s_node_ovreride_channel.yy",}, {"name":"point_rotate","order":1,"path":"scripts/point_rotate/point_rotate.yy",}, {"name":"s_node_vfx_variable","order":10,"path":"sprites/s_node_vfx_variable/s_node_vfx_variable.yy",}, {"name":"node_displacement","order":1,"path":"scripts/node_displacement/node_displacement.yy",}, @@ -601,11 +604,12 @@ {"name":"node_armature_pose","order":3,"path":"scripts/node_armature_pose/node_armature_pose.yy",}, {"name":"s_node_pb_draw_diamond","order":29,"path":"sprites/s_node_pb_draw_diamond/s_node_pb_draw_diamond.yy",}, {"name":"node_3d_transform_scene","order":4,"path":"scripts/node_3d_transform_scene/node_3d_transform_scene.yy",}, - {"name":"sh_trail_filler_pass1","order":30,"path":"shaders/sh_trail_filler_pass1/sh_trail_filler_pass1.yy",}, + {"name":"sh_trail_filler_pass1","order":29,"path":"shaders/sh_trail_filler_pass1/sh_trail_filler_pass1.yy",}, {"name":"s_node_vfx_wind","order":3,"path":"sprites/s_node_vfx_wind/s_node_vfx_wind.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_rigidSim_global","order":4,"path":"sprites/s_node_rigidSim_global/s_node_rigidSim_global.yy",}, {"name":"sh_channel_G_grey","order":8,"path":"shaders/sh_channel_G_grey/sh_channel_G_grey.yy",}, + {"name":"sh_corner_iterate","order":2,"path":"shaders/sh_corner_iterate/sh_corner_iterate.yy",}, {"name":"display_screenshot","order":4,"path":"extensions/display_screenshot/display_screenshot.yy",}, {"name":"node_strand_sim_inline","order":12,"path":"scripts/node_strand_sim_inline/node_strand_sim_inline.yy",}, {"name":"node_path_map","order":17,"path":"scripts/node_path_map/node_path_map.yy",}, @@ -640,7 +644,7 @@ {"name":"preview_overlay_vector","order":2,"path":"scripts/preview_overlay_vector/preview_overlay_vector.yy",}, {"name":"sh_gradient_display","order":7,"path":"shaders/sh_gradient_display/sh_gradient_display.yy",}, {"name":"node_json_file_write","order":11,"path":"scripts/node_json_file_write/node_json_file_write.yy",}, - {"name":"s_node_chromatic_abarration","order":14,"path":"sprites/s_node_chromatic_abarration/s_node_chromatic_abarration.yy",}, + {"name":"s_node_chromatic_abarration","order":11,"path":"sprites/s_node_chromatic_abarration/s_node_chromatic_abarration.yy",}, {"name":"node_blur_directional","order":2,"path":"scripts/node_blur_directional/node_blur_directional.yy",}, {"name":"s_node_group","order":4,"path":"sprites/s_node_group/s_node_group.yy",}, {"name":"spr_gameframe_caption","order":2,"path":"sprites/spr_gameframe_caption/spr_gameframe_caption.yy",}, @@ -676,7 +680,7 @@ {"name":"Obj_FirebaseFirestore_Document_Delete","order":3,"path":"objects/Obj_FirebaseFirestore_Document_Delete/Obj_FirebaseFirestore_Document_Delete.yy",}, {"name":"node_module_test","order":19,"path":"scripts/node_module_test/node_module_test.yy",}, {"name":"node_graph_preview","order":22,"path":"scripts/node_graph_preview/node_graph_preview.yy",}, - {"name":"s_node_shadow","order":36,"path":"sprites/s_node_shadow/s_node_shadow.yy",}, + {"name":"s_node_shadow","order":33,"path":"sprites/s_node_shadow/s_node_shadow.yy",}, {"name":"Spout","order":14,"path":"extensions/Spout/Spout.yy",}, {"name":"s_node_grid_hex_noise","order":21,"path":"sprites/s_node_grid_hex_noise/s_node_grid_hex_noise.yy",}, {"name":"s_node_logic_opr","order":2,"path":"sprites/s_node_logic_opr/s_node_logic_opr.yy",}, @@ -705,7 +709,7 @@ {"name":"s_node_pb_fx_stack","order":2,"path":"sprites/s_node_pb_fx_stack/s_node_pb_fx_stack.yy",}, {"name":"fd_draw_sprite_to_collision_mask_surface","order":1,"path":"scripts/fd_draw_sprite_to_collision_mask_surface/fd_draw_sprite_to_collision_mask_surface.yy",}, {"name":"node_fluid_render","order":2,"path":"scripts/node_fluid_render/node_fluid_render.yy",}, - {"name":"s_node_invert","order":27,"path":"sprites/s_node_invert/s_node_invert.yy",}, + {"name":"s_node_invert","order":24,"path":"sprites/s_node_invert/s_node_invert.yy",}, {"name":"sh_color_picker_side_hue","order":2,"path":"shaders/sh_color_picker_side_hue/sh_color_picker_side_hue.yy",}, {"name":"draw_text_delimiter","order":12,"path":"scripts/draw_text_delimiter/draw_text_delimiter.yy",}, {"name":"s_node_path_anchor","order":13,"path":"sprites/s_node_path_anchor/s_node_path_anchor.yy",}, @@ -782,7 +786,7 @@ {"name":"node_connection_path","order":1,"path":"scripts/node_connection_path/node_connection_path.yy",}, {"name":"sh_mk_tile55_edge_b","order":5,"path":"shaders/sh_mk_tile55_edge_b/sh_mk_tile55_edge_b.yy",}, {"name":"sh_blend_hue","order":17,"path":"shaders/sh_blend_hue/sh_blend_hue.yy",}, - {"name":"s_node_threshold","order":47,"path":"sprites/s_node_threshold/s_node_threshold.yy",}, + {"name":"s_node_threshold","order":43,"path":"sprites/s_node_threshold/s_node_threshold.yy",}, {"name":"Obj_FirebaseFirestore_Collection_Read","order":2,"path":"objects/Obj_FirebaseFirestore_Collection_Read/Obj_FirebaseFirestore_Collection_Read.yy",}, {"name":"sh_draw_normal","order":5,"path":"shaders/sh_draw_normal/sh_draw_normal.yy",}, {"name":"preview_overlay_rotation","order":1,"path":"scripts/preview_overlay_rotation/preview_overlay_rotation.yy",}, @@ -843,7 +847,7 @@ {"name":"transformBox","order":15,"path":"scripts/transformBox/transformBox.yy",}, {"name":"sh_grey_alpha","order":12,"path":"shaders/sh_grey_alpha/sh_grey_alpha.yy",}, {"name":"node_mk_cable","order":4,"path":"scripts/node_mk_cable/node_mk_cable.yy",}, - {"name":"s_node_time_map","order":39,"path":"sprites/s_node_time_map/s_node_time_map.yy",}, + {"name":"s_node_time_map","order":36,"path":"sprites/s_node_time_map/s_node_time_map.yy",}, {"name":"node_crop","order":7,"path":"scripts/node_crop/node_crop.yy",}, {"name":"s_biterator_tab_content","order":14,"path":"sprites/s_biterator_tab_content/s_biterator_tab_content.yy",}, {"name":"fd_rectangle_get_material_maccormack_weight","order":11,"path":"scripts/fd_rectangle_get_material_maccormack_weight/fd_rectangle_get_material_maccormack_weight.yy",}, @@ -857,7 +861,7 @@ {"name":"s_node_wiggler","order":2,"path":"sprites/s_node_wiggler/s_node_wiggler.yy",}, {"name":"__pbBox","order":6,"path":"scripts/__pbBox/__pbBox.yy",}, {"name":"s_node_to_text","order":13,"path":"sprites/s_node_to_text/s_node_to_text.yy",}, - {"name":"sh_edge_detect","order":17,"path":"shaders/sh_edge_detect/sh_edge_detect.yy",}, + {"name":"sh_edge_detect","order":47,"path":"shaders/sh_edge_detect/sh_edge_detect.yy",}, {"name":"s_node_area","order":4,"path":"sprites/s_node_area/s_node_area.yy",}, {"name":"type_conversion","order":8,"path":"scripts/type_conversion/type_conversion.yy",}, {"name":"node_keyframe","order":4,"path":"scripts/node_keyframe/node_keyframe.yy",}, @@ -925,7 +929,7 @@ {"name":"sh_sdf","order":1,"path":"shaders/sh_sdf/sh_sdf.yy",}, {"name":"slider","order":15,"path":"scripts/slider/slider.yy",}, {"name":"biterator","order":1,"path":"scripts/biterator/biterator.yy",}, - {"name":"s_node_convolution","order":48,"path":"sprites/s_node_convolution/s_node_convolution.yy",}, + {"name":"s_node_convolution","order":44,"path":"sprites/s_node_convolution/s_node_convolution.yy",}, {"name":"fd_rectangle_get_velocity_time_step","order":25,"path":"scripts/fd_rectangle_get_velocity_time_step/fd_rectangle_get_velocity_time_step.yy",}, {"name":"node_string_regex_match","order":10,"path":"scripts/node_string_regex_match/node_string_regex_match.yy",}, {"name":"pcx_parse","order":3,"path":"scripts/pcx_parse/pcx_parse.yy",}, @@ -953,11 +957,11 @@ {"name":"s_node_3d_light_directi","order":17,"path":"sprites/s_node_3d_light_directi/s_node_3d_light_directi.yy",}, {"name":"spr_gameframe_pixel","order":3,"path":"sprites/spr_gameframe_pixel/spr_gameframe_pixel.yy",}, {"name":"process_functions","order":36,"path":"scripts/process_functions/process_functions.yy",}, - {"name":"s_node_radial","order":53,"path":"sprites/s_node_radial/s_node_radial.yy",}, + {"name":"s_node_radial","order":47,"path":"sprites/s_node_radial/s_node_radial.yy",}, {"name":"s_node_grid","order":3,"path":"sprites/s_node_grid/s_node_grid.yy",}, {"name":"s_patreon_supporter","order":4,"path":"sprites/s_patreon_supporter/s_patreon_supporter.yy",}, {"name":"s_node_animation_control","order":31,"path":"sprites/s_node_animation_control/s_node_animation_control.yy",}, - {"name":"sh_image_trace","order":45,"path":"shaders/sh_image_trace/sh_image_trace.yy",}, + {"name":"sh_image_trace","order":44,"path":"shaders/sh_image_trace/sh_image_trace.yy",}, {"name":"node_perlin","order":8,"path":"scripts/node_perlin/node_perlin.yy",}, {"name":"node_blur_non_uniform","order":4,"path":"scripts/node_blur_non_uniform/node_blur_non_uniform.yy",}, {"name":"node_feedback_input","order":1,"path":"scripts/node_feedback_input/node_feedback_input.yy",}, @@ -973,7 +977,7 @@ {"name":"sh_fd_visualize_thick_smoke_glsl","order":17,"path":"shaders/sh_fd_visualize_thick_smoke_glsl/sh_fd_visualize_thick_smoke_glsl.yy",}, {"name":"s_node_regex_match","order":12,"path":"sprites/s_node_regex_match/s_node_regex_match.yy",}, {"name":"surface_get_palette","order":2,"path":"scripts/surface_get_palette/surface_get_palette.yy",}, - {"name":"sh_pixel_sort","order":22,"path":"shaders/sh_pixel_sort/sh_pixel_sort.yy",}, + {"name":"sh_pixel_sort","order":21,"path":"shaders/sh_pixel_sort/sh_pixel_sort.yy",}, {"name":"node_pb_draw_fill","order":3,"path":"scripts/node_pb_draw_fill/node_pb_draw_fill.yy",}, {"name":"s_node_vfx_destroy","order":7,"path":"sprites/s_node_vfx_destroy/s_node_vfx_destroy.yy",}, {"name":"fd_rectangle_set_material_size","order":7,"path":"scripts/fd_rectangle_set_material_size/fd_rectangle_set_material_size.yy",}, @@ -1016,8 +1020,8 @@ {"name":"node_pb_fx_add","order":6,"path":"scripts/node_pb_fx_add/node_pb_fx_add.yy",}, {"name":"s_node_csv_file_write","order":8,"path":"sprites/s_node_csv_file_write/s_node_csv_file_write.yy",}, {"name":"s_node_csv_parse","order":15,"path":"sprites/s_node_csv_parse/s_node_csv_parse.yy",}, - {"name":"sh_glow","order":20,"path":"shaders/sh_glow/sh_glow.yy",}, - {"name":"sh_clean_shape","order":23,"path":"shaders/sh_clean_shape/sh_clean_shape.yy",}, + {"name":"sh_glow","order":19,"path":"shaders/sh_glow/sh_glow.yy",}, + {"name":"sh_clean_shape","order":22,"path":"shaders/sh_clean_shape/sh_clean_shape.yy",}, {"name":"fd_rectangle_update","order":20,"path":"scripts/fd_rectangle_update/fd_rectangle_update.yy",}, {"name":"node_rigid_render_output","order":10,"path":"scripts/node_rigid_render_output/node_rigid_render_output.yy",}, {"name":"Obj_FirebaseFirestore_Collection_Query_options_value_path","order":12,"path":"objects/Obj_FirebaseFirestore_Collection_Query_options_value_path/Obj_FirebaseFirestore_Collection_Query_options_value_path.yy",}, @@ -1027,7 +1031,7 @@ {"name":"s_node_blur_simple","order":3,"path":"sprites/s_node_blur_simple/s_node_blur_simple.yy",}, {"name":"theme_definition","order":14,"path":"scripts/theme_definition/theme_definition.yy",}, {"name":"project_data","order":17,"path":"scripts/project_data/project_data.yy",}, - {"name":"sh_vignette","order":38,"path":"shaders/sh_vignette/sh_vignette.yy",}, + {"name":"sh_vignette","order":37,"path":"shaders/sh_vignette/sh_vignette.yy",}, {"name":"s_patreon_banner","order":3,"path":"sprites/s_patreon_banner/s_patreon_banner.yy",}, {"name":"_draw_defines","order":15,"path":"scripts/_draw_defines/_draw_defines.yy",}, {"name":"sh_color_replace","order":8,"path":"shaders/sh_color_replace/sh_color_replace.yy",}, @@ -1037,7 +1041,7 @@ {"name":"gameframe","order":3,"path":"scripts/gameframe/gameframe.yy",}, {"name":"__node_3d_light","order":1,"path":"scripts/__node_3d_light/__node_3d_light.yy",}, {"name":"d3d_icosphere","order":4,"path":"scripts/d3d_icosphere/d3d_icosphere.yy",}, - {"name":"s_node_edge_detect","order":22,"path":"sprites/s_node_edge_detect/s_node_edge_detect.yy",}, + {"name":"s_node_edge_detect","order":19,"path":"sprites/s_node_edge_detect/s_node_edge_detect.yy",}, {"name":"FirebaseFirestoreUserFunctions","order":2,"path":"scripts/FirebaseFirestoreUserFunctions/FirebaseFirestoreUserFunctions.yy",}, {"name":"node_fluid_add_collider","order":6,"path":"scripts/node_fluid_add_collider/node_fluid_add_collider.yy",}, {"name":"node_atlas_get","order":1,"path":"scripts/node_atlas_get/node_atlas_get.yy",}, @@ -1046,7 +1050,7 @@ {"name":"FirebaseREST_Firestore_collection_compare","order":5,"path":"scripts/FirebaseREST_Firestore_collection_compare/FirebaseREST_Firestore_collection_compare.yy",}, {"name":"node_pb_draw_blob","order":5,"path":"scripts/node_pb_draw_blob/node_pb_draw_blob.yy",}, {"name":"credit_badge_value","order":1,"path":"sprites/credit_badge_value/credit_badge_value.yy",}, - {"name":"s_node_vignette","order":61,"path":"sprites/s_node_vignette/s_node_vignette.yy",}, + {"name":"s_node_vignette","order":55,"path":"sprites/s_node_vignette/s_node_vignette.yy",}, {"name":"s_node_text_display","order":4,"path":"sprites/s_node_text_display/s_node_text_display.yy",}, {"name":"sh_d3d_outline","order":16,"path":"shaders/sh_d3d_outline/sh_d3d_outline.yy",}, {"name":"node_strand_render_texture","order":7,"path":"scripts/node_strand_render_texture/node_strand_render_texture.yy",}, @@ -1062,7 +1066,7 @@ {"name":"s_node_wavelet","order":34,"path":"sprites/s_node_wavelet/s_node_wavelet.yy",}, {"name":"s_workshop_badge_version","order":3,"path":"sprites/s_workshop_badge_version/s_workshop_badge_version.yy",}, {"name":"node_override_channel","order":2,"path":"scripts/node_override_channel/node_override_channel.yy",}, - {"name":"s_node_palette_shift","order":58,"path":"sprites/s_node_palette_shift/s_node_palette_shift.yy",}, + {"name":"s_node_palette_shift","order":52,"path":"sprites/s_node_palette_shift/s_node_palette_shift.yy",}, {"name":"__strandSim","order":2,"path":"scripts/__strandSim/__strandSim.yy",}, {"name":"s_node_random_tile","order":40,"path":"sprites/s_node_random_tile/s_node_random_tile.yy",}, {"name":"draw_line_width2","order":2,"path":"scripts/draw_line_width2/draw_line_width2.yy",}, @@ -1082,7 +1086,7 @@ {"name":"node_lua_global","order":1,"path":"scripts/node_lua_global/node_lua_global.yy",}, {"name":"o_dialog_preset","order":1,"path":"objects/o_dialog_preset/o_dialog_preset.yy",}, {"name":"s_node_mesh_transform","order":1,"path":"sprites/s_node_mesh_transform/s_node_mesh_transform.yy",}, - {"name":"s_node_erode","order":23,"path":"sprites/s_node_erode/s_node_erode.yy",}, + {"name":"s_node_erode","order":20,"path":"sprites/s_node_erode/s_node_erode.yy",}, {"name":"node_particle","order":5,"path":"scripts/node_particle/node_particle.yy",}, {"name":"node_pb_box_contract","order":8,"path":"scripts/node_pb_box_contract/node_pb_box_contract.yy",}, {"name":"ac_ripple","order":1,"path":"animcurves/ac_ripple/ac_ripple.yy",}, @@ -1129,7 +1133,7 @@ {"name":"node_ase_file_read","order":13,"path":"scripts/node_ase_file_read/node_ase_file_read.yy",}, {"name":"s_node_print","order":30,"path":"sprites/s_node_print/s_node_print.yy",}, {"name":"sh_seperate_shape_counter","order":1,"path":"shaders/sh_seperate_shape_counter/sh_seperate_shape_counter.yy",}, - {"name":"s_node_stack","order":37,"path":"sprites/s_node_stack/s_node_stack.yy",}, + {"name":"s_node_stack","order":34,"path":"sprites/s_node_stack/s_node_stack.yy",}, {"name":"s_mk_sparkle_select","order":1,"path":"sprites/s_mk_sparkle_select/s_mk_sparkle_select.yy",}, {"name":"hlsl_server","order":2,"path":"scripts/hlsl_server/hlsl_server.yy",}, {"name":"dynaSurf_square_fill","order":2,"path":"scripts/dynaSurf_square_fill/dynaSurf_square_fill.yy",}, @@ -1180,7 +1184,7 @@ {"name":"fd_rectangle_material_surface_was_created","order":13,"path":"scripts/fd_rectangle_material_surface_was_created/fd_rectangle_material_surface_was_created.yy",}, {"name":"s_node_fluidSim_apply_velocity","order":2,"path":"sprites/s_node_fluidSim_apply_velocity/s_node_fluidSim_apply_velocity.yy",}, {"name":"fd_rectangle_destroy","order":8,"path":"scripts/fd_rectangle_destroy/fd_rectangle_destroy.yy",}, - {"name":"s_node_grey_alpha","order":25,"path":"sprites/s_node_grey_alpha/s_node_grey_alpha.yy",}, + {"name":"s_node_grey_alpha","order":22,"path":"sprites/s_node_grey_alpha/s_node_grey_alpha.yy",}, {"name":"sh_bloom_pass","order":2,"path":"shaders/sh_bloom_pass/sh_bloom_pass.yy",}, {"name":"fd_rectangle_draw_view","order":4,"path":"scripts/fd_rectangle_draw_view/fd_rectangle_draw_view.yy",}, {"name":"fd_rectangle_set_material_type","order":9,"path":"scripts/fd_rectangle_set_material_type/fd_rectangle_set_material_type.yy",}, @@ -1210,7 +1214,7 @@ {"name":"s_node_mk_brownian","order":8,"path":"sprites/s_node_mk_brownian/s_node_mk_brownian.yy",}, {"name":"Obj_FirebaseFirestore_Collection_Query_AscendingDescending","order":1,"path":"objects/Obj_FirebaseFirestore_Collection_Query_AscendingDescending/Obj_FirebaseFirestore_Collection_Query_AscendingDescending.yy",}, {"name":"o_dialog_save","order":12,"path":"objects/o_dialog_save/o_dialog_save.yy",}, - {"name":"s_node_BW","order":13,"path":"sprites/s_node_BW/s_node_BW.yy",}, + {"name":"s_node_BW","order":10,"path":"sprites/s_node_BW/s_node_BW.yy",}, {"name":"s_node_strandSim_collide","order":7,"path":"sprites/s_node_strandSim_collide/s_node_strandSim_collide.yy",}, {"name":"node_onion_skin","order":12,"path":"scripts/node_onion_skin/node_onion_skin.yy",}, {"name":"sh_fd_turbulence","order":22,"path":"shaders/sh_fd_turbulence/sh_fd_turbulence.yy",}, @@ -1251,7 +1255,7 @@ {"name":"s_node_3d_scene","order":14,"path":"sprites/s_node_3d_scene/s_node_3d_scene.yy",}, {"name":"sh_pb_shade_half","order":5,"path":"shaders/sh_pb_shade_half/sh_pb_shade_half.yy",}, {"name":"node_polar","order":4,"path":"scripts/node_polar/node_polar.yy",}, - {"name":"s_node_twirl","order":41,"path":"sprites/s_node_twirl/s_node_twirl.yy",}, + {"name":"s_node_twirl","order":38,"path":"sprites/s_node_twirl/s_node_twirl.yy",}, {"name":"s_node_perlin_extra","order":31,"path":"sprites/s_node_perlin_extra/s_node_perlin_extra.yy",}, {"name":"sh_2d_light","order":10,"path":"shaders/sh_2d_light/sh_2d_light.yy",}, {"name":"node_image_animated","order":2,"path":"scripts/node_image_animated/node_image_animated.yy",}, @@ -1290,7 +1294,7 @@ {"name":"__node_3d_mesh","order":1,"path":"scripts/__node_3d_mesh/__node_3d_mesh.yy",}, {"name":"d3d_surface_extrude","order":7,"path":"scripts/d3d_surface_extrude/d3d_surface_extrude.yy",}, {"name":"node_mesh_to_path","order":3,"path":"scripts/node_mesh_to_path/node_mesh_to_path.yy",}, - {"name":"sh_convolution","order":25,"path":"shaders/sh_convolution/sh_convolution.yy",}, + {"name":"sh_convolution","order":24,"path":"shaders/sh_convolution/sh_convolution.yy",}, {"name":"FirebaseREST_HTTP_Failed_Firestore","order":18,"path":"scripts/FirebaseREST_HTTP_Failed_Firestore/FirebaseREST_HTTP_Failed_Firestore.yy",}, {"name":"number_function","order":14,"path":"scripts/number_function/number_function.yy",}, {"name":"s_node_array_shift","order":12,"path":"sprites/s_node_array_shift/s_node_array_shift.yy",}, @@ -1330,7 +1334,7 @@ {"name":"s_node_path_shift","order":4,"path":"sprites/s_node_path_shift/s_node_path_shift.yy",}, {"name":"sh_slice_spritesheet_empty_scan","order":10,"path":"shaders/sh_slice_spritesheet_empty_scan/sh_slice_spritesheet_empty_scan.yy",}, {"name":"s_node_grid_tri","order":6,"path":"sprites/s_node_grid_tri/s_node_grid_tri.yy",}, - {"name":"s_node_local_analyze","order":52,"path":"sprites/s_node_local_analyze/s_node_local_analyze.yy",}, + {"name":"s_node_local_analyze","order":46,"path":"sprites/s_node_local_analyze/s_node_local_analyze.yy",}, {"name":"_f_p0b","order":5,"path":"fonts/_f_p0b/_f_p0b.yy",}, {"name":"s_node_armature_pose","order":15,"path":"sprites/s_node_armature_pose/s_node_armature_pose.yy",}, {"name":"sh_fd_visualize_pressure_glsl","order":16,"path":"shaders/sh_fd_visualize_pressure_glsl/sh_fd_visualize_pressure_glsl.yy",}, @@ -1339,7 +1343,7 @@ {"name":"node_twirl","order":4,"path":"scripts/node_twirl/node_twirl.yy",}, {"name":"node_collection_inline","order":16,"path":"scripts/node_collection_inline/node_collection_inline.yy",}, {"name":"s_node_fluidSim_update_paused","order":7,"path":"sprites/s_node_fluidSim_update_paused/s_node_fluidSim_update_paused.yy",}, - {"name":"s_node_decorner","order":17,"path":"sprites/s_node_decorner/s_node_decorner.yy",}, + {"name":"s_node_decorner","order":14,"path":"sprites/s_node_decorner/s_node_decorner.yy",}, {"name":"sh_random_tile","order":6,"path":"shaders/sh_random_tile/sh_random_tile.yy",}, {"name":"s_node_text_combine","order":3,"path":"sprites/s_node_text_combine/s_node_text_combine.yy",}, {"name":"_line_drawer","order":18,"path":"scripts/_line_drawer/_line_drawer.yy",}, @@ -1366,12 +1370,12 @@ {"name":"fd_rectangle_get_velocity_width","order":26,"path":"scripts/fd_rectangle_get_velocity_width/fd_rectangle_get_velocity_width.yy",}, {"name":"node_convolution","order":4,"path":"scripts/node_convolution/node_convolution.yy",}, {"name":"node_pb_draw_ellipse","order":2,"path":"scripts/node_pb_draw_ellipse/node_pb_draw_ellipse.yy",}, - {"name":"sh_outline_only","order":21,"path":"shaders/sh_outline_only/sh_outline_only.yy",}, + {"name":"sh_outline_only","order":20,"path":"shaders/sh_outline_only/sh_outline_only.yy",}, {"name":"node_mk_saber","order":3,"path":"scripts/node_mk_saber/node_mk_saber.yy",}, {"name":"lcd_function","order":13,"path":"scripts/lcd_function/lcd_function.yy",}, {"name":"sh_draw_divide","order":12,"path":"shaders/sh_draw_divide/sh_draw_divide.yy",}, {"name":"d3d_gizmo_line","order":1,"path":"scripts/d3d_gizmo_line/d3d_gizmo_line.yy",}, - {"name":"s_node_destray","order":18,"path":"sprites/s_node_destray/s_node_destray.yy",}, + {"name":"s_node_destray","order":15,"path":"sprites/s_node_destray/s_node_destray.yy",}, {"name":"node_color_sampler","order":3,"path":"scripts/node_color_sampler/node_color_sampler.yy",}, {"name":"node_iterator_sort_output","order":2,"path":"scripts/node_iterator_sort_output/node_iterator_sort_output.yy",}, {"name":"node_path_bridge","order":16,"path":"scripts/node_path_bridge/node_path_bridge.yy",}, @@ -1411,7 +1415,7 @@ {"name":"render_data","order":3,"path":"scripts/render_data/render_data.yy",}, {"name":"panel_preview_grid_setting","order":6,"path":"scripts/panel_preview_grid_setting/panel_preview_grid_setting.yy",}, {"name":"fd_rectangle_get_velocity_height","order":22,"path":"scripts/fd_rectangle_get_velocity_height/fd_rectangle_get_velocity_height.yy",}, - {"name":"s_node_FXAA","order":57,"path":"sprites/s_node_FXAA/s_node_FXAA.yy",}, + {"name":"s_node_FXAA","order":51,"path":"sprites/s_node_FXAA/s_node_FXAA.yy",}, {"name":"logger","order":1,"path":"scripts/logger/logger.yy",}, {"name":"s_node_smokeSim_emitter","order":8,"path":"sprites/s_node_smokeSim_emitter/s_node_smokeSim_emitter.yy",}, {"name":"s_node_blur_directional","order":2,"path":"sprites/s_node_blur_directional/s_node_blur_directional.yy",}, @@ -1455,6 +1459,7 @@ {"name":"node_group_input","order":1,"path":"scripts/node_group_input/node_group_input.yy",}, {"name":"fd_rectangle_set_material_dissipation_type","order":4,"path":"scripts/fd_rectangle_set_material_dissipation_type/fd_rectangle_set_material_dissipation_type.yy",}, {"name":"s_node_gradient_shift","order":15,"path":"sprites/s_node_gradient_shift/s_node_gradient_shift.yy",}, + {"name":"node_blobify","order":10,"path":"scripts/node_blobify/node_blobify.yy",}, {"name":"node_cache_array","order":8,"path":"scripts/node_cache_array/node_cache_array.yy",}, {"name":"node_array_convolute","order":16,"path":"scripts/node_array_convolute/node_array_convolute.yy",}, {"name":"sh_channel_A_grey","order":10,"path":"shaders/sh_channel_A_grey/sh_channel_A_grey.yy",}, @@ -1462,7 +1467,7 @@ {"name":"node_composite","order":1,"path":"scripts/node_composite/node_composite.yy",}, {"name":"s_node_path_map","order":2,"path":"sprites/s_node_path_map/s_node_path_map.yy",}, {"name":"node_iterator_filter_inline_input","order":1,"path":"scripts/node_iterator_filter_inline_input/node_iterator_filter_inline_input.yy",}, - {"name":"s_node_greyscale","order":26,"path":"sprites/s_node_greyscale/s_node_greyscale.yy",}, + {"name":"s_node_greyscale","order":23,"path":"sprites/s_node_greyscale/s_node_greyscale.yy",}, {"name":"s_node_mk_flare","order":11,"path":"sprites/s_node_mk_flare/s_node_mk_flare.yy",}, {"name":"sh_dilate","order":4,"path":"shaders/sh_dilate/sh_dilate.yy",}, {"name":"node_image_sequence","order":1,"path":"scripts/node_image_sequence/node_image_sequence.yy",}, @@ -1473,7 +1478,7 @@ {"name":"panel_preview_onion_setting","order":7,"path":"scripts/panel_preview_onion_setting/panel_preview_onion_setting.yy",}, {"name":"FirebaseFirestorePaths","order":2,"path":"scripts/FirebaseFirestorePaths/FirebaseFirestorePaths.yy",}, {"name":"d3d_cylinder","order":2,"path":"scripts/d3d_cylinder/d3d_cylinder.yy",}, - {"name":"sh_palette_replace","order":26,"path":"shaders/sh_palette_replace/sh_palette_replace.yy",}, + {"name":"sh_palette_replace","order":25,"path":"shaders/sh_palette_replace/sh_palette_replace.yy",}, {"name":"sh_cell_noise_random","order":3,"path":"shaders/sh_cell_noise_random/sh_cell_noise_random.yy",}, {"name":"node_iterator_input","order":1,"path":"scripts/node_iterator_input/node_iterator_input.yy",}, {"name":"s_node_atlas","order":5,"path":"sprites/s_node_atlas/s_node_atlas.yy",}, @@ -1485,7 +1490,7 @@ {"name":"d3d_group","order":7,"path":"scripts/d3d_group/d3d_group.yy",}, {"name":"o_dialog_output_visibility","order":2,"path":"objects/o_dialog_output_visibility/o_dialog_output_visibility.yy",}, {"name":"node_normal","order":1,"path":"scripts/node_normal/node_normal.yy",}, - {"name":"s_node_glow","order":24,"path":"sprites/s_node_glow/s_node_glow.yy",}, + {"name":"s_node_glow","order":21,"path":"sprites/s_node_glow/s_node_glow.yy",}, {"name":"s_node_websocket_receive","order":19,"path":"sprites/s_node_websocket_receive/s_node_websocket_receive.yy",}, {"name":"node_gradient_replace","order":12,"path":"scripts/node_gradient_replace/node_gradient_replace.yy",}, {"name":"s_node_vfx_repel","order":6,"path":"sprites/s_node_vfx_repel/s_node_vfx_repel.yy",}, @@ -1493,7 +1498,7 @@ {"name":"fd_rectangle_set_collision_mask_surface","order":2,"path":"scripts/fd_rectangle_set_collision_mask_surface/fd_rectangle_set_collision_mask_surface.yy",}, {"name":"node_array_length","order":8,"path":"scripts/node_array_length/node_array_length.yy",}, {"name":"node_erode","order":9,"path":"scripts/node_erode/node_erode.yy",}, - {"name":"sh_colours_replace","order":35,"path":"shaders/sh_colours_replace/sh_colours_replace.yy",}, + {"name":"sh_colours_replace","order":34,"path":"shaders/sh_colours_replace/sh_colours_replace.yy",}, {"name":"sh_channel_R2G","order":11,"path":"shaders/sh_channel_R2G/sh_channel_R2G.yy",}, {"name":"node_wrap_mesh","order":6,"path":"scripts/node_wrap_mesh/node_wrap_mesh.yy",}, {"name":"sh_offset","order":12,"path":"shaders/sh_offset/sh_offset.yy",}, @@ -1518,14 +1523,15 @@ {"name":"node_color_replacement","order":3,"path":"scripts/node_color_replacement/node_color_replacement.yy",}, {"name":"path_reader","order":5,"path":"scripts/path_reader/path_reader.yy",}, {"name":"__node_3d_repeat","order":6,"path":"scripts/__node_3d_repeat/__node_3d_repeat.yy",}, + {"name":"node_edge_shade","order":18,"path":"scripts/node_edge_shade/node_edge_shade.yy",}, {"name":"point_direction_positive","order":4,"path":"scripts/point_direction_positive/point_direction_positive.yy",}, {"name":"s_node_fluidSim_add_fluid","order":3,"path":"sprites/s_node_fluidSim_add_fluid/s_node_fluidSim_add_fluid.yy",}, {"name":"sh_replace_color","order":5,"path":"shaders/sh_replace_color/sh_replace_color.yy",}, {"name":"s_node_armature_bind","order":14,"path":"sprites/s_node_armature_bind/s_node_armature_bind.yy",}, {"name":"node_monitor_capture","order":21,"path":"scripts/node_monitor_capture/node_monitor_capture.yy",}, {"name":"node_blur_contrast","order":1,"path":"scripts/node_blur_contrast/node_blur_contrast.yy",}, - {"name":"sh_trail_filler","order":31,"path":"shaders/sh_trail_filler/sh_trail_filler.yy",}, - {"name":"s_node_border","order":12,"path":"sprites/s_node_border/s_node_border.yy",}, + {"name":"sh_trail_filler","order":30,"path":"shaders/sh_trail_filler/sh_trail_filler.yy",}, + {"name":"s_node_border","order":9,"path":"sprites/s_node_border/s_node_border.yy",}, {"name":"__vector","order":10,"path":"scripts/__vector/__vector.yy",}, {"name":"s_node_pin","order":2,"path":"sprites/s_node_pin/s_node_pin.yy",}, {"name":"node_local_analyze","order":16,"path":"scripts/node_local_analyze/node_local_analyze.yy",}, @@ -1535,7 +1541,7 @@ {"name":"s_node_repeat_axis","order":16,"path":"sprites/s_node_repeat_axis/s_node_repeat_axis.yy",}, {"name":"s_node_text_render","order":17,"path":"sprites/s_node_text_render/s_node_text_render.yy",}, {"name":"__init_global","order":8,"path":"scripts/__init_global/__init_global.yy",}, - {"name":"sh_trail_filler_pass2","order":32,"path":"shaders/sh_trail_filler_pass2/sh_trail_filler_pass2.yy",}, + {"name":"sh_trail_filler_pass2","order":31,"path":"shaders/sh_trail_filler_pass2/sh_trail_filler_pass2.yy",}, {"name":"node_path_smooth","order":18,"path":"scripts/node_path_smooth/node_path_smooth.yy",}, {"name":"node_PCX_array_set","order":1,"path":"scripts/node_PCX_array_set/node_PCX_array_set.yy",}, {"name":"node_caustic","order":23,"path":"scripts/node_caustic/node_caustic.yy",}, @@ -1544,7 +1550,7 @@ {"name":"s_node_mk_grid_flip","order":18,"path":"sprites/s_node_mk_grid_flip/s_node_mk_grid_flip.yy",}, {"name":"s_node_separate_file_path","order":14,"path":"sprites/s_node_separate_file_path/s_node_separate_file_path.yy",}, {"name":"node_scale_algo","order":12,"path":"scripts/node_scale_algo/node_scale_algo.yy",}, - {"name":"s_node_image_replace","order":55,"path":"sprites/s_node_image_replace/s_node_image_replace.yy",}, + {"name":"s_node_image_replace","order":49,"path":"sprites/s_node_image_replace/s_node_image_replace.yy",}, {"name":"node_alpha_hash","order":11,"path":"scripts/node_alpha_hash/node_alpha_hash.yy",}, {"name":"sh_mask_modify","order":2,"path":"shaders/sh_mask_modify/sh_mask_modify.yy",}, {"name":"toggleGroup","order":31,"path":"scripts/toggleGroup/toggleGroup.yy",}, @@ -1635,7 +1641,7 @@ {"name":"node_gradient_extract","order":13,"path":"scripts/node_gradient_extract/node_gradient_extract.yy",}, {"name":"node_base_convert","order":7,"path":"scripts/node_base_convert/node_base_convert.yy",}, {"name":"node_3d_mesh_plane","order":7,"path":"scripts/node_3d_mesh_plane/node_3d_mesh_plane.yy",}, - {"name":"s_node_normal_light","order":31,"path":"sprites/s_node_normal_light/s_node_normal_light.yy",}, + {"name":"s_node_normal_light","order":28,"path":"sprites/s_node_normal_light/s_node_normal_light.yy",}, {"name":"node_tile_random","order":16,"path":"scripts/node_tile_random/node_tile_random.yy",}, {"name":"Obj_FirebaseFirestore_Document_Update","order":7,"path":"objects/Obj_FirebaseFirestore_Document_Update/Obj_FirebaseFirestore_Document_Update.yy",}, {"name":"node_transform_single","order":1,"path":"scripts/node_transform_single/node_transform_single.yy",}, @@ -1651,9 +1657,9 @@ {"name":"sh_draw_downsample","order":2,"path":"shaders/sh_draw_downsample/sh_draw_downsample.yy",}, {"name":"__view_get","order":1,"path":"scripts/__view_get/__view_get.yy",}, {"name":"export_portable","order":3,"path":"scripts/export_portable/export_portable.yy",}, - {"name":"s_node_texture_map","order":38,"path":"sprites/s_node_texture_map/s_node_texture_map.yy",}, + {"name":"s_node_texture_map","order":35,"path":"sprites/s_node_texture_map/s_node_texture_map.yy",}, {"name":"fd_rectangle_create","order":7,"path":"scripts/fd_rectangle_create/fd_rectangle_create.yy",}, - {"name":"s_node_level_selector","order":29,"path":"sprites/s_node_level_selector/s_node_level_selector.yy",}, + {"name":"s_node_level_selector","order":26,"path":"sprites/s_node_level_selector/s_node_level_selector.yy",}, {"name":"s_node_herringbone_tile","order":39,"path":"sprites/s_node_herringbone_tile/s_node_herringbone_tile.yy",}, {"name":"random_function","order":3,"path":"scripts/random_function/random_function.yy",}, {"name":"FriebaseREST_Firestore_urlUpdateMask","order":20,"path":"scripts/FriebaseREST_Firestore_urlUpdateMask/FriebaseREST_Firestore_urlUpdateMask.yy",}, @@ -1691,7 +1697,7 @@ {"name":"s_node_dot_product","order":13,"path":"sprites/s_node_dot_product/s_node_dot_product.yy",}, {"name":"sh_downsample","order":1,"path":"shaders/sh_downsample/sh_downsample.yy",}, {"name":"Obj_FirebaseFirestore_Collection_Query_Greater","order":4,"path":"objects/Obj_FirebaseFirestore_Collection_Query_Greater/Obj_FirebaseFirestore_Collection_Query_Greater.yy",}, - {"name":"sh_remove_black","order":19,"path":"shaders/sh_remove_black/sh_remove_black.yy",}, + {"name":"sh_remove_black","order":18,"path":"shaders/sh_remove_black/sh_remove_black.yy",}, {"name":"path_parser","order":3,"path":"scripts/path_parser/path_parser.yy",}, {"name":"s_node_3d_camera","order":13,"path":"sprites/s_node_3d_camera/s_node_3d_camera.yy",}, {"name":"node_crop_content","order":14,"path":"scripts/node_crop_content/node_crop_content.yy",}, @@ -1700,7 +1706,7 @@ {"name":"fd_rectangle_get_material_type","order":14,"path":"scripts/fd_rectangle_get_material_type/fd_rectangle_get_material_type.yy",}, {"name":"node_area","order":14,"path":"scripts/node_area/node_area.yy",}, {"name":"vct_toggle","order":3,"path":"scripts/vct_toggle/vct_toggle.yy",}, - {"name":"s_node_posterize","order":33,"path":"sprites/s_node_posterize/s_node_posterize.yy",}, + {"name":"s_node_posterize","order":30,"path":"sprites/s_node_posterize/s_node_posterize.yy",}, {"name":"s_node_struct_get","order":1,"path":"sprites/s_node_struct_get/s_node_struct_get.yy",}, {"name":"s_node_vfx_vortex","order":4,"path":"sprites/s_node_vfx_vortex/s_node_vfx_vortex.yy",}, {"name":"node_3d_modify_round","order":1,"path":"scripts/node_3d_modify_round/node_3d_modify_round.yy",}, @@ -1712,9 +1718,10 @@ {"name":"node_rigid_group_inline","order":11,"path":"scripts/node_rigid_group_inline/node_rigid_group_inline.yy",}, {"name":"s_node_pb_fx_hash","order":8,"path":"sprites/s_node_pb_fx_hash/s_node_pb_fx_hash.yy",}, {"name":"draw_UI_scale","order":7,"path":"scripts/draw_UI_scale/draw_UI_scale.yy",}, + {"name":"sh_blobify","order":11,"path":"shaders/sh_blobify/sh_blobify.yy",}, {"name":"s_node_strandSim_update","order":1,"path":"sprites/s_node_strandSim_update/s_node_strandSim_update.yy",}, - {"name":"s_node_RGB_combine","order":45,"path":"sprites/s_node_RGB_combine/s_node_RGB_combine.yy",}, - {"name":"s_node_shadow_cast","order":49,"path":"sprites/s_node_shadow_cast/s_node_shadow_cast.yy",}, + {"name":"s_node_RGB_combine","order":41,"path":"sprites/s_node_RGB_combine/s_node_RGB_combine.yy",}, + {"name":"s_node_shadow_cast","order":45,"path":"sprites/s_node_shadow_cast/s_node_shadow_cast.yy",}, {"name":"fft_functions","order":1,"path":"scripts/fft_functions/fft_functions.yy",}, {"name":"path_function","order":4,"path":"scripts/path_function/path_function.yy",}, {"name":"s_node_shell_excecute","order":33,"path":"sprites/s_node_shell_excecute/s_node_shell_excecute.yy",}, @@ -1724,7 +1731,7 @@ {"name":"rotatorRandom","order":1,"path":"scripts/rotatorRandom/rotatorRandom.yy",}, {"name":"node_mk_falls","order":10,"path":"scripts/node_mk_falls/node_mk_falls.yy",}, {"name":"node_spout_send","order":19,"path":"scripts/node_spout_send/node_spout_send.yy",}, - {"name":"s_node_RGB","order":34,"path":"sprites/s_node_RGB/s_node_RGB.yy",}, + {"name":"s_node_RGB","order":31,"path":"sprites/s_node_RGB/s_node_RGB.yy",}, {"name":"fd_rectangle_draw","order":9,"path":"scripts/fd_rectangle_draw/fd_rectangle_draw.yy",}, {"name":"FirebaseREST_Firestore_jsonEncode","order":13,"path":"scripts/FirebaseREST_Firestore_jsonEncode/FirebaseREST_Firestore_jsonEncode.yy",}, {"name":"node_color_palette_replacement","order":14,"path":"scripts/node_color_palette_replacement/node_color_palette_replacement.yy",}, @@ -1739,7 +1746,7 @@ {"name":"node_de_stray","order":1,"path":"scripts/node_de_stray/node_de_stray.yy",}, {"name":"d3d_transformation","order":12,"path":"scripts/d3d_transformation/d3d_transformation.yy",}, {"name":"sh_channel_G","order":2,"path":"shaders/sh_channel_G/sh_channel_G.yy",}, - {"name":"s_node_dilate","order":19,"path":"sprites/s_node_dilate/s_node_dilate.yy",}, + {"name":"s_node_dilate","order":16,"path":"sprites/s_node_dilate/s_node_dilate.yy",}, {"name":"panel_patreon","order":2,"path":"scripts/panel_patreon/panel_patreon.yy",}, {"name":"node_value","order":5,"path":"scripts/node_value/node_value.yy",}, {"name":"sh_blend_screen","order":3,"path":"shaders/sh_blend_screen/sh_blend_screen.yy",}, @@ -1760,6 +1767,7 @@ {"name":"fd_rectangle_get_pressure_iteration_type","order":17,"path":"scripts/fd_rectangle_get_pressure_iteration_type/fd_rectangle_get_pressure_iteration_type.yy",}, {"name":"node_text_file_write","order":10,"path":"scripts/node_text_file_write/node_text_file_write.yy",}, {"name":"sh_lum2alpha","order":16,"path":"shaders/sh_lum2alpha/sh_lum2alpha.yy",}, + {"name":"sh_edge_shade_apply","order":2,"path":"shaders/sh_edge_shade_apply/sh_edge_shade_apply.yy",}, {"name":"s_node_3d_sphere","order":8,"path":"sprites/s_node_3d_sphere/s_node_3d_sphere.yy",}, {"name":"fd_rectangle_replace_velocity","order":16,"path":"scripts/fd_rectangle_replace_velocity/fd_rectangle_replace_velocity.yy",}, {"name":"s_node_group_thumbnail","order":34,"path":"sprites/s_node_group_thumbnail/s_node_group_thumbnail.yy",}, @@ -1846,7 +1854,7 @@ {"name":"node_armature_sample","order":5,"path":"scripts/node_armature_sample/node_armature_sample.yy",}, {"name":"__3d_particle","order":1,"path":"scripts/__3d_particle/__3d_particle.yy",}, {"name":"sh_pb_shade","order":3,"path":"shaders/sh_pb_shade/sh_pb_shade.yy",}, - {"name":"s_node_morph_surface","order":56,"path":"sprites/s_node_morph_surface/s_node_morph_surface.yy",}, + {"name":"s_node_morph_surface","order":50,"path":"sprites/s_node_morph_surface/s_node_morph_surface.yy",}, {"name":"s_node_mesh_type","order":15,"path":"sprites/s_node_mesh_type/s_node_mesh_type.yy",}, {"name":"fd_rectangle_get_velocity_dissipation_type","order":20,"path":"scripts/fd_rectangle_get_velocity_dissipation_type/fd_rectangle_get_velocity_dissipation_type.yy",}, {"name":"s_node_3d_transform","order":4,"path":"sprites/s_node_3d_transform/s_node_3d_transform.yy",}, @@ -1861,7 +1869,7 @@ {"name":"panel_array_sequence","order":3,"path":"scripts/panel_array_sequence/panel_array_sequence.yy",}, {"name":"sh_displace","order":5,"path":"shaders/sh_displace/sh_displace.yy",}, {"name":"fd_rectangle_get_material_height","order":10,"path":"scripts/fd_rectangle_get_material_height/fd_rectangle_get_material_height.yy",}, - {"name":"s_node_spherize","order":60,"path":"sprites/s_node_spherize/s_node_spherize.yy",}, + {"name":"s_node_spherize","order":54,"path":"sprites/s_node_spherize/s_node_spherize.yy",}, {"name":"s_node_mk_sparkle","order":7,"path":"sprites/s_node_mk_sparkle/s_node_mk_sparkle.yy",}, {"name":"rangeBox","order":9,"path":"scripts/rangeBox/rangeBox.yy",}, {"name":"s_node_array_copy","order":14,"path":"sprites/s_node_array_copy/s_node_array_copy.yy",}, @@ -1884,7 +1892,7 @@ {"name":"fd_rectangle_get_material_surface","order":12,"path":"scripts/fd_rectangle_get_material_surface/fd_rectangle_get_material_surface.yy",}, {"name":"s_dialog_bg_l","order":1,"path":"sprites/s_dialog_bg_l/s_dialog_bg_l.yy",}, {"name":"fd_rectangle_clear","order":6,"path":"scripts/fd_rectangle_clear/fd_rectangle_clear.yy",}, - {"name":"sh_tile_random","order":37,"path":"shaders/sh_tile_random/sh_tile_random.yy",}, + {"name":"sh_tile_random","order":36,"path":"shaders/sh_tile_random/sh_tile_random.yy",}, {"name":"d3d_cone","order":5,"path":"scripts/d3d_cone/d3d_cone.yy",}, {"name":"__rectangle","order":7,"path":"scripts/__rectangle/__rectangle.yy",}, {"name":"node_PCX_fn_random","order":1,"path":"scripts/node_PCX_fn_random/node_PCX_fn_random.yy",}, @@ -1905,7 +1913,7 @@ {"name":"draw_surface_functions","order":4,"path":"scripts/draw_surface_functions/draw_surface_functions.yy",}, {"name":"node_rigid_variable","order":8,"path":"scripts/node_rigid_variable/node_rigid_variable.yy",}, {"name":"project_function","order":2,"path":"scripts/project_function/project_function.yy",}, - {"name":"s_node_zoom","order":54,"path":"sprites/s_node_zoom/s_node_zoom.yy",}, + {"name":"s_node_zoom","order":48,"path":"sprites/s_node_zoom/s_node_zoom.yy",}, {"name":"node_noise_fbm","order":3,"path":"scripts/node_noise_fbm/node_noise_fbm.yy",}, {"name":"sh_channel_V","order":6,"path":"shaders/sh_channel_V/sh_channel_V.yy",}, {"name":"__shapes","order":3,"path":"scripts/__shapes/__shapes.yy",}, @@ -1943,13 +1951,13 @@ {"name":"o_dialog_assetbox","order":4,"path":"objects/o_dialog_assetbox/o_dialog_assetbox.yy",}, {"name":"node_lerp","order":2,"path":"scripts/node_lerp/node_lerp.yy",}, {"name":"node_3d_instancer","order":3,"path":"scripts/node_3d_instancer/node_3d_instancer.yy",}, - {"name":"s_node_pixel_sort","order":42,"path":"sprites/s_node_pixel_sort/s_node_pixel_sort.yy",}, - {"name":"sh_mask_expand","order":36,"path":"shaders/sh_mask_expand/sh_mask_expand.yy",}, + {"name":"s_node_pixel_sort","order":39,"path":"sprites/s_node_pixel_sort/s_node_pixel_sort.yy",}, + {"name":"sh_mask_expand","order":35,"path":"shaders/sh_mask_expand/sh_mask_expand.yy",}, {"name":"node_texture_remap","order":2,"path":"scripts/node_texture_remap/node_texture_remap.yy",}, {"name":"sh_fd_visualize_pixel_art_fiery_smoke_glsl","order":14,"path":"shaders/sh_fd_visualize_pixel_art_fiery_smoke_glsl/sh_fd_visualize_pixel_art_fiery_smoke_glsl.yy",}, {"name":"node_ase_layer","order":14,"path":"scripts/node_ase_layer/node_ase_layer.yy",}, {"name":"Obj_FirebaseFirestore_Collection_Query_Equal","order":3,"path":"objects/Obj_FirebaseFirestore_Collection_Query_Equal/Obj_FirebaseFirestore_Collection_Query_Equal.yy",}, - {"name":"sh_local_analyze","order":28,"path":"shaders/sh_local_analyze/sh_local_analyze.yy",}, + {"name":"sh_local_analyze","order":27,"path":"shaders/sh_local_analyze/sh_local_analyze.yy",}, {"name":"s_node_array_zip","order":13,"path":"sprites/s_node_array_zip/s_node_array_zip.yy",}, {"name":"node_blur_slope","order":9,"path":"scripts/node_blur_slope/node_blur_slope.yy",}, {"name":"fd_rectangle_get_material_width","order":15,"path":"scripts/fd_rectangle_get_material_width/fd_rectangle_get_material_width.yy",}, diff --git a/PixelComposer.yyp b/PixelComposer.yyp index 862b5baae..56ec3ef82 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -255,6 +255,8 @@ {"resourceType":"GMFolder","resourceVersion":"1.0","name":"blur","folderPath":"folders/shader/filter/blur.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"channels","folderPath":"folders/shader/filter/channels.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"color","folderPath":"folders/shader/filter/color.yy",}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"corner","folderPath":"folders/shader/filter/corner.yy",}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"edge shade","folderPath":"folders/shader/filter/edge shade.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"morph","folderPath":"folders/shader/filter/morph.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"shadow caster","folderPath":"folders/shader/filter/shadow caster.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"shape seperator","folderPath":"folders/shader/filter/shape seperator.yy",}, @@ -588,6 +590,7 @@ {"id":{"name":"credit_badge_popular","path":"sprites/credit_badge_popular/credit_badge_popular.yy",},}, {"id":{"name":"s_node_path_sample","path":"sprites/s_node_path_sample/s_node_path_sample.yy",},}, {"id":{"name":"s_node_colorize","path":"sprites/s_node_colorize/s_node_colorize.yy",},}, + {"id":{"name":"s_node_blobify","path":"sprites/s_node_blobify/s_node_blobify.yy",},}, {"id":{"name":"panel_preview","path":"scripts/panel_preview/panel_preview.yy",},}, {"id":{"name":"s_node_sepearte_shape","path":"sprites/s_node_sepearte_shape/s_node_sepearte_shape.yy",},}, {"id":{"name":"s_node_websocket_send","path":"sprites/s_node_websocket_send/s_node_websocket_send.yy",},}, @@ -651,6 +654,7 @@ {"id":{"name":"math_function","path":"scripts/math_function/math_function.yy",},}, {"id":{"name":"panel_preview_snap_setting","path":"scripts/panel_preview_snap_setting/panel_preview_snap_setting.yy",},}, {"id":{"name":"node_strand_sim","path":"scripts/node_strand_sim/node_strand_sim.yy",},}, + {"id":{"name":"sh_edge_shade_convert","path":"shaders/sh_edge_shade_convert/sh_edge_shade_convert.yy",},}, {"id":{"name":"sh_d3d_extrude_extends","path":"shaders/sh_d3d_extrude_extends/sh_d3d_extrude_extends.yy",},}, {"id":{"name":"scrollBox","path":"scripts/scrollBox/scrollBox.yy",},}, {"id":{"name":"o_dialog_exit","path":"objects/o_dialog_exit/o_dialog_exit.yy",},}, @@ -841,6 +845,7 @@ {"id":{"name":"s_node_pb_fx_strip","path":"sprites/s_node_pb_fx_strip/s_node_pb_fx_strip.yy",},}, {"id":{"name":"s_node_rigidSim_global","path":"sprites/s_node_rigidSim_global/s_node_rigidSim_global.yy",},}, {"id":{"name":"sh_channel_G_grey","path":"shaders/sh_channel_G_grey/sh_channel_G_grey.yy",},}, + {"id":{"name":"sh_corner_iterate","path":"shaders/sh_corner_iterate/sh_corner_iterate.yy",},}, {"id":{"name":"display_screenshot","path":"extensions/display_screenshot/display_screenshot.yy",},}, {"id":{"name":"node_strand_sim_inline","path":"scripts/node_strand_sim_inline/node_strand_sim_inline.yy",},}, {"id":{"name":"node_path_map","path":"scripts/node_path_map/node_path_map.yy",},}, @@ -1582,6 +1587,7 @@ {"id":{"name":"patreon_email_check","path":"scripts/patreon_email_check/patreon_email_check.yy",},}, {"id":{"name":"s_node_solid","path":"sprites/s_node_solid/s_node_solid.yy",},}, {"id":{"name":"s_node_fluidSim_vortex","path":"sprites/s_node_fluidSim_vortex/s_node_fluidSim_vortex.yy",},}, + {"id":{"name":"sh_edge_shade_extract","path":"shaders/sh_edge_shade_extract/sh_edge_shade_extract.yy",},}, {"id":{"name":"string_hexadecimal","path":"scripts/string_hexadecimal/string_hexadecimal.yy",},}, {"id":{"name":"s_node_camera","path":"sprites/s_node_camera/s_node_camera.yy",},}, {"id":{"name":"node_random_tile","path":"scripts/node_random_tile/node_random_tile.yy",},}, @@ -1804,6 +1810,7 @@ {"id":{"name":"node_group_input","path":"scripts/node_group_input/node_group_input.yy",},}, {"id":{"name":"fd_rectangle_set_material_dissipation_type","path":"scripts/fd_rectangle_set_material_dissipation_type/fd_rectangle_set_material_dissipation_type.yy",},}, {"id":{"name":"s_node_gradient_shift","path":"sprites/s_node_gradient_shift/s_node_gradient_shift.yy",},}, + {"id":{"name":"node_blobify","path":"scripts/node_blobify/node_blobify.yy",},}, {"id":{"name":"node_cache_array","path":"scripts/node_cache_array/node_cache_array.yy",},}, {"id":{"name":"node_array_convolute","path":"scripts/node_array_convolute/node_array_convolute.yy",},}, {"id":{"name":"sh_channel_A_grey","path":"shaders/sh_channel_A_grey/sh_channel_A_grey.yy",},}, @@ -1883,6 +1890,7 @@ {"id":{"name":"node_color_replacement","path":"scripts/node_color_replacement/node_color_replacement.yy",},}, {"id":{"name":"path_reader","path":"scripts/path_reader/path_reader.yy",},}, {"id":{"name":"__node_3d_repeat","path":"scripts/__node_3d_repeat/__node_3d_repeat.yy",},}, + {"id":{"name":"node_edge_shade","path":"scripts/node_edge_shade/node_edge_shade.yy",},}, {"id":{"name":"point_direction_positive","path":"scripts/point_direction_positive/point_direction_positive.yy",},}, {"id":{"name":"s_node_fluidSim_add_fluid","path":"sprites/s_node_fluidSim_add_fluid/s_node_fluidSim_add_fluid.yy",},}, {"id":{"name":"sh_replace_color","path":"shaders/sh_replace_color/sh_replace_color.yy",},}, @@ -2107,6 +2115,7 @@ {"id":{"name":"s_node_pb_fx_hash","path":"sprites/s_node_pb_fx_hash/s_node_pb_fx_hash.yy",},}, {"id":{"name":"__node_PCX","path":"scripts/__node_PCX/__node_PCX.yy",},}, {"id":{"name":"draw_UI_scale","path":"scripts/draw_UI_scale/draw_UI_scale.yy",},}, + {"id":{"name":"sh_blobify","path":"shaders/sh_blobify/sh_blobify.yy",},}, {"id":{"name":"s_node_strandSim_update","path":"sprites/s_node_strandSim_update/s_node_strandSim_update.yy",},}, {"id":{"name":"async_functions","path":"scripts/async_functions/async_functions.yy",},}, {"id":{"name":"s_node_RGB_combine","path":"sprites/s_node_RGB_combine/s_node_RGB_combine.yy",},}, @@ -2162,6 +2171,7 @@ {"id":{"name":"node_text_file_write","path":"scripts/node_text_file_write/node_text_file_write.yy",},}, {"id":{"name":"sh_lum2alpha","path":"shaders/sh_lum2alpha/sh_lum2alpha.yy",},}, {"id":{"name":"button","path":"scripts/button/button.yy",},}, + {"id":{"name":"sh_edge_shade_apply","path":"shaders/sh_edge_shade_apply/sh_edge_shade_apply.yy",},}, {"id":{"name":"s_node_3d_sphere","path":"sprites/s_node_3d_sphere/s_node_3d_sphere.yy",},}, {"id":{"name":"fd_rectangle_replace_velocity","path":"scripts/fd_rectangle_replace_velocity/fd_rectangle_replace_velocity.yy",},}, {"id":{"name":"s_node_group_thumbnail","path":"sprites/s_node_group_thumbnail/s_node_group_thumbnail.yy",},}, diff --git a/fonts/_f_sdf/_f_sdf.old.png b/fonts/_f_sdf/_f_sdf.old.png index 662ca3502..15dbd80d0 100644 Binary files a/fonts/_f_sdf/_f_sdf.old.png and b/fonts/_f_sdf/_f_sdf.old.png differ diff --git a/fonts/_f_sdf/_f_sdf.png b/fonts/_f_sdf/_f_sdf.png index b8d1848ff..9f12ae0cb 100644 Binary files a/fonts/_f_sdf/_f_sdf.png and b/fonts/_f_sdf/_f_sdf.png differ diff --git a/fonts/_f_sdf_medium/_f_sdf_medium.old.png b/fonts/_f_sdf_medium/_f_sdf_medium.old.png index ef14213de..fd2587d20 100644 Binary files a/fonts/_f_sdf_medium/_f_sdf_medium.old.png and b/fonts/_f_sdf_medium/_f_sdf_medium.old.png differ diff --git a/fonts/_f_sdf_medium/_f_sdf_medium.png b/fonts/_f_sdf_medium/_f_sdf_medium.png index 5ff95d22e..f8fd0a2b8 100644 Binary files a/fonts/_f_sdf_medium/_f_sdf_medium.png and b/fonts/_f_sdf_medium/_f_sdf_medium.png differ diff --git a/scripts/__VFX/__VFX.gml b/scripts/__VFX/__VFX.gml index 889ae9ade..035e1ae5b 100644 --- a/scripts/__VFX/__VFX.gml +++ b/scripts/__VFX/__VFX.gml @@ -10,14 +10,23 @@ enum PARTICLE_BLEND_MODE { additive } +enum PARTICLE_RENDER_TYPE { + surface, + line, +} + function __part(_node) constructor { seed = irandom(99999); node = _node; active = false; - surf = noone; - arr_type = 0; + /////////////////////// Lifespans /////////////////////// + life = 0; + life_total = 0; + life_incr = 0; + step_int = 0; + /////////////////////// Transforms /////////////////////// prevx = 0; prevy = 0; x = 0; @@ -30,12 +39,6 @@ function __part(_node) constructor { x_history = []; y_history = []; - drawx = 0; - drawy = 0; - drawrot = 0; - drawsx = 0; - drawsy = 0; - accel = 0; spVec = [ 0, 0 ]; @@ -48,26 +51,47 @@ function __part(_node) constructor { scy = 1; sc_sx = 1; sc_sy = 1; - sct = CURVE_DEF_11; + sct = noone; + + scx_history = []; + scy_history = []; rot = 0; follow = false; rot_s = 0; + path = noone; + pathIndex = 0; + pathPos = new __vec2(); + pathDiv = noone; + + /////////////////////// Render /////////////////////// + render_type = PARTICLE_RENDER_TYPE.surface; + + surf = noone; + arr_type = 0; + + drawx = 0; + drawy = 0; + drawrot = 0; + drawsx = 0; + drawsy = 0; + col = -1; blend = c_white; alp = 1; alp_draw = alp; alp_fade = 0; - life = 0; - life_total = 0; - life_incr = 0; - step_int = 0; + blend_history = []; + alp_history = []; anim_speed = 1; anim_end = ANIM_END_ACTION.loop; + line_draw = 1; + + /////////////////////// Physics /////////////////////// ground = false; ground_y = 0; ground_bounce = 0; @@ -78,11 +102,6 @@ function __part(_node) constructor { frame = 0; - path = noone; - pathIndex = 0; - pathPos = new __vec2(); - pathDiv = noone; - static reset = function() { #region INLINE @@ -95,10 +114,10 @@ function __part(_node) constructor { static create = function(_surf, _x, _y, _life) { #region INLINE - active = true; - surf = _surf; - x = _x; - y = _y; + active = true; + surf = _surf; + x = _x; + y = _y; drawx = x; drawy = y; @@ -108,9 +127,13 @@ function __part(_node) constructor { life_total = life; if(node.onPartCreate != noone) node.onPartCreate(self); - trailLife = 0; - x_history = array_create(life); - y_history = array_create(life); + trailLife = 0; + x_history = array_create(life); + y_history = array_create(life); + scx_history = array_create(life); + scy_history = array_create(life); + blend_history = array_create(life); + alp_history = array_create(life); } #endregion static setPhysic = function(_sx, _sy, _ac, _g, _gDir, _turn, _turnSpd) { #region @@ -190,7 +213,6 @@ function __part(_node) constructor { static step = function(frame = 0) { #region INLINE - //if(life_total > 0) print($"Step {seed}: {trailLife}"); trailLife++; if(!active) return; @@ -264,6 +286,14 @@ function __part(_node) constructor { static draw = function(exact, surf_w, surf_h) { #region INLINE + if(render_type == PARTICLE_RENDER_TYPE.line) { + var _trail_ed = min(life_incr, life_total); + var _trail_st = max(0, trailLife - line_draw); + var _trail_len = _trail_ed - _trail_st; + + if(_trail_len <= 0) return; + } + var ss = surf; var lifeRat = 1 - life / life_total; @@ -305,6 +335,9 @@ function __part(_node) constructor { scy = 1; } + scx_history[life_incr - 1] = scx; + scy_history[life_incr - 1] = scy; + var _xx, _yy; var s_w = (_useS? surface_get_width(surface) : 1) * scx; var s_h = (_useS? surface_get_height(surface) : 1) * scy; @@ -331,29 +364,68 @@ function __part(_node) constructor { var x1 = _xx + s_w * 1.5; var y1 = _yy + s_h * 1.5; - if(_useS && (x0 > surf_w || y0 > surf_h || x1 < 0 || y1 < 0)) - return; - var cc = (col == -1)? c_white : col.eval(lifeRat); if(blend != c_white) cc = colorMultiply(blend, cc); alp_draw = alp * (alp_fade == noone? 1 : alp_fade.get(lifeRat)) * _color_get_alpha(cc); - if(_useS) draw_surface_ext(surface, _xx, _yy, scx, scy, drawrot, cc, alp_draw); - else { - var ss = round(min(scx, scy)); - if(round(ss) == 0) return; - - var _s = shader_current(); - shader_reset(); - - draw_set_color(cc); - draw_set_alpha(alp_draw); - - dynaSurf_circle_fill(_xx, _yy, exact? round(ss) : ss); - - draw_set_alpha(1); - - shader_set(_s); + blend_history[life_incr - 1] = cc; + alp_history[life_incr - 1] = alp_draw; + + if(_useS && (x0 > surf_w || y0 > surf_h || x1 < 0 || y1 < 0)) + return; + + switch(render_type) { + case PARTICLE_RENDER_TYPE.surface : + if(_useS) draw_surface_ext(surface, _xx, _yy, scx, scy, drawrot, cc, alp_draw); + else { + var ss = round(min(scx, scy)); + if(round(ss) == 0) return; + + var _s = shader_current(); + shader_reset(); + + draw_set_color(cc); + draw_set_alpha(alp_draw); + dynaSurf_circle_fill(_xx, _yy, exact? round(ss) : ss); + draw_set_alpha(1); + + shader_set(_s); + } + break; + + case PARTICLE_RENDER_TYPE.line : + var _ox, _nx, _oy, _ny; + var _osx, _nsx, _osy, _nsy; + var _oc, _nc, _oa, _na; + + for( var j = 0; j < _trail_len; j++ ) { + var _index = _trail_st + j; + + _nx = x_history[ _index]; + _ny = y_history[ _index]; + _nsx = scx_history[ _index]; + _nsy = scy_history[ _index]; + _nc = blend_history[_index]; + _na = alp_history[ _index]; + + if(j) { + draw_set_color(_nc); + draw_set_alpha(_na); + if(_osx == 1 && _nsx == 1) draw_line(_ox, _oy, _nx, _ny); + else if(_osx == _nsx) draw_line_width(_ox, _oy, _nx, _ny, _osx); + else draw_line_width2(_ox, _oy, _nx, _ny, _osx, _nsx, false); + draw_set_alpha(1); + } + + _ox = _nx ; + _oy = _ny ; + _osx = _nsx; + _osy = _nsy; + _oc = _nc ; + _oa = _na ; + } + + break; } } #endregion diff --git a/scripts/_node_VFX_spawner/_node_VFX_spawner.gml b/scripts/_node_VFX_spawner/_node_VFX_spawner.gml index e9b7da0c9..52352a695 100644 --- a/scripts/_node_VFX_spawner/_node_VFX_spawner.gml +++ b/scripts/_node_VFX_spawner/_node_VFX_spawner.gml @@ -172,7 +172,7 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co ["Scale", true], 10, 17, 11, ["Wiggles", true], 20, 41, 42, 43, ["Color", true], 12, 28, 13, 14, - ["Render", true], 21 + ["Render", true], 21, ]; attributes.part_amount = 512; diff --git a/scripts/array_functions/array_functions.gml b/scripts/array_functions/array_functions.gml index 33e4419df..6e5661a1f 100644 --- a/scripts/array_functions/array_functions.gml +++ b/scripts/array_functions/array_functions.gml @@ -268,4 +268,22 @@ function array_verify(arr, length) { #region array_resize(arr, length); return arr; +} #endregion + +function array_insert_after(arr, before, values) { #region + INLINE + + var _ind = array_find(arr, before) + 1; + + for( var i = 0, n = array_length(values); i < n; i++ ) + array_insert(arr, _ind + i, values[i]); +} #endregion + +function array_insert_before(arr, before, values) { #region + INLINE + + var _ind = array_find(arr, before); + + for( var i = 0, n = array_length(values); i < n; i++ ) + array_insert(arr, _ind + i, values[i]); } #endregion \ No newline at end of file diff --git a/scripts/blurSurface/blurSurface.gml b/scripts/blurSurface/blurSurface.gml index 73af6067a..907dc6202 100644 --- a/scripts/blurSurface/blurSurface.gml +++ b/scripts/blurSurface/blurSurface.gml @@ -36,20 +36,23 @@ function surface_apply_gaussian(surface, size, bg = false, bg_c = c_white, sampl static uni_ovr = shader_get_uniform(sh_blur_gaussian, "overrideColor"); static uni_ovc = shader_get_uniform(sh_blur_gaussian, "overColor"); - var format = surface_get_format(surface) - __blur_hori = surface_verify(__blur_hori, surface_get_width_safe(surface), surface_get_height_safe(surface), format); - __blur_vert = surface_verify(__blur_vert, surface_get_width_safe(surface), surface_get_height_safe(surface), format); + var format = surface_get_format(surface); + var _sw = surface_get_width_safe(surface); + var _sh = surface_get_height_safe(surface); + + __blur_hori = surface_verify(__blur_hori, _sw, _sh, format); + __blur_vert = surface_verify(__blur_vert, _sw, _sh, format); size = min(size, 128); var gau_array = __gaussian_get_kernel(size); - BLEND_OVERRIDE; + BLEND_OVERRIDE gpu_set_tex_filter(true); surface_set_target(__blur_hori); draw_clear_alpha(bg_c, bg); shader_set(sh_blur_gaussian); - shader_set_uniform_f_array_safe(uni_dim, [ surface_get_width_safe(surface), surface_get_height_safe(surface) ]); + shader_set_uniform_f_array_safe(uni_dim, [ _sw, _sh ]); shader_set_uniform_f_array_safe(uni_wei, gau_array); shader_set_uniform_i(uni_bor, sampleMode); diff --git a/scripts/distribution_function/distribution_function.gml b/scripts/distribution_function/distribution_function.gml index 3ccc58292..6a162a172 100644 --- a/scripts/distribution_function/distribution_function.gml +++ b/scripts/distribution_function/distribution_function.gml @@ -1,4 +1,4 @@ -function get_point_from_dist(distMap, attempt = 4) { +function get_point_from_dist(distMap, attempt = 4) { #region if(!is_surface(distMap)) return noone; var w = surface_get_width_safe(distMap); @@ -20,38 +20,40 @@ function get_point_from_dist(distMap, attempt = 4) { } return res; -} +} #endregion -function get_points_from_dist(distMap, amount, seed = 0, attempt = 8) { +function get_points_from_dist(distMap, amount, seed = 0, attempt = 8) { #region if(amount < 1) return []; if(!is_surface(distMap)) return []; - var surf = surface_create_valid(amount, 1); + //print($"===== Get points from dist {amount} ====="); - surface_set_target(surf); - DRAW_CLEAR - BLEND_OVERRIDE; - shader_set(sh_sample_points); - shader_set_uniform_f(shader_get_uniform(sh_sample_points, "dimension"), - surface_get_width_safe(distMap) / amount, surface_get_height_safe(distMap)); - shader_set_uniform_i(shader_get_uniform(sh_sample_points, "attempt"), attempt); - shader_set_uniform_f(shader_get_uniform(sh_sample_points, "seed"), seed); + if(!struct_has(self, "__dist_surf")) + __dist_surf = surface_create_valid(amount, 1); + else + __dist_surf = surface_verify(__dist_surf, amount, 1); + + var _sw = surface_get_width_safe(distMap); + var _sh = surface_get_height_safe(distMap); + + surface_set_shader(__dist_surf, sh_sample_points); + shader_set_f("dimension", _sw / amount, _sh); + shader_set_i("attempt", attempt); + shader_set_f("seed", seed); - draw_surface_stretched_safe(distMap, 0, 0, amount, 1); - shader_reset(); - BLEND_NORMAL; - surface_reset_target(); + draw_surface_stretched_safe(distMap, 0, 0, amount, 1); + surface_reset_shader(); var b = buffer_create(amount * 4, buffer_fixed, 4); - buffer_get_surface(b, surf, 0); + buffer_get_surface(b, __dist_surf, 0); buffer_seek(b, buffer_seek_start, 0); var pos = array_create(amount); - var w = surface_get_width_safe(distMap); - var h = surface_get_height_safe(distMap); for( var i = 0; i < amount; i++ ) { + //print($" Reading buffer {i}"); var cc = buffer_read(b, buffer_u32); + if(cc == 0) pos[i] = 0; else { var _x = _color_get_red(cc); @@ -62,7 +64,6 @@ function get_points_from_dist(distMap, amount, seed = 0, attempt = 8) { } buffer_delete(b); - surface_free(surf); return pos; -} \ No newline at end of file +} #endregion \ No newline at end of file diff --git a/scripts/node_VFX_renderer/node_VFX_renderer.gml b/scripts/node_VFX_renderer/node_VFX_renderer.gml index 55e85ab7c..0a311ac14 100644 --- a/scripts/node_VFX_renderer/node_VFX_renderer.gml +++ b/scripts/node_VFX_renderer/node_VFX_renderer.gml @@ -12,7 +12,17 @@ function Node_VFX_Renderer(_x, _y, _group = noone) : Node(_x, _y, _group) constr inputs[| 1] = nodeValue("Round position", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true, "Round position to the closest integer value to avoid jittering.") .rejectArray(); - input_display_list = [ 0, 1 ]; + inputs[| 2] = nodeValue("Render Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, PARTICLE_RENDER_TYPE.surface ) + .setDisplay(VALUE_DISPLAY.enum_button, [ "Surface", "Line" ]) + .rejectArray(); + + inputs[| 3] = nodeValue("Line life", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4 ) + .rejectArray(); + + input_display_list = [ + ["Output", false], 0, + ["Rendering", false], 1, 2, 3, + ]; setIsDynamicInput(2); @@ -43,10 +53,11 @@ function Node_VFX_Renderer(_x, _y, _group = noone) : Node(_x, _y, _group) constr var _l = ds_list_create(); var _disp = []; - for( var i = 0; i < input_fix_len ; i ++ ) { + for( var i = 0; i < input_display_len; i++ ) + array_push(_disp, input_display_list[i]); + + for( var i = 0; i < input_fix_len; i++ ) ds_list_add(_l, inputs[| i]); - array_push(_disp, i); - } for( var i = input_fix_len; i < ds_list_size(inputs); i += data_length ) { if(!inputs[| i + 1].value_from) continue; @@ -75,9 +86,12 @@ function Node_VFX_Renderer(_x, _y, _group = noone) : Node(_x, _y, _group) constr } #endregion static step = function() { #region - var _dim = getInputData(0); - var _outSurf = outputs[| 0].getValue(); + var _dim = getInputData(0); + var _typ = getInputData(2); + inputs[| 3].setVisible(_typ == PARTICLE_RENDER_TYPE.line); + + var _outSurf = outputs[| 0].getValue(); _outSurf = surface_verify(_outSurf, _dim[0], _dim[1], attrDepth()); outputs[| 0].setValue(_outSurf); @@ -91,18 +105,21 @@ function Node_VFX_Renderer(_x, _y, _group = noone) : Node(_x, _y, _group) constr return; } - var _dim = inputs[| 0].getValue(_time); - var _exact = inputs[| 1].getValue(_time); + var _dim = inputs[| 0].getValue(_time); + var _exact = inputs[| 1].getValue(_time); + var _type = inputs[| 2].getValue(_time); + var _llife = inputs[| 3].getValue(_time); - var _outSurf = outputs[| 0].getValue(); - - _outSurf = surface_verify(_outSurf, _dim[0], _dim[1], attrDepth()); + var _outSurf = outputs[| 0].getValue(); + _outSurf = surface_verify(_outSurf, _dim[0], _dim[1], attrDepth()); outputs[| 0].setValue(_outSurf); - surface_set_shader(_outSurf); - shader_set_interpolation(_outSurf); - var surf_w = surface_get_width_safe(_outSurf); - var surf_h = surface_get_height_safe(_outSurf); + var surf_w = surface_get_width_safe(_outSurf); + var surf_h = surface_get_height_safe(_outSurf); + + surface_set_shader(_outSurf, _type == PARTICLE_RENDER_TYPE.surface? sh_sample : noone); + if(_type == PARTICLE_RENDER_TYPE.surface) + shader_set_interpolation(_outSurf); for( var i = input_fix_len; i < ds_list_size(inputs) - 1; i += data_length ) { var blend = inputs[| i + 0].getValue(_time); @@ -119,9 +136,11 @@ function Node_VFX_Renderer(_x, _y, _group = noone) : Node(_x, _y, _group) constr for(var j = 0; j < array_length(parts); j++) for(var k = 0; k < array_length(parts[j]); k++) { - if(!parts[j][k].active) continue; - parts[j][k].draw(_exact, surf_w, surf_h); - //if(shader_current() != sh_sample) __shader_set = false; + parts[j][k].render_type = _type; + parts[j][k].line_draw = _llife; + + if(parts[j][k].active || _type) + parts[j][k].draw(_exact, surf_w, surf_h); } } diff --git a/scripts/node_VFX_renderer_output/node_VFX_renderer_output.gml b/scripts/node_VFX_renderer_output/node_VFX_renderer_output.gml index f3b933d16..c24f8b5f7 100644 --- a/scripts/node_VFX_renderer_output/node_VFX_renderer_output.gml +++ b/scripts/node_VFX_renderer_output/node_VFX_renderer_output.gml @@ -17,7 +17,17 @@ function Node_VFX_Renderer_Output(_x, _y, _group = noone) : Node_Group_Output(_x inputs[| 1] = nodeValue("Round position", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true, "Round position to the closest integer value to avoid jittering.") .rejectArray(); - input_display_list = [ 0, 1 ]; + inputs[| 2] = nodeValue("Render Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, PARTICLE_RENDER_TYPE.surface ) + .setDisplay(VALUE_DISPLAY.enum_button, [ "Surface", "Line" ]) + .rejectArray(); + + inputs[| 3] = nodeValue("Line life", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4 ) + .rejectArray(); + + input_display_list = [ + ["Output", false], 0, + ["Rendering", false], 1, 2, 3, + ]; setIsDynamicInput(2); @@ -63,10 +73,11 @@ function Node_VFX_Renderer_Output(_x, _y, _group = noone) : Node_Group_Output(_x var _l = ds_list_create(); var _disp = []; - for( var i = 0; i < input_fix_len ; i ++ ) { + for( var i = 0; i < input_display_len ; i ++ ) + array_push(_disp, input_display_list[i]); + + for( var i = 0; i < input_fix_len; i++ ) ds_list_add(_l, inputs[| i]); - array_push(_disp, i); - } for( var i = input_fix_len; i < ds_list_size(inputs); i += data_length ) { if(!inputs[| i + 1].value_from) continue; @@ -95,10 +106,13 @@ function Node_VFX_Renderer_Output(_x, _y, _group = noone) : Node_Group_Output(_x } #endregion static step = function() { #region - var _dim = getInputData(0); - var _outSurf = outParent.getValue(); + var _dim = getInputData(0); + var _typ = getInputData(2); - _outSurf = surface_verify(_outSurf, _dim[0], _dim[1], attrDepth()); + inputs[| 3].setVisible(_typ == PARTICLE_RENDER_TYPE.line); + + var _outSurf = outParent.getValue(); + _outSurf = surface_verify(_outSurf, _dim[0], _dim[1], attrDepth()); outParent.setValue(_outSurf); if(previewing && is_instanceof(group, Node_VFX_Group)) @@ -112,18 +126,22 @@ function Node_VFX_Renderer_Output(_x, _y, _group = noone) : Node_Group_Output(_x return; } - var _dim = inputs[| 0].getValue(_time); - var _exact = inputs[| 1].getValue(_time); + var _dim = inputs[| 0].getValue(_time); + var _exact = inputs[| 1].getValue(_time); + var _type = inputs[| 2].getValue(_time); + var _llife = inputs[| 3].getValue(_time); var _outSurf = outParent.getValue(); _outSurf = surface_verify(_outSurf, _dim[0], _dim[1], attrDepth()); outParent.setValue(_outSurf); - surface_set_shader(_outSurf); - shader_set_interpolation(_outSurf); - var surf_w = surface_get_width_safe(_outSurf); - var surf_h = surface_get_height_safe(_outSurf); + var surf_w = surface_get_width_safe(_outSurf); + var surf_h = surface_get_height_safe(_outSurf); + + surface_set_shader(_outSurf, _type == PARTICLE_RENDER_TYPE.surface? sh_sample : noone); + if(_type == PARTICLE_RENDER_TYPE.surface) + shader_set_interpolation(_outSurf); for( var i = input_fix_len; i < ds_list_size(inputs) - 1; i += data_length ) { var blend = inputs[| i + 0].getValue(_time); @@ -140,9 +158,11 @@ function Node_VFX_Renderer_Output(_x, _y, _group = noone) : Node_Group_Output(_x for(var j = 0; j < array_length(parts); j++) for(var k = 0; k < array_length(parts[j]); k++) { - if(!parts[j][k].active) continue; + parts[j][k].render_type = _type; + parts[j][k].line_draw = _llife; - parts[j][k].draw(_exact, surf_w, surf_h); + if(parts[j][k].active || _type) + parts[j][k].draw(_exact, surf_w, surf_h); } } diff --git a/scripts/node_array_rearrange/node_array_rearrange.gml b/scripts/node_array_rearrange/node_array_rearrange.gml index 486c6e41e..275c61cc7 100644 --- a/scripts/node_array_rearrange/node_array_rearrange.gml +++ b/scripts/node_array_rearrange/node_array_rearrange.gml @@ -11,7 +11,7 @@ function Node_Array_Rearrange(_x, _y, _group = noone) : Node(_x, _y, _group) con outputs[| 0] = nodeValue("Array", self, JUNCTION_CONNECT.output, VALUE_TYPE.any, 0) .setArrayDepth(1); - type = VALUE_TYPE.any; + type = VALUE_TYPE.any; ordering = noone; order_i = noone; order_y = 0; @@ -46,6 +46,8 @@ function Node_Array_Rearrange(_x, _y, _group = noone) : Node(_x, _y, _group) con if(_m[1] > _ffy) _hov = i; + var _ffcx = _fx + _w / 2; + switch(inputs[| 0].type) { case VALUE_TYPE.surface : var _sw = surface_get_width_safe(_val); @@ -55,17 +57,17 @@ function Node_Array_Rearrange(_x, _y, _group = noone) : Node(_x, _y, _group) con _sw *= _ss; _sh *= _ss; - var _sx = _ffx + _fsh / 2 - _sw / 2; - var _sy = _ffy + _fsh / 2 - _sh / 2; + var _sx = _ffcx - _sw / 2; + var _sy = _ffy + _fsh / 2 - _sh / 2; - draw_sprite_stretched_ext(THEME.timeline_node, 0, _ffx, _ffy, _fsh, _fsh, merge_color(COLORS._main_icon_dark, COLORS.node_composite_bg, 0.25), 1); + draw_sprite_stretched_ext(THEME.timeline_node, 0, _ffcx - _fsh / 2, _ffy, _fsh, _fsh, merge_color(COLORS._main_icon_dark, COLORS.node_composite_bg, 0.25), 1); draw_surface_ext_safe(_val, _sx, _sy, _ss, _ss); draw_set_color(COLORS.node_composite_bg); break; default : - draw_set_text(f_p2, fa_left, fa_center, COLORS._main_text); - draw_text(_ffx, _ffy + _fsh / 2, string(_val)); + draw_set_text(f_p2, fa_center, fa_center, COLORS._main_text); + draw_text(_ffcx, _ffy + _fsh / 2, string(_val)); break; } @@ -84,8 +86,10 @@ function Node_Array_Rearrange(_x, _y, _group = noone) : Node(_x, _y, _group) con array_insert(_ord, _hov, ordering); inputs[| 1].setValue(_ord); - if(mouse_release(mb_left)) + if(mouse_release(mb_left)) { ordering = noone; + order_i = noone; + } } else order_y = lerp_float(order_y, 0, 5); @@ -94,7 +98,7 @@ function Node_Array_Rearrange(_x, _y, _group = noone) : Node(_x, _y, _group) con input_display_list = [ 0, ["Rearranger", false], rearranger ]; - static onValueFromUpdate = function(index = 0) { + static onValueFromUpdate = function(index = 0) { #region if(LOADING || APPENDING) return; var _arr = inputs[| 0].getValue(); @@ -102,9 +106,9 @@ function Node_Array_Rearrange(_x, _y, _group = noone) : Node(_x, _y, _group) con for( var i = 0, n = array_length(_arr); i < n; i++ ) _val[i] = i; inputs[| 1].setValue(_val); - } + } #endregion - static step = function() { + static step = function() { #region var _typ = VALUE_TYPE.any; if(inputs[| 0].value_from != noone) _typ = inputs[| 0].value_from.type; @@ -124,9 +128,9 @@ function Node_Array_Rearrange(_x, _y, _group = noone) : Node(_x, _y, _group) con type = _typ; will_setHeight = true; } - } + } #endregion - static update = function(frame = CURRENT_FRAME) { + static update = function(frame = CURRENT_FRAME) { #region var _arr = getInputData(0); var _ord = getInputData(1); @@ -139,5 +143,5 @@ function Node_Array_Rearrange(_x, _y, _group = noone) : Node(_x, _y, _group) con } outputs[| 0].setValue(res); - } + } #endregion } \ No newline at end of file diff --git a/scripts/node_blobify/node_blobify.gml b/scripts/node_blobify/node_blobify.gml new file mode 100644 index 000000000..4752f19a9 --- /dev/null +++ b/scripts/node_blobify/node_blobify.gml @@ -0,0 +1,38 @@ +function Node_Blobify(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { + name = "Blobify"; + + inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + + inputs[| 1] = nodeValue("Active", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); + + inputs[| 2] = nodeValue("Radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 3); + + inputs[| 3] = nodeValue("Threshold", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5) + .setDisplay(VALUE_DISPLAY.slider); + + active_index = 1; + + input_display_list = [ 1, + ["Surface", false], 0, + ["Blobify", false], 2, 3, + ] + + outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); + + attribute_surface_depth(); + + static processData = function(_outSurf, _data, _output_index, _array_index) { #region + var _rad = _data[2]; + var _thr = _data[3]; + + surface_set_shader(_outSurf, sh_blobify); + shader_set_f("dimension", surface_get_dimension(_data[0])); + shader_set_f("radius", _rad); + shader_set_f("threshold", _thr); + + draw_surface_safe(_data[0]); + surface_reset_shader(); + + return _outSurf; + } #endregion +} \ No newline at end of file diff --git a/scripts/node_blobify/node_blobify.yy b/scripts/node_blobify/node_blobify.yy new file mode 100644 index 000000000..1b2e2959a --- /dev/null +++ b/scripts/node_blobify/node_blobify.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_blobify", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "blur", + "path": "folders/nodes/data/filter/blur.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_blobify/node_bw.gml b/scripts/node_blobify/node_bw.gml new file mode 100644 index 000000000..af27efe62 --- /dev/null +++ b/scripts/node_blobify/node_bw.gml @@ -0,0 +1,37 @@ +function Node_create_BW(_x, _y) { + var node = new Node_BW(_x, _y); + ds_list_add(PANEL_GRAPH.nodes_list, node); + return node; +} + +function Node_BW(_x, _y) : Node_Processor(_x, _y) constructor { + name = "BW"; + + uniform_exp = shader_get_uniform(sh_bw, "brightness"); + uniform_con = shader_get_uniform(sh_bw, "contrast"); + + inputs[| 0] = new NodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + inputs[| 1] = new NodeValue(1, "Brightness", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0); + inputs[| 1].setDisplay(VALUE_DISPLAY.slider, [ -1, 1, 0.01]); + + inputs[| 2] = new NodeValue(2, "Contrast", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1); + inputs[| 2].setDisplay(VALUE_DISPLAY.slider, [ -1, 4, 0.01]); + + outputs[| 0] = new NodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, surface_create(1, 1)); + + function process_data(_inSurf, _outSurf, _data) { + var _exp = _data[1]; + var _con = _data[2]; + surface_set_target(_outSurf); + draw_clear_alpha(0, 0); + + shader_set(sh_bw); + shader_set_uniform_f(uniform_exp, _exp); + shader_set_uniform_f(uniform_con, _con); + draw_surface(_inSurf, 0, 0); + shader_reset(); + surface_reset_target(); + + return _outSurf; + } +} \ No newline at end of file diff --git a/scripts/node_blobify/node_bw.yy b/scripts/node_blobify/node_bw.yy new file mode 100644 index 000000000..6d2681493 --- /dev/null +++ b/scripts/node_blobify/node_bw.yy @@ -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", +} \ No newline at end of file diff --git a/scripts/node_blobify/node_color_adjustment.yy b/scripts/node_blobify/node_color_adjustment.yy new file mode 100644 index 000000000..8df16cc8c --- /dev/null +++ b/scripts/node_blobify/node_color_adjustment.yy @@ -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", +} \ No newline at end of file diff --git a/scripts/node_blobify/node_color_replacement.yy b/scripts/node_blobify/node_color_replacement.yy new file mode 100644 index 000000000..024aa6a80 --- /dev/null +++ b/scripts/node_blobify/node_color_replacement.yy @@ -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", +} \ No newline at end of file diff --git a/scripts/node_blobify/node_greyscale.yy b/scripts/node_blobify/node_greyscale.yy new file mode 100644 index 000000000..ee372977e --- /dev/null +++ b/scripts/node_blobify/node_greyscale.yy @@ -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", +} \ No newline at end of file diff --git a/scripts/node_blobify/node_outline.yy b/scripts/node_blobify/node_outline.yy new file mode 100644 index 000000000..86468bc09 --- /dev/null +++ b/scripts/node_blobify/node_outline.yy @@ -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", +} \ No newline at end of file diff --git a/scripts/node_data/node_data.gml b/scripts/node_data/node_data.gml index e17a70c46..418bf13b2 100644 --- a/scripts/node_data/node_data.gml +++ b/scripts/node_data/node_data.gml @@ -86,7 +86,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) : __Node_Base(_x draw_padding = 4; auto_height = true; - display_parameter = {}; + display_parameter = new connectionParameter(); draw_name = true; draggable = true; diff --git a/scripts/node_dither/node_dither.gml b/scripts/node_dither/node_dither.gml index 3d13f946a..58dcee0b8 100644 --- a/scripts/node_dither/node_dither.gml +++ b/scripts/node_dither/node_dither.gml @@ -60,6 +60,14 @@ function Node_Dither(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co static step = function() { #region __step_mask_modifier(); + + var _type = getInputData(2); + var _mode = getInputData(6); + + inputs[| 3].setVisible(_type == 3, _type == 3); + inputs[| 1].setVisible(_mode == 0); + inputs[| 4].setVisible(_mode == 0); + inputs[| 5].setVisible(_mode == 0); } #endregion static processData = function(_outSurf, _data, _output_index, _array_index) { @@ -70,65 +78,41 @@ function Node_Dither(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co var _conMap = _data[5]; var _mode = _data[6]; - var _colors = paletteToArray(_pal); - - shader = _mode? sh_alpha_hash : sh_dither; - uniform_dither_size = shader_get_uniform(shader, "ditherSize"); - uniform_dither = shader_get_uniform(shader, "dither"); - - uniform_dim = shader_get_uniform(shader, "dimension"); - uniform_color = shader_get_uniform(shader, "palette"); - uniform_key = shader_get_uniform(shader, "keys"); - - uniform_constrast = shader_get_uniform(shader, "contrast"); - uniform_con_map_use = shader_get_uniform(shader, "useConMap"); - uniform_con_map = shader_get_sampler_index(shader, "conMap"); - - uniform_map_use = shader_get_uniform(shader, "useMap"); - uniform_map = shader_get_sampler_index(shader, "map"); - uniform_map_dim = shader_get_uniform(shader, "mapDimension"); - - inputs[| 3].setVisible(_typ == 3); - - inputs[| 1].setVisible(_mode == 0); - inputs[| 4].setVisible(_mode == 0); - inputs[| 5].setVisible(_mode == 0); - - surface_set_shader(_outSurf, shader); - shader_set_uniform_f_array_safe(uniform_dim, [ surface_get_width_safe(_data[0]), surface_get_height_safe(_data[0]) ] ); + surface_set_shader(_outSurf, _mode? sh_alpha_hash : sh_dither); + shader_set_f("dimension", surface_get_dimension(_data[0])); switch(_typ) { case 0 : - shader_set_uniform_i(uniform_map_use, 0); - shader_set_uniform_f(uniform_dither_size, 2); - shader_set_uniform_f_array_safe(uniform_dither, dither2); + shader_set_i("useMap", 0); + shader_set_f("ditherSize", 2); + shader_set_f("dither", dither2); break; case 1 : - shader_set_uniform_i(uniform_map_use, 0); - shader_set_uniform_f(uniform_dither_size, 4); - shader_set_uniform_f_array_safe(uniform_dither, dither4); + shader_set_i("useMap", 0); + shader_set_f("ditherSize", 4); + shader_set_f("dither", dither4); break; case 2 : - shader_set_uniform_i(uniform_map_use, 0); - shader_set_uniform_f(uniform_dither_size, 8); - shader_set_uniform_f_array_safe(uniform_dither, dither8); + shader_set_i("useMap", 0); + shader_set_f("ditherSize", 8); + shader_set_f("dither", dither8); break; case 3 : if(is_surface(_map)) { - shader_set_uniform_i(uniform_map_use, 1); - shader_set_uniform_f_array_safe(uniform_map_dim, [ surface_get_width_safe(_map), surface_get_height_safe(_map) ]); - texture_set_stage(uniform_map, surface_get_texture(_map)); + shader_set_i("useMap", 1); + shader_set_f("mapDimension", surface_get_dimension(_map)); + shader_set_surface("map", _map); } break; } if(_mode == 0) { - shader_set_uniform_i(uniform_con_map_use, _conMap == DEF_SURFACE? 0 : 1); - texture_set_stage(uniform_con_map, surface_get_texture(_conMap)); - shader_set_uniform_f(uniform_constrast, _con); - - shader_set_uniform_f_array_safe(uniform_color, _colors); - shader_set_uniform_i(uniform_key, array_length(_pal)); + shader_set_f("contrast", _con); + shader_set_i("useConMap", _conMap != DEF_SURFACE); + shader_set_surface("conMap", surface_get_texture(_conMap)); + + shader_set_f("palette", paletteToArray(_pal)); + shader_set_i("keys", array_length(_pal)); } draw_surface_safe(_data[0]); diff --git a/scripts/node_edge_shade/node_bw.yy b/scripts/node_edge_shade/node_bw.yy new file mode 100644 index 000000000..6d2681493 --- /dev/null +++ b/scripts/node_edge_shade/node_bw.yy @@ -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", +} \ No newline at end of file diff --git a/scripts/node_edge_shade/node_color_adjustment.yy b/scripts/node_edge_shade/node_color_adjustment.yy new file mode 100644 index 000000000..8df16cc8c --- /dev/null +++ b/scripts/node_edge_shade/node_color_adjustment.yy @@ -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", +} \ No newline at end of file diff --git a/scripts/node_edge_shade/node_color_replacement.yy b/scripts/node_edge_shade/node_color_replacement.yy new file mode 100644 index 000000000..024aa6a80 --- /dev/null +++ b/scripts/node_edge_shade/node_color_replacement.yy @@ -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", +} \ No newline at end of file diff --git a/scripts/node_edge_shade/node_edge_shade.gml b/scripts/node_edge_shade/node_edge_shade.gml new file mode 100644 index 000000000..a87bebbfe --- /dev/null +++ b/scripts/node_edge_shade/node_edge_shade.gml @@ -0,0 +1,64 @@ +function Node_Edge_Shade(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { + name = "Edge Shade"; + + inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + + inputs[| 1] = nodeValue("Active", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); + active_index = 1; + + inputs[| 2] = nodeValue("Colors", self, JUNCTION_CONNECT.input, VALUE_TYPE.gradient, new gradientObject( [ c_black, c_white ] )) + .setMappable(3); + + ////////////////////////////////////////////////////////////////////////////////// + + inputs[| 3] = nodeValueMap("Gradient map", self); + + inputs[| 4] = nodeValueGradientRange("Gradient map range", self, inputs[| 2]); + + ////////////////////////////////////////////////////////////////////////////////// + + outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); + + input_display_list = [ 1, + ["Surfaces", false], 0, + ["Effects", false], 2, 3, 4, + ] + + temp_surface = array_create(3); + + attribute_surface_depth(); + + static step = function() { #region + inputs[| 2].mappableStep(); + } #endregion + + static processData = function(_outSurf, _data, _output_index, _array_index) { #region + var _surf = _data[0]; + + 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[0], sh_edge_shade_convert); + shader_set_f("dimension", _dim); + + draw_surface_safe(_data[0]); + surface_reset_shader(); + + surface_set_shader(temp_surface[1], sh_edge_shade_extract); + shader_set_f("dimension", _dim); + + draw_surface_safe(temp_surface[0]); + surface_reset_shader(); + + surface_set_shader(_outSurf, sh_edge_shade_apply); + shader_set_f("dimension", _dim); + shader_set_gradient(_data[2], _data[3], _data[4], inputs[| 2]); + + draw_surface_safe(temp_surface[1]); + surface_reset_shader(); + + return _outSurf; + } #endregion +} \ No newline at end of file diff --git a/scripts/node_edge_shade/node_edge_shade.yy b/scripts/node_edge_shade/node_edge_shade.yy new file mode 100644 index 000000000..91e1bfd13 --- /dev/null +++ b/scripts/node_edge_shade/node_edge_shade.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_edge_shade", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "effects", + "path": "folders/nodes/data/filter/effects.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_edge_shade/node_greyscale.yy b/scripts/node_edge_shade/node_greyscale.yy new file mode 100644 index 000000000..ee372977e --- /dev/null +++ b/scripts/node_edge_shade/node_greyscale.yy @@ -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", +} \ No newline at end of file diff --git a/scripts/node_edge_shade/node_outline.yy b/scripts/node_edge_shade/node_outline.yy new file mode 100644 index 000000000..86468bc09 --- /dev/null +++ b/scripts/node_edge_shade/node_outline.yy @@ -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", +} \ No newline at end of file diff --git a/scripts/node_mk_rain/node_mk_rain.gml b/scripts/node_mk_rain/node_mk_rain.gml index 684a90e4a..7b35e8bcf 100644 --- a/scripts/node_mk_rain/node_mk_rain.gml +++ b/scripts/node_mk_rain/node_mk_rain.gml @@ -37,11 +37,21 @@ function Node_MK_Rain(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c inputs[| 12] = nodeValue("Track extension", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) .setDisplay(VALUE_DISPLAY.slider_range, { range: [ 0, 10, 0.01 ] }); + + inputs[| 13] = nodeValue("Size over lifetime", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11); + + inputs[| 14] = nodeValue("Limited lifespan", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); + + inputs[| 15] = nodeValue("Lifespan", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 1 ], "Lifespan of a droplet as a ratio of the entire animation.") + .setDisplay(VALUE_DISPLAY.slider_range); + + inputs[| 16] = nodeValue("Alpha over lifetime", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_11); input_display_list = [ new Inspector_Sprite(s_MKFX), 0, 8, - ["Shape", false], 9, 3, 4, 10, 11, - ["Effect", false], 2, 1, 7, - ["Render", false], 5, 6, + ["Shape", false], 9, 3, 4, 10, 11, + ["Lifespan", false, 14], 15, 13, 16, + ["Effect", false], 2, 1, 7, + ["Render", false], 5, 6, ]; outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); @@ -70,6 +80,11 @@ function Node_MK_Rain(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c var _text = _data[11]; var _trex = _data[12]; + var _llif = _data[13]; + var _liml = _data[14]; + var _life = _data[15]; + var _alif = _data[16]; + if(!is_surface(_surf)) return _outSurf; if(_shap == 2 && !is_surface(_text)) return _outSurf; @@ -104,10 +119,11 @@ function Node_MK_Rain(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c repeat(_dens) { random_set_seed(_seed); _seed += 100; - var _velRaw = max(1, random_range(_velo[0], _velo[1])); + var _velRaw = random_range(_velo[0], _velo[1]); + _velRaw = max(1, _velRaw); + var _vel = _velRaw < 1? _velRaw : floor(_velRaw); var _vex = _velRaw < 1? 0 : frac(_velRaw); - var _ramo = _vel == 0? 1 : max(1, 1 / _vel); var _rrad = _rad * (1 + _vex); var _r_shf = random_range( -_rad, _rad); @@ -137,34 +153,45 @@ function Node_MK_Rain(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c var _radHy = _radH * _tr_span_y; var _prg = _y_shf + _vel * prg; - _prg = frac(_prg) - 0.5; + _prg = frac(_prg) - 0.5; // -0.5 - 0.5 if(!_1c) draw_set_color(_colr.eval(random(1))); - draw_set_alpha(random_range(_alph[0], _alph[1])); + var _aa = random_range(_alph[0], _alph[1]); - for( var j = 0; j < _ramo; j++ ) { - var _drpX = _rmx - (_prg + j / _ramo) * _radHx * 2; - var _drpY = _rmy - (_prg + j / _ramo) * _radHy * 2; + var _clife = clamp((_prg + 0.5) / random_range(_life[0], _life[1]), 0, 1); + var _scaL = 1; + var _aaL = 1; - switch(_shap) { - case 0 : - var _tr_span_w = _tr_span_x * _drpH; - var _tr_span_h = _tr_span_y * _drpH; + if(_liml) { + _scaL = eval_curve_x(_llif, _clife); + _aaL = eval_curve_x(_alif, _clife); + } + + draw_set_alpha(_aa * _aaL); + + var _drpX = _rmx - _prg * _radHx * 2; + var _drpY = _rmy - _prg * _radHy * 2; + + switch(_shap) { + case 0 : + var _tr_span_w = _tr_span_x * _drpH; // rain drop x span + var _tr_span_h = _tr_span_y * _drpH; // rain drop y span + + var _x0 = _drpX - _tr_span_w; + var _x1 = _x0 + _tr_span_w * 2 * _scaL; - draw_line_width( - _drpX - _tr_span_w, _drpY - _tr_span_h, - _drpX + _tr_span_w, _drpY + _tr_span_h, - _drpW - ); - break; - case 1 : - //draw_circle(round(_drpX), round(_drpY), _drpW, false); - draw_circle(_drpX, _drpY, _drpW, false); - break; - case 2 : - draw_surface_ext(_text, _drpX, _drpY, 1, 1, 0, draw_get_color(), draw_get_alpha()); - break; - } + var _y0 = _drpY - _tr_span_h; + var _y1 = _y0 + _tr_span_h * 2 * _scaL; + + if(_drpW == 1) draw_line( _x0, _y0, _x1, _y1 ); + else draw_line_width( _x0, _y0, _x1, _y1, _drpW ); + break; + case 1 : + draw_circle(_drpX, _drpY, _drpW * _scaL, false); + break; + case 2 : + draw_surface_ext(_text, _drpX, _drpY, _scaL, _scaL, 0, draw_get_color(), draw_get_alpha()); + break; } } diff --git a/scripts/node_noise_ani/node_noise_ani.gml b/scripts/node_noise_ani/node_noise_ani.gml index 6fb5904c5..0f52cf40c 100644 --- a/scripts/node_noise_ani/node_noise_ani.gml +++ b/scripts/node_noise_ani/node_noise_ani.gml @@ -30,9 +30,13 @@ function Node_Noise_Aniso(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou ////////////////////////////////////////////////////////////////////////////////////////////////// + inputs[| 9] = nodeValue("Render mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Blend", "Waterfall" ] ) + input_display_list = [ ["Output", false], 0, - ["Noise", false], 2, 1, 6, 5, 7, 3, 4, 8 + ["Noise", false], 2, 1, 6, 5, 7, 3, 4, 8, + ["Render", false], 9, ]; outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); @@ -63,6 +67,8 @@ function Node_Noise_Aniso(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou shader_set_f_map("noiseY", _data[5], _data[7], inputs[| 5]); shader_set_f_map("angle", _data[4], _data[8], inputs[| 4]); + shader_set_i("mode", _data[9]); + draw_sprite_stretched(s_fx_pixel, 0, 0, 0, _dim[0], _dim[1]); surface_reset_shader(); diff --git a/scripts/node_particle/node_particle.gml b/scripts/node_particle/node_particle.gml index 0a1649b34..400d1d308 100644 --- a/scripts/node_particle/node_particle.gml +++ b/scripts/node_particle/node_particle.gml @@ -18,13 +18,21 @@ function Node_Particle(_x, _y, _group = noone) : Node_VFX_Spawner_Base(_x, _y, _ inputs[| input_len + 3] = nodeValue("Background", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone ) .rejectArray(); + inputs[| input_len + 4] = nodeValue("Render Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, PARTICLE_RENDER_TYPE.surface ) + .setDisplay(VALUE_DISPLAY.enum_button, [ "Surface", "Line" ]) + .rejectArray(); + + inputs[| input_len + 5] = nodeValue("Line life", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4 ) + .rejectArray() + outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); attribute_surface_depth(); attribute_interpolation(); - array_insert(input_display_list, 0, ["Output", true], input_len + 3, input_len + 0); - array_push(input_display_list, input_len + 1, input_len + 2); + array_insert( input_display_list, 0, ["Output", true], input_len + 3, input_len + 0); + array_push( input_display_list, input_len + 1, input_len + 2); + array_insert_before( input_display_list, 21, [ input_len + 4, input_len + 5 ]); def_surface = -1; render_amount = 0; @@ -49,16 +57,24 @@ function Node_Particle(_x, _y, _group = noone) : Node_VFX_Spawner_Base(_x, _y, _ static reLoop = function() { #region var _loop = getInputData(21); + var _type = getInputData(input_len + 4); + if(!_loop) return; for(var i = 0; i < TOTAL_FRAMES; i++) { - runVFX(i, false); + runVFX(i, _type); updateParticleForward(); } seed = getInputData(32); } #endregion + static onStep = function() { #region + var _typ = getInputData(input_len + 4); + + inputs[| input_len + 5].setVisible(_typ == PARTICLE_RENDER_TYPE.line); + } #endregion + static onUpdate = function(frame = CURRENT_FRAME) { #region var _inSurf = getInputData(0); var _dim = getInputData(input_len + 0); @@ -87,11 +103,14 @@ function Node_Particle(_x, _y, _group = noone) : Node_VFX_Spawner_Base(_x, _y, _ var _blend = inputs[| input_len + 2].getValue(_time); var _bg = inputs[| input_len + 3].getValue(_time); + var _type = inputs[| input_len + 4].getValue(_time); + var _llife = inputs[| input_len + 5].getValue(_time); + var _outSurf = outputs[| 0].getValue(); if(is_surface(_bg)) _dim = surface_get_dimension(_bg) - surface_set_shader(_outSurf); + surface_set_shader(_outSurf, _type == PARTICLE_RENDER_TYPE.surface? sh_sample : noone); if(is_surface(_bg)) draw_surface(_bg, 0, 0); switch(_blend) { @@ -100,9 +119,14 @@ function Node_Particle(_x, _y, _group = noone) : Node_VFX_Spawner_Base(_x, _y, _ case PARTICLE_BLEND_MODE.additive: BLEND_ADD; break; } - shader_set_interpolation(_outSurf); + if(_type == PARTICLE_RENDER_TYPE.surface) + shader_set_interpolation(_outSurf); + for(var i = 0; i < attributes.part_amount; i++) { - if(parts[i].active) parts[i].draw(_exact, _dim[0], _dim[1]); + parts[i].render_type = _type; + parts[i].line_draw = _llife; + + if(parts[i].active || _type) parts[i].draw(_exact, _dim[0], _dim[1]); } surface_reset_shader(); diff --git a/scripts/node_registry/node_registry.gml b/scripts/node_registry/node_registry.gml index 7b565ec31..1cb9a1431 100644 --- a/scripts/node_registry/node_registry.gml +++ b/scripts/node_registry/node_registry.gml @@ -522,8 +522,9 @@ function __initNodes() { addNodeObject(filter, "Trail", s_node_trail, "Node_Trail", [1, Node_Trail],, "Blend animation by filling in the pixel 'in-between' two or more frames.").setVersion(1130); addNodeObject(filter, "Erode", s_node_erode, "Node_Erode", [1, Node_Erode],, "Remove pixel that are close to the border of the image."); addNodeObject(filter, "Corner", s_node_corner, "Node_Corner", [1, Node_Corner], ["round corner"], "Round out sharp corner of the image.").setVersion(1110); + addNodeObject(filter, "Blobify", s_node_blobify, "Node_Blobify", [1, Node_Blobify]).setVersion(11640); addNodeObject(filter, "2D Light", s_node_2d_light, "Node_2D_light", [1, Node_2D_light],, "Apply different shaped light on the image."); - addNodeObject(filter, "Cast Shadow", s_node_shadow_cast, "Node_Shadow_Cast", [1, Node_Shadow_Cast],, "Apply light that create shadow using shadow mask.").setVersion(1100); + addNodeObject(filter, "Cast Shadow", s_node_shadow_cast, "Node_Shadow_Cast", [1, Node_Shadow_Cast], ["raycast"], "Apply light that create shadow using shadow mask.").setVersion(1100); addNodeObject(filter, "Pixel Expand", s_node_atlas, "Node_Atlas", [1, Node_Atlas], ["atlas"], "Replace transparent pixel with the closet non-transparent pixel."); addNodeObject(filter, "Pixel Cloud", s_node_pixel_cloud, "Node_Pixel_Cloud", [1, Node_Pixel_Cloud],, "Displace each pixel of the image randomly."); addNodeObject(filter, "Pixel Sort", s_node_pixel_sort, "Node_Pixel_Sort", [1, Node_Pixel_Sort],, "Sort pixel by brightness in horizontal, or vertial axis."); diff --git a/scripts/node_scatter/node_scatter.gml b/scripts/node_scatter/node_scatter.gml index be2363101..a8fd05bab 100644 --- a/scripts/node_scatter/node_scatter.gml +++ b/scripts/node_scatter/node_scatter.gml @@ -129,6 +129,10 @@ function Node_Scatter(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c surface_valid_map = ds_map_create(); scatter_data = []; + scatter_map = noone; + scatter_mapa = 0; + scatter_maps = 0; + scatter_mapp = []; static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region var _distType = current_data[6]; @@ -279,7 +283,15 @@ function Node_Scatter(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c if(_dist == NODE_SCATTER_DIST.map) { if(!is_surface(_distMap)) return _outSurf; - _posDist = get_points_from_dist(_distMap, seed, _amount); + + if(scatter_map != _distMap || scatter_maps != seed || scatter_mapa != _amount) + scatter_mapp = get_points_from_dist(_distMap, _amount, seed); + + scatter_map = _distMap; + scatter_maps = seed; + scatter_mapa = _amount; + + _posDist = scatter_mapp; } if(_dist == NODE_SCATTER_DIST.area) { // Area diff --git a/scripts/node_value/node_value.gml b/scripts/node_value/node_value.gml index ed086d96b..7038420a5 100644 --- a/scripts/node_value/node_value.gml +++ b/scripts/node_value/node_value.gml @@ -1017,7 +1017,11 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru }, unit); if(type == VALUE_TYPE.integer) editWidget.setSlideSpeed(1 / 10); - if(struct_has(display_data, "onSurfaceSize")) editWidget.onSurfaceSize = display_data.onSurfaceSize; + + if(struct_has(display_data, "onSurfaceSize")) + editWidget.onSurfaceSize = display_data.onSurfaceSize; + else + display_data.onSurfaceSize = noone; for( var i = 0, n = array_length(animators); i < n; i++ ) animators[i].suffix = " " + array_safe_get(global.displaySuffix_Area, i, ""); diff --git a/shaders/sh_ani_noise/sh_ani_noise.fsh b/shaders/sh_ani_noise/sh_ani_noise.fsh index 077c74252..f785149c3 100644 --- a/shaders/sh_ani_noise/sh_ani_noise.fsh +++ b/shaders/sh_ani_noise/sh_ani_noise.fsh @@ -1,11 +1,9 @@ -// -// Simple passthrough fragment shader -// varying vec2 v_vTexcoord; varying vec4 v_vColour; uniform float seed; uniform vec2 position; +uniform int mode; uniform vec2 noiseX; uniform int noiseXUseSurf; @@ -19,7 +17,7 @@ uniform vec2 angle; uniform int angleUseSurf; uniform sampler2D angleSurf; -float random1D (in vec2 st, float _seed) { return fract(sin(dot(st.xy, vec2(12.9898, 78.233)) * mod(_seed, 32.156) * 12.588) * 43758.5453123); } +float random1D (in vec2 st, float _seed) { return fract(sin(dot(st.xy, vec2(12.9898, 78.233)) * mod(_seed + 453.456, 32.156) * 12.588) * 43758.5453123); } float random (in vec2 st) { return mix(random1D(st, floor(seed)), random1D(st, floor(seed) + 1.), fract(seed)); } @@ -45,17 +43,21 @@ void main() { ang = radians(ang); #endregion - vec2 pos = v_vTexcoord - position, _pos; - _pos.x = pos.x * cos(ang) - pos.y * sin(ang); - _pos.y = pos.x * sin(ang) + pos.y * cos(ang); + vec2 pos = (v_vTexcoord - position) * mat2(cos(ang), - sin(ang), sin(ang), cos(ang)); - float yy = floor(_pos.y * nsy); - float xx = (_pos.x + random1D(vec2(yy), floor(seed))) * nsx; - float x0 = floor(xx); - float x1 = floor(xx) + 1.; + float yy = floor(pos.y * nsy); + float xx = (pos.x + random1D(vec2(yy), floor(seed))) * nsx; - float noise0 = random(vec2(x0, yy)); - float noise1 = random(vec2(x1, yy)); + float x0 = floor(xx); + float x1 = floor(xx) + 1.; + float prog = xx - x0; - gl_FragColor = vec4(vec3(mix(noise0, noise1, (xx - x0) / (x1 - x0))), 1.); + if(mode == 0) { + float noise0 = random(vec2(x0, yy)); // point before + float noise1 = random(vec2(x1, yy)); // point after + + gl_FragColor = vec4(vec3(mix(noise0, noise1, prog)), 1.); + } else if(mode == 1) { + gl_FragColor = vec4(vec3(prog), 1.); + } } diff --git a/shaders/sh_blobify/sh_blobify.fsh b/shaders/sh_blobify/sh_blobify.fsh new file mode 100644 index 000000000..869bc4c9b --- /dev/null +++ b/shaders/sh_blobify/sh_blobify.fsh @@ -0,0 +1,31 @@ +#define TAU 6.28318530718 + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +uniform vec2 dimension; +uniform float radius; +uniform float threshold; + +void main() { + vec2 tx = 1. / dimension; + vec4 cc = vec4(0.); + float av = 0., dv = 0.; + + float stp = TAU / 64.; + + for(float i = 0.; i < radius; i++) + for(float j = 0.; j < TAU; j += stp) { + vec2 sx = v_vTexcoord + vec2(cos(j), sin(j)) * tx * i; + + vec4 c = texture2D( gm_BaseTexture, sx ); + + cc += c; + dv += 1.; + av += c.a; + } + + cc /= dv; + + gl_FragColor = step(threshold, cc); +} diff --git a/shaders/sh_blobify/sh_blobify.vsh b/shaders/sh_blobify/sh_blobify.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_blobify/sh_blobify.vsh @@ -0,0 +1,19 @@ +// +// Simple passthrough vertex shader +// +attribute vec3 in_Position; // (x,y,z) +//attribute vec3 in_Normal; // (x,y,z) unused in this shader. +attribute vec4 in_Colour; // (r,g,b,a) +attribute vec2 in_TextureCoord; // (u,v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() +{ + vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} diff --git a/shaders/sh_blobify/sh_blobify.yy b/shaders/sh_blobify/sh_blobify.yy new file mode 100644 index 000000000..037743f12 --- /dev/null +++ b/shaders/sh_blobify/sh_blobify.yy @@ -0,0 +1,10 @@ +{ + "resourceType": "GMShader", + "resourceVersion": "1.0", + "name": "sh_blobify", + "parent": { + "name": "blur", + "path": "folders/shader/filter/blur.yy", + }, + "type": 1, +} \ No newline at end of file diff --git a/shaders/sh_corner/sh_corner.fsh b/shaders/sh_corner/sh_corner.fsh index 4020c504c..67feb3628 100644 --- a/shaders/sh_corner/sh_corner.fsh +++ b/shaders/sh_corner/sh_corner.fsh @@ -51,4 +51,4 @@ void main() { gl_FragColor = texture2D(original, v_vTexcoord); else gl_FragColor = vec4(vec3(0.), 1.); -} +} \ No newline at end of file diff --git a/shaders/sh_corner/sh_corner.yy b/shaders/sh_corner/sh_corner.yy index cf71e122a..bc999d996 100644 --- a/shaders/sh_corner/sh_corner.yy +++ b/shaders/sh_corner/sh_corner.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_corner", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "corner", + "path": "folders/shader/filter/corner.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_corner_erode/sh_corner_erode.fsh b/shaders/sh_corner_erode/sh_corner_erode.fsh index 2482e2935..454383059 100644 --- a/shaders/sh_corner_erode/sh_corner_erode.fsh +++ b/shaders/sh_corner_erode/sh_corner_erode.fsh @@ -42,4 +42,4 @@ void main() { } } } -} +} \ No newline at end of file diff --git a/shaders/sh_corner_erode/sh_corner_erode.yy b/shaders/sh_corner_erode/sh_corner_erode.yy index 06dfe8178..21b7c76e9 100644 --- a/shaders/sh_corner_erode/sh_corner_erode.yy +++ b/shaders/sh_corner_erode/sh_corner_erode.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_corner_erode", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "corner", + "path": "folders/shader/filter/corner.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_corner_iterate/sh_corner_iterate.fsh b/shaders/sh_corner_iterate/sh_corner_iterate.fsh new file mode 100644 index 000000000..86195d330 --- /dev/null +++ b/shaders/sh_corner_iterate/sh_corner_iterate.fsh @@ -0,0 +1,82 @@ +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +#define SPAN 8. + +uniform vec2 dimension; + +void main() { + vec2 tx = 1. / dimension; + vec4 cc = texture2D( gm_BaseTexture, v_vTexcoord ); + float hh = cc.r; + + if(hh == 0.) { + gl_FragColor = vec4(vec3(0.), 1.); + return; + } + + vec2 px, mn = cc.yz; + vec4 ss; + + for(float i = 1.; i < SPAN; i++) { + px = v_vTexcoord + vec2(i * tx.x, 0.); + ss = texture2D( gm_BaseTexture, px ); + + if(ss.r == 0.) break; + + if(ss.r > hh) { + hh = ss.r; + mn = ss.yz; + } else if(ss.r == hh) { + if(distance(v_vTexcoord, ss.yz) < distance(v_vTexcoord, mn)) + mn = ss.yz; + } + } + + for(float i = 1.; i < SPAN; i++) { + px = v_vTexcoord - vec2(i * tx.x, 0.); + ss = texture2D( gm_BaseTexture, px ); + + if(ss.r == 0.) break; + + if(ss.r > hh) { + hh = ss.r; + mn = ss.yz; + } else if(ss.r == hh) { + if(distance(v_vTexcoord, ss.yz) < distance(v_vTexcoord, mn)) + mn = ss.yz; + } + } + + for(float i = 1.; i < SPAN; i++) { + px = v_vTexcoord + vec2(0., i * tx.y); + ss = texture2D( gm_BaseTexture, px ); + + if(ss.r == 0.) break; + + if(ss.r > hh) { + hh = ss.r; + mn = ss.yz; + } else if(ss.r == hh) { + if(distance(v_vTexcoord, ss.yz) < distance(v_vTexcoord, mn)) + mn = ss.yz; + } + } + + for(float i = 1.; i < SPAN; i++) { + px = v_vTexcoord - vec2(0., i * tx.y); + ss = texture2D( gm_BaseTexture, px ); + + if(ss.r == 0.) break; + + if(ss.r > hh) { + hh = ss.r; + mn = ss.yz; + } else if(ss.r == hh) { + if(distance(v_vTexcoord, ss.yz) < distance(v_vTexcoord, mn)) + mn = ss.yz; + } + } + + gl_FragColor = vec4(hh, mn, 1.); +} diff --git a/shaders/sh_corner_iterate/sh_corner_iterate.vsh b/shaders/sh_corner_iterate/sh_corner_iterate.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_corner_iterate/sh_corner_iterate.vsh @@ -0,0 +1,19 @@ +// +// Simple passthrough vertex shader +// +attribute vec3 in_Position; // (x,y,z) +//attribute vec3 in_Normal; // (x,y,z) unused in this shader. +attribute vec4 in_Colour; // (r,g,b,a) +attribute vec2 in_TextureCoord; // (u,v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() +{ + vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} diff --git a/shaders/sh_corner_iterate/sh_corner_iterate.yy b/shaders/sh_corner_iterate/sh_corner_iterate.yy new file mode 100644 index 000000000..25409ddd6 --- /dev/null +++ b/shaders/sh_corner_iterate/sh_corner_iterate.yy @@ -0,0 +1,10 @@ +{ + "resourceType": "GMShader", + "resourceVersion": "1.0", + "name": "sh_corner_iterate", + "parent": { + "name": "corner", + "path": "folders/shader/filter/corner.yy", + }, + "type": 1, +} \ No newline at end of file diff --git a/shaders/sh_edge_shade_apply/sh_edge_shade_apply.fsh b/shaders/sh_edge_shade_apply/sh_edge_shade_apply.fsh new file mode 100644 index 000000000..5e2b6bae4 --- /dev/null +++ b/shaders/sh_edge_shade_apply/sh_edge_shade_apply.fsh @@ -0,0 +1,96 @@ +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +uniform vec2 dimension; + +#region ////////////////////////////////////////////////////////////////// GRADIENT ////////////////////////////////////////////////////////////////// + #define GRADIENT_LIMIT 128 + + uniform int gradient_blend; + uniform vec4 gradient_color[GRADIENT_LIMIT]; + uniform float gradient_time[GRADIENT_LIMIT]; + uniform int gradient_keys; + uniform int gradient_use_map; + uniform vec4 gradient_map_range; + uniform sampler2D gradient_map; + + vec3 rgb2hsv(vec3 c) { #region + vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g)); + vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r)); + + float d = q.x - min(q.w, q.y); + float e = 0.0000000001; + return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); + } #endregion + + vec3 hsv2rgb(vec3 c) { #region + vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www); + return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y); + } #endregion + + float hueDist(float a0, float a1, float t) { #region + float da = fract(a1 - a0); + float ds = fract(2. * da) - da; + return a0 + ds * t; + } #endregion + + vec3 hsvMix(vec3 c1, vec3 c2, float t) { #region + vec3 h1 = rgb2hsv(c1); + vec3 h2 = rgb2hsv(c2); + + vec3 h = vec3(0.); + h.x = h.x + hueDist(h1.x, h2.x, t); + h.y = mix(h1.y, h2.y, t); + h.z = mix(h1.z, h2.z, t); + + return hsv2rgb(h); + } #endregion + + vec4 gradientEval(in float prog) { #region + if(gradient_use_map == 1) { + vec2 samplePos = mix(gradient_map_range.xy, gradient_map_range.zw, prog); + return texture2D( gradient_map, samplePos ); + } + + vec4 col = vec4(0.); + + for(int i = 0; i < GRADIENT_LIMIT; i++) { + if(gradient_time[i] == prog) { + col = gradient_color[i]; + break; + } else if(gradient_time[i] > prog) { + if(i == 0) + col = gradient_color[i]; + else { + float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]); + if(gradient_blend == 0) + col = mix(gradient_color[i - 1], gradient_color[i], t); + else if(gradient_blend == 1) + col = gradient_color[i - 1]; + else if(gradient_blend == 2) + col = vec4( + hsvMix(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), + mix(gradient_color[i - 1].a, gradient_color[i].a, t) + ); + } + break; + } + if(i >= gradient_keys - 1) { + col = gradient_color[gradient_keys - 1]; + break; + } + } + + return col; + } #endregion +#endregion ////////////////////////////////////////////////////////////////// GRADIENT ////////////////////////////////////////////////////////////////// + +void main() { + vec2 tx = 1. / dimension; + vec4 c = texture2D( gm_BaseTexture, v_vTexcoord); + + if(c.a == 0.) gl_FragColor = vec4(0.); + else gl_FragColor = gradientEval(c.r); +} diff --git a/shaders/sh_edge_shade_apply/sh_edge_shade_apply.vsh b/shaders/sh_edge_shade_apply/sh_edge_shade_apply.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_edge_shade_apply/sh_edge_shade_apply.vsh @@ -0,0 +1,19 @@ +// +// Simple passthrough vertex shader +// +attribute vec3 in_Position; // (x,y,z) +//attribute vec3 in_Normal; // (x,y,z) unused in this shader. +attribute vec4 in_Colour; // (r,g,b,a) +attribute vec2 in_TextureCoord; // (u,v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() +{ + vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} diff --git a/shaders/sh_edge_shade_apply/sh_edge_shade_apply.yy b/shaders/sh_edge_shade_apply/sh_edge_shade_apply.yy new file mode 100644 index 000000000..2c0d2352f --- /dev/null +++ b/shaders/sh_edge_shade_apply/sh_edge_shade_apply.yy @@ -0,0 +1,10 @@ +{ + "resourceType": "GMShader", + "resourceVersion": "1.0", + "name": "sh_edge_shade_apply", + "parent": { + "name": "edge shade", + "path": "folders/shader/filter/edge shade.yy", + }, + "type": 1, +} \ No newline at end of file diff --git a/shaders/sh_edge_shade_convert/sh_edge_shade_convert.fsh b/shaders/sh_edge_shade_convert/sh_edge_shade_convert.fsh new file mode 100644 index 000000000..ad3032556 --- /dev/null +++ b/shaders/sh_edge_shade_convert/sh_edge_shade_convert.fsh @@ -0,0 +1,10 @@ +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() { + vec4 c = texture2D( gm_BaseTexture, v_vTexcoord ); + gl_FragColor = vec4(0.); + + if((c.r + c.g + c.b) * c.a / 3. > 0.) + gl_FragColor = vec4(1.); +} diff --git a/shaders/sh_edge_shade_convert/sh_edge_shade_convert.vsh b/shaders/sh_edge_shade_convert/sh_edge_shade_convert.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_edge_shade_convert/sh_edge_shade_convert.vsh @@ -0,0 +1,19 @@ +// +// Simple passthrough vertex shader +// +attribute vec3 in_Position; // (x,y,z) +//attribute vec3 in_Normal; // (x,y,z) unused in this shader. +attribute vec4 in_Colour; // (r,g,b,a) +attribute vec2 in_TextureCoord; // (u,v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() +{ + vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} diff --git a/shaders/sh_edge_shade_convert/sh_edge_shade_convert.yy b/shaders/sh_edge_shade_convert/sh_edge_shade_convert.yy new file mode 100644 index 000000000..332af819b --- /dev/null +++ b/shaders/sh_edge_shade_convert/sh_edge_shade_convert.yy @@ -0,0 +1,10 @@ +{ + "resourceType": "GMShader", + "resourceVersion": "1.0", + "name": "sh_edge_shade_convert", + "parent": { + "name": "edge shade", + "path": "folders/shader/filter/edge shade.yy", + }, + "type": 1, +} \ No newline at end of file diff --git a/shaders/sh_edge_shade_extract/sh_edge_shade_extract.fsh b/shaders/sh_edge_shade_extract/sh_edge_shade_extract.fsh new file mode 100644 index 000000000..729a453fb --- /dev/null +++ b/shaders/sh_edge_shade_extract/sh_edge_shade_extract.fsh @@ -0,0 +1,33 @@ +#define PI 3.14159265359 + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +uniform vec2 dimension; + +void main() { + vec2 tx = 1. / dimension; + + gl_FragColor = vec4(0.); + + float c4 = texture2D( gm_BaseTexture, v_vTexcoord).r; + if(c4 == 0.) return; + + float c; + vec2 p = v_vTexcoord - 0.5; + + float a = atan(p.y, p.x) / PI; + if(a < 0.) a = 2. + a; + a /= 2.; + + c = texture2D( gm_BaseTexture, v_vTexcoord + vec2(-tx.x, -tx.y) ).r; if(c == 0.) { gl_FragColor = vec4(a, 0., 0., 1.); return; } + c = texture2D( gm_BaseTexture, v_vTexcoord + vec2( 0., -tx.y) ).r; if(c == 0.) { gl_FragColor = vec4(a, 0., 0., 1.); return; } + c = texture2D( gm_BaseTexture, v_vTexcoord + vec2( tx.x, -tx.y) ).r; if(c == 0.) { gl_FragColor = vec4(a, 0., 0., 1.); return; } + + c = texture2D( gm_BaseTexture, v_vTexcoord + vec2(-tx.x, 0.) ).r; if(c == 0.) { gl_FragColor = vec4(a, 0., 0., 1.); return; } + c = texture2D( gm_BaseTexture, v_vTexcoord + vec2( tx.x, 0.) ).r; if(c == 0.) { gl_FragColor = vec4(a, 0., 0., 1.); return; } + + c = texture2D( gm_BaseTexture, v_vTexcoord + vec2(-tx.x, tx.y) ).r; if(c == 0.) { gl_FragColor = vec4(a, 0., 0., 1.); return; } + c = texture2D( gm_BaseTexture, v_vTexcoord + vec2( 0., tx.y) ).r; if(c == 0.) { gl_FragColor = vec4(a, 0., 0., 1.); return; } + c = texture2D( gm_BaseTexture, v_vTexcoord + vec2( tx.x, tx.y) ).r; if(c == 0.) { gl_FragColor = vec4(a, 0., 0., 1.); return; } +} diff --git a/shaders/sh_edge_shade_extract/sh_edge_shade_extract.vsh b/shaders/sh_edge_shade_extract/sh_edge_shade_extract.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_edge_shade_extract/sh_edge_shade_extract.vsh @@ -0,0 +1,19 @@ +// +// Simple passthrough vertex shader +// +attribute vec3 in_Position; // (x,y,z) +//attribute vec3 in_Normal; // (x,y,z) unused in this shader. +attribute vec4 in_Colour; // (r,g,b,a) +attribute vec2 in_TextureCoord; // (u,v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() +{ + vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} diff --git a/shaders/sh_edge_shade_extract/sh_edge_shade_extract.yy b/shaders/sh_edge_shade_extract/sh_edge_shade_extract.yy new file mode 100644 index 000000000..755fd8d05 --- /dev/null +++ b/shaders/sh_edge_shade_extract/sh_edge_shade_extract.yy @@ -0,0 +1,10 @@ +{ + "resourceType": "GMShader", + "resourceVersion": "1.0", + "name": "sh_edge_shade_extract", + "parent": { + "name": "edge shade", + "path": "folders/shader/filter/edge shade.yy", + }, + "type": 1, +} \ No newline at end of file diff --git a/shaders/sh_grid/sh_grid.fsh b/shaders/sh_grid/sh_grid.fsh index 0e75984f8..24754cf71 100644 --- a/shaders/sh_grid/sh_grid.fsh +++ b/shaders/sh_grid/sh_grid.fsh @@ -1,8 +1,6 @@ varying vec2 v_vTexcoord; varying vec4 v_vColour; -#define GRADIENT_LIMIT 128 - uniform vec2 position; uniform vec2 dimension; uniform float seed; @@ -28,13 +26,6 @@ uniform sampler2D shiftSurf; uniform vec4 gapCol; uniform int gradient_use; -uniform int gradient_blend; -uniform vec4 gradient_color[GRADIENT_LIMIT]; -uniform float gradient_time[GRADIENT_LIMIT]; -uniform int gradient_keys; -uniform int gradient_use_map; -uniform vec4 gradient_map_range; -uniform sampler2D gradient_map; uniform int textureTruchet; uniform float truchetSeed; @@ -44,77 +35,89 @@ uniform vec2 truchetAngle; float random (in vec2 st) { return fract(sin(dot(st.xy + vec2(85.456034, 64.54065), vec2(12.9898, 78.233))) * (43758.5453123 + seed) ); } -vec3 rgb2hsv(vec3 c) { #region - vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); - vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g)); - vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r)); - - float d = q.x - min(q.w, q.y); - float e = 0.0000000001; - return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); -} #endregion - -vec3 hsv2rgb(vec3 c) { #region - vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); - vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www); - return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y); -} #endregion - -float hueDist(float a0, float a1, float t) { #region - float da = fract(a1 - a0); - float ds = fract(2. * da) - da; - return a0 + ds * t; -} #endregion - -vec3 hsvMix(vec3 c1, vec3 c2, float t) { #region - vec3 h1 = rgb2hsv(c1); - vec3 h2 = rgb2hsv(c2); +#region ////////////////////////////////////////////////////////////////// GRADIENT ////////////////////////////////////////////////////////////////// + #define GRADIENT_LIMIT 128 - vec3 h = vec3(0.); - h.x = h.x + hueDist(h1.x, h2.x, t); - h.y = mix(h1.y, h2.y, t); - h.z = mix(h1.z, h2.z, t); - - return hsv2rgb(h); -} #endregion + uniform int gradient_blend; + uniform vec4 gradient_color[GRADIENT_LIMIT]; + uniform float gradient_time[GRADIENT_LIMIT]; + uniform int gradient_keys; + uniform int gradient_use_map; + uniform vec4 gradient_map_range; + uniform sampler2D gradient_map; -vec4 gradientEval(in float prog) { #region - if(gradient_use_map == 1) { - vec2 samplePos = mix(gradient_map_range.xy, gradient_map_range.zw, prog); - return texture2D( gradient_map, samplePos ); - } + vec3 rgb2hsv(vec3 c) { #region + vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g)); + vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r)); + + float d = q.x - min(q.w, q.y); + float e = 0.0000000001; + return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); + } #endregion + + vec3 hsv2rgb(vec3 c) { #region + vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www); + return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y); + } #endregion + + float hueDist(float a0, float a1, float t) { #region + float da = fract(a1 - a0); + float ds = fract(2. * da) - da; + return a0 + ds * t; + } #endregion + + vec3 hsvMix(vec3 c1, vec3 c2, float t) { #region + vec3 h1 = rgb2hsv(c1); + vec3 h2 = rgb2hsv(c2); - vec4 col = vec4(0.); + vec3 h = vec3(0.); + h.x = h.x + hueDist(h1.x, h2.x, t); + h.y = mix(h1.y, h2.y, t); + h.z = mix(h1.z, h2.z, t); - for(int i = 0; i < GRADIENT_LIMIT; i++) { - if(gradient_time[i] == prog) { - col = gradient_color[i]; - break; - } else if(gradient_time[i] > prog) { - if(i == 0) + return hsv2rgb(h); + } #endregion + + vec4 gradientEval(in float prog) { #region + if(gradient_use_map == 1) { + vec2 samplePos = mix(gradient_map_range.xy, gradient_map_range.zw, prog); + return texture2D( gradient_map, samplePos ); + } + + vec4 col = vec4(0.); + + for(int i = 0; i < GRADIENT_LIMIT; i++) { + if(gradient_time[i] == prog) { col = gradient_color[i]; - else { - float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]); - if(gradient_blend == 0) - col = mix(gradient_color[i - 1], gradient_color[i], t); - else if(gradient_blend == 1) - col = gradient_color[i - 1]; - else if(gradient_blend == 2) - col = vec4( - hsvMix(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), - mix(gradient_color[i - 1].a, gradient_color[i].a, t) - ); + break; + } else if(gradient_time[i] > prog) { + if(i == 0) + col = gradient_color[i]; + else { + float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]); + if(gradient_blend == 0) + col = mix(gradient_color[i - 1], gradient_color[i], t); + else if(gradient_blend == 1) + col = gradient_color[i - 1]; + else if(gradient_blend == 2) + col = vec4( + hsvMix(gradient_color[i - 1].rgb, gradient_color[i].rgb, t), + mix(gradient_color[i - 1].a, gradient_color[i].a, t) + ); + } + break; + } + if(i >= gradient_keys - 1) { + col = gradient_color[gradient_keys - 1]; + break; } - break; } - if(i >= gradient_keys - 1) { - col = gradient_color[gradient_keys - 1]; - break; - } - } - return col; -} #endregion + return col; + } #endregion +#endregion ////////////////////////////////////////////////////////////////// GRADIENT ////////////////////////////////////////////////////////////////// void main() { #region #region params diff --git a/shaders/sh_image_trace/sh_image_trace.fsh b/shaders/sh_image_trace/sh_image_trace.fsh index 8a94c1397..df1bf1cb4 100644 --- a/shaders/sh_image_trace/sh_image_trace.fsh +++ b/shaders/sh_image_trace/sh_image_trace.fsh @@ -9,8 +9,8 @@ bool sample(float x, float y) { vec2 pos = v_vTexcoord + vec2(tx.x * x, tx.y * y); if(pos.x < 0. || pos.y < 0. || pos.x > 1. || pos.y > 1.) return false; - float c = texture2D( gm_BaseTexture, pos ).r; - return c > 0.; + vec4 c = texture2D( gm_BaseTexture, pos ); + return (c.r + c.g + c.b) * c.a > 0.; } void main() { diff --git a/sprites/s_node_blobify/c69d6ac9-b7c4-4ce9-a945-b86c41150da4.png b/sprites/s_node_blobify/c69d6ac9-b7c4-4ce9-a945-b86c41150da4.png new file mode 100644 index 000000000..53bb5a75c Binary files /dev/null and b/sprites/s_node_blobify/c69d6ac9-b7c4-4ce9-a945-b86c41150da4.png differ diff --git a/sprites/s_node_blobify/layers/c69d6ac9-b7c4-4ce9-a945-b86c41150da4/676e8ea0-211a-4881-828a-5c8e35f41571.png b/sprites/s_node_blobify/layers/c69d6ac9-b7c4-4ce9-a945-b86c41150da4/676e8ea0-211a-4881-828a-5c8e35f41571.png new file mode 100644 index 000000000..53bb5a75c Binary files /dev/null and b/sprites/s_node_blobify/layers/c69d6ac9-b7c4-4ce9-a945-b86c41150da4/676e8ea0-211a-4881-828a-5c8e35f41571.png differ diff --git a/sprites/s_node_blobify/s_node_blobify.yy b/sprites/s_node_blobify/s_node_blobify.yy new file mode 100644 index 000000000..7224faeba --- /dev/null +++ b/sprites/s_node_blobify/s_node_blobify.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_blobify", + "bbox_bottom": 59, + "bbox_left": 4, + "bbox_right": 59, + "bbox_top": 4, + "bboxMode": 0, + "collisionKind": 1, + "collisionTolerance": 0, + "DynamicTexturePage": false, + "edgeFiltering": false, + "For3D": false, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"c69d6ac9-b7c4-4ce9-a945-b86c41150da4",}, + ], + "gridX": 0, + "gridY": 0, + "height": 64, + "HTile": false, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"676e8ea0-211a-4881-828a-5c8e35f41571","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,}, + ], + "nineSlice": null, + "origin": 4, + "parent": { + "name": "filter", + "path": "folders/nodes/icons/filter.yy", + }, + "preMultiplyAlpha": false, + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_blobify", + "autoRecord": true, + "backdropHeight": 768, + "backdropImageOpacity": 0.5, + "backdropImagePath": "", + "backdropWidth": 1366, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "events": {"resourceType":"KeyframeStore","resourceVersion":"1.0","Keyframes":[],}, + "eventStubScript": null, + "eventToFunction": {}, + "length": 1.0, + "lockOrigin": false, + "moments": {"resourceType":"KeyframeStore","resourceVersion":"1.0","Keyframes":[],}, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "showBackdrop": true, + "showBackdropImage": false, + "timeUnits": 1, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore","resourceVersion":"1.0","Keyframes":[ + {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"c69d6ac9-b7c4-4ce9-a945-b86c41150da4","path":"sprites/s_node_blobify/s_node_blobify.yy",},},},"Disabled":false,"id":"bce554c2-4f62-4f24-b4cb-0b82aef57350","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,}, + ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, + ], + "visibleRange": null, + "volume": 1.0, + "xorigin": 32, + "yorigin": 32, + }, + "swatchColours": null, + "swfPrecision": 2.525, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "type": 0, + "VTile": false, + "width": 64, +} \ No newline at end of file diff --git a/sprites/s_node_mk_rain_type/10539227-a82c-45b9-bbdb-b0498e01c572.png b/sprites/s_node_mk_rain_type/10539227-a82c-45b9-bbdb-b0498e01c572.png deleted file mode 100644 index 98558fc0f..000000000 Binary files a/sprites/s_node_mk_rain_type/10539227-a82c-45b9-bbdb-b0498e01c572.png and /dev/null differ diff --git a/sprites/s_node_mk_rain_type/dc18e945-2900-450a-a149-1de7aefb485f.png b/sprites/s_node_mk_rain_type/dc18e945-2900-450a-a149-1de7aefb485f.png new file mode 100644 index 000000000..429fccd14 Binary files /dev/null and b/sprites/s_node_mk_rain_type/dc18e945-2900-450a-a149-1de7aefb485f.png differ diff --git a/sprites/s_node_mk_rain_type/layers/5e76c2fa-a18e-4fb5-b894-a6ce7335727a/040f7e1d-e186-48f4-a81d-11132a6bbc9a.png b/sprites/s_node_mk_rain_type/dd4e03bf-83e6-465d-9856-cbb87fd5398c.png similarity index 76% rename from sprites/s_node_mk_rain_type/layers/5e76c2fa-a18e-4fb5-b894-a6ce7335727a/040f7e1d-e186-48f4-a81d-11132a6bbc9a.png rename to sprites/s_node_mk_rain_type/dd4e03bf-83e6-465d-9856-cbb87fd5398c.png index 3aa94baf8..12446c2a3 100644 Binary files a/sprites/s_node_mk_rain_type/layers/5e76c2fa-a18e-4fb5-b894-a6ce7335727a/040f7e1d-e186-48f4-a81d-11132a6bbc9a.png and b/sprites/s_node_mk_rain_type/dd4e03bf-83e6-465d-9856-cbb87fd5398c.png differ diff --git a/sprites/s_node_mk_rain_type/layers/8b2380e4-9ac1-4068-9e27-64a5e46a6e9f/040f7e1d-e186-48f4-a81d-11132a6bbc9a.png b/sprites/s_node_mk_rain_type/f01f8c9a-ceea-4c2b-bbdc-637cff4199c7.png similarity index 69% rename from sprites/s_node_mk_rain_type/layers/8b2380e4-9ac1-4068-9e27-64a5e46a6e9f/040f7e1d-e186-48f4-a81d-11132a6bbc9a.png rename to sprites/s_node_mk_rain_type/f01f8c9a-ceea-4c2b-bbdc-637cff4199c7.png index e39b1d44c..b20b11095 100644 Binary files a/sprites/s_node_mk_rain_type/layers/8b2380e4-9ac1-4068-9e27-64a5e46a6e9f/040f7e1d-e186-48f4-a81d-11132a6bbc9a.png and b/sprites/s_node_mk_rain_type/f01f8c9a-ceea-4c2b-bbdc-637cff4199c7.png differ diff --git a/sprites/s_node_mk_rain_type/layers/10539227-a82c-45b9-bbdb-b0498e01c572/040f7e1d-e186-48f4-a81d-11132a6bbc9a.png b/sprites/s_node_mk_rain_type/layers/10539227-a82c-45b9-bbdb-b0498e01c572/040f7e1d-e186-48f4-a81d-11132a6bbc9a.png deleted file mode 100644 index 98558fc0f..000000000 Binary files a/sprites/s_node_mk_rain_type/layers/10539227-a82c-45b9-bbdb-b0498e01c572/040f7e1d-e186-48f4-a81d-11132a6bbc9a.png and /dev/null differ diff --git a/sprites/s_node_mk_rain_type/layers/dc18e945-2900-450a-a149-1de7aefb485f/93107154-c00a-470b-a3cc-7dfed049e7ea.png b/sprites/s_node_mk_rain_type/layers/dc18e945-2900-450a-a149-1de7aefb485f/93107154-c00a-470b-a3cc-7dfed049e7ea.png new file mode 100644 index 000000000..429fccd14 Binary files /dev/null and b/sprites/s_node_mk_rain_type/layers/dc18e945-2900-450a-a149-1de7aefb485f/93107154-c00a-470b-a3cc-7dfed049e7ea.png differ diff --git a/sprites/s_node_mk_rain_type/5e76c2fa-a18e-4fb5-b894-a6ce7335727a.png b/sprites/s_node_mk_rain_type/layers/dd4e03bf-83e6-465d-9856-cbb87fd5398c/93107154-c00a-470b-a3cc-7dfed049e7ea.png similarity index 76% rename from sprites/s_node_mk_rain_type/5e76c2fa-a18e-4fb5-b894-a6ce7335727a.png rename to sprites/s_node_mk_rain_type/layers/dd4e03bf-83e6-465d-9856-cbb87fd5398c/93107154-c00a-470b-a3cc-7dfed049e7ea.png index 3aa94baf8..12446c2a3 100644 Binary files a/sprites/s_node_mk_rain_type/5e76c2fa-a18e-4fb5-b894-a6ce7335727a.png and b/sprites/s_node_mk_rain_type/layers/dd4e03bf-83e6-465d-9856-cbb87fd5398c/93107154-c00a-470b-a3cc-7dfed049e7ea.png differ diff --git a/sprites/s_node_mk_rain_type/8b2380e4-9ac1-4068-9e27-64a5e46a6e9f.png b/sprites/s_node_mk_rain_type/layers/f01f8c9a-ceea-4c2b-bbdc-637cff4199c7/93107154-c00a-470b-a3cc-7dfed049e7ea.png similarity index 69% rename from sprites/s_node_mk_rain_type/8b2380e4-9ac1-4068-9e27-64a5e46a6e9f.png rename to sprites/s_node_mk_rain_type/layers/f01f8c9a-ceea-4c2b-bbdc-637cff4199c7/93107154-c00a-470b-a3cc-7dfed049e7ea.png index e39b1d44c..b20b11095 100644 Binary files a/sprites/s_node_mk_rain_type/8b2380e4-9ac1-4068-9e27-64a5e46a6e9f.png and b/sprites/s_node_mk_rain_type/layers/f01f8c9a-ceea-4c2b-bbdc-637cff4199c7/93107154-c00a-470b-a3cc-7dfed049e7ea.png differ diff --git a/sprites/s_node_mk_rain_type/s_node_mk_rain_type.yy b/sprites/s_node_mk_rain_type/s_node_mk_rain_type.yy index e633cb7b6..d5c1be698 100644 --- a/sprites/s_node_mk_rain_type/s_node_mk_rain_type.yy +++ b/sprites/s_node_mk_rain_type/s_node_mk_rain_type.yy @@ -2,7 +2,7 @@ "resourceType": "GMSprite", "resourceVersion": "1.0", "name": "s_node_mk_rain_type", - "bbox_bottom": 20, + "bbox_bottom": 21, "bbox_left": 2, "bbox_right": 20, "bbox_top": 2, @@ -13,16 +13,16 @@ "edgeFiltering": false, "For3D": false, "frames": [ - {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"10539227-a82c-45b9-bbdb-b0498e01c572",}, - {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"5e76c2fa-a18e-4fb5-b894-a6ce7335727a",}, - {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"8b2380e4-9ac1-4068-9e27-64a5e46a6e9f",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"dc18e945-2900-450a-a149-1de7aefb485f",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"dd4e03bf-83e6-465d-9856-cbb87fd5398c",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"f01f8c9a-ceea-4c2b-bbdc-637cff4199c7",}, ], "gridX": 0, "gridY": 0, "height": 24, "HTile": false, "layers": [ - {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"040f7e1d-e186-48f4-a81d-11132a6bbc9a","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,}, + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"93107154-c00a-470b-a3cc-7dfed049e7ea","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,}, ], "nineSlice": null, "origin": 4, @@ -56,9 +56,9 @@ "timeUnits": 1, "tracks": [ {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore","resourceVersion":"1.0","Keyframes":[ - {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"10539227-a82c-45b9-bbdb-b0498e01c572","path":"sprites/s_node_mk_rain_type/s_node_mk_rain_type.yy",},},},"Disabled":false,"id":"417b250e-b235-4272-8712-08017e338570","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,}, - {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"5e76c2fa-a18e-4fb5-b894-a6ce7335727a","path":"sprites/s_node_mk_rain_type/s_node_mk_rain_type.yy",},},},"Disabled":false,"id":"7df0b008-8f83-4f39-80cf-4ce76ff7a413","IsCreationKey":false,"Key":1.0,"Length":1.0,"Stretch":false,}, - {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"8b2380e4-9ac1-4068-9e27-64a5e46a6e9f","path":"sprites/s_node_mk_rain_type/s_node_mk_rain_type.yy",},},},"Disabled":false,"id":"d5a5ca07-75af-4fed-8ea2-6d8f2af6a9d6","IsCreationKey":false,"Key":2.0,"Length":1.0,"Stretch":false,}, + {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"dc18e945-2900-450a-a149-1de7aefb485f","path":"sprites/s_node_mk_rain_type/s_node_mk_rain_type.yy",},},},"Disabled":false,"id":"35e2bc71-21be-4320-b4c1-55e6afd50bbf","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,}, + {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"dd4e03bf-83e6-465d-9856-cbb87fd5398c","path":"sprites/s_node_mk_rain_type/s_node_mk_rain_type.yy",},},},"Disabled":false,"id":"e8ad1423-d1e5-42fb-9e89-82b5204ad329","IsCreationKey":false,"Key":1.0,"Length":1.0,"Stretch":false,}, + {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"f01f8c9a-ceea-4c2b-bbdc-637cff4199c7","path":"sprites/s_node_mk_rain_type/s_node_mk_rain_type.yy",},},},"Disabled":false,"id":"ca454812-6702-491c-9059-e2c298d3283b","IsCreationKey":false,"Key":2.0,"Length":1.0,"Stretch":false,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], "visibleRange": null,