From d3be8918997c76d65dabe34c202dd29416fce2c7 Mon Sep 17 00:00:00 2001 From: Tanasart <22589759+Ttanasart-pt@users.noreply.github.com> Date: Tue, 16 May 2023 21:28:16 +0200 Subject: [PATCH] Addons API, audio nodes --- PixelComposer.resource_order | 57 ++--- PixelComposer.yyp | 12 +- datafiles/data/Addons.zip | Bin 87486 -> 110353 bytes objects/o_main/Create_0.gml | 3 + scripts/_3D/_3D.gml | 3 +- scripts/addon_function/addon_function.gml | 13 +- scripts/addon_lua/addon_lua.gml | 10 + .../animation_controller.gml | 22 ++ scripts/complex_function/complex_function.gml | 4 + scripts/complex_function/complex_function.yy | 11 + scripts/draw_arc/draw_arc.gml | 19 ++ scripts/draw_arc/draw_arc.yy | 11 + scripts/fft_functions/fft_functions.gml | 65 ++++++ scripts/fft_functions/fft_functions.yy | 11 + scripts/globals/globals.gml | 8 +- scripts/load_function/load_function.gml | 18 +- scripts/nodeValue_drawer/nodeValue_drawer.gml | 6 +- scripts/node_3d_extrude/node_3d_extrude.gml | 50 ++++- scripts/node_FFT/node_FFT.gml | 36 ++++ scripts/node_FFT/node_FFT.yy | 11 + scripts/node_FFT/node_counter.yy | 12 ++ scripts/node_array_copy/node_array_copy.gml | 52 +++++ scripts/node_array_copy/node_array_copy.yy | 11 + scripts/node_array_copy/node_counter.yy | 12 ++ .../node_ase_file_read/node_ase_file_read.gml | 5 +- scripts/node_ase_layer/node_ase_layer.gml | 4 +- .../node_color_from_hsv.gml | 42 +++- .../node_color_from_rgb.gml | 42 +++- scripts/node_data/node_data.gml | 13 +- scripts/node_edge_detect/node_edge_detect.gml | 2 +- scripts/node_export/node_export.gml | 71 ++++++- .../node_image_animated.gml | 2 +- scripts/node_keyframe/node_keyframe.gml | 6 +- .../node_plot_linear/node_color_adjustment.yy | 12 ++ .../node_color_replacement.yy | 12 ++ scripts/node_plot_linear/node_glow.yy | 12 ++ scripts/node_plot_linear/node_outline.yy | 12 ++ scripts/node_plot_linear/node_plot_linear.gml | 198 ++++++++++++++++++ scripts/node_plot_linear/node_plot_linear.yy | 11 + scripts/node_registry/node_registry.gml | 4 + .../node_render_sprite_sheet.gml | 8 +- scripts/node_value/node_value.gml | 38 ++-- .../node_wav_file_read/node_wav_file_read.gml | 114 ++++++++++ .../node_wav_file_read/node_wav_file_read.yy | 11 + scripts/node_wrap_mesh/node_wrap_mesh.gml | 10 +- scripts/panel_addon/panel_addon.gml | 4 +- scripts/panel_animation/panel_animation.gml | 11 +- scripts/panel_inspector/panel_inspector.gml | 2 +- scripts/panel_menu/panel_menu.gml | 1 + scripts/save_function/save_function.gml | 7 + scripts/wav_file_read/wav_file_read.gml | 81 +++++++ scripts/wav_file_read/wav_file_read.yy | 11 + shaders/sh_2d_light/sh_2d_light.yy | 4 +- .../sh_blend_contrast/sh_blend_contrast.fsh | 5 +- .../sh_blend_multiply/sh_blend_multiply.fsh | 6 +- shaders/sh_blend_overlay/sh_blend_overlay.fsh | 5 +- shaders/sh_blend_screen/sh_blend_screen.fsh | 6 +- .../sh_blend_subtract/sh_blend_subtract.fsh | 6 +- shaders/sh_draw_normal/sh_draw_normal.yy | 4 +- shaders/sh_edge_detect/sh_edge_detect.fsh | 87 +++++++- .../8d4ff1e4-2b3e-4941-9f87-09e35ceed7f6.png | Bin 0 -> 1561 bytes .../a3681f87-66f0-4432-8aae-43e9607a30ee.png | Bin 0 -> 1561 bytes sprites/s_node_bar_graph/s_node_bar_graph.yy | 74 +++++++ .../s_node_image_animation.yy | 2 +- .../ed7117f7-7897-476a-acf0-d7b1d10f562f.png | Bin 0 -> 1670 bytes .../d0ffea8e-e51f-4415-b383-c42802705804.png | Bin 0 -> 1670 bytes .../s_node_wav_file_read.yy | 74 +++++++ 67 files changed, 1365 insertions(+), 111 deletions(-) create mode 100644 scripts/complex_function/complex_function.gml create mode 100644 scripts/complex_function/complex_function.yy create mode 100644 scripts/draw_arc/draw_arc.gml create mode 100644 scripts/draw_arc/draw_arc.yy create mode 100644 scripts/fft_functions/fft_functions.gml create mode 100644 scripts/fft_functions/fft_functions.yy create mode 100644 scripts/node_FFT/node_FFT.gml create mode 100644 scripts/node_FFT/node_FFT.yy create mode 100644 scripts/node_FFT/node_counter.yy create mode 100644 scripts/node_array_copy/node_array_copy.gml create mode 100644 scripts/node_array_copy/node_array_copy.yy create mode 100644 scripts/node_array_copy/node_counter.yy create mode 100644 scripts/node_plot_linear/node_color_adjustment.yy create mode 100644 scripts/node_plot_linear/node_color_replacement.yy create mode 100644 scripts/node_plot_linear/node_glow.yy create mode 100644 scripts/node_plot_linear/node_outline.yy create mode 100644 scripts/node_plot_linear/node_plot_linear.gml create mode 100644 scripts/node_plot_linear/node_plot_linear.yy create mode 100644 scripts/node_wav_file_read/node_wav_file_read.gml create mode 100644 scripts/node_wav_file_read/node_wav_file_read.yy create mode 100644 scripts/wav_file_read/wav_file_read.gml create mode 100644 scripts/wav_file_read/wav_file_read.yy create mode 100644 sprites/s_node_bar_graph/8d4ff1e4-2b3e-4941-9f87-09e35ceed7f6.png create mode 100644 sprites/s_node_bar_graph/layers/8d4ff1e4-2b3e-4941-9f87-09e35ceed7f6/a3681f87-66f0-4432-8aae-43e9607a30ee.png create mode 100644 sprites/s_node_bar_graph/s_node_bar_graph.yy create mode 100644 sprites/s_node_wav_file_read/ed7117f7-7897-476a-acf0-d7b1d10f562f.png create mode 100644 sprites/s_node_wav_file_read/layers/ed7117f7-7897-476a-acf0-d7b1d10f562f/d0ffea8e-e51f-4415-b383-c42802705804.png create mode 100644 sprites/s_node_wav_file_read/s_node_wav_file_read.yy diff --git a/PixelComposer.resource_order b/PixelComposer.resource_order index c461cde51..475f0d68a 100644 --- a/PixelComposer.resource_order +++ b/PixelComposer.resource_order @@ -20,6 +20,7 @@ {"name":"font","order":7,"path":"folders/font.yy",}, {"name":"functions","order":6,"path":"folders/functions.yy",}, {"name":"animation","order":19,"path":"folders/functions/animation.yy",}, + {"name":"audio","order":35,"path":"folders/functions/audio.yy",}, {"name":"bones","order":18,"path":"folders/functions/bones.yy",}, {"name":"compat","order":13,"path":"folders/functions/compat.yy",}, {"name":"control","order":22,"path":"folders/functions/control.yy",}, @@ -149,7 +150,6 @@ {"name":"sprites","order":12,"path":"folders/sprites.yy",}, {"name":"gameframe","order":2,"path":"folders/sprites/gameframe.yy",}, {"name":"widgets","order":5,"path":"folders/widgets.yy",}, - {"name":"Audio","order":21,"path":"folders/nodes/data/Audio.yy",}, ], "ResourceOrderSettings": [ {"name":"s_node_corner","order":16,"path":"sprites/s_node_corner/s_node_corner.yy",}, @@ -224,6 +224,7 @@ {"name":"s_node_sepearte_shape","order":35,"path":"sprites/s_node_sepearte_shape/s_node_sepearte_shape.yy",}, {"name":"s_node_text_join","order":5,"path":"sprites/s_node_text_join/s_node_text_join.yy",}, {"name":"s_node_polar","order":5,"path":"sprites/s_node_polar/s_node_polar.yy",}, + {"name":"complex_function","order":15,"path":"scripts/complex_function/complex_function.yy",}, {"name":"draw_set_blend_mode_ext","order":2,"path":"scripts/draw_set_blend_mode_ext/draw_set_blend_mode_ext.yy",}, {"name":"s_node_noise_simplex","order":20,"path":"sprites/s_node_noise_simplex/s_node_noise_simplex.yy",}, {"name":"o_dialog_notifications","order":6,"path":"objects/o_dialog_notifications/o_dialog_notifications.yy",}, @@ -250,7 +251,7 @@ {"name":"s_node_color_out","order":6,"path":"sprites/s_node_color_out/s_node_color_out.yy",}, {"name":"bbmod_lerp_delta_time","order":1,"path":"scripts/bbmod_lerp_delta_time/bbmod_lerp_delta_time.yy",}, {"name":"_3D","order":6,"path":"scripts/_3D/_3D.yy",}, - {"name":"node_vector_cross2D","order":29,"path":"scripts/node_vector_cross2D/node_vector_cross2D.yy",}, + {"name":"node_vector_cross2D","order":11,"path":"scripts/node_vector_cross2D/node_vector_cross2D.yy",}, {"name":"sh_corner_erode","order":48,"path":"shaders/sh_corner_erode/sh_corner_erode.yy",}, {"name":"node_outline","order":11,"path":"scripts/node_outline/node_outline.yy",}, {"name":"sh_mesh_generation","order":4,"path":"shaders/sh_mesh_generation/sh_mesh_generation.yy",}, @@ -258,11 +259,11 @@ {"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":27,"path":"scripts/node_polygonal_shape/node_polygonal_shape.yy",}, + {"name":"node_polygonal_shape","order":25,"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":"node_gradient_points","order":20,"path":"scripts/node_gradient_points/node_gradient_points.yy",}, + {"name":"node_gradient_points","order":18,"path":"scripts/node_gradient_points/node_gradient_points.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":"s_node_strandSim","order":3,"path":"sprites/s_node_strandSim/s_node_strandSim.yy",}, @@ -276,11 +277,12 @@ {"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":19,"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":"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":"node_noise_grid_tri","order":25,"path":"scripts/node_noise_grid_tri/node_noise_grid_tri.yy",}, + {"name":"node_noise_grid_tri","order":23,"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":"node_stripe","order":11,"path":"scripts/node_stripe/node_stripe.yy",}, @@ -339,7 +341,7 @@ {"name":"node_palette_sort","order":9,"path":"scripts/node_palette_sort/node_palette_sort.yy",}, {"name":"node_path_wave","order":7,"path":"scripts/node_path_wave/node_path_wave.yy",}, {"name":"s_node_HSV","order":46,"path":"sprites/s_node_HSV/s_node_HSV.yy",}, - {"name":"node_point_move","order":26,"path":"scripts/node_point_move/node_point_move.yy",}, + {"name":"node_point_move","order":8,"path":"scripts/node_point_move/node_point_move.yy",}, {"name":"s_node_3d_cone","order":9,"path":"sprites/s_node_3d_cone/s_node_3d_cone.yy",}, {"name":"s_node_compose","order":1,"path":"sprites/s_node_compose/s_node_compose.yy",}, {"name":"s_node_switch","order":20,"path":"sprites/s_node_switch/s_node_switch.yy",}, @@ -393,7 +395,7 @@ {"name":"s_node_curve_edit","order":1,"path":"sprites/s_node_curve_edit/s_node_curve_edit.yy",}, {"name":"textBox","order":17,"path":"scripts/textBox/textBox.yy",}, {"name":"pathArrayBox","order":27,"path":"scripts/pathArrayBox/pathArrayBox.yy",}, - {"name":"node_statistic","order":7,"path":"scripts/node_statistic/node_statistic.yy",}, + {"name":"node_statistic","order":3,"path":"scripts/node_statistic/node_statistic.yy",}, {"name":"sh_draw_surface_part_tiled","order":1,"path":"shaders/sh_draw_surface_part_tiled/sh_draw_surface_part_tiled.yy",}, {"name":"o_dialog_add_node","order":1,"path":"objects/o_dialog_add_node/o_dialog_add_node.yy",}, {"name":"s_node_path_reverse","order":8,"path":"sprites/s_node_path_reverse/s_node_path_reverse.yy",}, @@ -421,7 +423,7 @@ {"name":"s_node_strandSim_create","order":2,"path":"sprites/s_node_strandSim_create/s_node_strandSim_create.yy",}, {"name":"node_gradient_shift","order":10,"path":"scripts/node_gradient_shift/node_gradient_shift.yy",}, {"name":"sh_vertex_normal_pass","order":5,"path":"shaders/sh_vertex_normal_pass/sh_vertex_normal_pass.yy",}, - {"name":"node_vector_cross3D","order":28,"path":"scripts/node_vector_cross3D/node_vector_cross3D.yy",}, + {"name":"node_vector_cross3D","order":10,"path":"scripts/node_vector_cross3D/node_vector_cross3D.yy",}, {"name":"s_node_pack_sprite","order":5,"path":"sprites/s_node_pack_sprite/s_node_pack_sprite.yy",}, {"name":"surface_valid","order":6,"path":"scripts/surface_valid/surface_valid.yy",}, {"name":"sh_blur_zoom","order":5,"path":"shaders/sh_blur_zoom/sh_blur_zoom.yy",}, @@ -452,14 +454,14 @@ {"name":"sh_fd_vortex","order":20,"path":"shaders/sh_fd_vortex/sh_fd_vortex.yy",}, {"name":"s_node_loop","order":5,"path":"sprites/s_node_loop/s_node_loop.yy",}, {"name":"node_zigzag","order":12,"path":"scripts/node_zigzag/node_zigzag.yy",}, - {"name":"node_equation","order":18,"path":"scripts/node_equation/node_equation.yy",}, + {"name":"node_equation","order":4,"path":"scripts/node_equation/node_equation.yy",}, {"name":"fd_rectangle_get_visualization_shader","order":27,"path":"scripts/fd_rectangle_get_visualization_shader/fd_rectangle_get_visualization_shader.yy",}, {"name":"preset_data","order":8,"path":"scripts/preset_data/preset_data.yy",}, {"name":"_f_h5","order":2,"path":"fonts/_f_h5/_f_h5.yy",}, {"name":"node_string_split","order":14,"path":"scripts/node_string_split/node_string_split.yy",}, {"name":"meta_data","order":12,"path":"scripts/meta_data/meta_data.yy",}, {"name":"node_find_pixel","order":1,"path":"scripts/node_find_pixel/node_find_pixel.yy",}, - {"name":"node_scatter_points","order":24,"path":"scripts/node_scatter_points/node_scatter_points.yy",}, + {"name":"node_scatter_points","order":6,"path":"scripts/node_scatter_points/node_scatter_points.yy",}, {"name":"pack_bottom_left","order":2,"path":"scripts/pack_bottom_left/pack_bottom_left.yy",}, {"name":"o_dialog_lua_reference","order":5,"path":"objects/o_dialog_lua_reference/o_dialog_lua_reference.yy",}, {"name":"node_surface_data","order":4,"path":"scripts/node_surface_data/node_surface_data.yy",}, @@ -485,7 +487,7 @@ {"name":"o_dialog_palette","order":2,"path":"objects/o_dialog_palette/o_dialog_palette.yy",}, {"name":"sh_blend_hue","order":17,"path":"shaders/sh_blend_hue/sh_blend_hue.yy",}, {"name":"s_node_threshold","order":47,"path":"sprites/s_node_threshold/s_node_threshold.yy",}, - {"name":"sh_draw_normal","order":12,"path":"shaders/sh_draw_normal/sh_draw_normal.yy",}, + {"name":"sh_draw_normal","order":5,"path":"shaders/sh_draw_normal/sh_draw_normal.yy",}, {"name":"preview_overlay_rotation","order":1,"path":"scripts/preview_overlay_rotation/preview_overlay_rotation.yy",}, {"name":"node_registry","order":5,"path":"scripts/node_registry/node_registry.yy",}, {"name":"sh_checkerboard","order":12,"path":"shaders/sh_checkerboard/sh_checkerboard.yy",}, @@ -556,6 +558,7 @@ {"name":"node_noise","order":17,"path":"scripts/node_noise/node_noise.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":"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",}, @@ -566,7 +569,7 @@ {"name":"node_color_from_hsv","order":8,"path":"scripts/node_color_from_hsv/node_color_from_hsv.yy",}, {"name":"s_node_image_copy","order":6,"path":"sprites/s_node_image_copy/s_node_image_copy.yy",}, {"name":"node_boolean","order":17,"path":"scripts/node_boolean/node_boolean.yy",}, - {"name":"node_grid_tri","order":21,"path":"scripts/node_grid_tri/node_grid_tri.yy",}, + {"name":"node_grid_tri","order":19,"path":"scripts/node_grid_tri/node_grid_tri.yy",}, {"name":"node_average","order":5,"path":"scripts/node_average/node_average.yy",}, {"name":"node_mesh_transform","order":2,"path":"scripts/node_mesh_transform/node_mesh_transform.yy",}, {"name":"node_fluid_turbulence","order":10,"path":"scripts/node_fluid_turbulence/node_fluid_turbulence.yy",}, @@ -610,7 +613,7 @@ {"name":"fd_rectangle_shift_content","order":19,"path":"scripts/fd_rectangle_shift_content/fd_rectangle_shift_content.yy",}, {"name":"sh_texture_remap","order":24,"path":"shaders/sh_texture_remap/sh_texture_remap.yy",}, {"name":"obj_fd_rectangle","order":1,"path":"objects/obj_fd_rectangle/obj_fd_rectangle.yy",}, - {"name":"node_noise_simplex","order":23,"path":"scripts/node_noise_simplex/node_noise_simplex.yy",}, + {"name":"node_noise_simplex","order":21,"path":"scripts/node_noise_simplex/node_noise_simplex.yy",}, {"name":"sh_fd_visualize_velocity_divergence_glsl","order":18,"path":"shaders/sh_fd_visualize_velocity_divergence_glsl/sh_fd_visualize_velocity_divergence_glsl.yy",}, {"name":"ds_list","order":1,"path":"scripts/ds_list/ds_list.yy",}, {"name":"node_path_builder","order":9,"path":"scripts/node_path_builder/node_path_builder.yy",}, @@ -619,7 +622,7 @@ {"name":"sh_blend_subtract","order":5,"path":"shaders/sh_blend_subtract/sh_blend_subtract.yy",}, {"name":"BBMOD_Vec4","order":6,"path":"scripts/BBMOD_Vec4/BBMOD_Vec4.yy",}, {"name":"panel_animation","order":1,"path":"scripts/panel_animation/panel_animation.yy",}, - {"name":"node_surface_replace","order":29,"path":"scripts/node_surface_replace/node_surface_replace.yy",}, + {"name":"node_surface_replace","order":27,"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",}, @@ -643,7 +646,7 @@ {"name":"node_fluid_add_collider","order":6,"path":"scripts/node_fluid_add_collider/node_fluid_add_collider.yy",}, {"name":"node_atlas_get","order":1,"path":"scripts/node_atlas_get/node_atlas_get.yy",}, {"name":"fontScrollBox","order":26,"path":"scripts/fontScrollBox/fontScrollBox.yy",}, - {"name":"node_grid_hex","order":22,"path":"scripts/node_grid_hex/node_grid_hex.yy",}, + {"name":"node_grid_hex","order":20,"path":"scripts/node_grid_hex/node_grid_hex.yy",}, {"name":"s_node_text_display","order":4,"path":"sprites/s_node_text_display/s_node_text_display.yy",}, {"name":"node_strand_render_texture","order":7,"path":"scripts/node_strand_render_texture/node_strand_render_texture.yy",}, {"name":"luaRenderer","order":2,"path":"scripts/luaRenderer/luaRenderer.yy",}, @@ -664,7 +667,7 @@ {"name":"areaBox","order":1,"path":"scripts/areaBox/areaBox.yy",}, {"name":"__global_object_depths","order":7,"path":"scripts/__global_object_depths/__global_object_depths.yy",}, {"name":"s_node_filter_array","order":28,"path":"sprites/s_node_filter_array/s_node_filter_array.yy",}, - {"name":"node_noise_grid_hex","order":24,"path":"scripts/node_noise_grid_hex/node_noise_grid_hex.yy",}, + {"name":"node_noise_grid_hex","order":22,"path":"scripts/node_noise_grid_hex/node_noise_grid_hex.yy",}, {"name":"_3d_rotation","order":2,"path":"scripts/_3d_rotation/_3d_rotation.yy",}, {"name":"node_lua_global","order":1,"path":"scripts/node_lua_global/node_lua_global.yy",}, {"name":"o_dialog_preset","order":1,"path":"objects/o_dialog_preset/o_dialog_preset.yy",}, @@ -763,7 +766,7 @@ {"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_random","order":20,"path":"scripts/node_random/node_random.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",}, {"name":"sh_blend_sat","order":18,"path":"shaders/sh_blend_sat/sh_blend_sat.yy",}, {"name":"s_node_feedback","order":3,"path":"sprites/s_node_feedback/s_node_feedback.yy",}, @@ -772,7 +775,7 @@ {"name":"sh_blend_min","order":9,"path":"shaders/sh_blend_min/sh_blend_min.yy",}, {"name":"node_polar","order":4,"path":"scripts/node_polar/node_polar.yy",}, {"name":"s_node_twirl","order":41,"path":"sprites/s_node_twirl/s_node_twirl.yy",}, - {"name":"sh_2d_light","order":49,"path":"shaders/sh_2d_light/sh_2d_light.yy",}, + {"name":"sh_2d_light","order":28,"path":"shaders/sh_2d_light/sh_2d_light.yy",}, {"name":"node_image_animated","order":2,"path":"scripts/node_image_animated/node_image_animated.yy",}, {"name":"node_palette_extract","order":7,"path":"scripts/node_palette_extract/node_palette_extract.yy",}, {"name":"s_node_solid","order":15,"path":"sprites/s_node_solid/s_node_solid.yy",}, @@ -886,6 +889,7 @@ {"name":"o_dialog_preview_window","order":1,"path":"objects/o_dialog_preview_window/o_dialog_preview_window.yy",}, {"name":"s_node_sampler","order":11,"path":"sprites/s_node_sampler/s_node_sampler.yy",}, {"name":"__background_get_element","order":1,"path":"scripts/__background_get_element/__background_get_element.yy",}, + {"name":"node_FFT","order":12,"path":"scripts/node_FFT/node_FFT.yy",}, {"name":"window_functions","order":2,"path":"scripts/window_functions/window_functions.yy",}, {"name":"node_mesh_create_path","order":1,"path":"scripts/node_mesh_create_path/node_mesh_create_path.yy",}, {"name":"sh_fd_calculate_pressure_srj_glsl","order":9,"path":"shaders/sh_fd_calculate_pressure_srj_glsl/sh_fd_calculate_pressure_srj_glsl.yy",}, @@ -1003,13 +1007,13 @@ {"name":"sh_color_picker_hue","order":7,"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":"node_3d_displace","order":18,"path":"scripts/node_3d_displace/node_3d_displace.yy",}, - {"name":"node_vector_dot","order":27,"path":"scripts/node_vector_dot/node_vector_dot.yy",}, + {"name":"node_vector_dot","order":9,"path":"scripts/node_vector_dot/node_vector_dot.yy",}, {"name":"node_path_map_area","order":1,"path":"scripts/node_path_map_area/node_path_map_area.yy",}, {"name":"s_node_timeline_preview","order":2,"path":"sprites/s_node_timeline_preview/s_node_timeline_preview.yy",}, {"name":"node_csv_file_read","order":9,"path":"scripts/node_csv_file_read/node_csv_file_read.yy",}, {"name":"scrollPane","order":14,"path":"scripts/scrollPane/scrollPane.yy",}, {"name":"node_gradient_extract","order":13,"path":"scripts/node_gradient_extract/node_gradient_extract.yy",}, - {"name":"node_base_convert","order":25,"path":"scripts/node_base_convert/node_base_convert.yy",}, + {"name":"node_base_convert","order":7,"path":"scripts/node_base_convert/node_base_convert.yy",}, {"name":"s_node_normal_light","order":31,"path":"sprites/s_node_normal_light/s_node_normal_light.yy",}, {"name":"node_transform_single","order":1,"path":"scripts/node_transform_single/node_transform_single.yy",}, {"name":"node_string_length","order":22,"path":"scripts/node_string_length/node_string_length.yy",}, @@ -1061,11 +1065,13 @@ {"name":"s_node_array_add","order":1,"path":"sprites/s_node_array_add/s_node_array_add.yy",}, {"name":"s_node_image_sequence_to_anim","order":9,"path":"sprites/s_node_image_sequence_to_anim/s_node_image_sequence_to_anim.yy",}, {"name":"_node_VFX_spawner","order":13,"path":"scripts/_node_VFX_spawner/_node_VFX_spawner.yy",}, + {"name":"s_node_bar_graph","order":27,"path":"sprites/s_node_bar_graph/s_node_bar_graph.yy",}, {"name":"sh_channel_B_grey","order":9,"path":"shaders/sh_channel_B_grey/sh_channel_B_grey.yy",}, {"name":"draw_UI_scale","order":8,"path":"scripts/draw_UI_scale/draw_UI_scale.yy",}, {"name":"s_node_strandSim_update","order":1,"path":"sprites/s_node_strandSim_update/s_node_strandSim_update.yy",}, {"name":"s_node_RGB_combine","order":45,"path":"sprites/s_node_RGB_combine/s_node_RGB_combine.yy",}, {"name":"s_node_shadow_cast","order":49,"path":"sprites/s_node_shadow_cast/s_node_shadow_cast.yy",}, + {"name":"fft_functions","order":1,"path":"scripts/fft_functions/fft_functions.yy",}, {"name":"path_function","order":4,"path":"scripts/path_function/path_function.yy",}, {"name":"fd_rectangle_set_velocity_dissipation_value","order":14,"path":"scripts/fd_rectangle_set_velocity_dissipation_value/fd_rectangle_set_velocity_dissipation_value.yy",}, {"name":"panel_history","order":7,"path":"scripts/panel_history/panel_history.yy",}, @@ -1119,6 +1125,7 @@ {"name":"node_3d_combine","order":10,"path":"scripts/node_3d_combine/node_3d_combine.yy",}, {"name":"fd_rectangle_add_material","order":4,"path":"scripts/fd_rectangle_add_material/fd_rectangle_add_material.yy",}, {"name":"fd_rectangle_set_target","order":18,"path":"scripts/fd_rectangle_set_target/fd_rectangle_set_target.yy",}, + {"name":"node_wav_file_read","order":16,"path":"scripts/node_wav_file_read/node_wav_file_read.yy",}, {"name":"draw_line_dashed","order":7,"path":"scripts/draw_line_dashed/draw_line_dashed.yy",}, {"name":"pseudo_regex","order":7,"path":"scripts/pseudo_regex/pseudo_regex.yy",}, {"name":"node_invert","order":6,"path":"scripts/node_invert/node_invert.yy",}, @@ -1134,7 +1141,8 @@ {"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":26,"path":"scripts/node_repeat/node_repeat.yy",}, + {"name":"node_repeat","order":24,"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",}, {"name":"s_node_image","order":4,"path":"sprites/s_node_image/s_node_image.yy",}, @@ -1155,7 +1163,7 @@ {"name":"fd_rectangle_get_material_height","order":10,"path":"scripts/fd_rectangle_get_material_height/fd_rectangle_get_material_height.yy",}, {"name":"rangeBox","order":10,"path":"scripts/rangeBox/rangeBox.yy",}, {"name":"node_VFX_effect_accelerate","order":7,"path":"scripts/node_VFX_effect_accelerate/node_VFX_effect_accelerate.yy",}, - {"name":"node_flood_fill","order":28,"path":"scripts/node_flood_fill/node_flood_fill.yy",}, + {"name":"node_flood_fill","order":26,"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",}, @@ -1183,7 +1191,7 @@ {"name":"draw_surface_functions","order":4,"path":"scripts/draw_surface_functions/draw_surface_functions.yy",}, {"name":"node_rigid_variable","order":8,"path":"scripts/node_rigid_variable/node_rigid_variable.yy",}, {"name":"s_node_zoom","order":54,"path":"sprites/s_node_zoom/s_node_zoom.yy",}, - {"name":"node_noise_fbm","order":30,"path":"scripts/node_noise_fbm/node_noise_fbm.yy",}, + {"name":"node_noise_fbm","order":28,"path":"scripts/node_noise_fbm/node_noise_fbm.yy",}, {"name":"sh_channel_V","order":6,"path":"shaders/sh_channel_V/sh_channel_V.yy",}, {"name":"__shapes","order":3,"path":"scripts/__shapes/__shapes.yy",}, {"name":"node_alpha_to_grey","order":3,"path":"scripts/node_alpha_to_grey/node_alpha_to_grey.yy",}, @@ -1208,8 +1216,9 @@ {"name":"node_shadow_cast","order":15,"path":"scripts/node_shadow_cast/node_shadow_cast.yy",}, {"name":"node_strand_render","order":5,"path":"scripts/node_strand_render/node_strand_render.yy",}, {"name":"s_node_3d_obj_combine","order":5,"path":"sprites/s_node_3d_obj_combine/s_node_3d_obj_combine.yy",}, + {"name":"s_node_wav_file_read","order":19,"path":"sprites/s_node_wav_file_read/s_node_wav_file_read.yy",}, {"name":"o_dialog_assetbox","order":3,"path":"objects/o_dialog_assetbox/o_dialog_assetbox.yy",}, - {"name":"node_lerp","order":6,"path":"scripts/node_lerp/node_lerp.yy",}, + {"name":"node_lerp","order":2,"path":"scripts/node_lerp/node_lerp.yy",}, {"name":"s_node_pixel_sort","order":42,"path":"sprites/s_node_pixel_sort/s_node_pixel_sort.yy",}, {"name":"node_texture_remap","order":2,"path":"scripts/node_texture_remap/node_texture_remap.yy",}, {"name":"sh_fd_visualize_pixel_art_fiery_smoke_glsl","order":14,"path":"shaders/sh_fd_visualize_pixel_art_fiery_smoke_glsl/sh_fd_visualize_pixel_art_fiery_smoke_glsl.yy",}, diff --git a/PixelComposer.yyp b/PixelComposer.yyp index ee89c3942..c2f18e6a5 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -41,6 +41,7 @@ {"resourceType":"GMFolder","resourceVersion":"1.0","name":"functions","folderPath":"folders/functions.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"3d","folderPath":"folders/functions/3d.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"animation","folderPath":"folders/functions/animation.yy",}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"audio","folderPath":"folders/functions/audio.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"bones","folderPath":"folders/functions/bones.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"compat","folderPath":"folders/functions/compat.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"control","folderPath":"folders/functions/control.yy",}, @@ -185,7 +186,6 @@ {"resourceType":"GMFolder","resourceVersion":"1.0","name":"Steamworks","folderPath":"folders/Steamworks.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"UGC","folderPath":"folders/Steamworks/UGC.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"widgets","folderPath":"folders/widgets.yy",}, - {"resourceType":"GMFolder","resourceVersion":"1.0","name":"Audio","folderPath":"folders/nodes/data/Audio.yy",}, ], "IncludedFiles": [ {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"ApolloHelp.html","ConfigValues":{"Itch":{"CopyToMask":"0",},},"CopyToMask":-1,"filePath":"datafiles",}, @@ -936,6 +936,7 @@ {"id":{"name":"s_node_sepearte_shape","path":"sprites/s_node_sepearte_shape/s_node_sepearte_shape.yy",},}, {"id":{"name":"s_node_text_join","path":"sprites/s_node_text_join/s_node_text_join.yy",},}, {"id":{"name":"s_node_polar","path":"sprites/s_node_polar/s_node_polar.yy",},}, + {"id":{"name":"complex_function","path":"scripts/complex_function/complex_function.yy",},}, {"id":{"name":"draw_set_blend_mode_ext","path":"scripts/draw_set_blend_mode_ext/draw_set_blend_mode_ext.yy",},}, {"id":{"name":"s_node_noise_simplex","path":"sprites/s_node_noise_simplex/s_node_noise_simplex.yy",},}, {"id":{"name":"o_dialog_notifications","path":"objects/o_dialog_notifications/o_dialog_notifications.yy",},}, @@ -1000,6 +1001,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":"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",},}, {"id":{"name":"fd_rectangle_get_acceleration_y","path":"scripts/fd_rectangle_get_acceleration_y/fd_rectangle_get_acceleration_y.yy",},}, @@ -1071,6 +1073,7 @@ {"id":{"name":"node_noise_grid","path":"scripts/node_noise_grid/node_noise_grid.yy",},}, {"id":{"name":"node_palette_sort","path":"scripts/node_palette_sort/node_palette_sort.yy",},}, {"id":{"name":"node_path_wave","path":"scripts/node_path_wave/node_path_wave.yy",},}, + {"id":{"name":"wav_file_read","path":"scripts/wav_file_read/wav_file_read.yy",},}, {"id":{"name":"s_node_HSV","path":"sprites/s_node_HSV/s_node_HSV.yy",},}, {"id":{"name":"node_point_move","path":"scripts/node_point_move/node_point_move.yy",},}, {"id":{"name":"s_node_3d_cone","path":"sprites/s_node_3d_cone/s_node_3d_cone.yy",},}, @@ -1315,6 +1318,7 @@ {"id":{"name":"node_noise","path":"scripts/node_noise/node_noise.yy",},}, {"id":{"name":"mtl_reader","path":"scripts/mtl_reader/mtl_reader.yy",},}, {"id":{"name":"s_node_3d_array","path":"sprites/s_node_3d_array/s_node_3d_array.yy",},}, + {"id":{"name":"node_plot_linear","path":"scripts/node_plot_linear/node_plot_linear.yy",},}, {"id":{"name":"addon_lua_constant","path":"scripts/addon_lua_constant/addon_lua_constant.yy",},}, {"id":{"name":"sh_fd_velocity_combine","path":"shaders/sh_fd_velocity_combine/sh_fd_velocity_combine.yy",},}, {"id":{"name":"sh_scale2x","path":"shaders/sh_scale2x/sh_scale2x.yy",},}, @@ -1686,6 +1690,7 @@ {"id":{"name":"s_node_sampler","path":"sprites/s_node_sampler/s_node_sampler.yy",},}, {"id":{"name":"__background_get_element","path":"scripts/__background_get_element/__background_get_element.yy",},}, {"id":{"name":"node_animate_curve","path":"scripts/node_animate_curve/node_animate_curve.yy",},}, + {"id":{"name":"node_FFT","path":"scripts/node_FFT/node_FFT.yy",},}, {"id":{"name":"window_functions","path":"scripts/window_functions/window_functions.yy",},}, {"id":{"name":"node_mesh_create_path","path":"scripts/node_mesh_create_path/node_mesh_create_path.yy",},}, {"id":{"name":"sh_fd_calculate_pressure_srj_glsl","path":"shaders/sh_fd_calculate_pressure_srj_glsl/sh_fd_calculate_pressure_srj_glsl.yy",},}, @@ -1892,11 +1897,13 @@ {"id":{"name":"s_node_counter","path":"sprites/s_node_counter/s_node_counter.yy",},}, {"id":{"name":"s_node_image_sequence_to_anim","path":"sprites/s_node_image_sequence_to_anim/s_node_image_sequence_to_anim.yy",},}, {"id":{"name":"_node_VFX_spawner","path":"scripts/_node_VFX_spawner/_node_VFX_spawner.yy",},}, + {"id":{"name":"s_node_bar_graph","path":"sprites/s_node_bar_graph/s_node_bar_graph.yy",},}, {"id":{"name":"sh_channel_B_grey","path":"shaders/sh_channel_B_grey/sh_channel_B_grey.yy",},}, {"id":{"name":"draw_UI_scale","path":"scripts/draw_UI_scale/draw_UI_scale.yy",},}, {"id":{"name":"s_node_strandSim_update","path":"sprites/s_node_strandSim_update/s_node_strandSim_update.yy",},}, {"id":{"name":"s_node_RGB_combine","path":"sprites/s_node_RGB_combine/s_node_RGB_combine.yy",},}, {"id":{"name":"s_node_shadow_cast","path":"sprites/s_node_shadow_cast/s_node_shadow_cast.yy",},}, + {"id":{"name":"fft_functions","path":"scripts/fft_functions/fft_functions.yy",},}, {"id":{"name":"path_function","path":"scripts/path_function/path_function.yy",},}, {"id":{"name":"fd_rectangle_set_velocity_dissipation_value","path":"scripts/fd_rectangle_set_velocity_dissipation_value/fd_rectangle_set_velocity_dissipation_value.yy",},}, {"id":{"name":"panel_history","path":"scripts/panel_history/panel_history.yy",},}, @@ -1957,6 +1964,7 @@ {"id":{"name":"node_3d_combine","path":"scripts/node_3d_combine/node_3d_combine.yy",},}, {"id":{"name":"fd_rectangle_add_material","path":"scripts/fd_rectangle_add_material/fd_rectangle_add_material.yy",},}, {"id":{"name":"fd_rectangle_set_target","path":"scripts/fd_rectangle_set_target/fd_rectangle_set_target.yy",},}, + {"id":{"name":"node_wav_file_read","path":"scripts/node_wav_file_read/node_wav_file_read.yy",},}, {"id":{"name":"draw_line_dashed","path":"scripts/draw_line_dashed/draw_line_dashed.yy",},}, {"id":{"name":"pseudo_regex","path":"scripts/pseudo_regex/pseudo_regex.yy",},}, {"id":{"name":"node_invert","path":"scripts/node_invert/node_invert.yy",},}, @@ -1975,6 +1983,7 @@ {"id":{"name":"s_node_cache","path":"sprites/s_node_cache/s_node_cache.yy",},}, {"id":{"name":"node_logic_operate","path":"scripts/node_logic_operate/node_logic_operate.yy",},}, {"id":{"name":"node_repeat","path":"scripts/node_repeat/node_repeat.yy",},}, + {"id":{"name":"draw_arc","path":"scripts/draw_arc/draw_arc.yy",},}, {"id":{"name":"sh_fd_advect_velocity_1_glsl","path":"shaders/sh_fd_advect_velocity_1_glsl/sh_fd_advect_velocity_1_glsl.yy",},}, {"id":{"name":"mac_window_step","path":"scripts/mac_window_step/mac_window_step.yy",},}, {"id":{"name":"s_node_image","path":"sprites/s_node_image/s_node_image.yy",},}, @@ -2062,6 +2071,7 @@ {"id":{"name":"node_strand_render","path":"scripts/node_strand_render/node_strand_render.yy",},}, {"id":{"name":"s_node_3d_obj_combine","path":"sprites/s_node_3d_obj_combine/s_node_3d_obj_combine.yy",},}, {"id":{"name":"gameframe","path":"scripts/gameframe/gameframe.yy",},}, + {"id":{"name":"s_node_wav_file_read","path":"sprites/s_node_wav_file_read/s_node_wav_file_read.yy",},}, {"id":{"name":"o_dialog_assetbox","path":"objects/o_dialog_assetbox/o_dialog_assetbox.yy",},}, {"id":{"name":"node_lerp","path":"scripts/node_lerp/node_lerp.yy",},}, {"id":{"name":"s_node_pixel_sort","path":"sprites/s_node_pixel_sort/s_node_pixel_sort.yy",},}, diff --git a/datafiles/data/Addons.zip b/datafiles/data/Addons.zip index 868773fcdd4c1de074d277eb13b72b67df671d9f..d6e4cb7f5c3a17f992887cc3b9a383ebb90ab80f 100644 GIT binary patch literal 110353 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 delta 87097 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%0Dw1%csr^^p}gZ?ds+N&G>UT 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 S=ie2a$3F8Ie@OSy0R9g~D_lST diff --git a/objects/o_main/Create_0.gml b/objects/o_main/Create_0.gml index 56f1a1a6f..0bd925aec 100644 --- a/objects/o_main/Create_0.gml +++ b/objects/o_main/Create_0.gml @@ -193,6 +193,9 @@ case ".obj" : node = Node_create_3D_Obj_path(PANEL_GRAPH.mouse_grid_x, PANEL_GRAPH.mouse_grid_y, p); break; + case ".wav" : + node = Node_create_WAV_File_Read_path(PANEL_GRAPH.mouse_grid_x, PANEL_GRAPH.mouse_grid_y, p); + break; case ".pxc" : LOAD_PATH(p); break; diff --git a/scripts/_3D/_3D.gml b/scripts/_3D/_3D.gml index 426842ab8..48afd84da 100644 --- a/scripts/_3D/_3D.gml +++ b/scripts/_3D/_3D.gml @@ -142,7 +142,8 @@ enum CAMERA_PROJ { } static __submit = function() { - if(renderTexture == noone) return; + if(renderTexture == noone) return; + if(buffer == noone) return; vertex_submit(buffer, pr_trianglelist, renderTexture); } diff --git a/scripts/addon_function/addon_function.gml b/scripts/addon_function/addon_function.gml index c93b750eb..c2efb908d 100644 --- a/scripts/addon_function/addon_function.gml +++ b/scripts/addon_function/addon_function.gml @@ -17,8 +17,13 @@ function addonContextGenerator(_addon, _function) constructor { } else if(struct_has(_item, "content")) { var _subArr = [] for( var j = 0; j < array_length(_item.content); j++ ) { - var _addonItem = new addonContextItem(_addon, _item.content[j].name, _item.content[j].callback); - array_push(_subArr, _addonItem.menu_item); + var _it = _item.content[j]; + if(_it == -1) + array_push(_subArr, -1); + else if(struct_has(_it, "callback")) { + var _addonItem = new addonContextItem(_addon, _it.name, _it.callback); + array_push(_subArr, _addonItem.menu_item); + } } var _addonItem = new addonContextSubMenu(_item.name, _subArr); @@ -38,7 +43,7 @@ function addonContextItem(_addon, _name, _function) constructor { menu_item = menuItem(_name, function(_data) { lua_call(_addon.thread, self._function, lua_byref(_data.context, true)); - }).setColor(COLORS._main_accent); + })//.setColor(COLORS._main_accent); } function addonContextSubMenu(_name, _content) constructor { @@ -47,7 +52,7 @@ function addonContextSubMenu(_name, _content) constructor { menu_item = menuItem(name, function(_dat) { return submenuCall(_dat, content); - }).setColor(COLORS._main_accent) + })//.setColor(COLORS._main_accent) .setIsShelf(); } diff --git a/scripts/addon_lua/addon_lua.gml b/scripts/addon_lua/addon_lua.gml index ec07d5d4f..33cc7c940 100644 --- a/scripts/addon_lua/addon_lua.gml +++ b/scripts/addon_lua/addon_lua.gml @@ -784,7 +784,17 @@ [ "noti_error", noti_error ], [ "noti_warning", noti_warning ], + //animation + [ "animation_playing", function() { return ANIMATOR.is_playing? lua_true : lua_false; }], + [ "animation_play", function() { ANIMATOR.resume(); }], + [ "animation_pause", function() { ANIMATOR.pause(); }], + [ "animation_stop", function() { ANIMATOR.stop(); }], + [ "animation_set_frame", function(frame) { ANIMATOR.setFrame(frame); }], + [ "animation_render", function() { ANIMATOR.render(); }], + //panel + [ "set_tooltip", function(txt) { TOOLTIP = txt; }], + [ "panel_get", function(type) { switch(type) { case "animation" : return PANEL_ANIMATION; diff --git a/scripts/animation_controller/animation_controller.gml b/scripts/animation_controller/animation_controller.gml index 24228536e..cde49c828 100644 --- a/scripts/animation_controller/animation_controller.gml +++ b/scripts/animation_controller/animation_controller.gml @@ -46,6 +46,28 @@ _key = ds_map_find_next(NODE_MAP, _key); } } + + static render = function() { + setFrame(-1); + is_playing = true; + rendering = true; + frame_progress = true; + } + + static pause = function() { + ANIMATOR.is_playing = false; + ANIMATOR.frame_progress = true; + } + + static resume = function() { + ANIMATOR.is_playing = true; + ANIMATOR.frame_progress = true; + } + + static stop = function() { + is_playing = false; + setFrame(0); + } } #endregion diff --git a/scripts/complex_function/complex_function.gml b/scripts/complex_function/complex_function.gml new file mode 100644 index 000000000..dacccfaa9 --- /dev/null +++ b/scripts/complex_function/complex_function.gml @@ -0,0 +1,4 @@ +function Complex(_real = 0, _imaginary = 0) constructor { + re = _real; + im = _imaginary; +} \ No newline at end of file diff --git a/scripts/complex_function/complex_function.yy b/scripts/complex_function/complex_function.yy new file mode 100644 index 000000000..a8789e94f --- /dev/null +++ b/scripts/complex_function/complex_function.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "complex_function", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "value", + "path": "folders/functions/value.yy", + }, +} \ No newline at end of file diff --git a/scripts/draw_arc/draw_arc.gml b/scripts/draw_arc/draw_arc.gml new file mode 100644 index 000000000..edb9916e0 --- /dev/null +++ b/scripts/draw_arc/draw_arc.gml @@ -0,0 +1,19 @@ +function draw_arc(_x, _y, _r, _as, _at, _th = 1, _pr = 32) { + var ox, oy, nx, ny; + var ast = 360 / _pr; + var sgn = sign(_at - _as); + var ar = abs(_at - _as) / 360 * _pr; + + for( var i = 0; i < ar; i++ ) { + var a = _as + ast * i * sgn; + + nx = _x + lengthdir_x(_r, a); + ny = _y + lengthdir_y(_r, a); + + if(i) + draw_line_round(ox, oy, nx, ny, _th); + + ox = nx; + oy = ny; + } +} \ No newline at end of file diff --git a/scripts/draw_arc/draw_arc.yy b/scripts/draw_arc/draw_arc.yy new file mode 100644 index 000000000..f43cbf3d0 --- /dev/null +++ b/scripts/draw_arc/draw_arc.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "draw_arc", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "draw", + "path": "folders/functions/draw.yy", + }, +} \ No newline at end of file diff --git a/scripts/fft_functions/fft_functions.gml b/scripts/fft_functions/fft_functions.gml new file mode 100644 index 000000000..4a5694d9e --- /dev/null +++ b/scripts/fft_functions/fft_functions.gml @@ -0,0 +1,65 @@ +function FFT(array_in) { + var amo = array_length(array_in); + if(amo == 0) return []; + + if(log2(amo) != 0) { + var lft = power(2, ceil(log2(amo))) - amo; + repeat(lft) array_push(array_in, new Complex()); + } + + var fq = _FFT(array_in); + array_resize(fq, array_length(fq) / 2); + fq = array_reverse(fq) + return fq; +} + +function _FFT(array_in) { + var n = array_length(array_in); + var nh = n div 2; + var theta = (2 * pi) / n; + + if (n == 1) + return array_in; + + var even = array_create(nh, 0); + var odd = array_create(nh, 0); + + for (var i = 0; i < nh; i++) { + even[i] = array_in[i * 2]; + odd[i] = array_in[(i * 2) + 1]; + } + + var evenFFT = _FFT(even); + var oddFFT = _FFT(odd); + + //print($"> {evenFFT}, {oddFFT}"); + + var array_out = array_create(n); + + for (var i = 0; i < nh; i++) { + var t = new Complex( + cos(-theta * i), + sin(-theta * i) + ); + + var oddK = new Complex( + oddFFT[i].re * t.re - oddFFT[i].im * t.im, + oddFFT[i].re * t.im + oddFFT[i].im * t.re, + ); + + array_out[i] = new Complex( + evenFFT[i].re + oddK.re, + evenFFT[i].im + oddK.im, + ); + + array_out[i + nh] = new Complex( + evenFFT[i].re - oddK.re, + evenFFT[i].im - oddK.im, + ); + } + + //show_debug_message($" | {array_out}"); + //show_debug_message("=====") + + return array_out; +}; \ No newline at end of file diff --git a/scripts/fft_functions/fft_functions.yy b/scripts/fft_functions/fft_functions.yy new file mode 100644 index 000000000..ee7e3d5df --- /dev/null +++ b/scripts/fft_functions/fft_functions.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "fft_functions", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "audio", + "path": "folders/functions/audio.yy", + }, +} \ No newline at end of file diff --git a/scripts/globals/globals.gml b/scripts/globals/globals.gml index d358dc4ab..a4d9d5d9e 100644 --- a/scripts/globals/globals.gml +++ b/scripts/globals/globals.gml @@ -32,10 +32,10 @@ globalvar VERSION, SAVEFILE_VERSION, VERSION_STRING, BUILD_NUMBER; - VERSION = 1143; - SAVEFILE_VERSION = 1420; - VERSION_STRING = "1.14.3.2"; - BUILD_NUMBER = 114301; + VERSION = 1144; + SAVEFILE_VERSION = 1440; + VERSION_STRING = "1.14.4"; + BUILD_NUMBER = 114400; globalvar NODES, NODE_MAP, APPEND_MAP, NODE_NAME_MAP; globalvar HOTKEYS, HOTKEY_CONTEXT, NODE_INSTANCES; diff --git a/scripts/load_function/load_function.gml b/scripts/load_function/load_function.gml index 5597b7311..c6d136eeb 100644 --- a/scripts/load_function/load_function.gml +++ b/scripts/load_function/load_function.gml @@ -59,9 +59,8 @@ function __LOAD_PATH(path, readonly = false, safe_mode = false) { var file = file_text_open_read(temp_path); var load_str = ""; - while(!file_text_eof(file)) { + while(!file_text_eof(file)) load_str += file_text_readln(file); - } file_text_close(file); var _map = json_decode(load_str); @@ -117,6 +116,21 @@ function __LOAD_PATH(path, readonly = false, safe_mode = false) { log_warning("LOAD, global", exception_print(e)); } + try { + if(ds_map_exists(_map, "addon")) { + var _addon = _map[? "addon"]; + + with(addon) { + if(!ds_map_exists(_addon, name)) continue; + var _mp = json_parse(_addon[? name]); + + lua_call(thread, "deserialize", _mp); + } + } + } catch(e) { + log_warning("LOAD, addon", exception_print(e)); + } + ds_queue_clear(CONNECTION_CONFLICT); try { diff --git a/scripts/nodeValue_drawer/nodeValue_drawer.gml b/scripts/nodeValue_drawer/nodeValue_drawer.gml index 7188b1548..e69605831 100644 --- a/scripts/nodeValue_drawer/nodeValue_drawer.gml +++ b/scripts/nodeValue_drawer/nodeValue_drawer.gml @@ -7,7 +7,7 @@ function drawWidgetInit() { lineBreak = true; } -function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _focus = false, _scrollPane = noone, rx = 0, ry = 0) { +function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _focus = false, _scrollPane = noone, rx = 0, ry = 0) { var con_w = ww - ui(4); var xc = xx + ww / 2; @@ -175,7 +175,7 @@ function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _foc jun.expUse = !jun.expUse; } #endregion - + var _hsy = yy + lb_h; var padd = ui(8); @@ -207,7 +207,7 @@ function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _foc } else { jun.editWidget.setInteract(false); } - + switch(jun.display_type) { case VALUE_DISPLAY.button : jun.editWidget.draw(editBoxX, editBoxY, editBoxW, editBoxH, _m); diff --git a/scripts/node_3d_extrude/node_3d_extrude.gml b/scripts/node_3d_extrude/node_3d_extrude.gml index 8595e7627..954dfe86a 100644 --- a/scripts/node_3d_extrude/node_3d_extrude.gml +++ b/scripts/node_3d_extrude/node_3d_extrude.gml @@ -80,6 +80,11 @@ function Node_3D_Extrude(_x, _y, _group = noone) : Node_Processor(_x, _y, _group vertexObjects = []; + mesh_generating = false; + mesh_genetated = false; + mesh_generate_index = 0; + mesh_generate_amount = 0; + static onValueFromUpdate = function(index) { if(index == 0 || index == 14) generateMesh(); @@ -105,12 +110,10 @@ function Node_3D_Extrude(_x, _y, _group = noone) : Node_Processor(_x, _y, _group } vertexObjects = []; - for( var i = 0; i < array_length(_ins); i++ ) - vertexObjects[i] = generateMeshIndex(i); - - UPDATE |= RENDER_TYPE.full; - - outputs[| 3].setValue(vertexObjects); + mesh_generating = true; + mesh_genetated = false; + mesh_generate_index = 0; + mesh_generate_amount = array_length(_ins); } static generateMeshIndex = function(index) { @@ -236,6 +239,21 @@ function Node_3D_Extrude(_x, _y, _group = noone) : Node_Processor(_x, _y, _group return v; } + static step = function() { + if(!mesh_generating) return; + + vertexObjects[mesh_generate_index] = generateMeshIndex(mesh_generate_index); + + mesh_generate_index++; + if(mesh_generate_index >= mesh_generate_amount) { + mesh_generating = false; + mesh_genetated = true; + + UPDATE |= RENDER_TYPE.full; + outputs[| 3].setValue(vertexObjects); + } + } + static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { _3d_gizmo(active, _x, _y, _s, _mx, _my, _snx, _sny); } @@ -249,12 +267,15 @@ function Node_3D_Extrude(_x, _y, _group = noone) : Node_Processor(_x, _y, _group var _lrot = getSingleValue(3, index); var _lsca = getSingleValue(4, index); - _3d_local_transform(_lpos, _lrot, _lsca); - vertexObjects[index].submit(_ins); - _3d_clear_local_transform(); + if(is_struct(vertexObjects[index])) { + _3d_local_transform(_lpos, _lrot, _lsca); + vertexObjects[index].submit(_ins); + _3d_clear_local_transform(); + } } static process_data = function(_outSurf, _data, _output_index, _array_index) { + if(mesh_generating) return; if(_output_index == 3) return vertexObjects; var _ins = _data[ 0]; @@ -302,6 +323,17 @@ function Node_3D_Extrude(_x, _y, _group = noone) : Node_Processor(_x, _y, _group return _outSurf; } + static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) { + if(mesh_generating) { + var cx = xx + w * _s / 2; + var cy = yy + h * _s / 2; + var rr = min(w - 64, h - 64) * _s / 2; + + draw_set_color(COLORS._main_icon); + draw_arc(cx, cy, rr, 90, 90 - 360 * mesh_generate_index / mesh_generate_amount, 4 * _s, max(mesh_generate_amount, 32)); + } + } + static postConnect = function() { generateMesh(); } diff --git a/scripts/node_FFT/node_FFT.gml b/scripts/node_FFT/node_FFT.gml new file mode 100644 index 000000000..3ff3dd04c --- /dev/null +++ b/scripts/node_FFT/node_FFT.gml @@ -0,0 +1,36 @@ +function Node_FFT(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { + name = "FFT"; + previewable = false; + + w = 96; + h = 32 + 24; + min_h = h; + + inputs[| 0] = nodeValue("Data", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, []) + .setArrayDepth(1) + .setVisible(true, true); + + outputs[| 0] = nodeValue("Array", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, []) + .setArrayDepth(1); + + static process_data = function(_outSurf, _data, _output_index, _array_index) { + var _dat = _data[0]; + var _cmp = []; + + for( var i = 0; i < array_length(_dat); i++ ) + _cmp[i] = new Complex(_dat[i]); + + var _res = FFT(_cmp); + var _r = []; + + for( var i = 0; i < array_length(_res); i++ ) + _r[i] = _res[i].re; + + return _r; + } + + static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) { + var bbox = drawGetBbox(xx, yy, _s); + draw_sprite_fit(s_node_array_reverse, 0, bbox.xc, bbox.yc, bbox.w, bbox.h); + } +} \ No newline at end of file diff --git a/scripts/node_FFT/node_FFT.yy b/scripts/node_FFT/node_FFT.yy new file mode 100644 index 000000000..ef2a8c657 --- /dev/null +++ b/scripts/node_FFT/node_FFT.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_FFT", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "number", + "path": "folders/nodes/data/value/number.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_FFT/node_counter.yy b/scripts/node_FFT/node_counter.yy new file mode 100644 index 000000000..10832a0b0 --- /dev/null +++ b/scripts/node_FFT/node_counter.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "variable", + "path": "folders/nodes/data/variable.yy", + }, + "resourceVersion": "1.0", + "name": "node_counter", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_array_copy/node_array_copy.gml b/scripts/node_array_copy/node_array_copy.gml new file mode 100644 index 000000000..c715db6ed --- /dev/null +++ b/scripts/node_array_copy/node_array_copy.gml @@ -0,0 +1,52 @@ +function Node_Array_Copy(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { + name = "Array Copy"; + previewable = false; + + w = 96; + h = 32 + 24; + min_h = h; + + inputs[| 0] = nodeValue("Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0) + .setArrayDepth(1) + .setVisible(true, true); + + inputs[| 1] = nodeValue("Starting Index", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0); + + inputs[| 2] = nodeValue("Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0); + + outputs[| 0] = nodeValue("Array", self, JUNCTION_CONNECT.output, VALUE_TYPE.any, 0) + .setArrayDepth(1); + + static step = function() { + var _typ = VALUE_TYPE.any; + if(inputs[| 0].value_from != noone) _typ = inputs[| 0].value_from.type; + + inputs[| 0].type = _typ; + outputs[| 0].type = _typ; + } + + static update = function(frame = ANIMATOR.current_frame) { + var _arr = inputs[| 0].getValue(); + var _ind = inputs[| 1].getValue(); + var _siz = inputs[| 2].getValue(); + + var _a = _arr, _res = []; + for( var i = 0; i < array_length(_a); i++ ) { + var _aa = _a[i]; + + _res = _aa[_ind] + } + + if(!is_array(_arr)) return; + var res = []; + + for( var i = 0; i < _siz; i++ ) + res[i] = array_safe_get(_arr, _ind + i); + + outputs[| 0].setValue(res); + } + + static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) { + + } +} \ No newline at end of file diff --git a/scripts/node_array_copy/node_array_copy.yy b/scripts/node_array_copy/node_array_copy.yy new file mode 100644 index 000000000..7b28999d9 --- /dev/null +++ b/scripts/node_array_copy/node_array_copy.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_array_copy", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "array", + "path": "folders/nodes/data/value/array.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_array_copy/node_counter.yy b/scripts/node_array_copy/node_counter.yy new file mode 100644 index 000000000..10832a0b0 --- /dev/null +++ b/scripts/node_array_copy/node_counter.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "variable", + "path": "folders/nodes/data/variable.yy", + }, + "resourceVersion": "1.0", + "name": "node_counter", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_ase_file_read/node_ase_file_read.gml b/scripts/node_ase_file_read/node_ase_file_read.gml index e4d08f8da..4e14f5525 100644 --- a/scripts/node_ase_file_read/node_ase_file_read.gml +++ b/scripts/node_ase_file_read/node_ase_file_read.gml @@ -295,7 +295,7 @@ function Node_ASE_File_Read(_x, _y, _group = noone) : Node(_x, _y, _group) const } } - static update = function(frame = ANIMATOR.current_frame) { + static update = function(frame = ANIMATOR.current_frame) { var path = inputs[| 0].getValue(); var current_tag = inputs[| 2].getValue(); if(path_current != path) updatePaths(path); @@ -319,7 +319,8 @@ function Node_ASE_File_Read(_x, _y, _group = noone) : Node(_x, _y, _group) const var vis = attributes[? "layer_visible"]; var ww = content[? "Width"]; var hh = content[? "Height"]; - var surf = outputs[| 0].getValue; + + var surf = outputs[| 0].getValue(); surf = surface_verify(surf, ww, hh); outputs[| 0].setValue(surf); diff --git a/scripts/node_ase_layer/node_ase_layer.gml b/scripts/node_ase_layer/node_ase_layer.gml index d86787e8d..d852d057e 100644 --- a/scripts/node_ase_layer/node_ase_layer.gml +++ b/scripts/node_ase_layer/node_ase_layer.gml @@ -34,7 +34,7 @@ function Node_ASE_layer(_x, _y, _group = noone) : Node(_x, _y, _group) construct } } - static update = function(frame = ANIMATOR.current_frame) { + static update = function(frame = ANIMATOR.current_frame) { var data = inputs[| 0].getValue(); if(data == noone) return; @@ -52,7 +52,7 @@ function Node_ASE_layer(_x, _y, _group = noone) : Node(_x, _y, _group) construct var cw = cel? cel.data[? "Width"] : 1; var ch = cel? cel.data[? "Height"] : 1; - var surf = outputs[| 0].getValue; + var surf = outputs[| 0].getValue(); if(celDim) surf = surface_verify(surf, cw, ch); else surf = surface_verify(surf, ww, hh); outputs[| 0].setValue(surf); diff --git a/scripts/node_color_from_hsv/node_color_from_hsv.gml b/scripts/node_color_from_hsv/node_color_from_hsv.gml index 2759045cb..3c7a46645 100644 --- a/scripts/node_color_from_hsv/node_color_from_hsv.gml +++ b/scripts/node_color_from_hsv/node_color_from_hsv.gml @@ -16,10 +16,46 @@ function Node_Color_HSV(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) .setDisplay(VALUE_DISPLAY.slider, [0, 1, 0.01]) .setVisible(true, true); + inputs[| 3] = nodeValue("Normalized", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, 1); + outputs[| 0] = nodeValue("Color", self, JUNCTION_CONNECT.output, VALUE_TYPE.color, c_white); + input_display_list = [ 3, 0, 1, 2 ]; + static process_data = function(_outSurf, _data, _output_index, _array_index) { - return make_color_hsv(_data[0] * 255, _data[1] * 255, _data[2] * 255); + var nor = _data[3]; + + return make_color_hsv( + nor? _data[0] * 255 : _data[0] / 360 * 255, + nor? _data[1] * 255 : _data[1], + nor? _data[2] * 255 : _data[2] + ); + } + + static onValueUpdate = function(index = 0) { + if(index == 3) { + var _nor = inputs[| 3].getValue(); + + if(_nor) { + inputs[| 0].type = VALUE_TYPE.integer; + inputs[| 0].setDisplay(VALUE_DISPLAY.slider, [0, 1, 0.01]); + + inputs[| 1].type = VALUE_TYPE.integer; + inputs[| 1].setDisplay(VALUE_DISPLAY.slider, [0, 1, 0.01]); + + inputs[| 2].type = VALUE_TYPE.integer; + inputs[| 2].setDisplay(VALUE_DISPLAY.slider, [0, 1, 0.01]); + } else { + inputs[| 0].type = VALUE_TYPE.integer; + inputs[| 0].setDisplay(VALUE_DISPLAY.slider, [0, 360, 1]); + + inputs[| 1].type = VALUE_TYPE.integer; + inputs[| 1].setDisplay(VALUE_DISPLAY.slider, [0, 255, 1]); + + inputs[| 2].type = VALUE_TYPE.integer; + inputs[| 2].setDisplay(VALUE_DISPLAY.slider, [0, 255, 1]); + } + } } static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) { @@ -36,4 +72,8 @@ function Node_Color_HSV(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) draw_set_color(col); draw_rectangle(bbox.x0, bbox.y0, bbox.x1, bbox.y1, 0); } + + static doApplyDeserialize = function() { + onValueUpdate(3); + } } \ No newline at end of file diff --git a/scripts/node_color_from_rgb/node_color_from_rgb.gml b/scripts/node_color_from_rgb/node_color_from_rgb.gml index 4a0182c3e..74ef4e35e 100644 --- a/scripts/node_color_from_rgb/node_color_from_rgb.gml +++ b/scripts/node_color_from_rgb/node_color_from_rgb.gml @@ -16,10 +16,46 @@ function Node_Color_RGB(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) .setDisplay(VALUE_DISPLAY.slider, [0, 1, 0.01]) .setVisible(true, true); + inputs[| 3] = nodeValue("Normalized", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, 1); + outputs[| 0] = nodeValue("Color", self, JUNCTION_CONNECT.output, VALUE_TYPE.color, c_white); + input_display_list = [ 3, 0, 1, 2 ]; + + static onValueUpdate = function(index = 0) { + if(index == 3) { + var _nor = inputs[| 3].getValue(); + + if(_nor) { + inputs[| 0].type = VALUE_TYPE.integer; + inputs[| 0].setDisplay(VALUE_DISPLAY.slider, [0, 1, 0.01]); + + inputs[| 1].type = VALUE_TYPE.integer; + inputs[| 1].setDisplay(VALUE_DISPLAY.slider, [0, 1, 0.01]); + + inputs[| 2].type = VALUE_TYPE.integer; + inputs[| 2].setDisplay(VALUE_DISPLAY.slider, [0, 1, 0.01]); + } else { + inputs[| 0].type = VALUE_TYPE.integer; + inputs[| 0].setDisplay(VALUE_DISPLAY.slider, [0, 255, 1]); + + inputs[| 1].type = VALUE_TYPE.integer; + inputs[| 1].setDisplay(VALUE_DISPLAY.slider, [0, 255, 1]); + + inputs[| 2].type = VALUE_TYPE.integer; + inputs[| 2].setDisplay(VALUE_DISPLAY.slider, [0, 255, 1]); + } + } + } + static process_data = function(_outSurf, _data, _output_index, _array_index) { - return make_color_rgb(_data[0] * 255, _data[1] * 255, _data[2] * 255); + var nor = _data[3]; + + return make_color_rgb( + nor? _data[0] * 255 : _data[0], + nor? _data[1] * 255 : _data[1], + nor? _data[2] * 255 : _data[2] + ); } static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) { @@ -36,4 +72,8 @@ function Node_Color_RGB(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) draw_set_color(col); draw_rectangle(bbox.x0, bbox.y0, bbox.x1, bbox.y1, 0); } + + static doApplyDeserialize = function() { + onValueUpdate(3); + } } \ No newline at end of file diff --git a/scripts/node_data/node_data.gml b/scripts/node_data/node_data.gml index 371a4500c..0e17ca2ba 100644 --- a/scripts/node_data/node_data.gml +++ b/scripts/node_data/node_data.gml @@ -19,15 +19,16 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) : __Node_Base(_x recordAction(ACTION_TYPE.node_added, self); NODE_MAP[? node_id] = self; MODIFIED = true; + } else { + run_in(1, function() { + internalName = string_replace_all(name, " ", "_") + string(irandom_range(10000, 99999)); + NODE_NAME_MAP[? internalName] = self; + }); } name = ""; display_name = ""; internalName = ""; - run_in(1, function() { - internalName = string_replace_all(name, " ", "_") + string(irandom_range(10000, 99999)); - NODE_NAME_MAP[? internalName] = self; - }); tooltip = ""; x = _x; @@ -715,6 +716,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) : __Node_Base(_x cx *= aa; cy *= aa; corner *= aa; + th = max(1, th); switch(PREF_MAP[? "curve_connection_line"]) { case 0 : @@ -1213,6 +1215,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) : __Node_Base(_x _map[? "id"] = node_id; _map[? "render"] = renderActive; _map[? "name"] = display_name; + _map[? "iname"] = internalName; _map[? "x"] = x; _map[? "y"] = y; _map[? "type"] = instanceof(self); @@ -1266,6 +1269,8 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) : __Node_Base(_x if(ds_map_exists(load_map, "name")) setDisplayName(ds_map_try_get(load_map, "name", "")); + + internalName = ds_map_try_get(load_map, "iname", internalName); _group = ds_map_try_get(load_map, "group", noone); if(_group == -1) _group = noone; diff --git a/scripts/node_edge_detect/node_edge_detect.gml b/scripts/node_edge_detect/node_edge_detect.gml index 071d96ae9..24e4126ad 100644 --- a/scripts/node_edge_detect/node_edge_detect.gml +++ b/scripts/node_edge_detect/node_edge_detect.gml @@ -9,7 +9,7 @@ function Node_Edge_Detect(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); inputs[| 1] = nodeValue("Algorithm", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) - .setDisplay(VALUE_DISPLAY.enum_scroll, ["Sobel", "Prewitt", "Laplacian"] ); + .setDisplay(VALUE_DISPLAY.enum_scroll, ["Sobel", "Prewitt", "Laplacian", "Neighbor max diff"] ); inputs[| 2] = nodeValue("Oversample mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0, "How to deal with pixel outside the surface.\n - Empty: Use empty pixel\n - Clamp: Repeat edge pixel\n - Repeat: Repeat texture.") .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Empty", "Clamp", "Repeat" ]); diff --git a/scripts/node_export/node_export.gml b/scripts/node_export/node_export.gml index b95d50a36..9097ea784 100644 --- a/scripts/node_export/node_export.gml +++ b/scripts/node_export/node_export.gml @@ -1,12 +1,18 @@ function Node_create_Export(_x, _y, _group = noone) { var path = ""; if(!LOADING && !APPENDING && !CLONING) { - path = get_save_filename(".png", "export"); + path = get_save_filename(@"Portable Network Graphics (.png)|*.png| +Joint Photographic Experts Group (.jpg)|*.jpg| +Graphics Interchange Format (.gif)|*.gif| +Animated WebP (.webp)|*.webp", + "export"); + key_release(); } var node = new Node_Export(_x, _y, _group); node.inputs[| 1].setValue(path); + node.extensionCheck(); //ds_list_add(PANEL_GRAPH.nodes_list, node); return node; @@ -25,10 +31,13 @@ function Node_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor playing = false; played = 0; + _format_still = ["Portable Network Graphics (.png)|*.png|Joint Photographic Experts Group (.jpg)|*.jpg", ""]; + _format_anim = ["Graphics Interchange Format (.gif)|*.gif|Animated WebP (.webp)|*.webp", ""]; + inputs[| 0] = nodeValue("Surface", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); inputs[| 1] = nodeValue("Paths", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "") - .setDisplay(VALUE_DISPLAY.path_save, ["*.png", ""]) + .setDisplay(VALUE_DISPLAY.path_save, _format_still) .setVisible(true); inputs[| 2] = nodeValue("Template", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "%d%n") @@ -97,11 +106,60 @@ function Node_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor static onValueUpdate = function(_index) { var form = inputs[| 3].getValue(); - if(_index == 3) + if(_index == 3) { inputs[| 9].setValue(0); + + switch(form) { + case 0 : + case 1 : + inputs[| 1].display_data = _format_still; + break; + case 2 : + inputs[| 1].display_data = _format_anim; + break; + } + } if(_index == 3 && form == 1) inputs[| 2].setValue("%d%n%3f%i"); + + if(_index == 1) { + var _path = inputs[| 1].getValue(); + var _ext = filename_ext(_path); + + switch(_ext) { + case ".png" : inputs[| 9].setValue(0); break; + case ".jpg" : inputs[| 9].setValue(1); break; + + case ".gif" : inputs[| 9].setValue(0); break; + case ".webp" : inputs[| 9].setValue(1); break; + } + } + } + + static extensionCheck = function() { + var _path = inputs[| 1].getValue(); + var _ext = filename_ext(_path); + + switch(_ext) { + case ".png" : + inputs[| 3].setValue(0); + inputs[| 9].setValue(0); + break; + case ".jpg" : + inputs[| 3].setValue(0); + inputs[| 9].setValue(1); + break; + + case ".gif" : + inputs[| 3].setValue(2); + inputs[| 9].setValue(0); + break; + case ".webp" : + inputs[| 3].setValue(2); + inputs[| 9].setValue(1); + break; + } } static renderWebp = function(temp_path, target_path) { @@ -120,6 +178,8 @@ function Node_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor } var rate = inputs[| 8].getValue(); + if(rate == 0) rate = 1; + var framerate = round(1 / rate * 1000); var cmd = ""; @@ -144,6 +204,7 @@ function Node_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor var opti = inputs[| 6].getValue(); var fuzz = inputs[| 7].getValue(); var rate = inputs[| 8].getValue(); + if(rate == 0) rate = 1; var framerate = 100 / rate; var loop_str = loop? 0 : 1; @@ -484,4 +545,8 @@ function Node_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor //directory_destroy(directory); } + + static doApplyDeserialize = function() { + onValueUpdate(3); + } } \ No newline at end of file diff --git a/scripts/node_image_animated/node_image_animated.gml b/scripts/node_image_animated/node_image_animated.gml index 38a698c8d..6a810d8d9 100644 --- a/scripts/node_image_animated/node_image_animated.gml +++ b/scripts/node_image_animated/node_image_animated.gml @@ -46,7 +46,7 @@ function Node_Image_Animated(_x, _y, _group = noone) : Node(_x, _y, _group) cons .setDisplay(VALUE_DISPLAY.padding) .rejectArray(); - inputs[| 2] = nodeValue("Stretch frame", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false) + inputs[| 2] = nodeValue("Stretch frame", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false, "Stretch animation speed to match project length.") .rejectArray(); inputs[| 3] = nodeValue("Frame duration", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) diff --git a/scripts/node_keyframe/node_keyframe.gml b/scripts/node_keyframe/node_keyframe.gml index a4eb2dd87..0adc41807 100644 --- a/scripts/node_keyframe/node_keyframe.gml +++ b/scripts/node_keyframe/node_keyframe.gml @@ -227,8 +227,10 @@ function valueAnimator(_val, _prop, _sep_axis = false) constructor { return processValue(_val); } - static processValue = function(_val) { - if(is_array(_val)) return _val; + static processValue = function(_val) { + if(is_array(_val)) return _val; + if(is_struct(_val)) return _val; + if(is_undefined(_val)) return 0; if(prop.type == VALUE_TYPE.integer && prop.unit.mode == VALUE_UNIT.constant) return round(toNumber(_val)); diff --git a/scripts/node_plot_linear/node_color_adjustment.yy b/scripts/node_plot_linear/node_color_adjustment.yy new file mode 100644 index 000000000..b90346cca --- /dev/null +++ b/scripts/node_plot_linear/node_color_adjustment.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "process", + "path": "folders/nodes/data/process.yy", + }, + "resourceVersion": "1.0", + "name": "node_color_adjustment", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_plot_linear/node_color_replacement.yy b/scripts/node_plot_linear/node_color_replacement.yy new file mode 100644 index 000000000..024aa6a80 --- /dev/null +++ b/scripts/node_plot_linear/node_color_replacement.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "process", + "path": "folders/nodes/data/process.yy", + }, + "resourceVersion": "1.0", + "name": "node_color_replacement", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_plot_linear/node_glow.yy b/scripts/node_plot_linear/node_glow.yy new file mode 100644 index 000000000..27053f0a6 --- /dev/null +++ b/scripts/node_plot_linear/node_glow.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "process", + "path": "folders/nodes/data/process.yy", + }, + "resourceVersion": "1.0", + "name": "node_glow", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_plot_linear/node_outline.yy b/scripts/node_plot_linear/node_outline.yy new file mode 100644 index 000000000..86468bc09 --- /dev/null +++ b/scripts/node_plot_linear/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_plot_linear/node_plot_linear.gml b/scripts/node_plot_linear/node_plot_linear.gml new file mode 100644 index 000000000..763c879ef --- /dev/null +++ b/scripts/node_plot_linear/node_plot_linear.gml @@ -0,0 +1,198 @@ +function Node_Plot_Linear(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { + name = "Bar / Graph"; + + inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, def_surf_size2 ) + .setDisplay(VALUE_DISPLAY.vector); + + inputs[| 1] = nodeValue("Data", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, []) + .setArrayDepth(1) + .setVisible(true, true); + + inputs[| 2] = nodeValue("Range", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 1 ]) + .setDisplay(VALUE_DISPLAY.slider_range, [0, 1, 0.01]); + + inputs[| 3] = nodeValue("Sample frequency", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 8); + + inputs[| 4] = nodeValue("Origin", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, def_surf_size / 2 ]) + .setDisplay(VALUE_DISPLAY.vector); + + inputs[| 5] = nodeValue("Amplitude", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, def_surf_size / 2); + + inputs[| 6] = nodeValue("Base Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white); + + inputs[| 7] = nodeValue("Graph Thickness", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1); + + inputs[| 8] = nodeValue("Use Background", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); + + inputs[| 9] = nodeValue("Background", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_black); + + inputs[| 10] = nodeValue("Direction", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.rotation); + + inputs[| 11] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Bar chart", "Graph" ]); + + inputs[| 12] = nodeValue("Value Offset", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0); + + inputs[| 13] = nodeValue("Color Over Sample", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, new gradientObject(c_white)) + .setDisplay(VALUE_DISPLAY.gradient); + + inputs[| 14] = nodeValue("Trim mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Range", "Window" ]); + + inputs[| 15] = nodeValue("Window Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 8) + + inputs[| 16] = nodeValue("Window Offset", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0) + + inputs[| 17] = nodeValue("Data Point Spacing", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) + + inputs[| 18] = nodeValue("Bar Width", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 4) + + inputs[| 19] = nodeValue("Rounded Bar", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false) + + inputs[| 20] = nodeValue("Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.pathnode, noone) + .setVisible(true, true); + + outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); + + input_display_list = [ 0, + ["Data", true], 1, 12, 14, 2, 3, 15, 16, + ["Chart", false], 11, 4, 10, 20, 5, 17, + ["Render", false], 6, 13, 7, 18, 19, 18, 19, 8, 9, + ]; + + attribute_surface_depth(); + + static step = function() { + var _ubg = getSingleValue(8); + var _typ = getSingleValue(11); + var _trim_mode = getSingleValue(14); + + var _use_path = getSingleValue(20) != noone; + + inputs[| 2].setVisible(_trim_mode == 0); + inputs[| 15].setVisible(_trim_mode == 1); + inputs[| 16].setVisible(_trim_mode == 1); + inputs[| 17].setVisible(_trim_mode == 1); + + inputs[| 9].setVisible(_ubg); + inputs[| 7].setVisible(_typ == 1); + inputs[| 18].setVisible(_typ == 0); + inputs[| 19].setVisible(_typ == 0); + + inputs[| 4].setVisible(!_use_path); + inputs[| 10].setVisible(!_use_path); + } + + static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { + inputs[| 4].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny); + } + + static process_data = function(_outSurf, _data, _output_index, _array_index) { + var _dim = _data[0]; + var _dat = _data[1]; + var _ran = _data[2]; + var _sam = _data[3]; + var _ori = _data[4]; + var _amp = _data[5]; + var _lcl = _data[6]; + var _lth = _data[7]; + var _ubg = _data[8]; + var _bgc = _data[9]; + var _ang = _data[10]; + var _typ = _data[11]; + var _off = _data[12]; + var _grd = _data[13]; + + var _trim_mode = _data[14]; + var _win_size = _data[15]; + var _win_offs = _data[16]; + + var _pnt_spac = _data[17]; + + var _bar_wid = _data[18]; + var _bar_rnd = _data[19]; + + var _path = _data[20]; + + _outSurf = surface_verify(_outSurf, _dim[0], _dim[1], attrDepth()); + + surface_set_target(_outSurf); + if(_ubg) draw_clear(_bgc); + else DRAW_CLEAR + + var _len = array_length(_dat); + var _st = clamp(_ran[0], 0, 1) * _len; + var _ed = clamp(_ran[1], 0, 1) * _len; + var ox, oy, nx, ny; + + if(_typ == 1) + draw_set_circle_precision(4); + + var _dat_amo = array_length(_dat); + var _smp_data = []; + var _ind = 0; + + if(_trim_mode == 0) { + for( var i = _st; i < _ed; i += _sam ) + _smp_data[_ind++] = _dat[i]; + } else if(_trim_mode == 1) { + for( var i = 0; i < _win_size; i++ ) { + _ind = _win_offs + i * _sam; + + if(_ind >= _dat_amo) break; + if(frac(_ind) != 0 && floor(_ind) + 1 < _dat_amo) + _smp_data[i] = lerp(_dat[floor(_ind)], _dat[floor(_ind) + 1], frac(_ind)); + else + _smp_data[i] = _dat[_ind]; + } + } + + var amo = array_length(_smp_data); + var _px, _py, _ang_nor, _val, _grd_col; + var _pnt, _ppnt = undefined; + + for( var i = 0; i < amo; i++ ) { + if(_path == noone) { + _px = _ori[0] + lengthdir_x(i * _pnt_spac, _ang); + _py = _ori[1] + lengthdir_y(i * _pnt_spac, _ang); + _ang_nor = _ang + 90; + } else { + _pnt = _path.getPointRatio(i / amo); + if(_ppnt == undefined) + _ppnt = _path.getPointRatio(i / amo - 0.001); + + _px = _pnt.x; + _py = _pnt.y; + _ang_nor = point_direction(_ppnt.x, _ppnt.y, _pnt.x, _pnt.y) + 90; + + _ppnt = _pnt; + } + + _val = _smp_data[i] + _off; + + _grd_col = _grd.eval(i / amo); + draw_set_color(colorMultiply(_lcl, _grd_col)); + + nx = _px + lengthdir_x(_amp * _val, _ang_nor); + ny = _py + lengthdir_y(_amp * _val, _ang_nor); + + switch(_typ) { + case 0 : + if(_bar_rnd) draw_line_round(_px, _py, nx, ny, _bar_wid); + else draw_line_width(_px, _py, nx, ny, _bar_wid); + break; + case 1 : + if(i > _st) draw_line_round(ox, oy, nx, ny, _lth); + break; + } + + ox = nx; + oy = ny; + } + + draw_set_circle_precision(64); + surface_reset_target(); + return _outSurf; + } +} \ No newline at end of file diff --git a/scripts/node_plot_linear/node_plot_linear.yy b/scripts/node_plot_linear/node_plot_linear.yy new file mode 100644 index 000000000..98a14a81b --- /dev/null +++ b/scripts/node_plot_linear/node_plot_linear.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_plot_linear", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "generator", + "path": "folders/nodes/data/generator.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_registry/node_registry.gml b/scripts/node_registry/node_registry.gml index 14d30ee22..a4026291b 100644 --- a/scripts/node_registry/node_registry.gml +++ b/scripts/node_registry/node_registry.gml @@ -229,6 +229,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { addNodeObject(input, "JSON File Out", s_node_json_file_write, "Node_Json_File_Write", [1, Node_Json_File_Write],, "Save data to .json file.").setVersion(1090); addNodeObject(input, "ASE File In", s_node_ase_file, "Node_ASE_File_Read", [0, Node_create_ASE_File_Read],, "Load Aseprite file with support for layers, tags.").setVersion(1100); addNodeObject(input, "ASE Layer", s_node_ase_layer, "Node_ASE_layer", [1, Node_ASE_layer]).setVersion(1100); + addNodeObject(input, "WAV File In", s_node_wav_file_read, "Node_WAV_File_Read", [0, Node_create_WAV_File_Read],, "Load wav audio file.").setVersion(1144); var transform = ds_list_create(); addNodeCatagory("Transform", transform); @@ -393,6 +394,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { 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"]).setVersion(1144); var compose = ds_list_create(); addNodeCatagory("Compose", compose); @@ -434,6 +436,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { addNodeObject(values, "Dot product", s_node_dot_product, "Node_Vector_Dot", [1, Node_Vector_Dot]).setVersion(1141); addNodeObject(values, "Cross product 3D", s_node_cross_product_2d, "Node_Vector_Cross_3D", [1, Node_Vector_Cross_3D]).setVersion(1141); addNodeObject(values, "Cross product 2D", s_node_cross_product_3d, "Node_Vector_Cross_2D", [1, Node_Vector_Cross_2D]).setVersion(1141); + /**/ addNodeObject(values, "FFT", s_node_cross_product_3d, "Node_FFT", [1, Node_FFT]).setVersion(1144); ds_list_add(values, "Texts"); addNodeObject(values, "Text", s_node_text, "Node_String", [1, Node_String]); @@ -461,6 +464,7 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { addNodeObject(values, "Array Reverse", s_node_array_reverse, "Node_Array_Reverse", [1, Node_Array_Reverse], ["reverse array"]).setVersion(1120); addNodeObject(values, "Array Shift", s_node_array_shift, "Node_Array_Shift", [1, Node_Array_Shift]).setVersion(1137); addNodeObject(values, "Array Zip", s_node_array_zip, "Node_Array_Zip", [1, Node_Array_Zip]).setVersion(1138); + /**/ addNodeObject(values, "Array Copy", s_node_array_zip, "Node_Array_Copy", [1, Node_Array_Copy]).setVersion(1444); addNodeObject(values, "Sort Number", s_node_array_sort, "Node_Array_Sort", [1, Node_Array_Sort], ["array sort"]).setVersion(1120); addNodeObject(values, "Shuffle Array", s_node_array_shuffle, "Node_Array_Shuffle", [1, Node_Array_Shuffle], ["array shuffle"]).setVersion(1120); addNodeObject(values, "Loop Array", s_node_loop_array, "Node_Iterate_Each", [1, Node_Iterate_Each], ["iterate each", "for each", "array loop"], "Create group that iterate to each member in an array."); diff --git a/scripts/node_render_sprite_sheet/node_render_sprite_sheet.gml b/scripts/node_render_sprite_sheet/node_render_sprite_sheet.gml index 08fd47b3c..5a768c658 100644 --- a/scripts/node_render_sprite_sheet/node_render_sprite_sheet.gml +++ b/scripts/node_render_sprite_sheet/node_render_sprite_sheet.gml @@ -246,12 +246,8 @@ function Node_Render_Sprite_Sheet(_x, _y, _group = noone) : Node(_x, _y, _group) if(grup == SPRITE_ANIM_GROUP.animation) { refreshSurface = false; - if(!LOADING && !APPENDING) { - ANIMATOR.setFrame(-1); - ANIMATOR.is_playing = true; - ANIMATOR.rendering = true; - ANIMATOR.frame_progress = true; - } + if(!LOADING && !APPENDING) + ANIMATOR.render(); outputs[| 1].setValue([]); return; diff --git a/scripts/node_value/node_value.gml b/scripts/node_value/node_value.gml index 4a662a1f1..3b625a794 100644 --- a/scripts/node_value/node_value.gml +++ b/scripts/node_value/node_value.gml @@ -247,8 +247,11 @@ enum VALUE_UNIT { } function isGraphable(prop) { - if(prop.type == VALUE_TYPE.integer || prop.type == VALUE_TYPE.float) + if(prop.type == VALUE_TYPE.integer || prop.type == VALUE_TYPE.float) { + if(prop.display_type == VALUE_DISPLAY.puppet_control) + return false; return true; + } if(prop.type == VALUE_TYPE.color && prop.display_type == VALUE_DISPLAY._default) return true; @@ -408,7 +411,7 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru extract_node = ""; is_changed = true; - cache_value = [ false, undefined ]; + cache_value = [ false, false, undefined ]; cache_array = [ false, false ]; expUse = false; @@ -433,6 +436,8 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru return self; } + static resetValue = function() { setValue(def_val); } + static setUnitRef = function(ref, mode = VALUE_UNIT.constant) { unit.reference = ref; unit.mode = mode; @@ -984,19 +989,23 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru return value; } - static getValue = function(_time = ANIMATOR.current_frame, applyUnit = true, arrIndex = 0) { - //var cache_hit = cache_value[0]; - //cache_hit &= cache_value[1] == _time; - //cache_hit &= cache_value[2] != undefined; - //cache_hit &= connect_type == JUNCTION_CONNECT.input; - //cache_hit &= unit.reference != VALUE_UNIT.reference; - //if(cache_hit) return cache_value[2]; + static getValue = function(_time = ANIMATOR.current_frame, applyUnit = true, arrIndex = 0, useCache = true) { + if(useCache) { + var cache_hit = cache_value[0]; + cache_hit &= cache_value[1] == _time; + cache_hit &= cache_value[2] != undefined; + cache_hit &= connect_type == JUNCTION_CONNECT.input; + cache_hit &= unit.reference == VALUE_UNIT.constant; + if(cache_hit) return cache_value[2]; + } var val = _getValue(_time, applyUnit, arrIndex); - //is_changed = !isEqual(cache_value[1], val); - //cache_value[0] = true; - //cache_value[1] = val; + if(useCache) { + is_changed = !isEqual(cache_value[1], val); + cache_value[0] = true; + cache_value[1] = val; + } return val; } @@ -1106,7 +1115,8 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru var val = getValue(, false); if(isArray()) { if(array_length(val) == 0) return 0; - return val[safe_mod(node.preview_index, array_length(val))]; + var v = val[safe_mod(node.preview_index, array_length(val))]; + if(array_length(v) >= 100) return $"[{array_length(v)}]"; } return val; } @@ -1630,6 +1640,8 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru if(ds_map_exists(_map, "data")) ds_list_copy(extra_data, _map[? "data"]); + if(APPENDING) def_val = getValue(0); + onValidate(); } diff --git a/scripts/node_wav_file_read/node_wav_file_read.gml b/scripts/node_wav_file_read/node_wav_file_read.gml new file mode 100644 index 000000000..eb1b8809b --- /dev/null +++ b/scripts/node_wav_file_read/node_wav_file_read.gml @@ -0,0 +1,114 @@ +function Node_create_WAV_File_Read(_x, _y, _group = noone) { + var path = ""; + if(!LOADING && !APPENDING && !CLONING) { + path = get_open_filename(".wav", ""); + key_release(); + if(path == "") return noone; + } + + var node = new Node_WAV_File_Read(_x, _y, _group); + node.inputs[| 0].setValue(path); + node.doUpdate(); + + return node; +} + +function Node_create_WAV_File_Read_path(_x, _y, path) { + if(!file_exists(path)) return noone; + + var node = new Node_WAV_File_Read(_x, _y, PANEL_GRAPH.getCurrentContext()); + node.inputs[| 0].setValue(path); + node.doUpdate(); + + return node; +} + +function Node_WAV_File_Read(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { + name = "WAV File In"; + color = COLORS.node_blend_input; + previewable = false; + + w = 128; + + inputs[| 0] = nodeValue("Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "") + .setDisplay(VALUE_DISPLAY.path_load, ["*.wav", ""]) + .rejectArray(); + + outputs[| 0] = nodeValue("Data", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, []) + .setArrayDepth(1); + + outputs[| 1] = nodeValue("Path", self, JUNCTION_CONNECT.output, VALUE_TYPE.path, ""); + + outputs[| 2] = nodeValue("Sample rate", self, JUNCTION_CONNECT.output, VALUE_TYPE.integer, 44100) + .setVisible(false); + + outputs[| 3] = nodeValue("Channels", self, JUNCTION_CONNECT.output, VALUE_TYPE.integer, 2) + .setVisible(false); + + outputs[| 4] = nodeValue("Duration (s)", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0) + .setVisible(false); + + content = {}; + path_current = ""; + + first_update = false; + + output_display_list = [ 0, 2, 3, 4, 1 ]; + + on_dragdrop_file = function(path) { + if(updatePaths(path)) { + doUpdate(); + return true; + } + + return false; + } + + function updatePaths(path) { + path = try_get_path(path); + if(path == -1) return false; + + var ext = string_lower(filename_ext(path)); + var _name = string_replace(filename_name(path), filename_ext(path), ""); + + if(ext != ".wav") return false; + + outputs[| 1].setValue(path); + + content = file_read_wav(path); + outputs[| 0].setValue(content.sound); + outputs[| 2].setValue(content.sample); + outputs[| 3].setValue(content.channels); + outputs[| 4].setValue(content.duration); + + if(path_current == "") + first_update = true; + path_current = path; + return true; + } + + insp1UpdateTooltip = get_text("panel_inspector_refresh", "Refresh"); + insp1UpdateIcon = [ THEME.refresh, 1, COLORS._main_value_positive ]; + + static onInspector1Update = function() { + var path = inputs[| 0].getValue(); + if(path == "") return; + updatePaths(path); + update(); + } + + static update = function(frame = ANIMATOR.current_frame) { + var path = inputs[| 0].getValue(); + if(path == "") return; + if(path_current != path) updatePaths(path); + } + + static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) { + var bbox = drawGetBbox(xx, yy, _s); + + var str = filename_name(path_current); + draw_set_text(f_h5, fa_center, fa_center, COLORS._main_text); + var ss = string_scale(str, bbox.w, bbox.h); + draw_text_transformed(bbox.xc, bbox.yc, str, ss, ss, 0); + } +} \ No newline at end of file diff --git a/scripts/node_wav_file_read/node_wav_file_read.yy b/scripts/node_wav_file_read/node_wav_file_read.yy new file mode 100644 index 000000000..16185e780 --- /dev/null +++ b/scripts/node_wav_file_read/node_wav_file_read.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_wav_file_read", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "IO", + "path": "folders/nodes/data/IO.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_wrap_mesh/node_wrap_mesh.gml b/scripts/node_wrap_mesh/node_wrap_mesh.gml index 14b806b94..88a3f9065 100644 --- a/scripts/node_wrap_mesh/node_wrap_mesh.gml +++ b/scripts/node_wrap_mesh/node_wrap_mesh.gml @@ -452,8 +452,14 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) surface_set_shader(_outSurf); shader_set_interpolation(_outSurf); - for(var i = 0; i < array_length(data.tris); i++) - data.tris[i].drawSurface(_inSurf); + + if(array_length(data.tris) == 0) { + draw_surface_safe(_inSurf); + } else { + for(var i = 0; i < array_length(data.tris); i++) + data.tris[i].drawSurface(_inSurf); + } + surface_reset_shader(); return _outSurf; diff --git a/scripts/panel_addon/panel_addon.gml b/scripts/panel_addon/panel_addon.gml index dc13da1bb..0731ebe64 100644 --- a/scripts/panel_addon/panel_addon.gml +++ b/scripts/panel_addon/panel_addon.gml @@ -81,8 +81,8 @@ function Panel_Addon() : PanelContent() constructor { var chx0 = ui(6); var chy0 = by + ui(6); - var chx1 = chx0 + ui(20); - var chy1 = chy0 + ui(20); + var chx1 = chx0 + ui(28); + var chy1 = chy0 + ui(28); var _onStart = array_exists(ADDONS_ON_START, _addon.name); if(pHOVER && point_in_rectangle(_m[0], _m[1], chx0, chy0, chx1, chy1)) { diff --git a/scripts/panel_animation/panel_animation.gml b/scripts/panel_animation/panel_animation.gml index a7757761a..dc03ab560 100644 --- a/scripts/panel_animation/panel_animation.gml +++ b/scripts/panel_animation/panel_animation.gml @@ -86,16 +86,13 @@ function Panel_Animation() : PanelContent() constructor { [ function() { return get_text("stop", "Stop"); }, function() { return 4; }, function() { return ANIMATOR.is_playing? COLORS._main_accent : COLORS._main_icon; }, - function() { - ANIMATOR.is_playing = false; - ANIMATOR.setFrame(0); - } ], + function() { ANIMATOR.stop(); } ], [ function() { return ANIMATOR.is_playing? get_text("pause", "Pause") : get_text("play", "Play"); }, function() { return !ANIMATOR.is_playing; }, function() { return ANIMATOR.is_playing? COLORS._main_accent : COLORS._main_icon; }, - function() { - ANIMATOR.is_playing = !ANIMATOR.is_playing; - ANIMATOR.frame_progress = true; + function() { + if(ANIMATOR.is_playing) ANIMATOR.pause(); + else ANIMATOR.resume(); } ], [ function() { return get_text("panel_animation_go_to_first_frame", "Go to first frame"); }, function() { return 3; }, diff --git a/scripts/panel_inspector/panel_inspector.gml b/scripts/panel_inspector/panel_inspector.gml index 514026485..31dc93b89 100644 --- a/scripts/panel_inspector/panel_inspector.gml +++ b/scripts/panel_inspector/panel_inspector.gml @@ -464,7 +464,7 @@ function Panel_Inspector() : PanelContent() constructor { if(i < amoIn) { array_push(_menuItem, menuItem(get_text("panel_inspector_reset", "Reset value"), function() { - __dialog_junction.setValue(__dialog_junction.def_val); + __dialog_junction.resetValue(); }), menuItem(jun.is_anim? get_text("panel_inspector_remove", "Remove animation") : get_text("panel_inspector_add", "Add animation"), function() { __dialog_junction.setAnim(!__dialog_junction.is_anim); diff --git a/scripts/panel_menu/panel_menu.gml b/scripts/panel_menu/panel_menu.gml index f54c0b9a6..303774055 100644 --- a/scripts/panel_menu/panel_menu.gml +++ b/scripts/panel_menu/panel_menu.gml @@ -469,6 +469,7 @@ function Panel_Menu() : PanelContent() constructor { var ww = hori? string_width(name) + ui(40) : w - ui(16); if(pHOVER && point_in_rectangle(mx, my, nx0, ny0 - wh / 2, nx0 + ww, ny0 + wh / 2)) { + TOOLTIP = get_text("addons", "Addons"); draw_sprite_stretched(THEME.menu_button, 1, nx0, ny0 - wh / 2, ww, wh); if(mouse_press(mb_left, pFOCUS)) dialogPanelCall(new Panel_Addon()); diff --git a/scripts/save_function/save_function.gml b/scripts/save_function/save_function.gml index c31646287..96d037c6c 100644 --- a/scripts/save_function/save_function.gml +++ b/scripts/save_function/save_function.gml @@ -52,6 +52,13 @@ function save_serialize() { if(!is_surface(prev)) _map[? "preview"] = ""; else _map[? "preview"] = surface_encode(surface_size_lim(prev, 128, 128)); + var _addon = ds_map_create(); + with(_addon_custom) { + var _ser = lua_call(thread, "serialize"); + _addon[? name] = PREF_MAP[? "save_file_minify"]? json_stringify_minify(_ser) : json_stringify(_ser); + } + ds_map_add_map(_map, "addon", _addon); + var val = PREF_MAP[? "save_file_minify"]? json_encode_minify(_map) : json_encode(_map, true); ds_map_destroy(_map); return val; diff --git a/scripts/wav_file_read/wav_file_read.gml b/scripts/wav_file_read/wav_file_read.gml new file mode 100644 index 000000000..5727a210c --- /dev/null +++ b/scripts/wav_file_read/wav_file_read.gml @@ -0,0 +1,81 @@ +function file_read_ASCII(file, amo = 1) { + var b = ""; + repeat(amo) + b += chr(file_bin_read_byte(file)); + return b; +} + +function file_read_bytes(file, amo = 1, signed = false, little_endian = true) { + var b = 0; + var m = little_endian? 1 : 1 << ((amo - 1) * 8); + repeat(amo) { + b += file_bin_read_byte(file) * m; + m = little_endian? m * 256 : m / 256; + } + + if(signed) { + var mv = 1 << (amo * 8 - 1) - 1; + if(b > mv) + b -= (1 << (amo * 8)); + } + + return b; +} + +global.DEBUG_FLAG.wav_import = true; + +function file_read_wav(path) { + var f = file_bin_open(path, 0); + + //RIFF + printIf(global.DEBUG_FLAG.wav_import, "-- RIFF --") + var b = file_read_ASCII(f, 4); printIf(global.DEBUG_FLAG.wav_import, b); + var l = file_read_bytes(f, 4); printIf(global.DEBUG_FLAG.wav_import, $"Packages: {l}"); + var w = file_read_ASCII(f, 4); printIf(global.DEBUG_FLAG.wav_import, w); + + //FORMAT + printIf(global.DEBUG_FLAG.wav_import, "-- FORMAT --") + var b = file_read_ASCII(f, 4); printIf(global.DEBUG_FLAG.wav_import, b); + var l = file_read_bytes(f, 4); printIf(global.DEBUG_FLAG.wav_import, $"Length: {l}"); + var l = file_read_bytes(f, 2); printIf(global.DEBUG_FLAG.wav_import, $"0x01: {l}"); + var ch = file_read_bytes(f, 2); printIf(global.DEBUG_FLAG.wav_import, $"Channels: {ch}"); + var sm = file_read_bytes(f, 4); printIf(global.DEBUG_FLAG.wav_import, $"Sample: {sm}"); + var l = file_read_bytes(f, 4); printIf(global.DEBUG_FLAG.wav_import, $"BPS: {l}"); + var br = file_read_bytes(f, 2); printIf(global.DEBUG_FLAG.wav_import, $"Bitrate: {br}"); + var l = file_read_bytes(f, 2); printIf(global.DEBUG_FLAG.wav_import, $"Bit/Sam: {l}"); + + //DATA + printIf(global.DEBUG_FLAG.wav_import, "-- DATA --") + var b = file_read_ASCII(f, 4); printIf(global.DEBUG_FLAG.wav_import, b); + var l = file_read_bytes(f, 4); printIf(global.DEBUG_FLAG.wav_import, $"Length: {l}"); + + var bpc = br / ch; + var bits = l / br; + var data = array_create(ch); + var lim = 1 << (8 * bpc - 2); + + printIf(global.DEBUG_FLAG.wav_import, "-- READ --") + printIf(global.DEBUG_FLAG.wav_import, $"Channels: {ch}"); + printIf(global.DEBUG_FLAG.wav_import, $"BPC: {bpc * 8}"); + printIf(global.DEBUG_FLAG.wav_import, $"bits: {bits}"); + printIf(global.DEBUG_FLAG.wav_import, $"lim: {lim}"); + printIf(global.DEBUG_FLAG.wav_import, $"duration: {bits / sm}"); + + var _mn = 0, _mx = 0; + for( var i = 0; i < bits; i++ ) + for( var j = 0; j < ch; j++ ) { + data[j][i] = file_read_bytes(f, bpc, true) / lim; + _mn = min(_mn, data[j][i]); + _mx = max(_mx, data[j][i]); + } + + file_bin_close(f); + + return { + sound: data, + sample: sm, + channels: ch, + bit_depth: bpc * 8, + duration: bits / sm, + }; +} \ No newline at end of file diff --git a/scripts/wav_file_read/wav_file_read.yy b/scripts/wav_file_read/wav_file_read.yy new file mode 100644 index 000000000..43f69fe88 --- /dev/null +++ b/scripts/wav_file_read/wav_file_read.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "wav_file_read", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "audio", + "path": "folders/functions/audio.yy", + }, +} \ No newline at end of file diff --git a/shaders/sh_2d_light/sh_2d_light.yy b/shaders/sh_2d_light/sh_2d_light.yy index a18b04298..c937c76f5 100644 --- a/shaders/sh_2d_light/sh_2d_light.yy +++ b/shaders/sh_2d_light/sh_2d_light.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_2d_light", "parent": { - "name": "blend", - "path": "folders/shader/blend.yy", + "name": "generator", + "path": "folders/shader/generator.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_blend_contrast/sh_blend_contrast.fsh b/shaders/sh_blend_contrast/sh_blend_contrast.fsh index e353b58d2..37f0a0ea2 100644 --- a/shaders/sh_blend_contrast/sh_blend_contrast.fsh +++ b/shaders/sh_blend_contrast/sh_blend_contrast.fsh @@ -34,7 +34,10 @@ void main() { float lum = dot(_col1.rgb, vec3(0.2126, 0.7152, 0.0722)); vec4 blend = lum > 0.5? (vec4(1.) - (vec4(1.) - _col0) * (vec4(1.) - _col1) * 2.) : (_col0 * _col1 * 2.); - vec4 res = mix(_col0, blend, opacity); + + float po = preserveAlpha == 1? _col1.a : opacity; + vec4 res = mix(_col0, blend, po); + if(preserveAlpha == 1) res.a = _col0.a; gl_FragColor = res; diff --git a/shaders/sh_blend_multiply/sh_blend_multiply.fsh b/shaders/sh_blend_multiply/sh_blend_multiply.fsh index 66e6106e8..0f7fb539f 100644 --- a/shaders/sh_blend_multiply/sh_blend_multiply.fsh +++ b/shaders/sh_blend_multiply/sh_blend_multiply.fsh @@ -32,7 +32,11 @@ void main() { vec4 _col1 = texture2D( fore, fore_tex ); _col1.a *= opacity * sampleMask(); - vec4 res = (_col0 * (1. - opacity)) + (_col0 * _col1 * opacity); + vec4 blend = (_col0 * (1. - opacity)) + (_col0 * _col1 * opacity); + + float po = preserveAlpha == 1? _col1.a : opacity; + vec4 res = mix(_col0, blend, po); + if(preserveAlpha == 1) res.a = _col0.a; gl_FragColor = res; diff --git a/shaders/sh_blend_overlay/sh_blend_overlay.fsh b/shaders/sh_blend_overlay/sh_blend_overlay.fsh index 8d569a0ea..71a5725b7 100644 --- a/shaders/sh_blend_overlay/sh_blend_overlay.fsh +++ b/shaders/sh_blend_overlay/sh_blend_overlay.fsh @@ -34,7 +34,10 @@ void main() { float lum = dot(_col1.rgb, vec3(0.2126, 0.7152, 0.0722)); vec4 blend = lum > 0.5? (1. - (1. - 2. * (_col1 - 0.5)) * (1. - _col0)) : ((2. * _col1) * _col0); - vec4 res = mix(_col0, blend, opacity); + + float po = preserveAlpha == 1? _col1.a : opacity; + vec4 res = mix(_col0, blend, po); + if(preserveAlpha == 1) res.a = _col0.a; gl_FragColor = res; diff --git a/shaders/sh_blend_screen/sh_blend_screen.fsh b/shaders/sh_blend_screen/sh_blend_screen.fsh index 6e32cf697..177e6e702 100644 --- a/shaders/sh_blend_screen/sh_blend_screen.fsh +++ b/shaders/sh_blend_screen/sh_blend_screen.fsh @@ -36,7 +36,11 @@ void main() { _col1.a *= o; _col1.rgb *= _col1.a; - vec4 res = vec4(1.) - (vec4(1.) - _col0) * (vec4(1.) - _col1); + vec4 blend = vec4(1.) - (vec4(1.) - _col0) * (vec4(1.) - _col1); + + float po = preserveAlpha == 1? _col1.a : opacity; + vec4 res = mix(_col0, blend, po); + if(preserveAlpha == 1) res.a = _col0.a; gl_FragColor = res; diff --git a/shaders/sh_blend_subtract/sh_blend_subtract.fsh b/shaders/sh_blend_subtract/sh_blend_subtract.fsh index 60625511a..f66b7975d 100644 --- a/shaders/sh_blend_subtract/sh_blend_subtract.fsh +++ b/shaders/sh_blend_subtract/sh_blend_subtract.fsh @@ -34,7 +34,11 @@ void main() { _col1.a *= opacity * sampleMask(); _col1.rgb *= _col1.a; - vec4 res = _col0 - _col1; + vec4 blend = _col0 - _col1; + + float po = preserveAlpha == 1? _col1.a : opacity; + vec4 res = mix(_col0, blend, po); + if(preserveAlpha == 1) res.a = _col0.a; gl_FragColor = res; diff --git a/shaders/sh_draw_normal/sh_draw_normal.yy b/shaders/sh_draw_normal/sh_draw_normal.yy index c994f2bd5..4c97fa645 100644 --- a/shaders/sh_draw_normal/sh_draw_normal.yy +++ b/shaders/sh_draw_normal/sh_draw_normal.yy @@ -3,8 +3,8 @@ "resourceVersion": "1.0", "name": "sh_draw_normal", "parent": { - "name": "blend", - "path": "folders/shader/blend.yy", + "name": "draw", + "path": "folders/shader/draw.yy", }, "type": 1, } \ No newline at end of file diff --git a/shaders/sh_edge_detect/sh_edge_detect.fsh b/shaders/sh_edge_detect/sh_edge_detect.fsh index 7ead96b6e..24f3c9c99 100644 --- a/shaders/sh_edge_detect/sh_edge_detect.fsh +++ b/shaders/sh_edge_detect/sh_edge_detect.fsh @@ -33,6 +33,38 @@ const mat3 prewit = mat3( -1., -1., -1., const mat3 laplac = mat3( 1., 1., 1., 1., -8., 1., 1., 1., 1); + +const mat3 laplac_r0 = mat3( 0., 1., 0., + 0., -1., 0., + 0., 0., 0); + +const mat3 laplac_r1 = mat3( 0., 0., 0., + 0., -1., 1., + 0., 0., 0); + +const mat3 laplac_r2 = mat3( 0., 0., 0., + 0., -1., 0., + 0., 1., 0); + +const mat3 laplac_r3 = mat3( 0., 0., 0., + 1., -1., 0., + 0., 0., 0); + +const mat3 laplac_r4 = mat3( 1., 0., 0., + 0., -1., 0., + 0., 0., 0); + +const mat3 laplac_r5 = mat3( 0., 0., 1., + 0., -1., 0., + 0., 0., 0); + +const mat3 laplac_r6 = mat3( 0., 0., 0., + 0., -1., 0., + 0., 0., 1); + +const mat3 laplac_r7 = mat3( 0., 0., 0., + 0., -1., 0., + 1., 0., 0); #define TAU 6.283185307179586 @@ -46,7 +78,48 @@ void main() { vec4 hColor = vec4(0.); vec4 vColor = vec4(0.); - for(float i = -1.; i <= 1.; i++) { + if(filter == 3) { + vec4 hColor0 = vec4(0.); + vec4 hColor1 = vec4(0.); + vec4 hColor2 = vec4(0.); + vec4 hColor3 = vec4(0.); + vec4 hColor4 = vec4(0.); + vec4 hColor5 = vec4(0.); + vec4 hColor6 = vec4(0.); + vec4 hColor7 = vec4(0.); + + for(float i = -1.; i <= 1.; i++) + for(float j = -1.; j <= 1.; j++) { + vec2 pxs = v_vTexcoord + vec2(texel.x * i, texel.y * j); + pxs = clamp(pxs, vec2(0.), vec2(1.)); + + int ii = int(1. + i); + int jj = int(1. + j); + vec4 sam = sampleTexture( pxs ); + + hColor0 += sam * laplac_r0[jj][ii]; + //hColor1 += sam * laplac_r1[jj][ii]; + //hColor2 += sam * laplac_r2[jj][ii]; + hColor3 += sam * laplac_r3[jj][ii]; + hColor4 += sam * laplac_r4[jj][ii]; + //hColor5 += sam * laplac_r5[jj][ii]; + //hColor6 += sam * laplac_r6[jj][ii]; + //hColor7 += sam * laplac_r7[jj][ii]; + } + + hColor0 = abs(hColor0); + hColor1 = abs(hColor1); + hColor2 = abs(hColor2); + hColor3 = abs(hColor3); + hColor4 = abs(hColor4); + hColor5 = abs(hColor5); + hColor6 = abs(hColor6); + hColor7 = abs(hColor7); + + hColor = max(max(max(hColor0, hColor1), max(hColor2, hColor3)), + max(max(hColor4, hColor5), max(hColor6, hColor7))); + } else { + for(float i = -1.; i <= 1.; i++) for(float j = -1.; j <= 1.; j++) { vec2 pxs = v_vTexcoord + vec2(texel.x * i, texel.y * j); pxs = clamp(pxs, vec2(0.), vec2(1.)); @@ -66,8 +139,12 @@ void main() { } } - if(filter == 2) - gl_FragColor = vec4(vec3(hColor), point.a); - else - gl_FragColor = vec4(vec3(distance(hColor, vColor)), point.a); + if(filter == 0) + gl_FragColor = vec4(vec3(distance(hColor / 4., vColor / 4.)), point.a); + else if(filter == 1) + gl_FragColor = vec4(vec3(distance(hColor / 3., vColor / 3.)), point.a); + else if(filter == 2) + gl_FragColor = vec4(hColor.rgb / 2., point.a); + else if(filter == 3) + gl_FragColor = vec4(abs(hColor.rgb), point.a); } diff --git a/sprites/s_node_bar_graph/8d4ff1e4-2b3e-4941-9f87-09e35ceed7f6.png b/sprites/s_node_bar_graph/8d4ff1e4-2b3e-4941-9f87-09e35ceed7f6.png new file mode 100644 index 0000000000000000000000000000000000000000..312ca8d56cdcbf69bf0a2372e14126409676fd7e GIT binary patch literal 1561 zcmZ{kdoyY-YbKdiw^ZwC!&hvbq^E~Hsp68F}JU1PQR#M`7#Q^}2B3PR{ z2^9a+MTG^i)GugEAgZ3$PWAv0p#cE&H~`oZl;|@65Q+kTIWhoXGXVe|nB8>hxS%0S zv9&S>_&@DI3o8u(pppc0Q_|JZg)9eOHD{$~CIdwyq$a8QH5vPgd5X=(oe+3KV>}H- zl5aXIFV0b(&@PWhU)g0|czZAw{{Bv^qYPS821!Z!;&+M@5#-?GU{iIGNwau$@=t*ih)Wl?(~7!4 z@8W&WcIOtepp*7J5~GZB)w60uJo-L}(z#PF?JHJ7wc}06tzBjeP|En~ip2IlGv0bI zFU%gta{R*J(Lf%mU`d5*6NF8vdJf(Rvr;0TiuH#~GR|SuEc>^r2i&w37t$P7g(Tiy zB~Gv;5W_3m*0~;Y4V6g~$7GyW;#>LhOvT4oQ?}9RGSfj#(J_8+bL-PfXWSO}Tc`c^ z$nI!<910!gmAy<*HeNCr26)c>N;%x|Lu@BHC*||guW!CCEBNKk$+|S&t*J>6tPe@0 zL`J_UJFrOwwepuGje|cw&5%td;t@LUOQdJ!7{-s?tc;!RcXJ=z{*e5!ziNcJ)izv7(``T1|VqbJ6A4Y~%?Nt$# zow}wQwZ|=TK_+FAN_T6DNIuw8Kx_O4E!X8PEcMoO_bI0yEgTVBK}*@B*FP*(@0t$o z_J4Ij67gwW%5S_yEh}-ccyA#0%E9IuKny)3ADVK0w~?^EExFE&3bCwI*5d4wkZpCZ z#Td*@aXNQ%wZ)>5(BT2rC>7a{9^9omp!^ZHzP2tgM8o)rPH0M1gpleo^S$QoOfF@*J!u#MH?Ld_jccgPycvKRWdPz<^BIK8!`*2T4_c+wSMc?Q|xIZ&|x&*+hG1>SI8vhL(&Y+|;A z)8sM8zVt{7Va3es*Cc4py9OIJVb-{XOLD{XF)yY-YbKdiw^ZwC!&hvbq^E~Hsp68F}JU1PQR#M`7#Q^}2B3PR{ z2^9a+MTG^i)GugEAgZ3$PWAv0p#cE&H~`oZl;|@65Q+kTIWhoXGXVe|nB8>hxS%0S zv9&S>_&@DI3o8u(pppc0Q_|JZg)9eOHD{$~CIdwyq$a8QH5vPgd5X=(oe+3KV>}H- zl5aXIFV0b(&@PWhU)g0|czZAw{{Bv^qYPS821!Z!;&+M@5#-?GU{iIGNwau$@=t*ih)Wl?(~7!4 z@8W&WcIOtepp*7J5~GZB)w60uJo-L}(z#PF?JHJ7wc}06tzBjeP|En~ip2IlGv0bI zFU%gta{R*J(Lf%mU`d5*6NF8vdJf(Rvr;0TiuH#~GR|SuEc>^r2i&w37t$P7g(Tiy zB~Gv;5W_3m*0~;Y4V6g~$7GyW;#>LhOvT4oQ?}9RGSfj#(J_8+bL-PfXWSO}Tc`c^ z$nI!<910!gmAy<*HeNCr26)c>N;%x|Lu@BHC*||guW!CCEBNKk$+|S&t*J>6tPe@0 zL`J_UJFrOwwepuGje|cw&5%td;t@LUOQdJ!7{-s?tc;!RcXJ=z{*e5!ziNcJ)izv7(``T1|VqbJ6A4Y~%?Nt$# zow}wQwZ|=TK_+FAN_T6DNIuw8Kx_O4E!X8PEcMoO_bI0yEgTVBK}*@B*FP*(@0t$o z_J4Ij67gwW%5S_yEh}-ccyA#0%E9IuKny)3ADVK0w~?^EExFE&3bCwI*5d4wkZpCZ z#Td*@aXNQ%wZ)>5(BT2rC>7a{9^9omp!^ZHzP2tgM8o)rPH0M1gpleo^S$QoOfF@*J!u#MH?Ld_jccgPycvKRWdPz<^BIK8!`*2T4_c+wSMc?Q|xIZ&|x&*+hG1>SI8vhL(&Y+|;A z)8sM8zVt{7Va3es*Cc4py9OIJVb-{XOLD{XF)","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":"8d4ff1e4-2b3e-4941-9f87-09e35ceed7f6","path":"sprites/s_node_bar_graph/s_node_bar_graph.yy",},},},"Disabled":false,"id":"0710ab5f-30d8-4b14-bf95-d97bd8a35d92","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_image_animation/s_node_image_animation.yy b/sprites/s_node_image_animation/s_node_image_animation.yy index 8eb68f602..9d2836ec3 100644 --- a/sprites/s_node_image_animation/s_node_image_animation.yy +++ b/sprites/s_node_image_animation/s_node_image_animation.yy @@ -57,7 +57,7 @@ {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"f9d466c6-71fe-41c4-ab65-565b2296855b","path":"sprites/s_node_image_animation/s_node_image_animation.yy",},},},"Disabled":false,"id":"a4a431d9-2d90-4de5-b413-a9897dbdeeaa","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "volume": 1.0, "xorigin": 32, "yorigin": 32, diff --git a/sprites/s_node_wav_file_read/ed7117f7-7897-476a-acf0-d7b1d10f562f.png b/sprites/s_node_wav_file_read/ed7117f7-7897-476a-acf0-d7b1d10f562f.png new file mode 100644 index 0000000000000000000000000000000000000000..04d6ec6417beb9cbd81e0ae7bb9a229111201d6d GIT binary patch literal 1670 zcmZ{ke>f9(9LK-2nRrZX%n{DAQ*?gJgfo+2Y!cHVE_Z&6m6cy*x=fc5`4RG5GM6Hy zNi|w$d(_7%0d53jkLL-Ol>mH}dbRBU zQDeXvffO>>{HLx<>n{PIoe@Cx4m~}lsG`x#C?@$eyO zEv{~(V=oi=jbA<7l~91bVdTO!x<4I8^&nW)M9K$wj#YxD$D_-KAz~z!mgE9-hoFYl z_7kI1Cw?J`=q#}ecIpj2`(<<@*5AJY4UEnZ+Rh}GMAvv8f063Dn{k1tQon*R*mcWd z7kx~lm)%-I!ObI8c&ud8mT9 zs;&&3O8;VYY+%$gYHPKQB=bY`aBoI{pK3jMZu6*lf5J;?N6y@JkwtLcxo1`~j}E)( z{X-%9^PesPxqhHw7mx~4$GUg2#`Q_vxAKGN?WSBvm)+=~?>LMks=IXo-pT9Ic;dRi&k&^7Q10*m zh*!PM_RGhM-?VF!#(tRSVUD{6D2;)ws%6krM=rpU^HLoskqtTL7MZH19^Jsd*w2Ui zu$aQM*V)rp+B_Vv@+DuZWR9g4q2fqjl3&4$LA^DsZMOcl7uNTi&a!mVdl=5Ky`YBR z7s99U)8&uv6}wOAVP1H3KBl-eNCa7S8z~|mT1q@`$MzLD)uk(2 zw<#^viGC+He9uNixAd%%@7cXq{<5dyQx{XVFg7Uoz~NN>{CyS8tLkP;ljE^&gk0d8 zWtM+4ty`C$b9<%toz2pR3X`ADO2>=6dKE>lK?uoiM^IoJ=kjP?2LEXJAu|W8r2W#O z?l%(#1HZ-?3(H|AEnQvr%GRaU@TPB%=S_W0zAa6cS;~>D1!Egq<>vI~m+RF?%Vv?V z>(YFU*@J${^*WzVt?+2%?0|pKzCGLY+N&d%zQ3S?kbKUBPVtj0%4Wl8KY4fuH6<9Y zA%aShi%b7p4UdK^Fmi`grqo{7t5*lo8Di|jJf%ecK0oi7UKZrQ^P9{($O(5NmR@|? ziUVBr1H4)k-X&Z-F}vWfM~OjC?!-O(5t|qhE78BTD7>O?fN<(q){Zlj4-ALRTy=UF zs|AGZUURUjodInR%n-xRB zQCXjJ^9$d*u=UaXcMZt<3U2j1_vYA`vAb`4Ob+pvWa_(p{AN<{9 literal 0 HcmV?d00001 diff --git a/sprites/s_node_wav_file_read/layers/ed7117f7-7897-476a-acf0-d7b1d10f562f/d0ffea8e-e51f-4415-b383-c42802705804.png b/sprites/s_node_wav_file_read/layers/ed7117f7-7897-476a-acf0-d7b1d10f562f/d0ffea8e-e51f-4415-b383-c42802705804.png new file mode 100644 index 0000000000000000000000000000000000000000..04d6ec6417beb9cbd81e0ae7bb9a229111201d6d GIT binary patch literal 1670 zcmZ{ke>f9(9LK-2nRrZX%n{DAQ*?gJgfo+2Y!cHVE_Z&6m6cy*x=fc5`4RG5GM6Hy zNi|w$d(_7%0d53jkLL-Ol>mH}dbRBU zQDeXvffO>>{HLx<>n{PIoe@Cx4m~}lsG`x#C?@$eyO zEv{~(V=oi=jbA<7l~91bVdTO!x<4I8^&nW)M9K$wj#YxD$D_-KAz~z!mgE9-hoFYl z_7kI1Cw?J`=q#}ecIpj2`(<<@*5AJY4UEnZ+Rh}GMAvv8f063Dn{k1tQon*R*mcWd z7kx~lm)%-I!ObI8c&ud8mT9 zs;&&3O8;VYY+%$gYHPKQB=bY`aBoI{pK3jMZu6*lf5J;?N6y@JkwtLcxo1`~j}E)( z{X-%9^PesPxqhHw7mx~4$GUg2#`Q_vxAKGN?WSBvm)+=~?>LMks=IXo-pT9Ic;dRi&k&^7Q10*m zh*!PM_RGhM-?VF!#(tRSVUD{6D2;)ws%6krM=rpU^HLoskqtTL7MZH19^Jsd*w2Ui zu$aQM*V)rp+B_Vv@+DuZWR9g4q2fqjl3&4$LA^DsZMOcl7uNTi&a!mVdl=5Ky`YBR z7s99U)8&uv6}wOAVP1H3KBl-eNCa7S8z~|mT1q@`$MzLD)uk(2 zw<#^viGC+He9uNixAd%%@7cXq{<5dyQx{XVFg7Uoz~NN>{CyS8tLkP;ljE^&gk0d8 zWtM+4ty`C$b9<%toz2pR3X`ADO2>=6dKE>lK?uoiM^IoJ=kjP?2LEXJAu|W8r2W#O z?l%(#1HZ-?3(H|AEnQvr%GRaU@TPB%=S_W0zAa6cS;~>D1!Egq<>vI~m+RF?%Vv?V z>(YFU*@J${^*WzVt?+2%?0|pKzCGLY+N&d%zQ3S?kbKUBPVtj0%4Wl8KY4fuH6<9Y zA%aShi%b7p4UdK^Fmi`grqo{7t5*lo8Di|jJf%ecK0oi7UKZrQ^P9{($O(5NmR@|? ziUVBr1H4)k-X&Z-F}vWfM~OjC?!-O(5t|qhE78BTD7>O?fN<(q){Zlj4-ALRTy=UF zs|AGZUURUjodInR%n-xRB zQCXjJ^9$d*u=UaXcMZt<3U2j1_vYA`vAb`4Ob+pvWa_(p{AN<{9 literal 0 HcmV?d00001 diff --git a/sprites/s_node_wav_file_read/s_node_wav_file_read.yy b/sprites/s_node_wav_file_read/s_node_wav_file_read.yy new file mode 100644 index 000000000..071adabb9 --- /dev/null +++ b/sprites/s_node_wav_file_read/s_node_wav_file_read.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_wav_file_read", + "bbox_bottom": 62, + "bbox_left": 0, + "bbox_right": 62, + "bbox_top": 0, + "bboxMode": 0, + "collisionKind": 1, + "collisionTolerance": 0, + "DynamicTexturePage": false, + "edgeFiltering": false, + "For3D": false, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"ed7117f7-7897-476a-acf0-d7b1d10f562f",}, + ], + "gridX": 0, + "gridY": 0, + "height": 64, + "HTile": false, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"d0ffea8e-e51f-4415-b383-c42802705804","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,}, + ], + "nineSlice": null, + "origin": 4, + "parent": { + "name": "input", + "path": "folders/nodes/icons/input.yy", + }, + "preMultiplyAlpha": false, + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_wav_file_read", + "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":"ed7117f7-7897-476a-acf0-d7b1d10f562f","path":"sprites/s_node_wav_file_read/s_node_wav_file_read.yy",},},},"Disabled":false,"id":"97d549db-4e6f-4505-b6dd-aacd000eaa4c","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