diff --git a/PixelComposer.resource_order b/PixelComposer.resource_order index 1134faff0..ba857ae9c 100644 --- a/PixelComposer.resource_order +++ b/PixelComposer.resource_order @@ -85,8 +85,8 @@ {"name":"warps","order":2,"path":"folders/nodes/data/filter/warps.yy",}, {"name":"fluidSim","order":19,"path":"folders/nodes/data/fluidSim.yy",}, {"name":"generator","order":4,"path":"folders/nodes/data/generator.yy",}, - {"name":"noise","order":30,"path":"folders/nodes/data/generator/noise.yy",}, - {"name":"pattern","order":31,"path":"folders/nodes/data/generator/pattern.yy",}, + {"name":"noise","order":14,"path":"folders/nodes/data/generator/noise.yy",}, + {"name":"pattern","order":15,"path":"folders/nodes/data/generator/pattern.yy",}, {"name":"group","order":6,"path":"folders/nodes/data/group.yy",}, {"name":"network","order":16,"path":"folders/nodes/data/IO/network.yy",}, {"name":"iterate","order":10,"path":"folders/nodes/data/iterate.yy",}, @@ -149,10 +149,16 @@ {"name":"color selector","order":51,"path":"folders/shader/color selector.yy",}, {"name":"draw","order":39,"path":"folders/shader/draw.yy",}, {"name":"filter","order":30,"path":"folders/shader/filter.yy",}, + {"name":"color","order":53,"path":"folders/shader/filter/color.yy",}, {"name":"shadow caster","order":46,"path":"folders/shader/filter/shadow caster.yy",}, {"name":"flood fill","order":47,"path":"folders/shader/flood fill.yy",}, {"name":"generator","order":19,"path":"folders/shader/generator.yy",}, + {"name":"blinker","order":30,"path":"folders/shader/generator/blinker.yy",}, + {"name":"cell","order":31,"path":"folders/shader/generator/cell.yy",}, + {"name":"grid","order":32,"path":"folders/shader/generator/grid.yy",}, + {"name":"noise","order":33,"path":"folders/shader/generator/noise.yy",}, {"name":"random shape","order":29,"path":"folders/shader/generator/random shape.yy",}, + {"name":"region","order":34,"path":"folders/shader/generator/region.yy",}, {"name":"mask","order":45,"path":"folders/shader/mask.yy",}, {"name":"misc","order":50,"path":"folders/shader/misc.yy",}, {"name":"morph","order":54,"path":"folders/shader/morph.yy",}, @@ -171,10 +177,10 @@ ], "ResourceOrderSettings": [ {"name":"s_node_corner","order":16,"path":"sprites/s_node_corner/s_node_corner.yy",}, - {"name":"sh_cell_noise_crystal","order":23,"path":"shaders/sh_cell_noise_crystal/sh_cell_noise_crystal.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",}, - {"name":"sh_perlin","order":1,"path":"shaders/sh_perlin/sh_perlin.yy",}, + {"name":"sh_perlin","order":4,"path":"shaders/sh_perlin/sh_perlin.yy",}, {"name":"node_tool","order":10,"path":"scripts/node_tool/node_tool.yy",}, {"name":"sh_find_pixel","order":3,"path":"shaders/sh_find_pixel/sh_find_pixel.yy",}, {"name":"panel_preview_window","order":1,"path":"scripts/panel_preview_window/panel_preview_window.yy",}, @@ -185,9 +191,10 @@ {"name":"s_node_normal","order":30,"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":"sh_dither","order":28,"path":"shaders/sh_dither/sh_dither.yy",}, + {"name":"node_region_fill","order":20,"path":"scripts/node_region_fill/node_region_fill.yy",}, {"name":"s_node_text_file_read","order":13,"path":"sprites/s_node_text_file_read/s_node_text_file_read.yy",}, {"name":"s_node_text_trim","order":7,"path":"sprites/s_node_text_trim/s_node_text_trim.yy",}, - {"name":"sh_noise_grid_hex","order":24,"path":"shaders/sh_noise_grid_hex/sh_noise_grid_hex.yy",}, + {"name":"sh_noise_grid_hex","order":2,"path":"shaders/sh_noise_grid_hex/sh_noise_grid_hex.yy",}, {"name":"node_3d_obj","order":8,"path":"scripts/node_3d_obj/node_3d_obj.yy",}, {"name":"__path","order":1,"path":"scripts/__path/__path.yy",}, {"name":"sh_brush_outline","order":7,"path":"shaders/sh_brush_outline/sh_brush_outline.yy",}, @@ -198,7 +205,7 @@ {"name":"s_node_rigidSim_object_spawner","order":5,"path":"sprites/s_node_rigidSim_object_spawner/s_node_rigidSim_object_spawner.yy",}, {"name":"draw_text_function","order":11,"path":"scripts/draw_text_function/draw_text_function.yy",}, {"name":"o_dialog_file_name_collection","order":5,"path":"objects/o_dialog_file_name_collection/o_dialog_file_name_collection.yy",}, - {"name":"node_line","order":7,"path":"scripts/node_line/node_line.yy",}, + {"name":"node_line","order":3,"path":"scripts/node_line/node_line.yy",}, {"name":"s_node_frame","order":1,"path":"sprites/s_node_frame/s_node_frame.yy",}, {"name":"s_node_fluidSim_turbulence","order":10,"path":"sprites/s_node_fluidSim_turbulence/s_node_fluidSim_turbulence.yy",}, {"name":"node_blur_radial","order":7,"path":"scripts/node_blur_radial/node_blur_radial.yy",}, @@ -211,10 +218,10 @@ {"name":"s_node_3d_obj","order":3,"path":"sprites/s_node_3d_obj/s_node_3d_obj.yy",}, {"name":"ds_list_queue","order":6,"path":"scripts/ds_list_queue/ds_list_queue.yy",}, {"name":"s_node_scale","order":6,"path":"sprites/s_node_scale/s_node_scale.yy",}, - {"name":"sh_color_picker_value","order":32,"path":"shaders/sh_color_picker_value/sh_color_picker_value.yy",}, + {"name":"sh_color_picker_value","order":6,"path":"shaders/sh_color_picker_value/sh_color_picker_value.yy",}, {"name":"textInput","order":24,"path":"scripts/textInput/textInput.yy",}, {"name":"node_dither","order":7,"path":"scripts/node_dither/node_dither.yy",}, - {"name":"sh_perlin_smear","order":7,"path":"shaders/sh_perlin_smear/sh_perlin_smear.yy",}, + {"name":"sh_perlin_smear","order":5,"path":"shaders/sh_perlin_smear/sh_perlin_smear.yy",}, {"name":"node_path_blend","order":2,"path":"scripts/node_path_blend/node_path_blend.yy",}, {"name":"node_switch","order":5,"path":"scripts/node_switch/node_switch.yy",}, {"name":"sh_corner","order":20,"path":"shaders/sh_corner/sh_corner.yy",}, @@ -231,6 +238,7 @@ {"name":"o_dialog_textbox_autocomplete","order":6,"path":"objects/o_dialog_textbox_autocomplete/o_dialog_textbox_autocomplete.yy",}, {"name":"s_node_loop_input","order":14,"path":"sprites/s_node_loop_input/s_node_loop_input.yy",}, {"name":"node_strand_length_adjust","order":11,"path":"scripts/node_strand_length_adjust/node_strand_length_adjust.yy",}, + {"name":"node_blinker","order":18,"path":"scripts/node_blinker/node_blinker.yy",}, {"name":"fd_rectangle_add_material_surface","order":25,"path":"scripts/fd_rectangle_add_material_surface/fd_rectangle_add_material_surface.yy",}, {"name":"perlin_noise","order":5,"path":"scripts/perlin_noise/perlin_noise.yy",}, {"name":"fd_rectangle_replace_material","order":14,"path":"scripts/fd_rectangle_replace_material/fd_rectangle_replace_material.yy",}, @@ -266,7 +274,7 @@ {"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":"node_scatter","order":3,"path":"scripts/node_scatter/node_scatter.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",}, {"name":"node_atlas_set","order":2,"path":"scripts/node_atlas_set/node_atlas_set.yy",}, {"name":"s_node_flip","order":12,"path":"sprites/s_node_flip/s_node_flip.yy",}, @@ -287,15 +295,15 @@ {"name":"__point","order":4,"path":"scripts/__point/__point.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",}, - {"name":"node_polygonal_shape","order":25,"path":"scripts/node_polygonal_shape/node_polygonal_shape.yy",}, + {"name":"node_polygonal_shape","order":10,"path":"scripts/node_polygonal_shape/node_polygonal_shape.yy",}, {"name":"fd_rectangle_get_collision_mask_sprite","order":4,"path":"scripts/fd_rectangle_get_collision_mask_sprite/fd_rectangle_get_collision_mask_sprite.yy",}, {"name":"node_flip","order":13,"path":"scripts/node_flip/node_flip.yy",}, {"name":"sh_FXAA","order":52,"path":"shaders/sh_FXAA/sh_FXAA.yy",}, {"name":"s_biterator_slider","order":6,"path":"sprites/s_biterator_slider/s_biterator_slider.yy",}, - {"name":"node_gradient_points","order":18,"path":"scripts/node_gradient_points/node_gradient_points.yy",}, + {"name":"node_gradient_points","order":8,"path":"scripts/node_gradient_points/node_gradient_points.yy",}, {"name":"s_button_hide_fill","order":4,"path":"sprites/s_button_hide_fill/s_button_hide_fill.yy",}, {"name":"_f_code","order":9,"path":"fonts/_f_code/_f_code.yy",}, - {"name":"sh_combine_rgb","order":40,"path":"shaders/sh_combine_rgb/sh_combine_rgb.yy",}, + {"name":"sh_combine_rgb","order":11,"path":"shaders/sh_combine_rgb/sh_combine_rgb.yy",}, {"name":"node_armature_to_path","order":4,"path":"scripts/node_armature_to_path/node_armature_to_path.yy",}, {"name":"s_node_strandSim","order":3,"path":"sprites/s_node_strandSim/s_node_strandSim.yy",}, {"name":"o_dialog_panel","order":13,"path":"objects/o_dialog_panel/o_dialog_panel.yy",}, @@ -309,14 +317,15 @@ {"name":"o_dialog_group_input_order","order":3,"path":"objects/o_dialog_group_input_order/o_dialog_group_input_order.yy",}, {"name":"node_string_get_char","order":5,"path":"scripts/node_string_get_char/node_string_get_char.yy",}, {"name":"_p_dialog_undo_block","order":1,"path":"objects/_p_dialog_undo_block/_p_dialog_undo_block.yy",}, + {"name":"sh_palette_shift","order":19,"path":"shaders/sh_palette_shift/sh_palette_shift.yy",}, {"name":"node_array_copy","order":26,"path":"scripts/node_array_copy/node_array_copy.yy",}, {"name":"draw_line_elbow","order":17,"path":"scripts/draw_line_elbow/draw_line_elbow.yy",}, {"name":"node_path_reverse","order":8,"path":"scripts/node_path_reverse/node_path_reverse.yy",}, {"name":"fd_rectangle_get_acceleration_y","order":3,"path":"scripts/fd_rectangle_get_acceleration_y/fd_rectangle_get_acceleration_y.yy",}, - {"name":"sh_simplex","order":22,"path":"shaders/sh_simplex/sh_simplex.yy",}, + {"name":"sh_simplex","order":7,"path":"shaders/sh_simplex/sh_simplex.yy",}, {"name":"node_noise_grid_tri","order":6,"path":"scripts/node_noise_grid_tri/node_noise_grid_tri.yy",}, {"name":"node_threshold","order":9,"path":"scripts/node_threshold/node_threshold.yy",}, - {"name":"sh_cell_noise_edge","order":5,"path":"shaders/sh_cell_noise_edge/sh_cell_noise_edge.yy",}, + {"name":"sh_cell_noise_edge","order":2,"path":"shaders/sh_cell_noise_edge/sh_cell_noise_edge.yy",}, {"name":"node_stripe","order":4,"path":"scripts/node_stripe/node_stripe.yy",}, {"name":"sh_texture_atlas","order":39,"path":"shaders/sh_texture_atlas/sh_texture_atlas.yy",}, {"name":"s_node_fluidSim_domain","order":6,"path":"sprites/s_node_fluidSim_domain/s_node_fluidSim_domain.yy",}, @@ -330,7 +339,7 @@ {"name":"sh_chromatic_aberration","order":31,"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":"sh_cell_noise_round","order":9,"path":"shaders/sh_cell_noise_round/sh_cell_noise_round.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":"s_node_path_plot","order":12,"path":"sprites/s_node_path_plot/s_node_path_plot.yy",}, {"name":"__initAddon","order":2,"path":"scripts/__initAddon/__initAddon.yy",}, @@ -352,13 +361,13 @@ {"name":"s_textbox","order":1,"path":"sprites/s_textbox/s_textbox.yy",}, {"name":"__node","order":9,"path":"scripts/__node/__node.yy",}, {"name":"fd_rectangle_add_velocity","order":5,"path":"scripts/fd_rectangle_add_velocity/fd_rectangle_add_velocity.yy",}, - {"name":"sh_level_selector","order":23,"path":"shaders/sh_level_selector/sh_level_selector.yy",}, + {"name":"sh_level_selector","order":15,"path":"shaders/sh_level_selector/sh_level_selector.yy",}, {"name":"byte_writer","order":8,"path":"scripts/byte_writer/byte_writer.yy",}, {"name":"checkboxGroup","order":28,"path":"scripts/checkboxGroup/checkboxGroup.yy",}, {"name":"node_FXAA","order":8,"path":"scripts/node_FXAA/node_FXAA.yy",}, {"name":"s_node_pixel_find","order":13,"path":"sprites/s_node_pixel_find/s_node_pixel_find.yy",}, {"name":"s_biterator_canvas_cover","order":16,"path":"sprites/s_biterator_canvas_cover/s_biterator_canvas_cover.yy",}, - {"name":"sh_noise_grid_tri","order":25,"path":"shaders/sh_noise_grid_tri/sh_noise_grid_tri.yy",}, + {"name":"sh_noise_grid_tri","order":3,"path":"shaders/sh_noise_grid_tri/sh_noise_grid_tri.yy",}, {"name":"globals","order":2,"path":"scripts/globals/globals.yy",}, {"name":"s_node_noise_perlin","order":11,"path":"sprites/s_node_noise_perlin/s_node_noise_perlin.yy",}, {"name":"s_node_dithering","order":21,"path":"sprites/s_node_dithering/s_node_dithering.yy",}, @@ -402,7 +411,7 @@ {"name":"s_node_vfx_wind","order":3,"path":"sprites/s_node_vfx_wind/s_node_vfx_wind.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":"node_3d_depth","order":32,"path":"scripts/node_3d_depth/node_3d_depth.yy",}, + {"name":"node_3d_depth","order":16,"path":"scripts/node_3d_depth/node_3d_depth.yy",}, {"name":"s_node_vec4","order":9,"path":"sprites/s_node_vec4/s_node_vec4.yy",}, {"name":"vct_knob","order":2,"path":"scripts/vct_knob/vct_knob.yy",}, {"name":"node_to_number","order":13,"path":"scripts/node_to_number/node_to_number.yy",}, @@ -454,7 +463,7 @@ {"name":"s_node_logic_opr","order":2,"path":"sprites/s_node_logic_opr/s_node_logic_opr.yy",}, {"name":"sh_zigzag","order":11,"path":"shaders/sh_zigzag/sh_zigzag.yy",}, {"name":"node_blur_bokeh","order":6,"path":"scripts/node_blur_bokeh/node_blur_bokeh.yy",}, - {"name":"sh_color_remove","order":22,"path":"shaders/sh_color_remove/sh_color_remove.yy",}, + {"name":"sh_color_remove","order":7,"path":"shaders/sh_color_remove/sh_color_remove.yy",}, {"name":"o_dialog_migration","order":11,"path":"objects/o_dialog_migration/o_dialog_migration.yy",}, {"name":"s_node_color_mix","order":19,"path":"sprites/s_node_color_mix/s_node_color_mix.yy",}, {"name":"s_node_blur","order":9,"path":"sprites/s_node_blur/s_node_blur.yy",}, @@ -477,7 +486,6 @@ {"name":"s_node_path_anchor","order":13,"path":"sprites/s_node_path_anchor/s_node_path_anchor.yy",}, {"name":"node_array_get","order":10,"path":"scripts/node_array_get/node_array_get.yy",}, {"name":"Apollo","order":5,"path":"extensions/Apollo/Apollo.yy",}, - {"name":"sh_grid","order":14,"path":"shaders/sh_grid/sh_grid.yy",}, {"name":"sh_twirl","order":3,"path":"shaders/sh_twirl/sh_twirl.yy",}, {"name":"s_node_shape","order":14,"path":"sprites/s_node_shape/s_node_shape.yy",}, {"name":"time_source","order":25,"path":"scripts/time_source/time_source.yy",}, @@ -508,7 +516,6 @@ {"name":"o_dialog_lua_reference","order":5,"path":"objects/o_dialog_lua_reference/o_dialog_lua_reference.yy",}, {"name":"node_strand_gravity","order":4,"path":"scripts/node_strand_gravity/node_strand_gravity.yy",}, {"name":"load_palette","order":3,"path":"scripts/load_palette/load_palette.yy",}, - {"name":"sh_alpha_cutoff","order":21,"path":"shaders/sh_alpha_cutoff/sh_alpha_cutoff.yy",}, {"name":"luaHighlight","order":1,"path":"scripts/luaHighlight/luaHighlight.yy",}, {"name":"sh_sample_points","order":26,"path":"shaders/sh_sample_points/sh_sample_points.yy",}, {"name":"node_combine_rgb","order":1,"path":"scripts/node_combine_rgb/node_combine_rgb.yy",}, @@ -517,7 +524,7 @@ {"name":"s_node_to_number","order":16,"path":"sprites/s_node_to_number/s_node_to_number.yy",}, {"name":"node_string_regex_replace","order":9,"path":"scripts/node_string_regex_replace/node_string_regex_replace.yy",}, {"name":"s_node_particle","order":12,"path":"sprites/s_node_particle/s_node_particle.yy",}, - {"name":"node_random_shape","order":33,"path":"scripts/node_random_shape/node_random_shape.yy",}, + {"name":"node_random_shape","order":17,"path":"scripts/node_random_shape/node_random_shape.yy",}, {"name":"s_node_random","order":3,"path":"sprites/s_node_random/s_node_random.yy",}, {"name":"sh_3d_extrude_filler","order":8,"path":"shaders/sh_3d_extrude_filler/sh_3d_extrude_filler.yy",}, {"name":"s_window_exit","order":2,"path":"sprites/s_window_exit/s_window_exit.yy",}, @@ -556,7 +563,6 @@ {"name":"draw_line_elbow_diag","order":18,"path":"scripts/draw_line_elbow_diag/draw_line_elbow_diag.yy",}, {"name":"node_pin","order":2,"path":"scripts/node_pin/node_pin.yy",}, {"name":"_node_fluid_nodes","order":7,"path":"scripts/_node_fluid_nodes/_node_fluid_nodes.yy",}, - {"name":"sh_noise","order":16,"path":"shaders/sh_noise/sh_noise.yy",}, {"name":"sh_skew","order":6,"path":"shaders/sh_skew/sh_skew.yy",}, {"name":"libxprocess","order":4,"path":"extensions/libxprocess/libxprocess.yy",}, {"name":"fd_rectangle_get_pressure_height","order":16,"path":"scripts/fd_rectangle_get_pressure_height/fd_rectangle_get_pressure_height.yy",}, @@ -564,14 +570,14 @@ {"name":"sh_rsh_rotate","order":1,"path":"shaders/sh_rsh_rotate/sh_rsh_rotate.yy",}, {"name":"node_VFX_effect_destroy","order":12,"path":"scripts/node_VFX_effect_destroy/node_VFX_effect_destroy.yy",}, {"name":"node_cache","order":9,"path":"scripts/node_cache/node_cache.yy",}, - {"name":"sh_bw","order":5,"path":"shaders/sh_bw/sh_bw.yy",}, + {"name":"sh_bw","order":3,"path":"shaders/sh_bw/sh_bw.yy",}, {"name":"real_comparison","order":1,"path":"scripts/real_comparison/real_comparison.yy",}, {"name":"node_array_zip","order":25,"path":"scripts/node_array_zip/node_array_zip.yy",}, {"name":"fd_rectangle_get_collision_mask_sprite_image","order":5,"path":"scripts/fd_rectangle_get_collision_mask_sprite_image/fd_rectangle_get_collision_mask_sprite_image.yy",}, {"name":"s_node_stripe","order":16,"path":"sprites/s_node_stripe/s_node_stripe.yy",}, {"name":"s_node_lua_global","order":19,"path":"sprites/s_node_lua_global/s_node_lua_global.yy",}, {"name":"transformBox","order":29,"path":"scripts/transformBox/transformBox.yy",}, - {"name":"sh_grey_alpha","order":14,"path":"shaders/sh_grey_alpha/sh_grey_alpha.yy",}, + {"name":"sh_grey_alpha","order":12,"path":"shaders/sh_grey_alpha/sh_grey_alpha.yy",}, {"name":"sh_normal","order":1,"path":"shaders/sh_normal/sh_normal.yy",}, {"name":"s_node_time_map","order":39,"path":"sprites/s_node_time_map/s_node_time_map.yy",}, {"name":"node_crop","order":7,"path":"scripts/node_crop/node_crop.yy",}, @@ -586,7 +592,7 @@ {"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",}, - {"name":"sh_threshold","order":42,"path":"shaders/sh_threshold/sh_threshold.yy",}, + {"name":"sh_threshold","order":18,"path":"shaders/sh_threshold/sh_threshold.yy",}, {"name":"fd_rectangle_set_initial_value_pressure","order":3,"path":"scripts/fd_rectangle_set_initial_value_pressure/fd_rectangle_set_initial_value_pressure.yy",}, {"name":"o_dialog_drag_folder","order":2,"path":"objects/o_dialog_drag_folder/o_dialog_drag_folder.yy",}, {"name":"node_VFX_effect_repel","order":9,"path":"scripts/node_VFX_effect_repel/node_VFX_effect_repel.yy",}, @@ -603,16 +609,17 @@ {"name":"o_dialog_textbox_function_guide","order":7,"path":"objects/o_dialog_textbox_function_guide/o_dialog_textbox_function_guide.yy",}, {"name":"pxl_server","order":2,"path":"scripts/pxl_server/pxl_server.yy",}, {"name":"s_node_array_set","order":9,"path":"sprites/s_node_array_set/s_node_array_set.yy",}, + {"name":"node_dust","order":21,"path":"scripts/node_dust/node_dust.yy",}, {"name":"node_noise_cell","order":2,"path":"scripts/node_noise_cell/node_noise_cell.yy",}, {"name":"__background_get_internal","order":2,"path":"scripts/__background_get_internal/__background_get_internal.yy",}, {"name":"s_biterator_b_labels","order":9,"path":"sprites/s_biterator_b_labels/s_biterator_b_labels.yy",}, - {"name":"sh_combine_hsv","order":41,"path":"shaders/sh_combine_hsv/sh_combine_hsv.yy",}, + {"name":"sh_combine_hsv","order":10,"path":"shaders/sh_combine_hsv/sh_combine_hsv.yy",}, {"name":"s_node_array_insert","order":4,"path":"sprites/s_node_array_insert/s_node_array_insert.yy",}, {"name":"addon_lua","order":1,"path":"scripts/addon_lua/addon_lua.yy",}, {"name":"nodeValue_drawer","order":1,"path":"scripts/nodeValue_drawer/nodeValue_drawer.yy",}, {"name":"mtl_reader","order":6,"path":"scripts/mtl_reader/mtl_reader.yy",}, {"name":"s_node_3d_array","order":7,"path":"sprites/s_node_3d_array/s_node_3d_array.yy",}, - {"name":"node_plot_linear","order":29,"path":"scripts/node_plot_linear/node_plot_linear.yy",}, + {"name":"node_plot_linear","order":13,"path":"scripts/node_plot_linear/node_plot_linear.yy",}, {"name":"addon_lua_constant","order":5,"path":"scripts/addon_lua_constant/addon_lua_constant.yy",}, {"name":"sh_fd_velocity_combine","order":21,"path":"shaders/sh_fd_velocity_combine/sh_fd_velocity_combine.yy",}, {"name":"sh_scale2x","order":27,"path":"shaders/sh_scale2x/sh_scale2x.yy",}, @@ -640,7 +647,7 @@ {"name":"node_9slice","order":5,"path":"scripts/node_9slice/node_9slice.yy",}, {"name":"fd_rectangle_add_velocity_surface","order":24,"path":"scripts/fd_rectangle_add_velocity_surface/fd_rectangle_add_velocity_surface.yy",}, {"name":"BBMOD_Vec2","order":4,"path":"scripts/BBMOD_Vec2/BBMOD_Vec2.yy",}, - {"name":"sh_grid_hex","order":21,"path":"shaders/sh_grid_hex/sh_grid_hex.yy",}, + {"name":"sh_grid_hex","order":1,"path":"shaders/sh_grid_hex/sh_grid_hex.yy",}, {"name":"s_node_lua_surface","order":18,"path":"sprites/s_node_lua_surface/s_node_lua_surface.yy",}, {"name":"node_data","order":1,"path":"scripts/node_data/node_data.yy",}, {"name":"node_wiggler","order":2,"path":"scripts/node_wiggler/node_wiggler.yy",}, @@ -665,7 +672,7 @@ {"name":"node_transform_array","order":15,"path":"scripts/node_transform_array/node_transform_array.yy",}, {"name":"s_node_loop_array","order":23,"path":"sprites/s_node_loop_array/s_node_loop_array.yy",}, {"name":"s_node_iterator_amount","order":26,"path":"sprites/s_node_iterator_amount/s_node_iterator_amount.yy",}, - {"name":"sh_color_adjust","order":6,"path":"shaders/sh_color_adjust/sh_color_adjust.yy",}, + {"name":"sh_color_adjust","order":4,"path":"shaders/sh_color_adjust/sh_color_adjust.yy",}, {"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",}, @@ -686,7 +693,7 @@ {"name":"s_biterator_color_slot","order":17,"path":"sprites/s_biterator_color_slot/s_biterator_color_slot.yy",}, {"name":"node_surface_from_color","order":1,"path":"scripts/node_surface_from_color/node_surface_from_color.yy",}, {"name":"panel_animation","order":1,"path":"scripts/panel_animation/panel_animation.yy",}, - {"name":"node_surface_replace","order":27,"path":"scripts/node_surface_replace/node_surface_replace.yy",}, + {"name":"node_surface_replace","order":12,"path":"scripts/node_surface_replace/node_surface_replace.yy",}, {"name":"node_strand_create","order":1,"path":"scripts/node_strand_create/node_strand_create.yy",}, {"name":"sh_gradient","order":17,"path":"shaders/sh_gradient/sh_gradient.yy",}, {"name":"node_json_file_read","order":8,"path":"scripts/node_json_file_read/node_json_file_read.yy",}, @@ -722,6 +729,7 @@ {"name":"sh_blend_overlay","order":15,"path":"shaders/sh_blend_overlay/sh_blend_overlay.yy",}, {"name":"node_sprite_stack","order":4,"path":"scripts/node_sprite_stack/node_sprite_stack.yy",}, {"name":"s_node_json_file_read","order":11,"path":"sprites/s_node_json_file_read/s_node_json_file_read.yy",}, + {"name":"s_node_palette_shift","order":58,"path":"sprites/s_node_palette_shift/s_node_palette_shift.yy",}, {"name":"__strandSim","order":2,"path":"scripts/__strandSim/__strandSim.yy",}, {"name":"sh_shape","order":3,"path":"shaders/sh_shape/sh_shape.yy",}, {"name":"draw_line_width2","order":2,"path":"scripts/draw_line_width2/draw_line_width2.yy",}, @@ -750,7 +758,7 @@ {"name":"fd_rectangle_reset_target","order":17,"path":"scripts/fd_rectangle_reset_target/fd_rectangle_reset_target.yy",}, {"name":"node_rate_remap","order":3,"path":"scripts/node_rate_remap/node_rate_remap.yy",}, {"name":"obj_reader","order":2,"path":"scripts/obj_reader/obj_reader.yy",}, - {"name":"sh_invert","order":25,"path":"shaders/sh_invert/sh_invert.yy",}, + {"name":"sh_invert","order":17,"path":"shaders/sh_invert/sh_invert.yy",}, {"name":"preview_overlay_puppet","order":4,"path":"scripts/preview_overlay_puppet/preview_overlay_puppet.yy",}, {"name":"s_icon_64","order":2,"path":"sprites/s_icon_64/s_icon_64.yy",}, {"name":"panel_graph_export_image","order":4,"path":"scripts/panel_graph_export_image/panel_graph_export_image.yy",}, @@ -785,7 +793,7 @@ {"name":"__polygon","order":2,"path":"scripts/__polygon/__polygon.yy",}, {"name":"o_dialog_fontscrollbox","order":4,"path":"objects/o_dialog_fontscrollbox/o_dialog_fontscrollbox.yy",}, {"name":"s_node_vfx_output","order":11,"path":"sprites/s_node_vfx_output/s_node_vfx_output.yy",}, - {"name":"sh_greyscale","order":10,"path":"shaders/sh_greyscale/sh_greyscale.yy",}, + {"name":"sh_greyscale","order":13,"path":"shaders/sh_greyscale/sh_greyscale.yy",}, {"name":"gameframe_native","order":2,"path":"extensions/gameframe_native/gameframe_native.yy",}, {"name":"node_global","order":3,"path":"scripts/node_global/node_global.yy",}, {"name":"spr_gameframe_buttons","order":1,"path":"sprites/spr_gameframe_buttons/spr_gameframe_buttons.yy",}, @@ -807,7 +815,7 @@ {"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",}, - {"name":"node_seperate_shapes","order":9,"path":"scripts/node_seperate_shapes/node_seperate_shapes.yy",}, + {"name":"node_seperate_shapes","order":4,"path":"scripts/node_seperate_shapes/node_seperate_shapes.yy",}, {"name":"node_fluid_domain_queue","order":9,"path":"scripts/node_fluid_domain_queue/node_fluid_domain_queue.yy",}, {"name":"node_sequence_to_anim","order":3,"path":"scripts/node_sequence_to_anim/node_sequence_to_anim.yy",}, {"name":"sh_blend_replace","order":50,"path":"shaders/sh_blend_replace/sh_blend_replace.yy",}, @@ -840,7 +848,7 @@ {"name":"s_node_color_data","order":3,"path":"sprites/s_node_color_data/s_node_color_data.yy",}, {"name":"fd_rectangle_set_repeat","order":12,"path":"scripts/fd_rectangle_set_repeat/fd_rectangle_set_repeat.yy",}, {"name":"sh_fd_calculate_velocity_divergence_glsl","order":10,"path":"shaders/sh_fd_calculate_velocity_divergence_glsl/sh_fd_calculate_velocity_divergence_glsl.yy",}, - {"name":"node_simple_shape","order":4,"path":"scripts/node_simple_shape/node_simple_shape.yy",}, + {"name":"node_simple_shape","order":2,"path":"scripts/node_simple_shape/node_simple_shape.yy",}, {"name":"node_wav_file_write","order":3,"path":"scripts/node_wav_file_write/node_wav_file_write.yy",}, {"name":"node_random","order":5,"path":"scripts/node_random/node_random.yy",}, {"name":"node_atlas","order":2,"path":"scripts/node_atlas/node_atlas.yy",}, @@ -891,10 +899,10 @@ {"name":"node_string_path_separate_folder","order":12,"path":"scripts/node_string_path_separate_folder/node_string_path_separate_folder.yy",}, {"name":"sh_erode","order":17,"path":"shaders/sh_erode/sh_erode.yy",}, {"name":"fd_rectangle_get_velocity_dissipation_value","order":21,"path":"scripts/fd_rectangle_get_velocity_dissipation_value/fd_rectangle_get_velocity_dissipation_value.yy",}, - {"name":"node_pixel_cloud","order":15,"path":"scripts/node_pixel_cloud/node_pixel_cloud.yy",}, + {"name":"node_pixel_cloud","order":7,"path":"scripts/node_pixel_cloud/node_pixel_cloud.yy",}, {"name":"s_node_crop_content","order":13,"path":"sprites/s_node_crop_content/s_node_crop_content.yy",}, {"name":"draw_line_zigzag","order":20,"path":"scripts/draw_line_zigzag/draw_line_zigzag.yy",}, - {"name":"sh_alpha_grey","order":13,"path":"shaders/sh_alpha_grey/sh_alpha_grey.yy",}, + {"name":"sh_alpha_grey","order":1,"path":"shaders/sh_alpha_grey/sh_alpha_grey.yy",}, {"name":"s_node_rigidSim_activate","order":6,"path":"sprites/s_node_rigidSim_activate/s_node_rigidSim_activate.yy",}, {"name":"s_transparent","order":1,"path":"sprites/s_transparent/s_transparent.yy",}, {"name":"o_dialog_animation","order":1,"path":"objects/o_dialog_animation/o_dialog_animation.yy",}, @@ -914,13 +922,13 @@ {"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_text_combine","order":3,"path":"sprites/s_node_text_combine/s_node_text_combine.yy",}, - {"name":"sh_noise_fbm","order":27,"path":"shaders/sh_noise_fbm/sh_noise_fbm.yy",}, + {"name":"sh_noise_fbm","order":1,"path":"shaders/sh_noise_fbm/sh_noise_fbm.yy",}, {"name":"s_node_gradient","order":1,"path":"sprites/s_node_gradient/s_node_gradient.yy",}, {"name":"fd_rectangle_get_acceleration_x","order":2,"path":"scripts/fd_rectangle_get_acceleration_x/fd_rectangle_get_acceleration_x.yy",}, {"name":"s_node_padding","order":4,"path":"sprites/s_node_padding/s_node_padding.yy",}, {"name":"sh_blend_add_alpha_adj","order":2,"path":"shaders/sh_blend_add_alpha_adj/sh_blend_add_alpha_adj.yy",}, {"name":"preview_overlay_area","order":3,"path":"scripts/preview_overlay_area/preview_overlay_area.yy",}, - {"name":"node_text","order":10,"path":"scripts/node_text/node_text.yy",}, + {"name":"node_text","order":5,"path":"scripts/node_text/node_text.yy",}, {"name":"panel_collection","order":3,"path":"scripts/panel_collection/panel_collection.yy",}, {"name":"node_string_trim","order":4,"path":"scripts/node_string_trim/node_string_trim.yy",}, {"name":"lerp_float","order":1,"path":"scripts/lerp_float/lerp_float.yy",}, @@ -998,7 +1006,7 @@ {"name":"node_text_file_read","order":7,"path":"scripts/node_text_file_read/node_text_file_read.yy",}, {"name":"draw_tooltip","order":13,"path":"scripts/draw_tooltip/draw_tooltip.yy",}, {"name":"sh_palette_replace","order":45,"path":"shaders/sh_palette_replace/sh_palette_replace.yy",}, - {"name":"sh_cell_noise_random","order":6,"path":"shaders/sh_cell_noise_random/sh_cell_noise_random.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",}, {"name":"node_fluid_add","order":4,"path":"scripts/node_fluid_add/node_fluid_add.yy",}, @@ -1013,7 +1021,7 @@ {"name":"node_array_length","order":11,"path":"scripts/node_array_length/node_array_length.yy",}, {"name":"node_erode","order":9,"path":"scripts/node_erode/node_erode.yy",}, {"name":"node_wrap_mesh","order":6,"path":"scripts/node_wrap_mesh/node_wrap_mesh.yy",}, - {"name":"sh_alpha_hash","order":43,"path":"shaders/sh_alpha_hash/sh_alpha_hash.yy",}, + {"name":"sh_alpha_hash","order":2,"path":"shaders/sh_alpha_hash/sh_alpha_hash.yy",}, {"name":"vct_slider","order":1,"path":"scripts/vct_slider/vct_slider.yy",}, {"name":"panel_node_align","order":3,"path":"scripts/panel_node_align/panel_node_align.yy",}, {"name":"sh_blur_alpha","order":1,"path":"shaders/sh_blur_alpha/sh_blur_alpha.yy",}, @@ -1072,6 +1080,7 @@ {"name":"node_websocket_sender","order":1,"path":"scripts/node_websocket_sender/node_websocket_sender.yy",}, {"name":"fd_rectangle_get_acceleration_b","order":1,"path":"scripts/fd_rectangle_get_acceleration_b/fd_rectangle_get_acceleration_b.yy",}, {"name":"surface_draw_functions","order":7,"path":"scripts/surface_draw_functions/surface_draw_functions.yy",}, + {"name":"s_node_region_fill","order":29,"path":"sprites/s_node_region_fill/s_node_region_fill.yy",}, {"name":"sh_default","order":6,"path":"shaders/sh_default/sh_default.yy",}, {"name":"BBMOD_Matrix","order":2,"path":"scripts/BBMOD_Matrix/BBMOD_Matrix.yy",}, {"name":"pack_shelf","order":1,"path":"scripts/pack_shelf/pack_shelf.yy",}, @@ -1089,7 +1098,7 @@ {"name":"node_display_text","order":3,"path":"scripts/node_display_text/node_display_text.yy",}, {"name":"s_biterator_b_shape_press","order":4,"path":"sprites/s_biterator_b_shape_press/s_biterator_b_shape_press.yy",}, {"name":"node_strand_update","order":3,"path":"scripts/node_strand_update/node_strand_update.yy",}, - {"name":"sh_grid_noise","order":8,"path":"shaders/sh_grid_noise/sh_grid_noise.yy",}, + {"name":"sh_grid_noise","order":2,"path":"shaders/sh_grid_noise/sh_grid_noise.yy",}, {"name":"draw_set_blend_mode","order":1,"path":"scripts/draw_set_blend_mode/draw_set_blend_mode.yy",}, {"name":"gameframe_macros","order":1,"path":"scripts/gameframe_macros/gameframe_macros.yy",}, {"name":"s_node_trigger_bool","order":4,"path":"sprites/s_node_trigger_bool/s_node_trigger_bool.yy",}, @@ -1099,7 +1108,7 @@ {"name":"fd_rectangle_get_material_dissipation_value","order":9,"path":"scripts/fd_rectangle_get_material_dissipation_value/fd_rectangle_get_material_dissipation_value.yy",}, {"name":"node_counter","order":1,"path":"scripts/node_counter/node_counter.yy",}, {"name":"s_node_shape_polygon","order":25,"path":"sprites/s_node_shape_polygon/s_node_shape_polygon.yy",}, - {"name":"sh_color_picker_hue","order":7,"path":"shaders/sh_color_picker_hue/sh_color_picker_hue.yy",}, + {"name":"sh_color_picker_hue","order":5,"path":"shaders/sh_color_picker_hue/sh_color_picker_hue.yy",}, {"name":"node_path_eval","order":4,"path":"scripts/node_path_eval/node_path_eval.yy",}, {"name":"sh_3d_depth","order":7,"path":"shaders/sh_3d_depth/sh_3d_depth.yy",}, {"name":"node_3d_displace","order":18,"path":"scripts/node_3d_displace/node_3d_displace.yy",}, @@ -1138,9 +1147,9 @@ {"name":"s_node_strandSim_force","order":6,"path":"sprites/s_node_strandSim_force/s_node_strandSim_force.yy",}, {"name":"s_node_array_reverse","order":8,"path":"sprites/s_node_array_reverse/s_node_array_reverse.yy",}, {"name":"o_process_handler","order":3,"path":"objects/o_process_handler/o_process_handler.yy",}, - {"name":"sh_ani_noise","order":4,"path":"shaders/sh_ani_noise/sh_ani_noise.yy",}, - {"name":"sh_level","order":11,"path":"shaders/sh_level/sh_level.yy",}, - {"name":"sh_grid_tri","order":20,"path":"shaders/sh_grid_tri/sh_grid_tri.yy",}, + {"name":"sh_ani_noise","order":8,"path":"shaders/sh_ani_noise/sh_ani_noise.yy",}, + {"name":"sh_level","order":14,"path":"shaders/sh_level/sh_level.yy",}, + {"name":"sh_grid_tri","order":3,"path":"shaders/sh_grid_tri/sh_grid_tri.yy",}, {"name":"s_node_text","order":1,"path":"sprites/s_node_text/s_node_text.yy",}, {"name":"panel_menu","order":6,"path":"scripts/panel_menu/panel_menu.yy",}, {"name":"s_node_ase_file","order":15,"path":"sprites/s_node_ase_file/s_node_ase_file.yy",}, @@ -1201,7 +1210,7 @@ {"name":"_f_p2","order":4,"path":"fonts/_f_p2/_f_p2.yy",}, {"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":11,"path":"scripts/node_text_file_write/node_text_file_write.yy",}, - {"name":"sh_lum2alpha","order":38,"path":"shaders/sh_lum2alpha/sh_lum2alpha.yy",}, + {"name":"sh_lum2alpha","order":16,"path":"shaders/sh_lum2alpha/sh_lum2alpha.yy",}, {"name":"button","order":2,"path":"scripts/button/button.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",}, @@ -1211,6 +1220,7 @@ {"name":"s_node_3d_cylinder","order":1,"path":"sprites/s_node_3d_cylinder/s_node_3d_cylinder.yy",}, {"name":"node_strand_break","order":9,"path":"scripts/node_strand_break/node_strand_break.yy",}, {"name":"s_biterator_b_grey_long","order":7,"path":"sprites/s_biterator_b_grey_long/s_biterator_b_grey_long.yy",}, + {"name":"sh_region_fill_color","order":1,"path":"shaders/sh_region_fill_color/sh_region_fill_color.yy",}, {"name":"s_node_vec_split","order":6,"path":"sprites/s_node_vec_split/s_node_vec_split.yy",}, {"name":"s_node_regex_replace","order":10,"path":"sprites/s_node_regex_replace/s_node_regex_replace.yy",}, {"name":"paddingBox","order":9,"path":"scripts/paddingBox/paddingBox.yy",}, @@ -1249,7 +1259,7 @@ {"name":"sh_channel_S","order":5,"path":"shaders/sh_channel_S/sh_channel_S.yy",}, {"name":"string_scale","order":4,"path":"scripts/string_scale/string_scale.yy",}, {"name":"s_node_cache","order":27,"path":"sprites/s_node_cache/s_node_cache.yy",}, - {"name":"node_repeat","order":24,"path":"scripts/node_repeat/node_repeat.yy",}, + {"name":"node_repeat","order":9,"path":"scripts/node_repeat/node_repeat.yy",}, {"name":"draw_arc","order":22,"path":"scripts/draw_arc/draw_arc.yy",}, {"name":"sh_fd_advect_velocity_1_glsl","order":7,"path":"shaders/sh_fd_advect_velocity_1_glsl/sh_fd_advect_velocity_1_glsl.yy",}, {"name":"mac_window_step","order":1,"path":"scripts/mac_window_step/mac_window_step.yy",}, @@ -1273,7 +1283,7 @@ {"name":"rangeBox","order":10,"path":"scripts/rangeBox/rangeBox.yy",}, {"name":"s_node_array_copy","order":14,"path":"sprites/s_node_array_copy/s_node_array_copy.yy",}, {"name":"node_VFX_effect_accelerate","order":7,"path":"scripts/node_VFX_effect_accelerate/node_VFX_effect_accelerate.yy",}, - {"name":"node_flood_fill","order":26,"path":"scripts/node_flood_fill/node_flood_fill.yy",}, + {"name":"node_flood_fill","order":11,"path":"scripts/node_flood_fill/node_flood_fill.yy",}, {"name":"node_frame","order":1,"path":"scripts/node_frame/node_frame.yy",}, {"name":"s_node_scale_algo","order":7,"path":"sprites/s_node_scale_algo/s_node_scale_algo.yy",}, {"name":"sh_sdf_dist","order":4,"path":"shaders/sh_sdf_dist/sh_sdf_dist.yy",}, @@ -1282,6 +1292,7 @@ {"name":"BBMOD_Vec3","order":5,"path":"scripts/BBMOD_Vec3/BBMOD_Vec3.yy",}, {"name":"node_rigid_object_spawner","order":6,"path":"scripts/node_rigid_object_spawner/node_rigid_object_spawner.yy",}, {"name":"o_dialog_graph_connection","order":5,"path":"objects/o_dialog_graph_connection/o_dialog_graph_connection.yy",}, + {"name":"node_palette_shift","order":13,"path":"scripts/node_palette_shift/node_palette_shift.yy",}, {"name":"sh_fd_advect_velocity_0_glsl","order":6,"path":"shaders/sh_fd_advect_velocity_0_glsl/sh_fd_advect_velocity_0_glsl.yy",}, {"name":"sh_flood_fill_replace","order":2,"path":"shaders/sh_flood_fill_replace/sh_flood_fill_replace.yy",}, {"name":"sprite_loader","order":11,"path":"scripts/sprite_loader/sprite_loader.yy",}, @@ -1320,7 +1331,7 @@ {"name":"dialog_management","order":2,"path":"scripts/dialog_management/dialog_management.yy",}, {"name":"draw_shapes","order":10,"path":"scripts/draw_shapes/draw_shapes.yy",}, {"name":"sh_surface_replace_fast_replace","order":3,"path":"shaders/sh_surface_replace_fast_replace/sh_surface_replace_fast_replace.yy",}, - {"name":"node_solid","order":14,"path":"scripts/node_solid/node_solid.yy",}, + {"name":"node_solid","order":6,"path":"scripts/node_solid/node_solid.yy",}, {"name":"sh_blend_luma","order":19,"path":"shaders/sh_blend_luma/sh_blend_luma.yy",}, {"name":"fd_rectangle_set_material_dissipation_value","order":5,"path":"scripts/fd_rectangle_set_material_dissipation_value/fd_rectangle_set_material_dissipation_value.yy",}, {"name":"node_iterator_output","order":2,"path":"scripts/node_iterator_output/node_iterator_output.yy",}, @@ -1346,7 +1357,7 @@ {"name":"node_array_shuffle","order":22,"path":"scripts/node_array_shuffle/node_array_shuffle.yy",}, {"name":"panel_node_data_gen","order":9,"path":"scripts/panel_node_data_gen/panel_node_data_gen.yy",}, {"name":"fd_rectangle_update_material","order":21,"path":"scripts/fd_rectangle_update_material/fd_rectangle_update_material.yy",}, - {"name":"sh_perlin_tiled","order":2,"path":"shaders/sh_perlin_tiled/sh_perlin_tiled.yy",}, + {"name":"sh_perlin_tiled","order":6,"path":"shaders/sh_perlin_tiled/sh_perlin_tiled.yy",}, {"name":"sh_time_remap","order":2,"path":"shaders/sh_time_remap/sh_time_remap.yy",}, ], } \ No newline at end of file diff --git a/PixelComposer.yyp b/PixelComposer.yyp index b8921d1ac..22e34154a 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -182,10 +182,16 @@ {"resourceType":"GMFolder","resourceVersion":"1.0","name":"color selector","folderPath":"folders/shader/color selector.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"draw","folderPath":"folders/shader/draw.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"filter","folderPath":"folders/shader/filter.yy",}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"color","folderPath":"folders/shader/filter/color.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"shadow caster","folderPath":"folders/shader/filter/shadow caster.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"flood fill","folderPath":"folders/shader/flood fill.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"generator","folderPath":"folders/shader/generator.yy",}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"blinker","folderPath":"folders/shader/generator/blinker.yy",}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"cell","folderPath":"folders/shader/generator/cell.yy",}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"grid","folderPath":"folders/shader/generator/grid.yy",}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"noise","folderPath":"folders/shader/generator/noise.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"random shape","folderPath":"folders/shader/generator/random shape.yy",}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"region","folderPath":"folders/shader/generator/region.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"mask","folderPath":"folders/shader/mask.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"misc","folderPath":"folders/shader/misc.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"morph","folderPath":"folders/shader/morph.yy",}, @@ -680,6 +686,7 @@ {"id":{"name":"node_pixel_sort","path":"scripts/node_pixel_sort/node_pixel_sort.yy",},}, {"id":{"name":"sh_dither","path":"shaders/sh_dither/sh_dither.yy",},}, {"id":{"name":"control_function","path":"scripts/control_function/control_function.yy",},}, + {"id":{"name":"node_region_fill","path":"scripts/node_region_fill/node_region_fill.yy",},}, {"id":{"name":"panel_data","path":"scripts/panel_data/panel_data.yy",},}, {"id":{"name":"s_node_text_file_read","path":"sprites/s_node_text_file_read/s_node_text_file_read.yy",},}, {"id":{"name":"s_node_text_trim","path":"sprites/s_node_text_trim/s_node_text_trim.yy",},}, @@ -731,6 +738,7 @@ {"id":{"name":"o_dialog_textbox_autocomplete","path":"objects/o_dialog_textbox_autocomplete/o_dialog_textbox_autocomplete.yy",},}, {"id":{"name":"s_node_loop_input","path":"sprites/s_node_loop_input/s_node_loop_input.yy",},}, {"id":{"name":"node_strand_length_adjust","path":"scripts/node_strand_length_adjust/node_strand_length_adjust.yy",},}, + {"id":{"name":"node_blinker","path":"scripts/node_blinker/node_blinker.yy",},}, {"id":{"name":"fd_rectangle_add_material_surface","path":"scripts/fd_rectangle_add_material_surface/fd_rectangle_add_material_surface.yy",},}, {"id":{"name":"perlin_noise","path":"scripts/perlin_noise/perlin_noise.yy",},}, {"id":{"name":"fd_rectangle_replace_material","path":"scripts/fd_rectangle_replace_material/fd_rectangle_replace_material.yy",},}, @@ -824,6 +832,7 @@ {"id":{"name":"o_dialog_group_input_order","path":"objects/o_dialog_group_input_order/o_dialog_group_input_order.yy",},}, {"id":{"name":"node_string_get_char","path":"scripts/node_string_get_char/node_string_get_char.yy",},}, {"id":{"name":"_p_dialog_undo_block","path":"objects/_p_dialog_undo_block/_p_dialog_undo_block.yy",},}, + {"id":{"name":"sh_palette_shift","path":"shaders/sh_palette_shift/sh_palette_shift.yy",},}, {"id":{"name":"node_array_copy","path":"scripts/node_array_copy/node_array_copy.yy",},}, {"id":{"name":"draw_line_elbow","path":"scripts/draw_line_elbow/draw_line_elbow.yy",},}, {"id":{"name":"node_path_reverse","path":"scripts/node_path_reverse/node_path_reverse.yy",},}, @@ -1136,6 +1145,7 @@ {"id":{"name":"buttonPalette","path":"scripts/buttonPalette/buttonPalette.yy",},}, {"id":{"name":"fd_rectangle_draw_stretched","path":"scripts/fd_rectangle_draw_stretched/fd_rectangle_draw_stretched.yy",},}, {"id":{"name":"s_node_wiggler","path":"sprites/s_node_wiggler/s_node_wiggler.yy",},}, + {"id":{"name":"sh_region_fill_coordinate","path":"shaders/sh_region_fill_coordinate/sh_region_fill_coordinate.yy",},}, {"id":{"name":"s_node_to_text","path":"sprites/s_node_to_text/s_node_to_text.yy",},}, {"id":{"name":"sh_edge_detect","path":"shaders/sh_edge_detect/sh_edge_detect.yy",},}, {"id":{"name":"s_node_area","path":"sprites/s_node_area/s_node_area.yy",},}, @@ -1160,6 +1170,7 @@ {"id":{"name":"o_dialog_textbox_function_guide","path":"objects/o_dialog_textbox_function_guide/o_dialog_textbox_function_guide.yy",},}, {"id":{"name":"pxl_server","path":"scripts/pxl_server/pxl_server.yy",},}, {"id":{"name":"s_node_array_set","path":"sprites/s_node_array_set/s_node_array_set.yy",},}, + {"id":{"name":"node_dust","path":"scripts/node_dust/node_dust.yy",},}, {"id":{"name":"node_noise_cell","path":"scripts/node_noise_cell/node_noise_cell.yy",},}, {"id":{"name":"__background_get_internal","path":"scripts/__background_get_internal/__background_get_internal.yy",},}, {"id":{"name":"s_biterator_b_labels","path":"sprites/s_biterator_b_labels/s_biterator_b_labels.yy",},}, @@ -1299,6 +1310,7 @@ {"id":{"name":"sh_blend_overlay","path":"shaders/sh_blend_overlay/sh_blend_overlay.yy",},}, {"id":{"name":"node_sprite_stack","path":"scripts/node_sprite_stack/node_sprite_stack.yy",},}, {"id":{"name":"s_node_json_file_read","path":"sprites/s_node_json_file_read/s_node_json_file_read.yy",},}, + {"id":{"name":"s_node_palette_shift","path":"sprites/s_node_palette_shift/s_node_palette_shift.yy",},}, {"id":{"name":"__strandSim","path":"scripts/__strandSim/__strandSim.yy",},}, {"id":{"name":"sh_shape","path":"shaders/sh_shape/sh_shape.yy",},}, {"id":{"name":"draw_line_width2","path":"scripts/draw_line_width2/draw_line_width2.yy",},}, @@ -1522,6 +1534,7 @@ {"id":{"name":"sh_draw_vertex_aa","path":"shaders/sh_draw_vertex_aa/sh_draw_vertex_aa.yy",},}, {"id":{"name":"fd_rectangle_get_velocity_width","path":"scripts/fd_rectangle_get_velocity_width/fd_rectangle_get_velocity_width.yy",},}, {"id":{"name":"node_convolution","path":"scripts/node_convolution/node_convolution.yy",},}, + {"id":{"name":"sh_blink_extract","path":"shaders/sh_blink_extract/sh_blink_extract.yy",},}, {"id":{"name":"sh_outline_only","path":"shaders/sh_outline_only/sh_outline_only.yy",},}, {"id":{"name":"lcd_function","path":"scripts/lcd_function/lcd_function.yy",},}, {"id":{"name":"s_node_destray","path":"sprites/s_node_destray/s_node_destray.yy",},}, @@ -1695,6 +1708,7 @@ {"id":{"name":"node_websocket_sender","path":"scripts/node_websocket_sender/node_websocket_sender.yy",},}, {"id":{"name":"fd_rectangle_get_acceleration_b","path":"scripts/fd_rectangle_get_acceleration_b/fd_rectangle_get_acceleration_b.yy",},}, {"id":{"name":"surface_draw_functions","path":"scripts/surface_draw_functions/surface_draw_functions.yy",},}, + {"id":{"name":"s_node_region_fill","path":"sprites/s_node_region_fill/s_node_region_fill.yy",},}, {"id":{"name":"sh_default","path":"shaders/sh_default/sh_default.yy",},}, {"id":{"name":"BBMOD_Matrix","path":"scripts/BBMOD_Matrix/BBMOD_Matrix.yy",},}, {"id":{"name":"pack_shelf","path":"scripts/pack_shelf/pack_shelf.yy",},}, @@ -1855,6 +1869,7 @@ {"id":{"name":"s_node_3d_cylinder","path":"sprites/s_node_3d_cylinder/s_node_3d_cylinder.yy",},}, {"id":{"name":"node_strand_break","path":"scripts/node_strand_break/node_strand_break.yy",},}, {"id":{"name":"s_biterator_b_grey_long","path":"sprites/s_biterator_b_grey_long/s_biterator_b_grey_long.yy",},}, + {"id":{"name":"sh_region_fill_color","path":"shaders/sh_region_fill_color/sh_region_fill_color.yy",},}, {"id":{"name":"s_node_vec_split","path":"sprites/s_node_vec_split/s_node_vec_split.yy",},}, {"id":{"name":"s_node_regex_replace","path":"sprites/s_node_regex_replace/s_node_regex_replace.yy",},}, {"id":{"name":"paddingBox","path":"scripts/paddingBox/paddingBox.yy",},}, @@ -1936,6 +1951,7 @@ {"id":{"name":"BBMOD_Vec3","path":"scripts/BBMOD_Vec3/BBMOD_Vec3.yy",},}, {"id":{"name":"node_rigid_object_spawner","path":"scripts/node_rigid_object_spawner/node_rigid_object_spawner.yy",},}, {"id":{"name":"o_dialog_graph_connection","path":"objects/o_dialog_graph_connection/o_dialog_graph_connection.yy",},}, + {"id":{"name":"node_palette_shift","path":"scripts/node_palette_shift/node_palette_shift.yy",},}, {"id":{"name":"sh_fd_advect_velocity_0_glsl","path":"shaders/sh_fd_advect_velocity_0_glsl/sh_fd_advect_velocity_0_glsl.yy",},}, {"id":{"name":"sh_flood_fill_replace","path":"shaders/sh_flood_fill_replace/sh_flood_fill_replace.yy",},}, {"id":{"name":"sprite_loader","path":"scripts/sprite_loader/sprite_loader.yy",},}, diff --git a/scripts/VCT/VCT.gml b/scripts/VCT/VCT.gml index 6a98e9bf1..50f77de09 100644 --- a/scripts/VCT/VCT.gml +++ b/scripts/VCT/VCT.gml @@ -16,17 +16,28 @@ function VCT(node) constructor { static process = function(params) {} static serialize = function() { - var s = []; + var s = {}; + + s.variables = []; for( var i = 0; i < array_length(vars); i++ ) - s[i] = vars[i].get(); + s.variables[i] = vars[i].get(); + + doSerialize(s); return s; } + static doSerialize = function(s) {} + static deserialize = function(load_arr) { - var amo = min(array_length(load_arr), array_length(vars)); + var variables = load_arr.variables; + var amo = min(array_length(variables), array_length(vars)); for( var i = 0; i < amo; i++ ) - vars[i].set(load_arr[i]); + vars[i].set(variables[i]); + + doDeserialize(load_arr); } + + static doDeserialize = function(load_arr) {} } function PanelVCT(vct) : PanelContent() constructor { diff --git a/scripts/node_VCT/node_VCT.gml b/scripts/node_VCT/node_VCT.gml index feb950299..1603ff604 100644 --- a/scripts/node_VCT/node_VCT.gml +++ b/scripts/node_VCT/node_VCT.gml @@ -36,7 +36,12 @@ function Node_VCT(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) const static process_data = function(_outSurf, _data, _output_index, _array_index) { for( var i = 1; i < array_length(_data); i++ ) vct[$ inputs[| i].extra_data.key].setDirect(_data[i]); - return vct.process(); + + var params = { + frame: PROJECT.animator.current_frame + }; + + return vct.process(params); } static onDoubleClick = function(panel) { diff --git a/scripts/node_blinker/node_blinker.gml b/scripts/node_blinker/node_blinker.gml new file mode 100644 index 000000000..bab58b40b --- /dev/null +++ b/scripts/node_blinker/node_blinker.gml @@ -0,0 +1,53 @@ +function Node_Blinker(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { + name = "Blinker"; + + inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + + inputs[| 1] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + + inputs[| 2] = nodeValue("Seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, irandom_range( 100000, 999999 )) + + inputs[| 3] = nodeValue("Amount", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5) + .setDisplay(VALUE_DISPLAY.slider, [ 0, 1, 0.01 ]); + + inputs[| 4] = nodeValue("Target Colors", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, [ c_white ]) + .setDisplay(VALUE_DISPLAY.palette); + + inputs[| 5] = nodeValue("Light Colors", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, [ c_white ]) + .setDisplay(VALUE_DISPLAY.palette); + + inputs[| 6] = nodeValue("Active", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); + active_index = 6; + + outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + + input_display_list = [ 6, + ["Output", false], 0, 1, + ["Blink", false], 2, 3, 4, 5, + ] + + temp_surface = [ surface_create( 1, 1 ) ]; + + static process_data = function(_outSurf, _data, _output_index, _array_index) { + //var _surf = _data[0]; + //var _mask = _data[1]; + //var _seed = _data[2]; + //var _amou = _data[3]; + //var _trgC = _data[4]; + //var _ligC = _data[5]; + + //if(!is_surface(_surf)) return _outSurf; + + //temp_surface[0] = surface_verify(temp_surface[0], surface_get_width(_outSurf), surface_get_height(_outSurf)); + + //surface_set_shader(temp_surface[0], sh_blink_extract); + // draw_surface(_surf); + //surface_reset_shader(); + + //surface_set_shader(_outSurf, sh_blink_replace); + // draw_surface(temp_surface[0]); + //surface_reset_shader(); + + //return _outSurf; + } +} \ No newline at end of file diff --git a/scripts/node_blinker/node_blinker.yy b/scripts/node_blinker/node_blinker.yy new file mode 100644 index 000000000..3f5f31beb --- /dev/null +++ b/scripts/node_blinker/node_blinker.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_blinker", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "generator", + "path": "folders/nodes/data/generator.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_canvas/node_canvas.gml b/scripts/node_canvas/node_canvas.gml index 209e2ef4d..645613e29 100644 --- a/scripts/node_canvas/node_canvas.gml +++ b/scripts/node_canvas/node_canvas.gml @@ -6,7 +6,7 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, def_surf_size2 ) .setDisplay(VALUE_DISPLAY.vector); - inputs[| 1] = nodeValue("Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_black ); + inputs[| 1] = nodeValue("Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white ); inputs[| 2] = nodeValue("Brush size", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1 ) .setDisplay(VALUE_DISPLAY.slider, [1, 32, 1]); @@ -653,7 +653,7 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor var __s = surface_get_target(); - prev_surface = surface_verify(prev_surface, _dim[0], _dim[1]); + prev_surface = surface_verify(prev_surface, _dim[0], _dim[1]); preview_draw_surface = surface_verify(preview_draw_surface, _dim[0], _dim[1]); _preview_draw_surface = surface_verify(_preview_draw_surface, surface_get_width(__s), surface_get_height(__s)); @@ -670,14 +670,16 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor draw_surface_safe(selection_mask, sel_x0, sel_y0); } } else if(isUsingTool("Pencil") || isUsingTool("Eraser")) { - if(isUsingTool("Eraser")) draw_set_color(c_white); + if(mouse_holding) { + if(isUsingTool("Eraser")) draw_set_color(c_white); - if(key_mod_press(SHIFT)) draw_line_size(mouse_pre_draw_x, mouse_pre_draw_y, mouse_cur_x, mouse_cur_y, _siz, _brush); - else draw_point_size(mouse_cur_x, mouse_cur_y, _siz, _brush); + if(key_mod_press(SHIFT)) draw_line_size(mouse_pre_draw_x, mouse_pre_draw_y, mouse_cur_x, mouse_cur_y, _siz, _brush); + else draw_point_size(mouse_cur_x, mouse_cur_y, _siz, _brush); + } } else if(isUsingTool("Rectangle")) { - draw_rect_size(mouse_pre_x, mouse_pre_y, mouse_cur_x, mouse_cur_y, _siz, isUsingTool("Rectangle", 1), _brush); + if(mouse_holding) draw_rect_size(mouse_pre_x, mouse_pre_y, mouse_cur_x, mouse_cur_y, _siz, isUsingTool("Rectangle", 1), _brush); } else if(isUsingTool("Ellipse")) { - draw_ellp_size(mouse_pre_x, mouse_pre_y, mouse_cur_x, mouse_cur_y, _siz, isUsingTool("Ellipse", 1), _brush); + if(mouse_holding) draw_ellp_size(mouse_pre_x, mouse_pre_y, mouse_cur_x, mouse_cur_y, _siz, isUsingTool("Ellipse", 1), _brush); } surface_reset_shader(); diff --git a/scripts/node_color_remove/node_color_remove.gml b/scripts/node_color_remove/node_color_remove.gml index 99d92cf19..e0a93471a 100644 --- a/scripts/node_color_remove/node_color_remove.gml +++ b/scripts/node_color_remove/node_color_remove.gml @@ -40,13 +40,9 @@ function Node_Color_Remove(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro var thr = _data[2]; var inv = _data[6]; - var _colors = array_create(array_length(frm) * 4); - for(var i = 0; i < array_length(frm); i++) { - _colors[i * 4 + 0] = color_get_red(frm[i]) / 255; - _colors[i * 4 + 1] = color_get_green(frm[i]) / 255; - _colors[i * 4 + 2] = color_get_blue(frm[i]) / 255; - _colors[i * 4 + 3] = 1; - } + var _colors = []; + for(var i = 0; i < array_length(frm); i++) + array_append(_colors, colToVec4(frm[i])); surface_set_target(_outSurf); DRAW_CLEAR diff --git a/scripts/node_color_replacement/node_color_replacement.gml b/scripts/node_color_replacement/node_color_replacement.gml index ea5073dc4..523b84eee 100644 --- a/scripts/node_color_replacement/node_color_replacement.gml +++ b/scripts/node_color_replacement/node_color_replacement.gml @@ -49,12 +49,13 @@ function Node_Color_replace(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr attribute_surface_depth(); static process_data = function(_outSurf, _data, _output_index, _array_index) { - var fr = _data[1]; - var to = _data[2]; - var tr = _data[3]; - var in = _data[4]; + var fr = _data[1]; + var to = _data[2]; + var tr = _data[3]; + var in = _data[4]; var alp = _data[5]; var hrd = _data[6]; + var msk = _data[7]; var _colorFrom = array_create(array_length(fr) * 4); for(var i = 0; i < array_length(fr); i++) { @@ -87,13 +88,16 @@ function Node_Color_replace(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr shader_set_uniform_f(uniform_ter, tr); shader_set_uniform_i(uniform_inv, in); + shader_set_i("useMask", is_surface(msk)); + shader_set_surface("mask", msk); + draw_surface_safe(_data[0], 0, 0); shader_reset(); BLEND_NORMAL surface_reset_target(); - _outSurf = mask_apply(_data[0], _outSurf, _data[7], _data[8]); + if(!in) _outSurf = mask_apply(_data[0], _outSurf, _data[7], _data[8]); return _outSurf; } diff --git a/scripts/node_dust/node_checkerboard.yy b/scripts/node_dust/node_checkerboard.yy new file mode 100644 index 000000000..f65eb196c --- /dev/null +++ b/scripts/node_dust/node_checkerboard.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "generator", + "path": "folders/nodes/data/generator.yy", + }, + "resourceVersion": "1.0", + "name": "node_checkerboard", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_dust/node_dust.gml b/scripts/node_dust/node_dust.gml new file mode 100644 index 000000000..f2b27ee82 --- /dev/null +++ b/scripts/node_dust/node_dust.gml @@ -0,0 +1,117 @@ +function __Dust(x, y, size = 8) constructor { + self.x = x; + self.y = y; + + self.size = size; + rad = size * 2; + + ang = 270; + + px = array_create(5, x); + py = array_create(5, y); + ps = array_create(5, size); + pr = array_create(5, rad); + pa = array_create(5, ang); + + vx = 2.8; + vy = -0.2; + + av = 64; + + afr = 0.9; + vfr = 0.9; + + static step = function() { + for( var i = array_length(px) - 1; i >= 1; i-- ) { + px[i] = px[i - 1]; + py[i] = py[i - 1]; + ps[i] = ps[i - 1]; + pr[i] = pr[i - 1]; + pa[i] = pa[i - 1]; + } + + x += vx; + y += vy; + + var dist = point_distance(0, 0, vx, vy); + var dirr = point_direction(0, 0, vx, vy); + + dist *= vfr; + av *= afr; + ang += av / dist; + rad = lerp(rad, clamp(dist * 6, 1, 8), 0.5); + size *= 0.9; + + vx = lengthdir_x(dist, dirr); + vy = lengthdir_y(dist, dirr); + + px[0] = x; + py[0] = y; + ps[0] = size; + pr[0] = rad; + pa[0] = ang; + } + + static draw = function() { + draw_set_color(c_grey); + + for( var i = 0; i < array_length(px) - 1; i++ ) { + var dist = ceil(point_distance(px[i], py[i], px[i + 1], px[i + 1])); + for( var j = 0; j < dist; j++ ) { + var _x = lerp(px[i], px[i + 1], j / dist); + var _y = lerp(py[i], py[i + 1], j / dist); + var _s = lerp(ps[i], ps[i + 1], j / dist); + var _r = lerp(pr[i], pr[i + 1], j / dist); + var _a = lerp(pa[i], pa[i + 1], j / dist); + + var _px = _x + lengthdir_x(_r, _a); + var _py = _y + lengthdir_y(_r, _a); + + if(size <= 1) draw_point(_px, _py); + else draw_circle(_px, _py, _s / 2, false); + } + + //draw_circle(px[i], py[i], pr[i], true); + } + } +} + +function Node_Dust(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { + name = "Dust"; + + inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, def_surf_size2 ) + .setDisplay(VALUE_DISPLAY.vector); + + outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); + + input_display_list = [ + ["Output", false], 0, + ["Solid", false], + ]; + + attribute_surface_depth(); + + dusts = [ ]; + + static update = function() { + var _dim = inputs[| 0].getValue(); + + var _outSurf = outputs[| 0].getValue(); + _outSurf = surface_verify(_outSurf, _dim[0], _dim[1]); + outputs[| 0].setValue(_outSurf); + + if(PROJECT.animator.current_frame == 0) { + dusts = [ new __Dust( 0, _dim[1] / 2 ) ]; + } else { + for( var i = 0; i < array_length(dusts); i++ ) + dusts[i].step(); + } + + surface_set_target(_outSurf); + DRAW_CLEAR + + for( var i = 0; i < array_length(dusts); i++ ) + dusts[i].draw(); + surface_reset_target(); + } +} \ No newline at end of file diff --git a/scripts/node_dust/node_dust.yy b/scripts/node_dust/node_dust.yy new file mode 100644 index 000000000..cc9a760ba --- /dev/null +++ b/scripts/node_dust/node_dust.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_dust", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "generator", + "path": "folders/nodes/data/generator.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_dust/node_stripe.yy b/scripts/node_dust/node_stripe.yy new file mode 100644 index 000000000..3c179d416 --- /dev/null +++ b/scripts/node_dust/node_stripe.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "generator", + "path": "folders/nodes/data/generator.yy", + }, + "resourceVersion": "1.0", + "name": "node_stripe", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_palette_shift/node_color_replacement.yy b/scripts/node_palette_shift/node_color_replacement.yy new file mode 100644 index 000000000..edec65b4c --- /dev/null +++ b/scripts/node_palette_shift/node_color_replacement.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "filter", + "path": "folders/nodes/data/filter.yy", + }, + "resourceVersion": "1.0", + "name": "node_color_replacement", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_palette_shift/node_outline.yy b/scripts/node_palette_shift/node_outline.yy new file mode 100644 index 000000000..86468bc09 --- /dev/null +++ b/scripts/node_palette_shift/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_palette_shift/node_palette_shift.gml b/scripts/node_palette_shift/node_palette_shift.gml new file mode 100644 index 000000000..aeac18ab1 --- /dev/null +++ b/scripts/node_palette_shift/node_palette_shift.gml @@ -0,0 +1,52 @@ +function Node_Palette_Shift(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { + name = "Palette Shift"; + + inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + + inputs[| 1] = nodeValue("Palette", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, [ c_black ]) + .setDisplay(VALUE_DISPLAY.palette); + + inputs[| 2] = nodeValue("Shift", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.slider, [-1, 1, 1]); + + inputs[| 3] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + + inputs[| 4] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) + .setDisplay(VALUE_DISPLAY.slider, [0, 1, 0.01]); + + inputs[| 5] = nodeValue("Active", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); + active_index = 5; + + input_display_list = [ 5, + ["Output", true], 0, 3, 4, + ["Palette", false], 1, 2 + ] + + outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); + + attribute_surface_depth(); + + static process_data = function(_outSurf, _data, _output_index, _array_index) { + var _pal = _data[1]; + var _shf = _data[2]; + + var _colors = []; + for(var i = 0; i < array_length(_pal); i++) + array_append(_colors, colToVec4(_pal[i])); + + inputs[| 2].editWidget.minn = -array_length(_pal); + inputs[| 2].editWidget.maxx = array_length(_pal); + + surface_set_shader(_outSurf, sh_palette_shift); + shader_set_f("palette", _colors); + shader_set_f("paletteAmount", array_length(_pal)); + shader_set_f("shift", _shf); + + draw_surface(_data[0], 0, 0); + surface_reset_shader(); + + _outSurf = mask_apply(_data[0], _outSurf, _data[3], _data[4]); + + return _outSurf; + } +} \ No newline at end of file diff --git a/scripts/node_palette_shift/node_palette_shift.yy b/scripts/node_palette_shift/node_palette_shift.yy new file mode 100644 index 000000000..060777d2e --- /dev/null +++ b/scripts/node_palette_shift/node_palette_shift.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_palette_shift", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "colors", + "path": "folders/nodes/data/filter/colors.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_path/node_path.gml b/scripts/node_path/node_path.gml index 9b0ddd03e..0d3fd6141 100644 --- a/scripts/node_path/node_path.gml +++ b/scripts/node_path/node_path.gml @@ -75,6 +75,8 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { boundary = []; lengthTotal = 0; + cached_pos = ds_map_create(); + drag_point = -1; drag_points = []; drag_type = 0; @@ -858,6 +860,9 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { static getAccuLength = function() { return lengthAccs; } static getPointDistance = function(_dist) { + if(ds_map_exists(cached_pos, _dist)) + return cached_pos[? _dist]; + var loop = inputs[| 1].getValue(); var rond = inputs[| 3].getValue(); if(!is_real(rond)) rond = false; @@ -889,7 +894,9 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { return new Point(); var _p = eval_bezier(_t, _a0[0], _a0[1], _a1[0], _a1[1], _a0[0] + _a0[4], _a0[1] + _a0[5], _a1[0] + _a1[2], _a1[1] + _a1[3]); - return new Point(_p); + var _point = new Point(_p); + cached_pos[? _dist] = _point; + return _point; } return new Point(); @@ -945,6 +952,7 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { } static update = function(frame = PROJECT.animator.current_frame) { + ds_map_clear(cached_pos); updateLength(); var _rat = inputs[| 0].getValue(); diff --git a/scripts/node_region_fill/node_checkerboard.yy b/scripts/node_region_fill/node_checkerboard.yy new file mode 100644 index 000000000..f65eb196c --- /dev/null +++ b/scripts/node_region_fill/node_checkerboard.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "generator", + "path": "folders/nodes/data/generator.yy", + }, + "resourceVersion": "1.0", + "name": "node_checkerboard", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_region_fill/node_region_fill.gml b/scripts/node_region_fill/node_region_fill.gml new file mode 100644 index 000000000..c5a0c6f60 --- /dev/null +++ b/scripts/node_region_fill/node_region_fill.gml @@ -0,0 +1,86 @@ +function Node_Region_Fill(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { + name = "Region Fill"; + + inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone ); + + inputs[| 1] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone); + + inputs[| 2] = nodeValue("Colors", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, [ c_white ]) + .setDisplay(VALUE_DISPLAY.palette); + + inputs[| 3] = nodeValue("Fill Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); + + inputs[| 4] = nodeValue("Seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, irandom_range(10000, 99999)); + + outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); + + input_display_list = [ + ["Output", false], 0, 1, + ["Fill", false], 3, 4, 2, + ]; + + temp_surface = [ surface_create(1, 1), surface_create(1, 1) ]; + + static step = function() { + var _fill = current_data[3]; + + inputs[| 2].setVisible(_fill); + inputs[| 4].setVisible(_fill); + } + + static process_data = function(_outSurf, _data, _output_index, _array_index) { + var _surf = _data[0]; + var _mask = _data[1]; + + var _colr = _data[2]; + var _fill = _data[3]; + var _seed = _data[4]; + + var _sw = surface_get_width(_surf); + var _sh = surface_get_height(_surf) + + temp_surface[0] = surface_verify(temp_surface[0], _sw, _sh); + temp_surface[1] = surface_verify(temp_surface[1], _sw, _sh); + + surface_set_target(temp_surface[0]) + DRAW_CLEAR + surface_reset_target(); + + surface_set_target(temp_surface[1]) + DRAW_CLEAR + draw_surface(_surf, 0, 0); + surface_reset_target(); + + var base = 0; + var amo = ceil(log2(max(_sw, _sh))) + 1; + + repeat(amo) { + surface_set_shader(temp_surface[base], sh_region_fill_coordinate); + shader_set_f("dimension", _sw, _sh); + draw_surface(temp_surface[!base], 0, 0); + surface_reset_shader(); + + base = !base; + } + + if(_fill) { + var _pal = []; + for( var i = 0; i < array_length(_colr); i++ ) + array_append(_pal, colToVec4(_colr[i])); + + surface_set_shader(_outSurf, sh_region_fill_color); + shader_set_f("colors", _pal); + shader_set_f("seed", _seed); + shader_set_f("colorAmount", array_length(_colr)); + + draw_surface(temp_surface[base], 0, 0); + surface_reset_shader(); + } else { + surface_set_shader(_outSurf); + draw_surface(temp_surface[base], 0, 0); + surface_reset_shader(); + } + + return _outSurf; + } +} \ No newline at end of file diff --git a/scripts/node_region_fill/node_region_fill.yy b/scripts/node_region_fill/node_region_fill.yy new file mode 100644 index 000000000..f11f91190 --- /dev/null +++ b/scripts/node_region_fill/node_region_fill.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_region_fill", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "generator", + "path": "folders/nodes/data/generator.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_region_fill/node_stripe.yy b/scripts/node_region_fill/node_stripe.yy new file mode 100644 index 000000000..3c179d416 --- /dev/null +++ b/scripts/node_region_fill/node_stripe.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "generator", + "path": "folders/nodes/data/generator.yy", + }, + "resourceVersion": "1.0", + "name": "node_stripe", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_registry/node_registry.gml b/scripts/node_registry/node_registry.gml index 449453287..d12a44177 100644 --- a/scripts/node_registry/node_registry.gml +++ b/scripts/node_registry/node_registry.gml @@ -315,6 +315,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { addNodeObject(filter, "Posterize", s_node_posterize, "Node_Posterize", [1, Node_Posterize],, "Reduce and remap color to match a palette."); addNodeObject(filter, "Dither", s_node_dithering, "Node_Dither", [1, Node_Dither],, "Reduce color and use dithering to preserve original color."); addNodeObject(filter, "Color Adjust", s_node_color_adjust, "Node_Color_adjust", [1, Node_Color_adjust], ["brightness", "contrast", "hue", "saturation", "value", "color blend", "alpha"], "Adjust brightness, contrast, hue, saturation, value, alpha, and blend image with color."); + addNodeObject(filter, "Palette Shift", s_node_palette_shift, "Node_Palette_Shift", [1, Node_Palette_Shift]).setVersion(1147); addNodeObject(filter, "BW", s_node_BW, "Node_BW", [1, Node_BW], ["black and white"], "Convert color image to black and white."); addNodeObject(filter, "Greyscale", s_node_greyscale, "Node_Greyscale", [1, Node_Greyscale],, "Convert color image to greyscale."); addNodeObject(filter, "Invert", s_node_invert, "Node_Invert", [1, Node_Invert], ["negate"], "Invert color."); @@ -394,6 +395,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { addNodeObject(generator, "Scatter", s_node_scatter, "Node_Scatter", [1, Node_Scatter],, "Scatter image randomly multiple times."); ds_list_add(generator, "Simulation"); + //addNodeObject(generator, "Dust", s_node_particle, "Node_Dust", [1, Node_Dust]).setVersion(1147); addNodeObject(generator, "Particle", s_node_particle, "Node_Particle", [1, Node_Particle],, "Generate particle effect."); addNodeObject(generator, "VFX", s_node_vfx, "Node_VFX_Group", [1, Node_VFX_Group],, "Create VFX group, which generate particles that can be manipulated using different force nodes."); addNodeObject(generator, "RigidSim", s_node_rigidSim, "Node_Rigid_Group", [1, Node_Rigid_Group],, "Create group for rigidbody simulation.").setVersion(1110); @@ -401,8 +403,11 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { addNodeObject(generator, "FluidSim", s_node_fluidSim_group, "Node_Fluid_Group", [1, Node_Fluid_Group],, "Create group for fluid simulation.").setVersion(1120); addNodeObject(generator, "StrandSim", s_node_strandSim, "Node_Strand_Group", [1, Node_Strand_Group], ["Hair"], "Create group for hair simulation.").setVersion(1140); + ds_list_add(generator, "Region"); + addNodeObject(generator, "Separate Shape", s_node_sepearte_shape, "Node_Seperate_Shape", [1, Node_Seperate_Shape],, "Separate disconnected pixel each into an image in an image array."); + addNodeObject(generator, "Region Fill", s_node_region_fill, "Node_Region_Fill", [1, Node_Region_Fill]).setVersion(1147); + ds_list_add(generator, "Others"); - addNodeObject(generator, "Separate Shape", s_node_sepearte_shape, "Node_Seperate_Shape", [1, Node_Seperate_Shape],, "Separate disconnected pixel each into an image in an image array."); addNodeObject(generator, "Flood Fill", s_node_flood_fill, "Node_Flood_Fill", [1, Node_Flood_Fill],, "Filled connected pixel given position and color.").setVersion(1133); addNodeObject(generator, "Bar / Graph", s_node_bar_graph, "Node_Plot_Linear", [1, Node_Plot_Linear], ["graph", "waveform", "bar chart", "plot"], "Plot graph or bar chart from array of number.").setVersion(1144); @@ -613,7 +618,8 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { //var vct = ds_list_create(); //addNodeCatagory("VCT", vct); - // addNodeObject(vct, "Biterator", s_node_condition, "Node_Biterator", [1, Node_Biterator]); + // addNodeObject(vct, "Biterator", s_node_condition, "Node_Biterator", [1, Node_Biterator]); + //addNodeObject(vct, "Blinker", s_node_condition, "Node_VCT_Blinker", [1, Node_VCT_Blinker]); var hid = ds_list_create(); addNodeCatagory("Hidden", hid, ["Hidden"]); diff --git a/scripts/node_value/node_value.gml b/scripts/node_value/node_value.gml index e30447037..d3959981a 100644 --- a/scripts/node_value/node_value.gml +++ b/scripts/node_value/node_value.gml @@ -869,6 +869,7 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru return setValueDirect(ind); }, display_data ); show_in_inspector = true; + extract_node = "Node_Canvas"; break; case VALUE_TYPE.pathnode : extract_node = "Node_Path"; diff --git a/scripts/string_eval/string_eval.gml b/scripts/string_eval/string_eval.gml index d0a6d80cc..92ea6a1d0 100644 --- a/scripts/string_eval/string_eval.gml +++ b/scripts/string_eval/string_eval.gml @@ -55,12 +55,12 @@ array_safe_get(val, 1, 1)); } ]; - global.FUNCTIONS[? "range"] = [ ["length"], function(val) { - var arr = array_create(array_safe_get(val, 0, 0)); - for( var i = 0; i < array_length(arr); i++ ) - arr[i] = i; - return arr; - } ]; + global.FUNCTIONS[? "range"] = [ ["length", "start = 0", "step = 1"], function(val) { + var arr = array_create(array_safe_get(val, 0, 0)); + for( var i = 0; i < array_length(arr); i++ ) + arr[i] = array_safe_get(val, 1, 0) + i * array_safe_get(val, 2, 1); + return arr; + } ]; #endregion function functionStringClean(fx) { diff --git a/shaders/sh_alpha_cutoff/sh_alpha_cutoff.yy b/shaders/sh_alpha_cutoff/sh_alpha_cutoff.yy index ca70c1d3e..0c638ecca 100644 --- a/shaders/sh_alpha_cutoff/sh_alpha_cutoff.yy +++ b/shaders/sh_alpha_cutoff/sh_alpha_cutoff.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_alpha_cutoff", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "color", + "path": "folders/shader/filter/color.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_alpha_grey/sh_alpha_grey.yy b/shaders/sh_alpha_grey/sh_alpha_grey.yy index 9f9403818..7ea2a5159 100644 --- a/shaders/sh_alpha_grey/sh_alpha_grey.yy +++ b/shaders/sh_alpha_grey/sh_alpha_grey.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_alpha_grey", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "color", + "path": "folders/shader/filter/color.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_alpha_hash/sh_alpha_hash.yy b/shaders/sh_alpha_hash/sh_alpha_hash.yy index 712ed96dc..4b820709e 100644 --- a/shaders/sh_alpha_hash/sh_alpha_hash.yy +++ b/shaders/sh_alpha_hash/sh_alpha_hash.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_alpha_hash", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "color", + "path": "folders/shader/filter/color.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_ani_noise/sh_ani_noise.yy b/shaders/sh_ani_noise/sh_ani_noise.yy index 63a8f741e..056e30c13 100644 --- a/shaders/sh_ani_noise/sh_ani_noise.yy +++ b/shaders/sh_ani_noise/sh_ani_noise.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_ani_noise", "parent": { - "name": "generator", - "path": "folders/shader/generator.yy", + "name": "noise", + "path": "folders/shader/generator/noise.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_blink_extract/sh_blink_extract.fsh b/shaders/sh_blink_extract/sh_blink_extract.fsh new file mode 100644 index 000000000..143301fb9 --- /dev/null +++ b/shaders/sh_blink_extract/sh_blink_extract.fsh @@ -0,0 +1,32 @@ +// +// Simple passthrough fragment shader +// +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +uniform int useMask; +uniform sampler2D mask; + +uniform vec4 colorTarget[32]; +uniform int colorTargetAmount; + +void main() { + vec4 c1 = texture2D( gm_BaseTexture, v_vTexcoord ); + gl_FragColor = vec4(0.); + + if(useMask == 1) { + vec4 m = texture2D( mask, v_vTexcoord ); + if((m.r + m.g + m.b) * m.a < 0.5) + return; + } + + float minDist = 10.; + for(int i = 0; i < colorTargetAmount; i++) { + float dist = distance(colorTarget[i].rgb, c1.rgb); + minDist = min(minDist, dist); + } + + if(minDist > 0.001) return; + + gl_FragColor = vec4(1.); +} diff --git a/shaders/sh_blink_extract/sh_blink_extract.vsh b/shaders/sh_blink_extract/sh_blink_extract.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_blink_extract/sh_blink_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_blink_extract/sh_blink_extract.yy b/shaders/sh_blink_extract/sh_blink_extract.yy new file mode 100644 index 000000000..ba0d933ae --- /dev/null +++ b/shaders/sh_blink_extract/sh_blink_extract.yy @@ -0,0 +1,10 @@ +{ + "resourceType": "GMShader", + "resourceVersion": "1.0", + "name": "sh_blink_extract", + "parent": { + "name": "blinker", + "path": "folders/shader/generator/blinker.yy", + }, + "type": 1, +} \ No newline at end of file diff --git a/shaders/sh_bw/sh_bw.yy b/shaders/sh_bw/sh_bw.yy index 14fbe9f4f..0ba5a6df1 100644 --- a/shaders/sh_bw/sh_bw.yy +++ b/shaders/sh_bw/sh_bw.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_bw", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "color", + "path": "folders/shader/filter/color.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_cell_noise/sh_cell_noise.yy b/shaders/sh_cell_noise/sh_cell_noise.yy index 40cc14c21..664d685bb 100644 --- a/shaders/sh_cell_noise/sh_cell_noise.yy +++ b/shaders/sh_cell_noise/sh_cell_noise.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_cell_noise", "parent": { - "name": "generator", - "path": "folders/shader/generator.yy", + "name": "cell", + "path": "folders/shader/generator/cell.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_cell_noise_crystal/sh_cell_noise_crystal.yy b/shaders/sh_cell_noise_crystal/sh_cell_noise_crystal.yy index dfde4ad3f..99cb874db 100644 --- a/shaders/sh_cell_noise_crystal/sh_cell_noise_crystal.yy +++ b/shaders/sh_cell_noise_crystal/sh_cell_noise_crystal.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_cell_noise_crystal", "parent": { - "name": "generator", - "path": "folders/shader/generator.yy", + "name": "cell", + "path": "folders/shader/generator/cell.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_cell_noise_edge/sh_cell_noise_edge.yy b/shaders/sh_cell_noise_edge/sh_cell_noise_edge.yy index f3e518ddd..affeb84cc 100644 --- a/shaders/sh_cell_noise_edge/sh_cell_noise_edge.yy +++ b/shaders/sh_cell_noise_edge/sh_cell_noise_edge.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_cell_noise_edge", "parent": { - "name": "generator", - "path": "folders/shader/generator.yy", + "name": "cell", + "path": "folders/shader/generator/cell.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_cell_noise_random/sh_cell_noise_random.yy b/shaders/sh_cell_noise_random/sh_cell_noise_random.yy index e31b6b99a..cd2c2f30c 100644 --- a/shaders/sh_cell_noise_random/sh_cell_noise_random.yy +++ b/shaders/sh_cell_noise_random/sh_cell_noise_random.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_cell_noise_random", "parent": { - "name": "generator", - "path": "folders/shader/generator.yy", + "name": "cell", + "path": "folders/shader/generator/cell.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_cell_noise_round/sh_cell_noise_round.yy b/shaders/sh_cell_noise_round/sh_cell_noise_round.yy index 9d3f41ea1..4866009b0 100644 --- a/shaders/sh_cell_noise_round/sh_cell_noise_round.yy +++ b/shaders/sh_cell_noise_round/sh_cell_noise_round.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_cell_noise_round", "parent": { - "name": "generator", - "path": "folders/shader/generator.yy", + "name": "cell", + "path": "folders/shader/generator/cell.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_color_adjust/sh_color_adjust.yy b/shaders/sh_color_adjust/sh_color_adjust.yy index 89fe1c778..54580c987 100644 --- a/shaders/sh_color_adjust/sh_color_adjust.yy +++ b/shaders/sh_color_adjust/sh_color_adjust.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_color_adjust", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "color", + "path": "folders/shader/filter/color.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_color_picker_hue/sh_color_picker_hue.yy b/shaders/sh_color_picker_hue/sh_color_picker_hue.yy index ac41b82e4..70f3eb46a 100644 --- a/shaders/sh_color_picker_hue/sh_color_picker_hue.yy +++ b/shaders/sh_color_picker_hue/sh_color_picker_hue.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_color_picker_hue", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "color", + "path": "folders/shader/filter/color.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_color_picker_value/sh_color_picker_value.yy b/shaders/sh_color_picker_value/sh_color_picker_value.yy index 4de03f671..2f824da66 100644 --- a/shaders/sh_color_picker_value/sh_color_picker_value.yy +++ b/shaders/sh_color_picker_value/sh_color_picker_value.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_color_picker_value", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "color", + "path": "folders/shader/filter/color.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_color_remove/sh_color_remove.yy b/shaders/sh_color_remove/sh_color_remove.yy index 95f0e0f17..463ea95be 100644 --- a/shaders/sh_color_remove/sh_color_remove.yy +++ b/shaders/sh_color_remove/sh_color_remove.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_color_remove", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "color", + "path": "folders/shader/filter/color.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_color_replace/sh_color_replace.yy b/shaders/sh_color_replace/sh_color_replace.yy index e1fe0bd33..4217c0996 100644 --- a/shaders/sh_color_replace/sh_color_replace.yy +++ b/shaders/sh_color_replace/sh_color_replace.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_color_replace", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "color", + "path": "folders/shader/filter/color.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_colorize/sh_colorize.yy b/shaders/sh_colorize/sh_colorize.yy index ae3d1e7a5..f34ac484d 100644 --- a/shaders/sh_colorize/sh_colorize.yy +++ b/shaders/sh_colorize/sh_colorize.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_colorize", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "color", + "path": "folders/shader/filter/color.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_combine_hsv/sh_combine_hsv.yy b/shaders/sh_combine_hsv/sh_combine_hsv.yy index 832802e0e..6950eecd5 100644 --- a/shaders/sh_combine_hsv/sh_combine_hsv.yy +++ b/shaders/sh_combine_hsv/sh_combine_hsv.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_combine_hsv", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "color", + "path": "folders/shader/filter/color.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_combine_rgb/sh_combine_rgb.yy b/shaders/sh_combine_rgb/sh_combine_rgb.yy index b898599bb..f4771bdc5 100644 --- a/shaders/sh_combine_rgb/sh_combine_rgb.yy +++ b/shaders/sh_combine_rgb/sh_combine_rgb.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_combine_rgb", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "color", + "path": "folders/shader/filter/color.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_grey_alpha/sh_grey_alpha.yy b/shaders/sh_grey_alpha/sh_grey_alpha.yy index 8602511f6..48a83d45c 100644 --- a/shaders/sh_grey_alpha/sh_grey_alpha.yy +++ b/shaders/sh_grey_alpha/sh_grey_alpha.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_grey_alpha", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "color", + "path": "folders/shader/filter/color.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_greyscale/sh_greyscale.yy b/shaders/sh_greyscale/sh_greyscale.yy index ac97b5f9d..b1db23a78 100644 --- a/shaders/sh_greyscale/sh_greyscale.yy +++ b/shaders/sh_greyscale/sh_greyscale.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_greyscale", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "color", + "path": "folders/shader/filter/color.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_grid/sh_grid.yy b/shaders/sh_grid/sh_grid.yy index 9265a3ddc..932eb0287 100644 --- a/shaders/sh_grid/sh_grid.yy +++ b/shaders/sh_grid/sh_grid.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_grid", "parent": { - "name": "generator", - "path": "folders/shader/generator.yy", + "name": "grid", + "path": "folders/shader/generator/grid.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_grid_hex/sh_grid_hex.yy b/shaders/sh_grid_hex/sh_grid_hex.yy index 26f8b8a14..d3c8df255 100644 --- a/shaders/sh_grid_hex/sh_grid_hex.yy +++ b/shaders/sh_grid_hex/sh_grid_hex.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_grid_hex", "parent": { - "name": "generator", - "path": "folders/shader/generator.yy", + "name": "grid", + "path": "folders/shader/generator/grid.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_grid_noise/sh_grid_noise.yy b/shaders/sh_grid_noise/sh_grid_noise.yy index 9e3408da6..664d42ae9 100644 --- a/shaders/sh_grid_noise/sh_grid_noise.yy +++ b/shaders/sh_grid_noise/sh_grid_noise.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_grid_noise", "parent": { - "name": "generator", - "path": "folders/shader/generator.yy", + "name": "grid", + "path": "folders/shader/generator/grid.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_grid_tri/sh_grid_tri.yy b/shaders/sh_grid_tri/sh_grid_tri.yy index f5641a70a..4684d3435 100644 --- a/shaders/sh_grid_tri/sh_grid_tri.yy +++ b/shaders/sh_grid_tri/sh_grid_tri.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_grid_tri", "parent": { - "name": "generator", - "path": "folders/shader/generator.yy", + "name": "grid", + "path": "folders/shader/generator/grid.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_invert/sh_invert.yy b/shaders/sh_invert/sh_invert.yy index 9c13fdb1c..21249f616 100644 --- a/shaders/sh_invert/sh_invert.yy +++ b/shaders/sh_invert/sh_invert.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_invert", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "color", + "path": "folders/shader/filter/color.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_level/sh_level.yy b/shaders/sh_level/sh_level.yy index 4511c21a8..e3661b746 100644 --- a/shaders/sh_level/sh_level.yy +++ b/shaders/sh_level/sh_level.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_level", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "color", + "path": "folders/shader/filter/color.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_level_selector/sh_level_selector.yy b/shaders/sh_level_selector/sh_level_selector.yy index 950ad05dd..1997b44c1 100644 --- a/shaders/sh_level_selector/sh_level_selector.yy +++ b/shaders/sh_level_selector/sh_level_selector.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_level_selector", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "color", + "path": "folders/shader/filter/color.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_lum2alpha/sh_lum2alpha.yy b/shaders/sh_lum2alpha/sh_lum2alpha.yy index f21a61e39..2d8f4e896 100644 --- a/shaders/sh_lum2alpha/sh_lum2alpha.yy +++ b/shaders/sh_lum2alpha/sh_lum2alpha.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_lum2alpha", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "color", + "path": "folders/shader/filter/color.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_noise/sh_noise.yy b/shaders/sh_noise/sh_noise.yy index 75ed8c505..5b3ee820b 100644 --- a/shaders/sh_noise/sh_noise.yy +++ b/shaders/sh_noise/sh_noise.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_noise", "parent": { - "name": "generator", - "path": "folders/shader/generator.yy", + "name": "noise", + "path": "folders/shader/generator/noise.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_noise_fbm/sh_noise_fbm.yy b/shaders/sh_noise_fbm/sh_noise_fbm.yy index 67fd2eab1..2cd9385c3 100644 --- a/shaders/sh_noise_fbm/sh_noise_fbm.yy +++ b/shaders/sh_noise_fbm/sh_noise_fbm.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_noise_fbm", "parent": { - "name": "generator", - "path": "folders/shader/generator.yy", + "name": "noise", + "path": "folders/shader/generator/noise.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_noise_grid_hex/sh_noise_grid_hex.yy b/shaders/sh_noise_grid_hex/sh_noise_grid_hex.yy index 8a92c3e9d..38cc9c474 100644 --- a/shaders/sh_noise_grid_hex/sh_noise_grid_hex.yy +++ b/shaders/sh_noise_grid_hex/sh_noise_grid_hex.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_noise_grid_hex", "parent": { - "name": "generator", - "path": "folders/shader/generator.yy", + "name": "noise", + "path": "folders/shader/generator/noise.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_noise_grid_tri/sh_noise_grid_tri.yy b/shaders/sh_noise_grid_tri/sh_noise_grid_tri.yy index 7d1b9f192..abc167908 100644 --- a/shaders/sh_noise_grid_tri/sh_noise_grid_tri.yy +++ b/shaders/sh_noise_grid_tri/sh_noise_grid_tri.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_noise_grid_tri", "parent": { - "name": "generator", - "path": "folders/shader/generator.yy", + "name": "noise", + "path": "folders/shader/generator/noise.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_palette_replace/sh_palette_replace.fsh b/shaders/sh_palette_replace/sh_palette_replace.fsh index 18454695e..9b7f6e6a7 100644 --- a/shaders/sh_palette_replace/sh_palette_replace.fsh +++ b/shaders/sh_palette_replace/sh_palette_replace.fsh @@ -4,6 +4,9 @@ varying vec2 v_vTexcoord; varying vec4 v_vColour; +uniform int useMask; +uniform sampler2D mask; + uniform vec4 colorFrom[32]; uniform int colorFrom_amo; uniform vec4 colorTo[32]; @@ -60,12 +63,21 @@ float round(float val) { } void main() { - vec4 col = v_vColour * texture2D( gm_BaseTexture, v_vTexcoord ); + vec4 col = texture2D( gm_BaseTexture, v_vTexcoord ); vec4 baseColor; if(inverted == 0) baseColor = col; - else if(inverted == 1) + else if(inverted == 1) { baseColor = vec4(vec3(0.), 1.); + + if(useMask == 1) { + vec4 m = texture2D( mask, v_vTexcoord ); + if((m.r + m.g + m.b) * m.a < .5) { + gl_FragColor = baseColor; + return; + } + } + } vec3 hsv = rgb2hsv(col.rgb); if(alphacmp == 1) hsv *= col.a; diff --git a/shaders/sh_palette_shift/sh_palette_shift.fsh b/shaders/sh_palette_shift/sh_palette_shift.fsh new file mode 100644 index 000000000..d6f7df0f9 --- /dev/null +++ b/shaders/sh_palette_shift/sh_palette_shift.fsh @@ -0,0 +1,28 @@ +// +// Simple passthrough fragment shader +// +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +uniform vec4 palette[64]; +uniform float paletteAmount; + +uniform float shift; + +void main() { + vec4 c = texture2D( gm_BaseTexture, v_vTexcoord ); + + float minDist = 999.; + float index = 0.; + + for(float i = 0.; i < paletteAmount; i++) { + float _dist = distance(c.rgb, palette[int(i)].rgb); + if(_dist < minDist) { + minDist = _dist; + index = i; + } + } + + index = mod(index + shift, paletteAmount); + gl_FragColor = palette[int(index)]; +} diff --git a/shaders/sh_palette_shift/sh_palette_shift.vsh b/shaders/sh_palette_shift/sh_palette_shift.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_palette_shift/sh_palette_shift.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_palette_shift/sh_palette_shift.yy b/shaders/sh_palette_shift/sh_palette_shift.yy new file mode 100644 index 000000000..8704f538f --- /dev/null +++ b/shaders/sh_palette_shift/sh_palette_shift.yy @@ -0,0 +1,10 @@ +{ + "resourceType": "GMShader", + "resourceVersion": "1.0", + "name": "sh_palette_shift", + "parent": { + "name": "color", + "path": "folders/shader/filter/color.yy", + }, + "type": 1, +} \ No newline at end of file diff --git a/shaders/sh_perlin/sh_perlin.yy b/shaders/sh_perlin/sh_perlin.yy index da20d8ca9..506c71631 100644 --- a/shaders/sh_perlin/sh_perlin.yy +++ b/shaders/sh_perlin/sh_perlin.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_perlin", "parent": { - "name": "generator", - "path": "folders/shader/generator.yy", + "name": "noise", + "path": "folders/shader/generator/noise.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_perlin_smear/sh_perlin_smear.yy b/shaders/sh_perlin_smear/sh_perlin_smear.yy index f1f1a8fee..b7e1beae2 100644 --- a/shaders/sh_perlin_smear/sh_perlin_smear.yy +++ b/shaders/sh_perlin_smear/sh_perlin_smear.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_perlin_smear", "parent": { - "name": "generator", - "path": "folders/shader/generator.yy", + "name": "noise", + "path": "folders/shader/generator/noise.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_perlin_tiled/sh_perlin_tiled.yy b/shaders/sh_perlin_tiled/sh_perlin_tiled.yy index 520c70751..6af5b2a5a 100644 --- a/shaders/sh_perlin_tiled/sh_perlin_tiled.yy +++ b/shaders/sh_perlin_tiled/sh_perlin_tiled.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_perlin_tiled", "parent": { - "name": "generator", - "path": "folders/shader/generator.yy", + "name": "noise", + "path": "folders/shader/generator/noise.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_region_fill_color/sh_region_fill_color.fsh b/shaders/sh_region_fill_color/sh_region_fill_color.fsh new file mode 100644 index 000000000..5af9d1c8b --- /dev/null +++ b/shaders/sh_region_fill_color/sh_region_fill_color.fsh @@ -0,0 +1,23 @@ +// +// Simple passthrough fragment shader +// +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +uniform vec4 colors[32]; +uniform float colorAmount; +uniform float seed; + +float random (in vec2 st) { + return fract(sin(dot(st.xy + seed / 100., vec2(12.9898, 78.233))) * 43758.5453123); +} + +void main() { + vec4 c = texture2D( gm_BaseTexture, v_vTexcoord ); + gl_FragColor = c; + + if(c.rgb == vec3(0.)) return; + + int ind = int(floor(random(gl_FragColor.xy) * colorAmount)); + gl_FragColor = colors[ind]; +} diff --git a/shaders/sh_region_fill_color/sh_region_fill_color.vsh b/shaders/sh_region_fill_color/sh_region_fill_color.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_region_fill_color/sh_region_fill_color.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_region_fill_color/sh_region_fill_color.yy b/shaders/sh_region_fill_color/sh_region_fill_color.yy new file mode 100644 index 000000000..0146df75d --- /dev/null +++ b/shaders/sh_region_fill_color/sh_region_fill_color.yy @@ -0,0 +1,10 @@ +{ + "resourceType": "GMShader", + "resourceVersion": "1.0", + "name": "sh_region_fill_color", + "parent": { + "name": "region", + "path": "folders/shader/generator/region.yy", + }, + "type": 1, +} \ No newline at end of file diff --git a/shaders/sh_region_fill_coordinate/sh_region_fill_coordinate.fsh b/shaders/sh_region_fill_coordinate/sh_region_fill_coordinate.fsh new file mode 100644 index 000000000..c0db90df5 --- /dev/null +++ b/shaders/sh_region_fill_coordinate/sh_region_fill_coordinate.fsh @@ -0,0 +1,47 @@ +// +// Simple passthrough fragment shader +// +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +uniform vec2 dimension; + +vec4 less ( vec4 a, vec4 b ) { + if(b.xy == vec2(0.)) return a; + if(a.xy == vec2(0.)) return b; + + if(a.y < b.y) return a; + else if(a.y > b.y) return b; + else return a.x < b.x? a : b; +} + +vec4 sample ( vec2 position ) { + if(position.x < 0.) return vec4(1.); + if(position.y < 0.) return vec4(1.); + if(position.x > 1.) return vec4(1.); + if(position.y > 1.) return vec4(1.); + + return texture2D( gm_BaseTexture, position ); +} + +void main() { + vec2 tx = 1. / dimension; + vec4 c = texture2D( gm_BaseTexture, v_vTexcoord ); + gl_FragColor = c; + + if(c.rgb == vec3(0.)) return; + if(c.rgb == vec3(1.)) { + gl_FragColor = vec4( v_vTexcoord, 0., 1. ); + return; + } + + vec4 l = sample( v_vTexcoord - vec2(tx.x, 0.) ); + vec4 r = sample( v_vTexcoord + vec2(tx.x, 0.) ); + vec4 u = sample( v_vTexcoord - vec2(0., tx.y) ); + vec4 d = sample( v_vTexcoord + vec2(0., tx.y) ); + + gl_FragColor = less( gl_FragColor, l ); + gl_FragColor = less( gl_FragColor, r ); + gl_FragColor = less( gl_FragColor, u ); + gl_FragColor = less( gl_FragColor, d ); +} diff --git a/shaders/sh_region_fill_coordinate/sh_region_fill_coordinate.vsh b/shaders/sh_region_fill_coordinate/sh_region_fill_coordinate.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_region_fill_coordinate/sh_region_fill_coordinate.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_region_fill_coordinate/sh_region_fill_coordinate.yy b/shaders/sh_region_fill_coordinate/sh_region_fill_coordinate.yy new file mode 100644 index 000000000..84a94048f --- /dev/null +++ b/shaders/sh_region_fill_coordinate/sh_region_fill_coordinate.yy @@ -0,0 +1,10 @@ +{ + "resourceType": "GMShader", + "resourceVersion": "1.0", + "name": "sh_region_fill_coordinate", + "parent": { + "name": "region", + "path": "folders/shader/generator/region.yy", + }, + "type": 1, +} \ No newline at end of file diff --git a/shaders/sh_simplex/sh_simplex.yy b/shaders/sh_simplex/sh_simplex.yy index c35179315..018647d7b 100644 --- a/shaders/sh_simplex/sh_simplex.yy +++ b/shaders/sh_simplex/sh_simplex.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_simplex", "parent": { - "name": "generator", - "path": "folders/shader/generator.yy", + "name": "noise", + "path": "folders/shader/generator/noise.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_threshold/sh_threshold.yy b/shaders/sh_threshold/sh_threshold.yy index f35b3eff4..8872fc917 100644 --- a/shaders/sh_threshold/sh_threshold.yy +++ b/shaders/sh_threshold/sh_threshold.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_threshold", "parent": { - "name": "filter", - "path": "folders/shader/filter.yy", + "name": "color", + "path": "folders/shader/filter/color.yy", }, "type": 1, } \ No newline at end of file diff --git a/sprites/s_node_palette_shift/0606442d-674b-46c9-b28b-9d4263365c7c.png b/sprites/s_node_palette_shift/0606442d-674b-46c9-b28b-9d4263365c7c.png new file mode 100644 index 000000000..89aa553cc Binary files /dev/null and b/sprites/s_node_palette_shift/0606442d-674b-46c9-b28b-9d4263365c7c.png differ diff --git a/sprites/s_node_palette_shift/layers/0606442d-674b-46c9-b28b-9d4263365c7c/fb13d67d-67fd-4ba6-b593-355a115bbd20.png b/sprites/s_node_palette_shift/layers/0606442d-674b-46c9-b28b-9d4263365c7c/fb13d67d-67fd-4ba6-b593-355a115bbd20.png new file mode 100644 index 000000000..89aa553cc Binary files /dev/null and b/sprites/s_node_palette_shift/layers/0606442d-674b-46c9-b28b-9d4263365c7c/fb13d67d-67fd-4ba6-b593-355a115bbd20.png differ diff --git a/sprites/s_node_palette_shift/s_node_palette_shift.yy b/sprites/s_node_palette_shift/s_node_palette_shift.yy new file mode 100644 index 000000000..91d848157 --- /dev/null +++ b/sprites/s_node_palette_shift/s_node_palette_shift.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_palette_shift", + "bbox_bottom": 63, + "bbox_left": 0, + "bbox_right": 63, + "bbox_top": 0, + "bboxMode": 0, + "collisionKind": 1, + "collisionTolerance": 0, + "DynamicTexturePage": false, + "edgeFiltering": false, + "For3D": false, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"0606442d-674b-46c9-b28b-9d4263365c7c",}, + ], + "gridX": 0, + "gridY": 0, + "height": 64, + "HTile": false, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"fb13d67d-67fd-4ba6-b593-355a115bbd20","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_palette_shift", + "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":"0606442d-674b-46c9-b28b-9d4263365c7c","path":"sprites/s_node_palette_shift/s_node_palette_shift.yy",},},},"Disabled":false,"id":"a710c9d1-5547-41e6-8ca8-4ebd2e7d274b","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_region_fill/0386b3d0-75ef-44fd-996c-9cd3d1fe9ab3.png b/sprites/s_node_region_fill/0386b3d0-75ef-44fd-996c-9cd3d1fe9ab3.png new file mode 100644 index 000000000..91d3fa824 Binary files /dev/null and b/sprites/s_node_region_fill/0386b3d0-75ef-44fd-996c-9cd3d1fe9ab3.png differ diff --git a/sprites/s_node_region_fill/layers/0386b3d0-75ef-44fd-996c-9cd3d1fe9ab3/4ecb0a86-2c2d-413d-8b0e-5bbc2dfef326.png b/sprites/s_node_region_fill/layers/0386b3d0-75ef-44fd-996c-9cd3d1fe9ab3/4ecb0a86-2c2d-413d-8b0e-5bbc2dfef326.png new file mode 100644 index 000000000..91d3fa824 Binary files /dev/null and b/sprites/s_node_region_fill/layers/0386b3d0-75ef-44fd-996c-9cd3d1fe9ab3/4ecb0a86-2c2d-413d-8b0e-5bbc2dfef326.png differ diff --git a/sprites/s_node_region_fill/s_node_region_fill.yy b/sprites/s_node_region_fill/s_node_region_fill.yy new file mode 100644 index 000000000..153e4005b --- /dev/null +++ b/sprites/s_node_region_fill/s_node_region_fill.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_region_fill", + "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":"0386b3d0-75ef-44fd-996c-9cd3d1fe9ab3",}, + ], + "gridX": 0, + "gridY": 0, + "height": 64, + "HTile": false, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"4ecb0a86-2c2d-413d-8b0e-5bbc2dfef326","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,}, + ], + "nineSlice": null, + "origin": 4, + "parent": { + "name": "generator", + "path": "folders/nodes/icons/generator.yy", + }, + "preMultiplyAlpha": false, + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_region_fill", + "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":"0386b3d0-75ef-44fd-996c-9cd3d1fe9ab3","path":"sprites/s_node_region_fill/s_node_region_fill.yy",},},},"Disabled":false,"id":"b42aadcd-2b5b-40d7-bb85-7b981e39e06f","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