diff --git a/PixelComposer.resource_order b/PixelComposer.resource_order index abbe43727..439ae7dce 100644 --- a/PixelComposer.resource_order +++ b/PixelComposer.resource_order @@ -20,8 +20,10 @@ {"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":"async","order":36,"path":"folders/functions/async.yy",}, {"name":"audio","order":35,"path":"folders/functions/audio.yy",}, {"name":"bones","order":18,"path":"folders/functions/bones.yy",}, + {"name":"buffer","order":37,"path":"folders/functions/buffer.yy",}, {"name":"compat","order":13,"path":"folders/functions/compat.yy",}, {"name":"control","order":22,"path":"folders/functions/control.yy",}, {"name":"curve","order":12,"path":"folders/functions/curve.yy",}, @@ -79,7 +81,10 @@ {"name":"warps","order":2,"path":"folders/nodes/data/filter/warps.yy",}, {"name":"fluidSim","order":19,"path":"folders/nodes/data/fluidSim.yy",}, {"name":"generator","order":4,"path":"folders/nodes/data/generator.yy",}, + {"name":"noise","order":30,"path":"folders/nodes/data/generator/noise.yy",}, + {"name":"pattern","order":31,"path":"folders/nodes/data/generator/pattern.yy",}, {"name":"group","order":6,"path":"folders/nodes/data/group.yy",}, + {"name":"network","order":16,"path":"folders/nodes/data/IO/network.yy",}, {"name":"iterate","order":10,"path":"folders/nodes/data/iterate.yy",}, {"name":"for each","order":1,"path":"folders/nodes/data/iterate/for each.yy",}, {"name":"for filter","order":3,"path":"folders/nodes/data/iterate/for filter.yy",}, @@ -152,6 +157,7 @@ {"name":"gameframe","order":2,"path":"folders/sprites/gameframe.yy",}, {"name":"misc","order":3,"path":"folders/sprites/misc.yy",}, {"name":"widgets","order":5,"path":"folders/widgets.yy",}, + {"name":"surface","order":10,"path":"folders/nodes/data/value/surface.yy",}, ], "ResourceOrderSettings": [ {"name":"s_node_corner","order":16,"path":"sprites/s_node_corner/s_node_corner.yy",}, @@ -170,7 +176,7 @@ {"name":"buffer_function","order":3,"path":"scripts/buffer_function/buffer_function.yy",}, {"name":"node_pixel_sort","order":12,"path":"scripts/node_pixel_sort/node_pixel_sort.yy",}, {"name":"sh_dither","order":28,"path":"shaders/sh_dither/sh_dither.yy",}, - {"name":"s_node_text_file_read","order":16,"path":"sprites/s_node_text_file_read/s_node_text_file_read.yy",}, + {"name":"s_node_text_file_read","order":13,"path":"sprites/s_node_text_file_read/s_node_text_file_read.yy",}, {"name":"s_node_text_trim","order":7,"path":"sprites/s_node_text_trim/s_node_text_trim.yy",}, {"name":"sh_noise_grid_hex","order":24,"path":"shaders/sh_noise_grid_hex/sh_noise_grid_hex.yy",}, {"name":"node_3d_obj","order":8,"path":"scripts/node_3d_obj/node_3d_obj.yy",}, @@ -188,7 +194,7 @@ {"name":"node_blur_radial","order":7,"path":"scripts/node_blur_radial/node_blur_radial.yy",}, {"name":"node_2d_light","order":1,"path":"scripts/node_2d_light/node_2d_light.yy",}, {"name":"node_rigid_activation","order":7,"path":"scripts/node_rigid_activation/node_rigid_activation.yy",}, - {"name":"s_node_image_gif","order":7,"path":"sprites/s_node_image_gif/s_node_image_gif.yy",}, + {"name":"s_node_image_gif","order":4,"path":"sprites/s_node_image_gif/s_node_image_gif.yy",}, {"name":"node_VFX_effect_wind","order":5,"path":"scripts/node_VFX_effect_wind/node_VFX_effect_wind.yy",}, {"name":"s_node_tunnel_out","order":22,"path":"sprites/s_node_tunnel_out/s_node_tunnel_out.yy",}, {"name":"__background_set_element","order":3,"path":"scripts/__background_set_element/__background_set_element.yy",}, @@ -205,6 +211,7 @@ {"name":"node_array","order":8,"path":"scripts/node_array/node_array.yy",}, {"name":"discordBridge","order":10,"path":"extensions/discordBridge/discordBridge.yy",}, {"name":"pack_corner","order":3,"path":"scripts/pack_corner/pack_corner.yy",}, + {"name":"s_node_websocket","order":18,"path":"sprites/s_node_websocket/s_node_websocket.yy",}, {"name":"sh_colorize","order":9,"path":"shaders/sh_colorize/sh_colorize.yy",}, {"name":"node_string","order":13,"path":"scripts/node_string/node_string.yy",}, {"name":"cross_product","order":3,"path":"scripts/cross_product/cross_product.yy",}, @@ -226,6 +233,7 @@ {"name":"s_node_path_sample","order":3,"path":"sprites/s_node_path_sample/s_node_path_sample.yy",}, {"name":"s_node_colorize","order":15,"path":"sprites/s_node_colorize/s_node_colorize.yy",}, {"name":"s_node_sepearte_shape","order":35,"path":"sprites/s_node_sepearte_shape/s_node_sepearte_shape.yy",}, + {"name":"s_node_websocket_send","order":21,"path":"sprites/s_node_websocket_send/s_node_websocket_send.yy",}, {"name":"s_node_text_join","order":5,"path":"sprites/s_node_text_join/s_node_text_join.yy",}, {"name":"s_node_polar","order":5,"path":"sprites/s_node_polar/s_node_polar.yy",}, {"name":"complex_function","order":15,"path":"scripts/complex_function/complex_function.yy",}, @@ -286,10 +294,10 @@ {"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":23,"path":"scripts/node_noise_grid_tri/node_noise_grid_tri.yy",}, + {"name":"node_noise_grid_tri","order":6,"path":"scripts/node_noise_grid_tri/node_noise_grid_tri.yy",}, {"name":"node_threshold","order":9,"path":"scripts/node_threshold/node_threshold.yy",}, {"name":"sh_cell_noise_edge","order":5,"path":"shaders/sh_cell_noise_edge/sh_cell_noise_edge.yy",}, - {"name":"node_stripe","order":11,"path":"scripts/node_stripe/node_stripe.yy",}, + {"name":"node_stripe","order":4,"path":"scripts/node_stripe/node_stripe.yy",}, {"name":"sh_texture_atlas","order":39,"path":"shaders/sh_texture_atlas/sh_texture_atlas.yy",}, {"name":"s_node_fluidSim_domain","order":6,"path":"sprites/s_node_fluidSim_domain/s_node_fluidSim_domain.yy",}, {"name":"s_node_displace","order":20,"path":"sprites/s_node_displace/s_node_displace.yy",}, @@ -343,7 +351,7 @@ {"name":"node_VFX_group","order":4,"path":"scripts/node_VFX_group/node_VFX_group.yy",}, {"name":"s_node_vfx_attract","order":8,"path":"sprites/s_node_vfx_attract/s_node_vfx_attract.yy",}, {"name":"s_node_pixel_cloud","order":32,"path":"sprites/s_node_pixel_cloud/s_node_pixel_cloud.yy",}, - {"name":"node_noise_grid","order":8,"path":"scripts/node_noise_grid/node_noise_grid.yy",}, + {"name":"node_noise_grid","order":4,"path":"scripts/node_noise_grid/node_noise_grid.yy",}, {"name":"node_palette_sort","order":9,"path":"scripts/node_palette_sort/node_palette_sort.yy",}, {"name":"node_path_wave","order":7,"path":"scripts/node_path_wave/node_path_wave.yy",}, {"name":"s_node_HSV","order":46,"path":"sprites/s_node_HSV/s_node_HSV.yy",}, @@ -372,7 +380,7 @@ {"name":"sh_channel_G_grey","order":8,"path":"shaders/sh_channel_G_grey/sh_channel_G_grey.yy",}, {"name":"s_node_vec4","order":9,"path":"sprites/s_node_vec4/s_node_vec4.yy",}, {"name":"buttonGroup","order":5,"path":"scripts/buttonGroup/buttonGroup.yy",}, - {"name":"s_node_image_sheet","order":10,"path":"sprites/s_node_image_sheet/s_node_image_sheet.yy",}, + {"name":"s_node_image_sheet","order":7,"path":"sprites/s_node_image_sheet/s_node_image_sheet.yy",}, {"name":"locale_data","order":1,"path":"scripts/locale_data/locale_data.yy",}, {"name":"o_dialog_scrollbox","order":2,"path":"objects/o_dialog_scrollbox/o_dialog_scrollbox.yy",}, {"name":"s_node_palette","order":10,"path":"sprites/s_node_palette/s_node_palette.yy",}, @@ -460,7 +468,7 @@ {"name":"json_minify","order":6,"path":"scripts/json_minify/json_minify.yy",}, {"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_zigzag","order":5,"path":"scripts/node_zigzag/node_zigzag.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",}, @@ -471,7 +479,6 @@ {"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",}, {"name":"node_strand_gravity","order":4,"path":"scripts/node_strand_gravity/node_strand_gravity.yy",}, {"name":"load_palette","order":3,"path":"scripts/load_palette/load_palette.yy",}, {"name":"sh_alpha_cutoff","order":21,"path":"shaders/sh_alpha_cutoff/sh_alpha_cutoff.yy",}, @@ -506,7 +513,7 @@ {"name":"fd_rectangle_set_pressure_size","order":11,"path":"scripts/fd_rectangle_set_pressure_size/fd_rectangle_set_pressure_size.yy",}, {"name":"node_color_data","order":6,"path":"scripts/node_color_data/node_color_data.yy",}, {"name":"node_array_shift","order":24,"path":"scripts/node_array_shift/node_array_shift.yy",}, - {"name":"node_noise_ani","order":5,"path":"scripts/node_noise_ani/node_noise_ani.yy",}, + {"name":"node_noise_ani","order":1,"path":"scripts/node_noise_ani/node_noise_ani.yy",}, {"name":"s_node_transform","order":8,"path":"sprites/s_node_transform/s_node_transform.yy",}, {"name":"node_canvas","order":5,"path":"scripts/node_canvas/node_canvas.yy",}, {"name":"s_node_path_array","order":11,"path":"sprites/s_node_path_array/s_node_path_array.yy",}, @@ -562,7 +569,6 @@ {"name":"s_node_array_insert","order":4,"path":"sprites/s_node_array_insert/s_node_array_insert.yy",}, {"name":"addon_lua","order":1,"path":"scripts/addon_lua/addon_lua.yy",}, {"name":"nodeValue_drawer","order":1,"path":"scripts/nodeValue_drawer/nodeValue_drawer.yy",}, - {"name":"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",}, @@ -575,9 +581,9 @@ {"name":"notification_system","order":7,"path":"scripts/notification_system/notification_system.yy",}, {"name":"s_node_audio_trim","order":3,"path":"sprites/s_node_audio_trim/s_node_audio_trim.yy",}, {"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":"s_node_image_copy","order":3,"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":19,"path":"scripts/node_grid_tri/node_grid_tri.yy",}, + {"name":"node_grid_tri","order":3,"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",}, @@ -605,7 +611,8 @@ {"name":"spr_gameframe_pixel","order":3,"path":"sprites/spr_gameframe_pixel/spr_gameframe_pixel.yy",}, {"name":"s_node_radial","order":53,"path":"sprites/s_node_radial/s_node_radial.yy",}, {"name":"s_node_grid","order":3,"path":"sprites/s_node_grid/s_node_grid.yy",}, - {"name":"node_perlin","order":1,"path":"scripts/node_perlin/node_perlin.yy",}, + {"name":"s_node_animation_control","order":31,"path":"sprites/s_node_animation_control/s_node_animation_control.yy",}, + {"name":"node_perlin","order":8,"path":"scripts/node_perlin/node_perlin.yy",}, {"name":"node_blur_simple","order":4,"path":"scripts/node_blur_simple/node_blur_simple.yy",}, {"name":"node_feedback_input","order":1,"path":"scripts/node_feedback_input/node_feedback_input.yy",}, {"name":"s_node_base_conversion","order":10,"path":"sprites/s_node_base_conversion/s_node_base_conversion.yy",}, @@ -621,7 +628,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":21,"path":"scripts/node_noise_simplex/node_noise_simplex.yy",}, + {"name":"node_noise_simplex","order":7,"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",}, @@ -629,6 +636,7 @@ {"name":"sh_channel_R_grey","order":7,"path":"shaders/sh_channel_R_grey/sh_channel_R_grey.yy",}, {"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":"node_surface_from_color","order":1,"path":"scripts/node_surface_from_color/node_surface_from_color.yy",}, {"name":"panel_animation","order":1,"path":"scripts/panel_animation/panel_animation.yy",}, {"name":"node_surface_replace","order":27,"path":"scripts/node_surface_replace/node_surface_replace.yy",}, {"name":"node_strand_create","order":1,"path":"scripts/node_strand_create/node_strand_create.yy",}, @@ -637,7 +645,7 @@ {"name":"s_node_array_remove","order":7,"path":"sprites/s_node_array_remove/s_node_array_remove.yy",}, {"name":"s_node_zigzag","order":18,"path":"sprites/s_node_zigzag/s_node_zigzag.yy",}, {"name":"s_key_display_mouse","order":1,"path":"sprites/s_key_display_mouse/s_key_display_mouse.yy",}, - {"name":"s_node_csv_file_write","order":11,"path":"sprites/s_node_csv_file_write/s_node_csv_file_write.yy",}, + {"name":"s_node_csv_file_write","order":8,"path":"sprites/s_node_csv_file_write/s_node_csv_file_write.yy",}, {"name":"sh_glow","order":34,"path":"shaders/sh_glow/sh_glow.yy",}, {"name":"sh_clean_shape","order":37,"path":"shaders/sh_clean_shape/sh_clean_shape.yy",}, {"name":"fd_rectangle_update","order":20,"path":"scripts/fd_rectangle_update/fd_rectangle_update.yy",}, @@ -654,7 +662,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":20,"path":"scripts/node_grid_hex/node_grid_hex.yy",}, + {"name":"node_grid_hex","order":2,"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",}, @@ -663,7 +671,7 @@ {"name":"sh_bevel","order":3,"path":"shaders/sh_bevel/sh_bevel.yy",}, {"name":"sh_blend_overlay","order":15,"path":"shaders/sh_blend_overlay/sh_blend_overlay.yy",}, {"name":"node_sprite_stack","order":4,"path":"scripts/node_sprite_stack/node_sprite_stack.yy",}, - {"name":"s_node_json_file_read","order":14,"path":"sprites/s_node_json_file_read/s_node_json_file_read.yy",}, + {"name":"s_node_json_file_read","order":11,"path":"sprites/s_node_json_file_read/s_node_json_file_read.yy",}, {"name":"__strandSim","order":2,"path":"scripts/__strandSim/__strandSim.yy",}, {"name":"sh_shape","order":3,"path":"shaders/sh_shape/sh_shape.yy",}, {"name":"draw_line_width2","order":2,"path":"scripts/draw_line_width2/draw_line_width2.yy",}, @@ -675,7 +683,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":22,"path":"scripts/node_noise_grid_hex/node_noise_grid_hex.yy",}, + {"name":"node_noise_grid_hex","order":5,"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",}, @@ -685,6 +693,7 @@ {"name":"node_particle","order":14,"path":"scripts/node_particle/node_particle.yy",}, {"name":"histogram_drawer","order":2,"path":"scripts/histogram_drawer/histogram_drawer.yy",}, {"name":"node_array_range","order":12,"path":"scripts/node_array_range/node_array_range.yy",}, + {"name":"node_animation_control","order":11,"path":"scripts/node_animation_control/node_animation_control.yy",}, {"name":"s_node_tunnel_in","order":21,"path":"sprites/s_node_tunnel_in/s_node_tunnel_in.yy",}, {"name":"o_dialog_graph_grid","order":3,"path":"objects/o_dialog_graph_grid/o_dialog_graph_grid.yy",}, {"name":"append_function","order":1,"path":"scripts/append_function/append_function.yy",}, @@ -695,11 +704,11 @@ {"name":"s_icon_64","order":2,"path":"sprites/s_icon_64/s_icon_64.yy",}, {"name":"panel_graph_export_image","order":4,"path":"scripts/panel_graph_export_image/panel_graph_export_image.yy",}, {"name":"s_node_gradient_replace","order":18,"path":"sprites/s_node_gradient_replace/s_node_gradient_replace.yy",}, - {"name":"node_perlin_smear","order":6,"path":"scripts/node_perlin_smear/node_perlin_smear.yy",}, + {"name":"node_perlin_smear","order":9,"path":"scripts/node_perlin_smear/node_perlin_smear.yy",}, {"name":"node_alpha_cutoff","order":10,"path":"scripts/node_alpha_cutoff/node_alpha_cutoff.yy",}, {"name":"sh_channel_R","order":4,"path":"shaders/sh_channel_R/sh_channel_R.yy",}, {"name":"draw_circle_border","order":3,"path":"scripts/draw_circle_border/draw_circle_border.yy",}, - {"name":"s_node_text_file_write","order":15,"path":"sprites/s_node_text_file_write/s_node_text_file_write.yy",}, + {"name":"s_node_text_file_write","order":12,"path":"sprites/s_node_text_file_write/s_node_text_file_write.yy",}, {"name":"sliderRange","order":16,"path":"scripts/sliderRange/sliderRange.yy",}, {"name":"point_rect_overlap","order":2,"path":"scripts/point_rect_overlap/point_rect_overlap.yy",}, {"name":"s_node_bevel","order":6,"path":"sprites/s_node_bevel/s_node_bevel.yy",}, @@ -733,7 +742,6 @@ {"name":"sh_outline","order":18,"path":"shaders/sh_outline/sh_outline.yy",}, {"name":"s_node_strandSim_break","order":8,"path":"sprites/s_node_strandSim_break/s_node_strandSim_break.yy",}, {"name":"s_node_scatter_point","order":4,"path":"sprites/s_node_scatter_point/s_node_scatter_point.yy",}, - {"name":"node_checkerboard","order":13,"path":"scripts/node_checkerboard/node_checkerboard.yy",}, {"name":"node_gradient_output","order":5,"path":"scripts/node_gradient_output/node_gradient_output.yy",}, {"name":"display_refresh","order":17,"path":"scripts/display_refresh/display_refresh.yy",}, {"name":"panel_workspace","order":6,"path":"scripts/panel_workspace/panel_workspace.yy",}, @@ -800,7 +808,7 @@ {"name":"sh_vertex_pnt_light","order":4,"path":"shaders/sh_vertex_pnt_light/sh_vertex_pnt_light.yy",}, {"name":"surfaceBox","order":22,"path":"scripts/surfaceBox/surfaceBox.yy",}, {"name":"node_gradient_palette","order":11,"path":"scripts/node_gradient_palette/node_gradient_palette.yy",}, - {"name":"s_node_csv_file_read","order":12,"path":"sprites/s_node_csv_file_read/s_node_csv_file_read.yy",}, + {"name":"s_node_csv_file_read","order":9,"path":"sprites/s_node_csv_file_read/s_node_csv_file_read.yy",}, {"name":"node_fluid_domain","order":1,"path":"scripts/node_fluid_domain/node_fluid_domain.yy",}, {"name":"s_node_repeat","order":23,"path":"sprites/s_node_repeat/s_node_repeat.yy",}, {"name":"s_node_array_length","order":5,"path":"sprites/s_node_array_length/s_node_array_length.yy",}, @@ -871,7 +879,7 @@ {"name":"node_path","order":3,"path":"scripts/node_path/node_path.yy",}, {"name":"node_wrap_area","order":10,"path":"scripts/node_wrap_area/node_wrap_area.yy",}, {"name":"sh_seperate_shape_sep","order":3,"path":"shaders/sh_seperate_shape_sep/sh_seperate_shape_sep.yy",}, - {"name":"s_node_image_sequence","order":8,"path":"sprites/s_node_image_sequence/s_node_image_sequence.yy",}, + {"name":"s_node_image_sequence","order":5,"path":"sprites/s_node_image_sequence/s_node_image_sequence.yy",}, {"name":"steam_ugc_project","order":1,"path":"scripts/steam_ugc_project/steam_ugc_project.yy",}, {"name":"sh_fd_visualize_pixel_art_fire_glsl","order":15,"path":"shaders/sh_fd_visualize_pixel_art_fire_glsl/sh_fd_visualize_pixel_art_fire_glsl.yy",}, {"name":"struct_functions","order":4,"path":"scripts/struct_functions/struct_functions.yy",}, @@ -934,6 +942,7 @@ {"name":"o_dialog_output_visibility","order":2,"path":"objects/o_dialog_output_visibility/o_dialog_output_visibility.yy",}, {"name":"node_normal","order":1,"path":"scripts/node_normal/node_normal.yy",}, {"name":"s_node_glow","order":24,"path":"sprites/s_node_glow/s_node_glow.yy",}, + {"name":"s_node_websocket_receive","order":19,"path":"sprites/s_node_websocket_receive/s_node_websocket_receive.yy",}, {"name":"node_gradient_replace","order":12,"path":"scripts/node_gradient_replace/node_gradient_replace.yy",}, {"name":"s_node_vfx_repel","order":6,"path":"sprites/s_node_vfx_repel/s_node_vfx_repel.yy",}, {"name":"fd_rectangle_set_collision_mask_surface","order":2,"path":"scripts/fd_rectangle_set_collision_mask_surface/fd_rectangle_set_collision_mask_surface.yy",}, @@ -980,8 +989,9 @@ {"name":"sh_gradient_points","order":19,"path":"shaders/sh_gradient_points/sh_gradient_points.yy",}, {"name":"s_node_vfx_turb","order":5,"path":"sprites/s_node_vfx_turb/s_node_vfx_turb.yy",}, {"name":"o_dialog_l_system","order":1,"path":"objects/o_dialog_l_system/o_dialog_l_system.yy",}, + {"name":"node_surface_to_color","order":2,"path":"scripts/node_surface_to_color/node_surface_to_color.yy",}, {"name":"sh_shadow_cast_light_sep","order":1,"path":"shaders/sh_shadow_cast_light_sep/sh_shadow_cast_light_sep.yy",}, - {"name":"node_grid","order":16,"path":"scripts/node_grid/node_grid.yy",}, + {"name":"node_grid","order":1,"path":"scripts/node_grid/node_grid.yy",}, {"name":"node_edge_detect","order":8,"path":"scripts/node_edge_detect/node_edge_detect.yy",}, {"name":"node_morph_surface","order":5,"path":"scripts/node_morph_surface/node_morph_surface.yy",}, {"name":"node_tunnel_in","order":6,"path":"scripts/node_tunnel_in/node_tunnel_in.yy",}, @@ -991,6 +1001,7 @@ {"name":"fd_rectangle_enums","order":3,"path":"scripts/fd_rectangle_enums/fd_rectangle_enums.yy",}, {"name":"s_texture_default","order":1,"path":"sprites/s_texture_default/s_texture_default.yy",}, {"name":"directory_object","order":3,"path":"scripts/directory_object/directory_object.yy",}, + {"name":"node_websocket_sender","order":1,"path":"scripts/node_websocket_sender/node_websocket_sender.yy",}, {"name":"fd_rectangle_get_acceleration_b","order":1,"path":"scripts/fd_rectangle_get_acceleration_b/fd_rectangle_get_acceleration_b.yy",}, {"name":"surface_draw_functions","order":7,"path":"scripts/surface_draw_functions/surface_draw_functions.yy",}, {"name":"BBMOD_Matrix","order":2,"path":"scripts/BBMOD_Matrix/BBMOD_Matrix.yy",}, @@ -1057,13 +1068,12 @@ {"name":"sh_grid_tri","order":20,"path":"shaders/sh_grid_tri/sh_grid_tri.yy",}, {"name":"s_node_text","order":1,"path":"sprites/s_node_text/s_node_text.yy",}, {"name":"panel_menu","order":6,"path":"scripts/panel_menu/panel_menu.yy",}, - {"name":"s_node_ase_file","order":18,"path":"sprites/s_node_ase_file/s_node_ase_file.yy",}, + {"name":"s_node_ase_file","order":15,"path":"sprites/s_node_ase_file/s_node_ase_file.yy",}, {"name":"draw_line_round","order":4,"path":"scripts/draw_line_round/draw_line_round.yy",}, {"name":"vectorBox","order":18,"path":"scripts/vectorBox/vectorBox.yy",}, {"name":"sh_blend_normal_dim","order":10,"path":"shaders/sh_blend_normal_dim/sh_blend_normal_dim.yy",}, {"name":"node_skew","order":11,"path":"scripts/node_skew/node_skew.yy",}, {"name":"s_node_dot_product","order":13,"path":"sprites/s_node_dot_product/s_node_dot_product.yy",}, - {"name":"s_node_canvas","order":3,"path":"sprites/s_node_canvas/s_node_canvas.yy",}, {"name":"sh_downsample","order":1,"path":"shaders/sh_downsample/sh_downsample.yy",}, {"name":"sh_remove_black","order":33,"path":"shaders/sh_remove_black/sh_remove_black.yy",}, {"name":"path_parser","order":3,"path":"scripts/path_parser/path_parser.yy",}, @@ -1076,7 +1086,7 @@ {"name":"s_node_struct_get","order":1,"path":"sprites/s_node_struct_get/s_node_struct_get.yy",}, {"name":"s_node_vfx_vortex","order":4,"path":"sprites/s_node_vfx_vortex/s_node_vfx_vortex.yy",}, {"name":"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":"s_node_image_sequence_to_anim","order":6,"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",}, @@ -1119,19 +1129,19 @@ {"name":"fd_rectangle_replace_velocity","order":16,"path":"scripts/fd_rectangle_replace_velocity/fd_rectangle_replace_velocity.yy",}, {"name":"node_VFX_effector","order":6,"path":"scripts/node_VFX_effector/node_VFX_effector.yy",}, {"name":"node_path_shift","order":5,"path":"scripts/node_path_shift/node_path_shift.yy",}, - {"name":"s_node_wav_file_write","order":20,"path":"sprites/s_node_wav_file_write/s_node_wav_file_write.yy",}, + {"name":"s_node_wav_file_write","order":17,"path":"sprites/s_node_wav_file_write/s_node_wav_file_write.yy",}, {"name":"s_node_3d_cylinder","order":1,"path":"sprites/s_node_3d_cylinder/s_node_3d_cylinder.yy",}, {"name":"node_strand_break","order":9,"path":"scripts/node_strand_break/node_strand_break.yy",}, {"name":"s_node_vec_split","order":6,"path":"sprites/s_node_vec_split/s_node_vec_split.yy",}, {"name":"s_node_regex_replace","order":10,"path":"sprites/s_node_regex_replace/s_node_regex_replace.yy",}, {"name":"paddingBox","order":9,"path":"scripts/paddingBox/paddingBox.yy",}, {"name":"fd_rectangle_set_visualization_shader","order":18,"path":"scripts/fd_rectangle_set_visualization_shader/fd_rectangle_set_visualization_shader.yy",}, - {"name":"s_node_ase_layer","order":17,"path":"sprites/s_node_ase_layer/s_node_ase_layer.yy",}, + {"name":"s_node_ase_layer","order":14,"path":"sprites/s_node_ase_layer/s_node_ase_layer.yy",}, {"name":"_f_p1","order":1,"path":"fonts/_f_p1/_f_p1.yy",}, {"name":"tuple_functions","order":5,"path":"scripts/tuple_functions/tuple_functions.yy",}, {"name":"sh_blur_simple","order":6,"path":"shaders/sh_blur_simple/sh_blur_simple.yy",}, {"name":"sh_blend_difference","order":51,"path":"shaders/sh_blend_difference/sh_blend_difference.yy",}, - {"name":"s_node_image_animation","order":5,"path":"sprites/s_node_image_animation/s_node_image_animation.yy",}, + {"name":"s_node_image_animation","order":2,"path":"sprites/s_node_image_animation/s_node_image_animation.yy",}, {"name":"node_string_merge","order":21,"path":"scripts/node_string_merge/node_string_merge.yy",}, {"name":"s_node_palette_replace","order":1,"path":"sprites/s_node_palette_replace/s_node_palette_replace.yy",}, {"name":"bin_function","order":11,"path":"scripts/bin_function/bin_function.yy",}, @@ -1160,7 +1170,7 @@ {"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",}, + {"name":"s_node_image","order":1,"path":"sprites/s_node_image/s_node_image.yy",}, {"name":"__node_value_processor","order":7,"path":"scripts/__node_value_processor/__node_value_processor.yy",}, {"name":"s_node_group_input","order":16,"path":"sprites/s_node_group_input/s_node_group_input.yy",}, {"name":"sample_projects","order":6,"path":"scripts/sample_projects/sample_projects.yy",}, @@ -1198,7 +1208,7 @@ {"name":"preferences","order":5,"path":"scripts/preferences/preferences.yy",}, {"name":"sh_fd_replace_material_advanced_glsl","order":11,"path":"shaders/sh_fd_replace_material_advanced_glsl/sh_fd_replace_material_advanced_glsl.yy",}, {"name":"sh_solid","order":15,"path":"shaders/sh_solid/sh_solid.yy",}, - {"name":"s_node_json_file_write","order":13,"path":"sprites/s_node_json_file_write/s_node_json_file_write.yy",}, + {"name":"s_node_json_file_write","order":10,"path":"sprites/s_node_json_file_write/s_node_json_file_write.yy",}, {"name":"fd_rectangle_get_material_time_step","order":13,"path":"scripts/fd_rectangle_get_material_time_step/fd_rectangle_get_material_time_step.yy",}, {"name":"node_pack_sprites","order":4,"path":"scripts/node_pack_sprites/node_pack_sprites.yy",}, {"name":"font_data","order":10,"path":"scripts/font_data/font_data.yy",}, @@ -1207,7 +1217,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":28,"path":"scripts/node_noise_fbm/node_noise_fbm.yy",}, + {"name":"node_noise_fbm","order":3,"path":"scripts/node_noise_fbm/node_noise_fbm.yy",}, {"name":"sh_channel_V","order":6,"path":"shaders/sh_channel_V/sh_channel_V.yy",}, {"name":"__shapes","order":3,"path":"scripts/__shapes/__shapes.yy",}, {"name":"node_alpha_to_grey","order":3,"path":"scripts/node_alpha_to_grey/node_alpha_to_grey.yy",}, @@ -1233,7 +1243,7 @@ {"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":"s_node_wav_file_read","order":16,"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":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",}, diff --git a/PixelComposer.yyp b/PixelComposer.yyp index f81c5c3a4..25fcdafba 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -41,8 +41,10 @@ {"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":"async","folderPath":"folders/functions/async.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":"buffer","folderPath":"folders/functions/buffer.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",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"curve","folderPath":"folders/functions/curve.yy",}, @@ -103,8 +105,11 @@ {"resourceType":"GMFolder","resourceVersion":"1.0","name":"warps","folderPath":"folders/nodes/data/filter/warps.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"fluidSim","folderPath":"folders/nodes/data/fluidSim.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"generator","folderPath":"folders/nodes/data/generator.yy",}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"noise","folderPath":"folders/nodes/data/generator/noise.yy",}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"pattern","folderPath":"folders/nodes/data/generator/pattern.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"group","folderPath":"folders/nodes/data/group.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"IO","folderPath":"folders/nodes/data/IO.yy",}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"network","folderPath":"folders/nodes/data/IO/network.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"iterate","folderPath":"folders/nodes/data/iterate.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"for each","folderPath":"folders/nodes/data/iterate/for each.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"for filter","folderPath":"folders/nodes/data/iterate/for filter.yy",}, @@ -188,6 +193,7 @@ {"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":"surface","folderPath":"folders/nodes/data/value/surface.yy",}, ], "IncludedFiles": [ {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"ApolloHelp.html","ConfigValues":{"Itch":{"CopyToMask":"0",},},"CopyToMask":-1,"filePath":"datafiles",}, @@ -632,6 +638,7 @@ {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_view_group.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_view_mode_strip2.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_visible.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_websocket.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_wiki.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_window_exit.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_window_fullscreen.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, @@ -666,6 +673,10 @@ {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_icon_32.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/meta",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_icon_64.ico","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/meta",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_icon_64.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/meta",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphics x2.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/node/assets",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_websocket_receive.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/node/assets",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_websocket_send.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/node/assets",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_websocket.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/node/assets",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphic x2.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/node",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphic.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/node",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_node_active.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/node",}, @@ -927,6 +938,7 @@ {"id":{"name":"node_array","path":"scripts/node_array/node_array.yy",},}, {"id":{"name":"discordBridge","path":"extensions/discordBridge/discordBridge.yy",},}, {"id":{"name":"pack_corner","path":"scripts/pack_corner/pack_corner.yy",},}, + {"id":{"name":"s_node_websocket","path":"sprites/s_node_websocket/s_node_websocket.yy",},}, {"id":{"name":"sh_colorize","path":"shaders/sh_colorize/sh_colorize.yy",},}, {"id":{"name":"node_string","path":"scripts/node_string/node_string.yy",},}, {"id":{"name":"cross_product","path":"scripts/cross_product/cross_product.yy",},}, @@ -951,6 +963,7 @@ {"id":{"name":"s_node_colorize","path":"sprites/s_node_colorize/s_node_colorize.yy",},}, {"id":{"name":"panel_preview","path":"scripts/panel_preview/panel_preview.yy",},}, {"id":{"name":"s_node_sepearte_shape","path":"sprites/s_node_sepearte_shape/s_node_sepearte_shape.yy",},}, + {"id":{"name":"s_node_websocket_send","path":"sprites/s_node_websocket_send/s_node_websocket_send.yy",},}, {"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",},}, @@ -1047,6 +1060,7 @@ {"id":{"name":"json_functions","path":"scripts/json_functions/json_functions.yy",},}, {"id":{"name":"s_node_3d_displace","path":"sprites/s_node_3d_displace/s_node_3d_displace.yy",},}, {"id":{"name":"event_recorder","path":"scripts/event_recorder/event_recorder.yy",},}, + {"id":{"name":"node_websocket_receiver","path":"scripts/node_websocket_receiver/node_websocket_receiver.yy",},}, {"id":{"name":"s_node_path_l_system","path":"sprites/s_node_path_l_system/s_node_path_l_system.yy",},}, {"id":{"name":"s_node_noise_cell","path":"sprites/s_node_noise_cell/s_node_noise_cell.yy",},}, {"id":{"name":"s_node_atlas_set","path":"sprites/s_node_atlas_set/s_node_atlas_set.yy",},}, @@ -1386,6 +1400,7 @@ {"id":{"name":"s_node_radial","path":"sprites/s_node_radial/s_node_radial.yy",},}, {"id":{"name":"s_node_grid","path":"sprites/s_node_grid/s_node_grid.yy",},}, {"id":{"name":"node_trigger","path":"scripts/node_trigger/node_trigger.yy",},}, + {"id":{"name":"s_node_animation_control","path":"sprites/s_node_animation_control/s_node_animation_control.yy",},}, {"id":{"name":"node_align_functions","path":"scripts/node_align_functions/node_align_functions.yy",},}, {"id":{"name":"node_perlin","path":"scripts/node_perlin/node_perlin.yy",},}, {"id":{"name":"node_blur_simple","path":"scripts/node_blur_simple/node_blur_simple.yy",},}, @@ -1415,6 +1430,7 @@ {"id":{"name":"BBMOD_Vec4","path":"scripts/BBMOD_Vec4/BBMOD_Vec4.yy",},}, {"id":{"name":"o_dialog_file_name","path":"objects/o_dialog_file_name/o_dialog_file_name.yy",},}, {"id":{"name":"node_audio_window","path":"scripts/node_audio_window/node_audio_window.yy",},}, + {"id":{"name":"node_surface_from_color","path":"scripts/node_surface_from_color/node_surface_from_color.yy",},}, {"id":{"name":"panel_animation","path":"scripts/panel_animation/panel_animation.yy",},}, {"id":{"name":"node_surface_replace","path":"scripts/node_surface_replace/node_surface_replace.yy",},}, {"id":{"name":"node_strand_create","path":"scripts/node_strand_create/node_strand_create.yy",},}, @@ -1476,6 +1492,7 @@ {"id":{"name":"node_particle","path":"scripts/node_particle/node_particle.yy",},}, {"id":{"name":"histogram_drawer","path":"scripts/histogram_drawer/histogram_drawer.yy",},}, {"id":{"name":"node_array_range","path":"scripts/node_array_range/node_array_range.yy",},}, + {"id":{"name":"node_animation_control","path":"scripts/node_animation_control/node_animation_control.yy",},}, {"id":{"name":"s_node_tunnel_in","path":"sprites/s_node_tunnel_in/s_node_tunnel_in.yy",},}, {"id":{"name":"o_dialog_graph_grid","path":"objects/o_dialog_graph_grid/o_dialog_graph_grid.yy",},}, {"id":{"name":"append_function","path":"scripts/append_function/append_function.yy",},}, @@ -1742,6 +1759,7 @@ {"id":{"name":"s_menu_transparent","path":"sprites/s_menu_transparent/s_menu_transparent.yy",},}, {"id":{"name":"draw_tooltip","path":"scripts/draw_tooltip/draw_tooltip.yy",},}, {"id":{"name":"sh_palette_replace","path":"shaders/sh_palette_replace/sh_palette_replace.yy",},}, + {"id":{"name":"buffer_functions","path":"scripts/buffer_functions/buffer_functions.yy",},}, {"id":{"name":"key_press","path":"scripts/key_press/key_press.yy",},}, {"id":{"name":"sh_mirror","path":"shaders/sh_mirror/sh_mirror.yy",},}, {"id":{"name":"sh_cell_noise_random","path":"shaders/sh_cell_noise_random/sh_cell_noise_random.yy",},}, @@ -1752,6 +1770,7 @@ {"id":{"name":"o_dialog_output_visibility","path":"objects/o_dialog_output_visibility/o_dialog_output_visibility.yy",},}, {"id":{"name":"node_normal","path":"scripts/node_normal/node_normal.yy",},}, {"id":{"name":"s_node_glow","path":"sprites/s_node_glow/s_node_glow.yy",},}, + {"id":{"name":"s_node_websocket_receive","path":"sprites/s_node_websocket_receive/s_node_websocket_receive.yy",},}, {"id":{"name":"node_gradient_replace","path":"scripts/node_gradient_replace/node_gradient_replace.yy",},}, {"id":{"name":"s_node_condition","path":"sprites/s_node_condition/s_node_condition.yy",},}, {"id":{"name":"s_node_vfx_repel","path":"sprites/s_node_vfx_repel/s_node_vfx_repel.yy",},}, @@ -1810,6 +1829,7 @@ {"id":{"name":"s_node_vfx_turb","path":"sprites/s_node_vfx_turb/s_node_vfx_turb.yy",},}, {"id":{"name":"o_dialog_l_system","path":"objects/o_dialog_l_system/o_dialog_l_system.yy",},}, {"id":{"name":"GmlLua","path":"scripts/GmlLua/GmlLua.yy",},}, + {"id":{"name":"node_surface_to_color","path":"scripts/node_surface_to_color/node_surface_to_color.yy",},}, {"id":{"name":"sh_shadow_cast_light_sep","path":"shaders/sh_shadow_cast_light_sep/sh_shadow_cast_light_sep.yy",},}, {"id":{"name":"node_grid","path":"scripts/node_grid/node_grid.yy",},}, {"id":{"name":"node_edge_detect","path":"scripts/node_edge_detect/node_edge_detect.yy",},}, @@ -1823,6 +1843,7 @@ {"id":{"name":"directory_object","path":"scripts/directory_object/directory_object.yy",},}, {"id":{"name":"node_combine_hsv","path":"scripts/node_combine_hsv/node_combine_hsv.yy",},}, {"id":{"name":"node_dilate","path":"scripts/node_dilate/node_dilate.yy",},}, + {"id":{"name":"node_websocket_sender","path":"scripts/node_websocket_sender/node_websocket_sender.yy",},}, {"id":{"name":"fd_rectangle_get_acceleration_b","path":"scripts/fd_rectangle_get_acceleration_b/fd_rectangle_get_acceleration_b.yy",},}, {"id":{"name":"surface_draw_functions","path":"scripts/surface_draw_functions/surface_draw_functions.yy",},}, {"id":{"name":"BBMOD_Matrix","path":"scripts/BBMOD_Matrix/BBMOD_Matrix.yy",},}, @@ -1929,6 +1950,7 @@ {"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":"async_functions","path":"scripts/async_functions/async_functions.yy",},}, {"id":{"name":"s_node_RGB_combine","path":"sprites/s_node_RGB_combine/s_node_RGB_combine.yy",},}, {"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",},}, diff --git a/datafiles/data/themes/default.zip b/datafiles/data/themes/default.zip index 4bfc940a9..1e39c41c4 100644 Binary files a/datafiles/data/themes/default.zip and b/datafiles/data/themes/default.zip differ diff --git a/objects/o_dialog_splash/Other_62.gml b/objects/o_dialog_splash/Other_62.gml index 2063c224b..1242c5e61 100644 --- a/objects/o_dialog_splash/Other_62.gml +++ b/objects/o_dialog_splash/Other_62.gml @@ -72,7 +72,7 @@ for( var i = 0; i < array_length(contest_message_req); i++ ) { var att = thr.title.attachments[0]; thr.title.attachments = att; - var path = DIRECTORY + "temp/" + att.id + ".png"; + var path = DIRECTORY + "temp/" + att.id + filename_ext(att.url); attachment[? att.id] = [ http_get_file(att.url, path), path ]; } else thr.title.attachments = noone; @@ -104,7 +104,6 @@ for( var i = 0; i < array_length(keys); i++ ) { if(async_load[? "id"] != att[0]) continue; var path = att[1]; - print(path); if(!file_exists(path)) { attachment[? keys[i]] = noone; diff --git a/objects/o_main/Create_0.gml b/objects/o_main/Create_0.gml index c7d727720..1f3383c2d 100644 --- a/objects/o_main/Create_0.gml +++ b/objects/o_main/Create_0.gml @@ -237,8 +237,15 @@ DIALOGS = ds_list_create(); #endregion -#region file loader +#region async + globalvar PORT_MAP, NETWORK_SERVERS, NETWORK_CLIENTS; + global.FILE_LOAD_ASYNC = ds_map_create(); + PORT_MAP = ds_map_create(); + NETWORK_SERVERS = ds_map_create(); + NETWORK_CLIENTS = ds_map_create(); + + asyncInit(); #endregion #region steam diff --git a/objects/o_main/Other_62.gml b/objects/o_main/Other_62.gml index b05f037c7..1a35dad1b 100644 --- a/objects/o_main/Other_62.gml +++ b/objects/o_main/Other_62.gml @@ -12,4 +12,6 @@ if(ds_map_exists(global.FILE_LOAD_ASYNC, async_load[? "id"])) { var arguments = cb[1]; callback(arguments); -} \ No newline at end of file +} + +asyncLoad(async_load); \ No newline at end of file diff --git a/objects/o_main/Other_68.gml b/objects/o_main/Other_68.gml new file mode 100644 index 000000000..610ac3a6e --- /dev/null +++ b/objects/o_main/Other_68.gml @@ -0,0 +1,7 @@ +/// @description +var port = async_load[? "port"]; + +if(!ds_map_exists(PORT_MAP, port)) exit; +var nodeTarget = PORT_MAP[? port]; +for( var i = 0; i < array_length(nodeTarget); i++ ) + nodeTarget[i].asyncPackets(async_load); \ No newline at end of file diff --git a/objects/o_main/o_main.yy b/objects/o_main/o_main.yy index 91dca3140..79e9a228d 100644 --- a/objects/o_main/o_main.yy +++ b/objects/o_main/o_main.yy @@ -21,6 +21,7 @@ {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","collisionObjectId":null,"eventNum":75,"eventType":7,"isDnD":false,}, {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","collisionObjectId":null,"eventNum":1,"eventType":9,"isDnD":false,}, {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","collisionObjectId":null,"eventNum":69,"eventType":7,"isDnD":false,}, + {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","collisionObjectId":null,"eventNum":68,"eventType":7,"isDnD":false,}, ], "managed": true, "overriddenProperties": [], diff --git a/scripts/animation_controller/animation_controller.gml b/scripts/animation_controller/animation_controller.gml index 94b402d35..59e4eb1cf 100644 --- a/scripts/animation_controller/animation_controller.gml +++ b/scripts/animation_controller/animation_controller.gml @@ -25,10 +25,14 @@ current_frame = round(frame); if(current_frame == frames_total) { - if(playback == ANIMATOR_END.stop || rendering) { + if(rendering) { is_playing = false; rendering = false; - } else + + setFrame(0); + } else if(playback == ANIMATOR_END.stop) + is_playing = false; + else setFrame(0); } @@ -58,6 +62,11 @@ frame_progress = true; } + static toggle = function() { + ANIMATOR.is_playing = !ANIMATOR.is_playing; + ANIMATOR.frame_progress = true; + } + static pause = function() { ANIMATOR.is_playing = false; ANIMATOR.frame_progress = true; diff --git a/scripts/async_functions/async_functions.gml b/scripts/async_functions/async_functions.gml new file mode 100644 index 000000000..63e8e4736 --- /dev/null +++ b/scripts/async_functions/async_functions.gml @@ -0,0 +1,19 @@ +function asyncInit() { + global.asyncCalls = ds_map_create(); +} + +function asyncCall(aid, callback = noone, parameters = {}) { + global.asyncCalls[? aid] = [ callback, parameters ]; +} + +function asyncLoad(data) { + if(!ds_map_exists(global.asyncCalls, data[? "id"])) return; + + var cal = global.asyncCalls[? data[? "id"]]; + var callback = cal[0]; + var parameters = cal[1]; + if(callback != noone) + callback(parameters, data); + + ds_map_delete(global.asyncCalls, data[? "id"]); +} \ No newline at end of file diff --git a/scripts/async_functions/async_functions.yy b/scripts/async_functions/async_functions.yy new file mode 100644 index 000000000..40e16fbbe --- /dev/null +++ b/scripts/async_functions/async_functions.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "async_functions", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "async", + "path": "folders/functions/async.yy", + }, +} \ No newline at end of file diff --git a/scripts/buffer_functions/buffer_functions.gml b/scripts/buffer_functions/buffer_functions.gml new file mode 100644 index 000000000..afb71470c --- /dev/null +++ b/scripts/buffer_functions/buffer_functions.gml @@ -0,0 +1,31 @@ +function buffer_get_string(buffer) { + buffer_seek(buffer, buffer_seek_start, 0); + var len = buffer_get_size(buffer); + var ss = ""; + + for (var i = 0; i < len; i++) { + var _s = chr(buffer_read(buffer, buffer_u8)); + ss += _s; + } + + return ss; +} + +function buffer_from_string(str) { + var _b = buffer_create(string_length(str) * 1, buffer_fast, 1); + for( var i = 1; i <= string_length(str); i++ ) + buffer_write(_b, buffer_u8, ord(string_char_at(str, i))); + return _b; +} + +function buffer_from_surface(surface) { + var _b = buffer_create(surface_get_width(surface) * surface_get_height(surface), buffer_fast, 1); + buffer_set_surface(_b, surface, 0); + return _b; +} + +function buffer_from_file(path) { + if(!file_exists(path)) return; + var _b = buffer_load(path); + return _b; +} \ No newline at end of file diff --git a/scripts/buffer_functions/buffer_functions.yy b/scripts/buffer_functions/buffer_functions.yy new file mode 100644 index 000000000..5f0280df4 --- /dev/null +++ b/scripts/buffer_functions/buffer_functions.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "buffer_functions", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "buffer", + "path": "folders/functions/buffer.yy", + }, +} \ No newline at end of file diff --git a/scripts/draw_text_function/draw_text_function.gml b/scripts/draw_text_function/draw_text_function.gml index b9cd79d25..080a23ec9 100644 --- a/scripts/draw_text_function/draw_text_function.gml +++ b/scripts/draw_text_function/draw_text_function.gml @@ -1,24 +1,24 @@ -function draw_text_over(_x, _y, _text) { +function draw_text_over(_x, _y, _text, scale = 1) { BLEND_OVERRIDE; - draw_text(_x, _y, _text); + draw_text_transformed(_x, _y, _text, scale, scale, 0); BLEND_NORMAL; } -function draw_text_ext_over(_x, _y, _text, _sep, _w) { +function draw_text_ext_over(_x, _y, _text, _sep, _w, scale = 1) { BLEND_OVERRIDE; - draw_text_ext(_x, _y, _text, _sep, _w); + draw_text_ext_transformed(_x, _y, _text, _sep, _w, scale, scale, 0); BLEND_NORMAL; } -function draw_text_add(_x, _y, _text) { +function draw_text_add(_x, _y, _text, scale = 1) { BLEND_ALPHA_MULP; - draw_text(_x, _y, _text); + draw_text_transformed(_x, _y, _text, scale, scale, 0); BLEND_NORMAL; } -function draw_text_ext_add(_x, _y, _text, _sep, _w) { +function draw_text_ext_add(_x, _y, _text, _sep, _w, scale = 1) { BLEND_ALPHA_MULP; - draw_text_ext(_x, _y, _text, _sep, _w); + draw_text_ext_transformed(_x, _y, _text, _sep, _w, scale, scale, 0); BLEND_NORMAL; } diff --git a/scripts/node_animation_control/node_animation_control.gml b/scripts/node_animation_control/node_animation_control.gml new file mode 100644 index 000000000..120464cce --- /dev/null +++ b/scripts/node_animation_control/node_animation_control.gml @@ -0,0 +1,54 @@ +function Node_Animation_Control(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { + name = "Animation Control"; + + w = 96; + h = 96; + min_h = h; + + inputs[| 0] = nodeValue("Toggle Play / Pause", self, JUNCTION_CONNECT.input, VALUE_TYPE.trigger, 0); + + inputs[| 1] = nodeValue("Pause", self, JUNCTION_CONNECT.input, VALUE_TYPE.trigger, 0); + + inputs[| 2] = nodeValue("Resume", self, JUNCTION_CONNECT.input, VALUE_TYPE.trigger, 0); + + inputs[| 3] = nodeValue("Play From Beginning", self, JUNCTION_CONNECT.input, VALUE_TYPE.trigger, 0); + + inputs[| 4] = nodeValue("Play once", self, JUNCTION_CONNECT.input, VALUE_TYPE.trigger, 0); + + inputs[| 5] = nodeValue("Skip Frames", self, JUNCTION_CONNECT.input, VALUE_TYPE.trigger, 0); + + inputs[| 6] = nodeValue("Skip Frames Count", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1); + + static step = function() { + if(inputs[| 0].getValue()) + ANIMATOR.toggle(); + + if(inputs[| 1].getValue()) + ANIMATOR.pause(); + + if(inputs[| 2].getValue()) + ANIMATOR.resume(); + + if(inputs[| 3].getValue()) { + ANIMATOR.stop(); + ANIMATOR.play(); + } + + if(inputs[| 4].getValue()) + ANIMATOR.render(); + + if(inputs[| 5].getValue()) { + var fr = inputs[| 6].getValue(); + ANIMATOR.setFrame(ANIMATOR.current_frame + fr); + } + } + + static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) { + var bbox = drawGetBbox(xx, yy, _s); + var ind = 0; + + if(ANIMATOR.is_playing) ind = 1; + + draw_sprite_fit(THEME.sequence_control, ind, bbox.xc, bbox.yc, bbox.w, bbox.h); + } +} \ No newline at end of file diff --git a/scripts/node_animation_control/node_animation_control.yy b/scripts/node_animation_control/node_animation_control.yy new file mode 100644 index 000000000..4867bcd1c --- /dev/null +++ b/scripts/node_animation_control/node_animation_control.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_animation_control", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "node", + "path": "folders/nodes/data/node.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_animation_control/node_outline.yy b/scripts/node_animation_control/node_outline.yy new file mode 100644 index 000000000..86468bc09 --- /dev/null +++ b/scripts/node_animation_control/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_checkerboard/node_checkerboard.yy b/scripts/node_checkerboard/node_checkerboard.yy index f30cfd054..26b189857 100644 --- a/scripts/node_checkerboard/node_checkerboard.yy +++ b/scripts/node_checkerboard/node_checkerboard.yy @@ -5,7 +5,7 @@ "isCompatibility": false, "isDnD": false, "parent": { - "name": "generator", - "path": "folders/nodes/data/generator.yy", + "name": "pattern", + "path": "folders/nodes/data/generator/pattern.yy", }, } \ No newline at end of file diff --git a/scripts/node_grid/node_grid.yy b/scripts/node_grid/node_grid.yy index 5a091a3ee..c6a8598f7 100644 --- a/scripts/node_grid/node_grid.yy +++ b/scripts/node_grid/node_grid.yy @@ -5,7 +5,7 @@ "isCompatibility": false, "isDnD": false, "parent": { - "name": "generator", - "path": "folders/nodes/data/generator.yy", + "name": "pattern", + "path": "folders/nodes/data/generator/pattern.yy", }, } \ No newline at end of file diff --git a/scripts/node_grid_hex/node_grid_hex.yy b/scripts/node_grid_hex/node_grid_hex.yy index 89fccf565..8cf4212ea 100644 --- a/scripts/node_grid_hex/node_grid_hex.yy +++ b/scripts/node_grid_hex/node_grid_hex.yy @@ -5,7 +5,7 @@ "isCompatibility": false, "isDnD": false, "parent": { - "name": "generator", - "path": "folders/nodes/data/generator.yy", + "name": "pattern", + "path": "folders/nodes/data/generator/pattern.yy", }, } \ No newline at end of file diff --git a/scripts/node_grid_tri/node_grid_tri.yy b/scripts/node_grid_tri/node_grid_tri.yy index 107ef7671..ff954424f 100644 --- a/scripts/node_grid_tri/node_grid_tri.yy +++ b/scripts/node_grid_tri/node_grid_tri.yy @@ -5,7 +5,7 @@ "isCompatibility": false, "isDnD": false, "parent": { - "name": "generator", - "path": "folders/nodes/data/generator.yy", + "name": "pattern", + "path": "folders/nodes/data/generator/pattern.yy", }, } \ No newline at end of file diff --git a/scripts/node_image/node_image.gml b/scripts/node_image/node_image.gml index 10f06bf60..f2631b58a 100644 --- a/scripts/node_image/node_image.gml +++ b/scripts/node_image/node_image.gml @@ -114,12 +114,13 @@ function Node_Image(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { if(!first_update) return; first_update = false; - if(string_pos("strip", name) == 0) return; + if(LOADING || APPENDING) return; + if(string_pos("strip", display_name) == 0) return; + + var sep_pos = string_pos("strip", display_name) + 5; + var sep = string_copy(display_name, sep_pos, string_length(display_name) - sep_pos + 1); + var amo = toNumber(string_digits(sep)); - var sep_pos = string_pos("strip", name) + 5; - var sep = string_copy(name, sep_pos, string_length(name) - sep_pos + 1); - var amo = toNumber(sep); - if(amo) { var ww = sprite_get_width(spr) / amo; var hh = sprite_get_height(spr); diff --git a/scripts/node_image_splice_sheet/node_image_splice_sheet.gml b/scripts/node_image_splice_sheet/node_image_splice_sheet.gml index 2e84582f3..14c17e886 100644 --- a/scripts/node_image_splice_sheet/node_image_splice_sheet.gml +++ b/scripts/node_image_splice_sheet/node_image_splice_sheet.gml @@ -57,8 +57,9 @@ function Node_Image_Sheet(_x, _y, _group = noone) : Node(_x, _y, _group) constru inputs[| 11] = nodeValue("Sync animation", self, JUNCTION_CONNECT.input, VALUE_TYPE.trigger, 0) .setDisplay(VALUE_DISPLAY.button, [ function() { - var _amo = inputs[| 3].getValue(); - ANIMATOR.frames_total = max(1, _amo[0] * _amo[1]); + var _atl = outputs[| 1].getValue(); + var _spd = inputs[| 8].getValue(); + ANIMATOR.frames_total = max(1, _spd == 0? 1 : array_length(_atl) / _spd); }, "Sync frames"] ); inputs[| 12] = nodeValue("Filter empty output", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); @@ -382,7 +383,7 @@ function Node_Image_Sheet(_x, _y, _group = noone) : Node(_x, _y, _group) constru if(array_length(surf_array)) { var ind = safe_mod(ANIMATOR.current_frame * _spd, array_length(surf_array)); - outputs[| 0].setValue(surf_array[ind]); + outputs[| 0].setValue(array_safe_get(surf_array, ind)); } } } \ No newline at end of file diff --git a/scripts/node_noise/node_noise.yy b/scripts/node_noise/node_noise.yy index c7ca97bbe..82fa85d7c 100644 --- a/scripts/node_noise/node_noise.yy +++ b/scripts/node_noise/node_noise.yy @@ -5,7 +5,7 @@ "isCompatibility": false, "isDnD": false, "parent": { - "name": "generator", - "path": "folders/nodes/data/generator.yy", + "name": "noise", + "path": "folders/nodes/data/generator/noise.yy", }, } \ No newline at end of file diff --git a/scripts/node_noise_ani/node_noise_ani.yy b/scripts/node_noise_ani/node_noise_ani.yy index 587313202..1f57c5ffe 100644 --- a/scripts/node_noise_ani/node_noise_ani.yy +++ b/scripts/node_noise_ani/node_noise_ani.yy @@ -5,7 +5,7 @@ "isCompatibility": false, "isDnD": false, "parent": { - "name": "generator", - "path": "folders/nodes/data/generator.yy", + "name": "noise", + "path": "folders/nodes/data/generator/noise.yy", }, } \ No newline at end of file diff --git a/scripts/node_noise_cell/node_noise_cell.yy b/scripts/node_noise_cell/node_noise_cell.yy index c2c5858e3..5d3a1e0a8 100644 --- a/scripts/node_noise_cell/node_noise_cell.yy +++ b/scripts/node_noise_cell/node_noise_cell.yy @@ -5,7 +5,7 @@ "isCompatibility": false, "isDnD": false, "parent": { - "name": "generator", - "path": "folders/nodes/data/generator.yy", + "name": "noise", + "path": "folders/nodes/data/generator/noise.yy", }, } \ No newline at end of file diff --git a/scripts/node_noise_fbm/node_noise_fbm.yy b/scripts/node_noise_fbm/node_noise_fbm.yy index ecf7694f0..891ff5556 100644 --- a/scripts/node_noise_fbm/node_noise_fbm.yy +++ b/scripts/node_noise_fbm/node_noise_fbm.yy @@ -5,7 +5,7 @@ "isCompatibility": false, "isDnD": false, "parent": { - "name": "generator", - "path": "folders/nodes/data/generator.yy", + "name": "noise", + "path": "folders/nodes/data/generator/noise.yy", }, } \ No newline at end of file diff --git a/scripts/node_noise_grid/node_noise_grid.yy b/scripts/node_noise_grid/node_noise_grid.yy index f3a080c7a..5f0bd8601 100644 --- a/scripts/node_noise_grid/node_noise_grid.yy +++ b/scripts/node_noise_grid/node_noise_grid.yy @@ -5,7 +5,7 @@ "isCompatibility": false, "isDnD": false, "parent": { - "name": "generator", - "path": "folders/nodes/data/generator.yy", + "name": "noise", + "path": "folders/nodes/data/generator/noise.yy", }, } \ No newline at end of file diff --git a/scripts/node_noise_grid_hex/node_noise_grid_hex.yy b/scripts/node_noise_grid_hex/node_noise_grid_hex.yy index 2e7f980c1..c85350b19 100644 --- a/scripts/node_noise_grid_hex/node_noise_grid_hex.yy +++ b/scripts/node_noise_grid_hex/node_noise_grid_hex.yy @@ -5,7 +5,7 @@ "isCompatibility": false, "isDnD": false, "parent": { - "name": "generator", - "path": "folders/nodes/data/generator.yy", + "name": "noise", + "path": "folders/nodes/data/generator/noise.yy", }, } \ No newline at end of file diff --git a/scripts/node_noise_grid_tri/node_noise_grid_tri.yy b/scripts/node_noise_grid_tri/node_noise_grid_tri.yy index 99bdfa927..21b217e45 100644 --- a/scripts/node_noise_grid_tri/node_noise_grid_tri.yy +++ b/scripts/node_noise_grid_tri/node_noise_grid_tri.yy @@ -5,7 +5,7 @@ "isCompatibility": false, "isDnD": false, "parent": { - "name": "generator", - "path": "folders/nodes/data/generator.yy", + "name": "noise", + "path": "folders/nodes/data/generator/noise.yy", }, } \ No newline at end of file diff --git a/scripts/node_noise_simplex/node_noise_simplex.yy b/scripts/node_noise_simplex/node_noise_simplex.yy index 18b048e81..8c5dff9df 100644 --- a/scripts/node_noise_simplex/node_noise_simplex.yy +++ b/scripts/node_noise_simplex/node_noise_simplex.yy @@ -5,7 +5,7 @@ "isCompatibility": false, "isDnD": false, "parent": { - "name": "generator", - "path": "folders/nodes/data/generator.yy", + "name": "noise", + "path": "folders/nodes/data/generator/noise.yy", }, } \ No newline at end of file diff --git a/scripts/node_perlin/node_perlin.yy b/scripts/node_perlin/node_perlin.yy index ed106e87e..635b77652 100644 --- a/scripts/node_perlin/node_perlin.yy +++ b/scripts/node_perlin/node_perlin.yy @@ -5,7 +5,7 @@ "isCompatibility": false, "isDnD": false, "parent": { - "name": "generator", - "path": "folders/nodes/data/generator.yy", + "name": "noise", + "path": "folders/nodes/data/generator/noise.yy", }, } \ No newline at end of file diff --git a/scripts/node_perlin_smear/node_perlin_smear.yy b/scripts/node_perlin_smear/node_perlin_smear.yy index d77cff46f..49f120dbe 100644 --- a/scripts/node_perlin_smear/node_perlin_smear.yy +++ b/scripts/node_perlin_smear/node_perlin_smear.yy @@ -5,7 +5,7 @@ "isCompatibility": false, "isDnD": false, "parent": { - "name": "generator", - "path": "folders/nodes/data/generator.yy", + "name": "noise", + "path": "folders/nodes/data/generator/noise.yy", }, } \ No newline at end of file diff --git a/scripts/node_registry/node_registry.gml b/scripts/node_registry/node_registry.gml index efd52e7e8..f6b1a9d28 100644 --- a/scripts/node_registry/node_registry.gml +++ b/scripts/node_registry/node_registry.gml @@ -231,6 +231,10 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { 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); addNodeObject(input, "WAV File Out", s_node_wav_file_write, "Node_WAV_File_Write", [1, Node_WAV_File_Write],, "Save wav audio file.").setVersion(1145); + + ds_list_add(input, "Network"); + addNodeObject(input, "Websocket Receiver", s_node_websocket_receive, "Node_Websocket_Receiver", [1, Node_Websocket_Receiver],, "Create websocket server to receive data from the network.").setVersion(1145); + addNodeObject(input, "Websocket Sender", s_node_websocket_send, "Node_Websocket_Sender", [1, Node_Websocket_Sender],, "Create websocket server to send data to the network.").setVersion(1145); var transform = ds_list_create(); addNodeCatagory("Transform", transform); @@ -550,9 +554,10 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { var node = ds_list_create(); addNodeCatagory("Node", node); - ds_list_add(node, "Logic"); - addNodeObject(node, "Condition", s_node_condition, "Node_Condition", [1, Node_Condition],, "Given a condition, output one value if true, another value is false."); - addNodeObject(node, "Switch", s_node_switch, "Node_Switch", [1, Node_Switch],, "Given an index, output value base on index matching.").setVersion(1090); + ds_list_add(node, "Control"); + addNodeObject(node, "Condition", s_node_condition, "Node_Condition", [1, Node_Condition],, "Given a condition, output one value if true, another value is false."); + addNodeObject(node, "Switch", s_node_switch, "Node_Switch", [1, Node_Switch],, "Given an index, output value base on index matching.").setVersion(1090); + addNodeObject(node, "Animation Control", s_node_animation_control, "Node_Animation_Control", [1, Node_Animation_Control],, "Control animation state with triggers.").setVersion(1145); ds_list_add(node, "Groups"); addNodeObject(node, "Group", s_node_group, "Node_Group", [1, Node_Group]); diff --git a/scripts/node_stripe/node_stripe.yy b/scripts/node_stripe/node_stripe.yy index 5e1fe03a9..28ad98785 100644 --- a/scripts/node_stripe/node_stripe.yy +++ b/scripts/node_stripe/node_stripe.yy @@ -5,7 +5,7 @@ "isCompatibility": false, "isDnD": false, "parent": { - "name": "generator", - "path": "folders/nodes/data/generator.yy", + "name": "pattern", + "path": "folders/nodes/data/generator/pattern.yy", }, } \ No newline at end of file diff --git a/scripts/node_surface_from_color/node_counter.yy b/scripts/node_surface_from_color/node_counter.yy new file mode 100644 index 000000000..7f559330c --- /dev/null +++ b/scripts/node_surface_from_color/node_counter.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "number", + "path": "folders/nodes/data/number.yy", + }, + "resourceVersion": "1.0", + "name": "node_counter", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_surface_from_color/node_surface_from_color.gml b/scripts/node_surface_from_color/node_surface_from_color.gml new file mode 100644 index 000000000..e0644d8e8 --- /dev/null +++ b/scripts/node_surface_from_color/node_surface_from_color.gml @@ -0,0 +1,25 @@ +function Node_Surface_From_Color(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { + name = "Surface from Color"; + + inputs[| 0] = nodeValue("Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, []) + .setDisplay(VALUE_DISPLAY.palette); + + outputs[| 0] = nodeValue("Surface", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); + + static process_data = function(_outSurf, _data, _output_index, _array_index) { + var _col = _data[0]; + + if(!is_array(_col)) _col = [ _col ]; + + var w = array_length(_col); + + _outSurf = surface_verify(_outSurf, w, 1); + + surface_set_target(_outSurf); + for( var i = 0; i < array_length(_col); i++ ) + draw_point_color(i, 0, _col[i]); + surface_reset_target(); + + return _outSurf; + } +} \ No newline at end of file diff --git a/scripts/node_surface_from_color/node_surface_from_color.yy b/scripts/node_surface_from_color/node_surface_from_color.yy new file mode 100644 index 000000000..4adbaa1af --- /dev/null +++ b/scripts/node_surface_from_color/node_surface_from_color.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_surface_from_color", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "surface", + "path": "folders/nodes/data/value/surface.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_surface_to_color/node_counter.yy b/scripts/node_surface_to_color/node_counter.yy new file mode 100644 index 000000000..7f559330c --- /dev/null +++ b/scripts/node_surface_to_color/node_counter.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "number", + "path": "folders/nodes/data/number.yy", + }, + "resourceVersion": "1.0", + "name": "node_counter", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_surface_to_color/node_surface_to_color.gml b/scripts/node_surface_to_color/node_surface_to_color.gml new file mode 100644 index 000000000..976e8c95f --- /dev/null +++ b/scripts/node_surface_to_color/node_surface_to_color.gml @@ -0,0 +1,24 @@ +function Node_Surface_To_Color(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { + name = "Surface to Color"; + + inputs[| 0] = nodeValue("Surface", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone); + + outputs[| 0] = nodeValue("Color", self, JUNCTION_CONNECT.output, VALUE_TYPE.color, []) + .setDisplay(VALUE_DISPLAY.palette); + + static process_data = function(_outSurf, _data, _output_index, _array_index) { + var _surf = _data[0]; + var _pal = []; + + var buff = buffer_from_surface(_surf); + var size = buffer_get_size(buff); + buffer_seek(buff, buffer_seek_start, 0); + + repeat(size) { + var col = buffer_read(buff, buffer_u8); + array_push_unique(_pal, col); + } + + return _pal; + } +} \ No newline at end of file diff --git a/scripts/node_surface_to_color/node_surface_to_color.yy b/scripts/node_surface_to_color/node_surface_to_color.yy new file mode 100644 index 000000000..d7b6f63c9 --- /dev/null +++ b/scripts/node_surface_to_color/node_surface_to_color.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_surface_to_color", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "surface", + "path": "folders/nodes/data/value/surface.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_value/node_value.gml b/scripts/node_value/node_value.gml index 0ef14b5cd..8b17d3710 100644 --- a/scripts/node_value/node_value.gml +++ b/scripts/node_value/node_value.gml @@ -430,6 +430,7 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru express_edit.align = fa_left; process_array = true; + validateValue = true; static setDefault = function(vals) { if(LOADING || APPENDING) return self; @@ -495,6 +496,11 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru return self; } + static nonValidate = function() { + validateValue = false; + return self; + } + static isAnimable = function() { if(type == VALUE_TYPE.gradient) return false; if(display_type == VALUE_DISPLAY.text_array) return false; @@ -542,7 +548,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru switch(display_type) { case VALUE_DISPLAY._default : editWidget = new textBox(_txt, function(val) { - MODIFIED = true; return setValueDirect(val); } ); editWidget.slidable = true; @@ -553,7 +558,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; case VALUE_DISPLAY.range : editWidget = new rangeBox(_txt, function(index, val) { - MODIFIED = true; //var _val = animator.getValue(); //_val[index] = val; return setValueDirect(val, index); @@ -570,7 +574,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru var val = animator.getValue(); if(array_length(val) <= 4) { editWidget = new vectorBox(array_length(animator.getValue()), function(index, val) { - MODIFIED = true; //var _val = animator.getValue(); //_val[index] = val; return setValueDirect(val, index); @@ -594,7 +597,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru var val = animator.getValue(); editWidget = new vectorRangeBox(array_length(val), _txt, function(index, val) { - MODIFIED = true; //var _val = animator.getValue(); //_val[index] = val; return setValueDirect(val, index); @@ -615,7 +617,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; case VALUE_DISPLAY.rotation : editWidget = new rotator(function(val) { - MODIFIED = true; return setValueDirect(val); }, display_data ); @@ -623,7 +624,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; case VALUE_DISPLAY.rotation_range : editWidget = new rotatorRange(function(index, val) { - MODIFIED = true; //var _val = animator.getValue(); //_val[index] = round(val); return setValueDirect(val, index); @@ -636,7 +636,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; case VALUE_DISPLAY.slider : editWidget = new slider(display_data[0], display_data[1], display_data[2], function(val) { - MODIFIED = true; return setValueDirect(toNumber(val)); } ); if(type == VALUE_TYPE.integer) editWidget.setSlideSpeed(1); @@ -645,7 +644,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; case VALUE_DISPLAY.slider_range : editWidget = new sliderRange(display_data[0], display_data[1], display_data[2], function(index, val) { - MODIFIED = true; //var _val = animator.getValue(); //_val[index] = val; return setValueDirect(val, index); @@ -659,7 +657,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; case VALUE_DISPLAY.area : editWidget = new areaBox(function(index, val) { - MODIFIED = true; //var _val = animator.getValue(); //_val[index] = val; return setValueDirect(val, index); @@ -675,7 +672,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; case VALUE_DISPLAY.padding : editWidget = new paddingBox(function(index, val) { - MODIFIED = true; //var _val = animator.getValue(); //_val[index] = val; return setValueDirect(val, index); @@ -689,7 +685,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; case VALUE_DISPLAY.puppet_control : editWidget = new controlPointBox(function(index, val) { - MODIFIED = true; //var _val = animator.getValue(); //_val[index] = val; return setValueDirect(val, index); @@ -699,7 +694,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; case VALUE_DISPLAY.enum_scroll : editWidget = new scrollBox(display_data, function(val) { - MODIFIED = true; if(val == -1) return; return setValueDirect(toNumber(val)); } ); @@ -712,7 +706,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; case VALUE_DISPLAY.enum_button : editWidget = buttonGroup(display_data, function(val) { - MODIFIED = true; return setValueDirect(val); } ); @@ -721,7 +714,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; case VALUE_DISPLAY.kernel : editWidget = new matrixGrid(_txt, function(index, val) { - MODIFIED = true; var _val = animator.getValue(); _val[index] = val; return setValueDirect(_val); @@ -738,7 +730,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; case VALUE_TYPE.boolean : editWidget = new checkBox(function() { - MODIFIED = true; return setValueDirect(!animator.getValue()); } ); @@ -748,7 +739,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru switch(display_type) { case VALUE_DISPLAY._default : editWidget = new buttonColor(function(color) { - MODIFIED = true; return setValueDirect(color); } ); @@ -757,7 +747,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; case VALUE_DISPLAY.palette : editWidget = new buttonPalette(function(color) { - MODIFIED = true; return setValueDirect(color); } ); @@ -767,7 +756,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; case VALUE_TYPE.gradient : editWidget = new buttonGradient(function(gradient) { - MODIFIED = true; return setValueDirect(gradient); } ); @@ -781,7 +769,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru case VALUE_DISPLAY.path_load : editWidget = new textBox(TEXTBOX_INPUT.text, function(str) { setValueDirect(str); }, button(function() { - MODIFIED = true; var path = get_open_filename(display_data[0], display_data[1]); key_release(); if(path == "") return noone; @@ -795,7 +782,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru case VALUE_DISPLAY.path_save : editWidget = new textBox(TEXTBOX_INPUT.text, function(str) { setValueDirect(str); }, button(function() { - MODIFIED = true; var path = get_save_filename(display_data[0], display_data[1]); key_release(); if(path == "") return noone; @@ -810,7 +796,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru case VALUE_DISPLAY.path_font : editWidget = new fontScrollBox( function(val) { - MODIFIED = true; return setValueDirect(DIRECTORY + "Fonts/" + FONT_INTERNAL[val]); } ); @@ -820,7 +805,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru case VALUE_TYPE.curve : display_type = VALUE_DISPLAY.curve; editWidget = new curveBox(function(_modified) { - MODIFIED = true; return setValueDirect(_modified); }); break; @@ -828,7 +812,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru switch(display_type) { case VALUE_DISPLAY._default : editWidget = new textArea(TEXTBOX_INPUT.text, function(str) { - MODIFIED = true; return setValueDirect(str); }); extract_node = "Node_String"; @@ -836,7 +819,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru case VALUE_DISPLAY.code : editWidget = new textArea(TEXTBOX_INPUT.text, function(str) { - MODIFIED = true; return setValueDirect(str); }); @@ -848,7 +830,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru case VALUE_DISPLAY.text_array : editWidget = new textArrayBox(function() { - MODIFIED = true; return animator.values[| 0].value; }, display_data, function() { node.doUpdate(); }); break; @@ -856,7 +837,6 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru break; case VALUE_TYPE.surface : editWidget = new surfaceBox(function(ind) { - MODIFIED = true; return setValueDirect(ind); }, display_data ); show_in_inspector = true; @@ -868,6 +848,7 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru resetDisplay(); static onValidate = function() { + if(!validateValue) return; var _val = value_validation, str = ""; value_validation = VALIDATION.pass; @@ -1226,6 +1207,8 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru cache_array[0] = false; cache_value[0] = false; + + if(!LOADING) MODIFIED = true; } onValidate(); @@ -1518,8 +1501,13 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru if(value_from) return true; - if(connect_type == JUNCTION_CONNECT.input) - return visible && (is_array(node.input_display_list)? array_exists(node.input_display_list, index) : true); + if(connect_type == JUNCTION_CONNECT.input) { + if(!visible) + return false; + + if(is_array(node.input_display_list)) + return array_exists(node.input_display_list, index); + } return visible; } diff --git a/scripts/node_websocket_receiver/node_websocket_receiver.gml b/scripts/node_websocket_receiver/node_websocket_receiver.gml new file mode 100644 index 000000000..ebe58fdf9 --- /dev/null +++ b/scripts/node_websocket_receiver/node_websocket_receiver.gml @@ -0,0 +1,111 @@ +function Node_Websocket_Receiver(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { + name = "Websocket Receiver"; + + w = 128; + h = 128; + min_h = h; + + inputs[| 0] = nodeValue("Port", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 22400); + + inputs[| 1] = nodeValue("Active", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); + + outputs[| 0] = nodeValue("Data", self, JUNCTION_CONNECT.output, VALUE_TYPE.struct, {}); + + outputs[| 1] = nodeValue("Receive data", self, JUNCTION_CONNECT.output, VALUE_TYPE.trigger, 0); + + input_display_list = [ 1, 0 ]; + + connected_device = 0; + port = 0; + + function setPort(newPort) { + if(ds_map_exists(PORT_MAP, port)) + array_remove(PORT_MAP[? port], self); + + port = newPort; + if(!ds_map_exists(PORT_MAP, port)) + PORT_MAP[? port] = []; + array_push(PORT_MAP[? port], self); + + if(ds_map_exists(NETWORK_SERVERS, newPort)) + return; + + var s = network_create_server_raw(network_socket_ws, newPort, 16) + //print($"SERVER CREATED: {s}") + if(s >= 0) NETWORK_SERVERS[? newPort] = s; + } + + insp1UpdateTooltip = get_text("panel_inspector_refresh", "Refresh Server"); + insp1UpdateIcon = [ THEME.refresh, 1, COLORS._main_value_positive ]; + + static onInspector1Update = function() { + var _port = inputs[| 0].getValue(); + setPort(_port); + } + + network_trigger = false; + function asyncPackets(_async_load) { + var _active = inputs[| 1].getValue(); + if(!_active) return; + + var type = async_load[? "type"]; + + switch(type) { + case network_type_connect : + noti_status($"Websocket server: Client connected at port {port} on node {display_name}"); + connected_device++; + break; + case network_type_disconnect : + noti_status($"Websocket server: Client disconnected at port {port} on node {display_name}"); + connected_device--; + break; + case network_type_data : + var buffer = async_load[? "buffer"]; + var socket = async_load[? "id"]; + var data = buffer_get_string(buffer); + + data = json_parse(data); + outputs[| 0].setValue(data); + network_trigger = true; + break; + } + } + + static step = function() { + if(network_trigger) { + outputs[| 1].setValue(1); + network_trigger = false; + } else + outputs[| 1].setValue(0); + } + + static update = function(frame = ANIMATOR.current_frame) { + var _port = inputs[| 0].getValue(); + + if(port != _port) + setPort(_port); + } + + static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) { + var _active = inputs[| 1].getValue(); + var bbox = drawGetBbox(xx, yy, _s); + var network = ds_map_try_get(NETWORK_SERVERS, port, noone); + + var cc = CDEF.red, aa = 1; + if(network >= 0) cc = CDEF.lime; + if(!_active) aa = 0.5; + + var _y0 = bbox.y0 + ui(16); + var _y1 = bbox.y1 - ui(16); + var _ts = _s * 0.75; + + draw_set_text(f_code, fa_center, fa_top, COLORS._main_text); + draw_set_alpha(0.75); + draw_text_add(bbox.xc, bbox.y0, $"Port {port}", _ts); + draw_set_valign(fa_bottom) + draw_text_add(bbox.xc, bbox.y1, $"{connected_device} Connected", _ts); + draw_set_alpha(1); + + draw_sprite_fit(THEME.node_websocket_receive, 0, bbox.xc, (_y0 + _y1) / 2, bbox.w, _y1 - _y0, cc, aa); + } +} \ No newline at end of file diff --git a/scripts/node_websocket_receiver/node_websocket_receiver.yy b/scripts/node_websocket_receiver/node_websocket_receiver.yy new file mode 100644 index 000000000..ca8951b29 --- /dev/null +++ b/scripts/node_websocket_receiver/node_websocket_receiver.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_websocket_receiver", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "network", + "path": "folders/nodes/data/IO/network.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_websocket_sender/node_websocket_sender.gml b/scripts/node_websocket_sender/node_websocket_sender.gml new file mode 100644 index 000000000..d5646b523 --- /dev/null +++ b/scripts/node_websocket_sender/node_websocket_sender.gml @@ -0,0 +1,129 @@ +function Node_Websocket_Sender(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { + name = "Websocket Sender"; + + w = 128; + h = 128; + min_h = h; + + inputs[| 0] = nodeValue("Port", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 22800); + + inputs[| 1] = nodeValue("Data type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Struct", "Surface", "File" ]); + + inputs[| 2] = nodeValue("Struct", self, JUNCTION_CONNECT.input, VALUE_TYPE.struct, {}); + + inputs[| 3] = nodeValue("Surface", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone); + + inputs[| 4] = nodeValue("Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "") + .setDisplay(VALUE_DISPLAY.path_load) + .nonValidate(); + + inputs[| 5] = nodeValue("Target", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "127.0.0.1"); + + input_display_list = [ 5, 0, 1, 2, 3, 4 ]; + + port = 0; + url = ""; + connected = false; + + function connectTo(newPort, newUrl) { + if(ds_map_exists(PORT_MAP, port)) + array_remove(PORT_MAP[? port], self); + + port = newPort; + url = newUrl; + + if(!ds_map_exists(PORT_MAP, port)) + PORT_MAP[? port] = []; + array_push(PORT_MAP[? port], self); + + if(ds_map_exists(NETWORK_CLIENTS, newPort)) + return; + + var s = network_create_socket(network_socket_ws); + network_connect_raw_async(s, newUrl, newPort); + connected = false; + if(s >= 0) NETWORK_CLIENTS[? newPort] = s; + } + + insp1UpdateTooltip = get_text("panel_inspector_refresh", "Reconnect"); + insp1UpdateIcon = [ THEME.refresh, 1, COLORS._main_value_positive ]; + + static onInspector1Update = function() { + var _port = inputs[| 0].getValue(); + var _url = inputs[| 5].getValue(); + connectTo(_port, _url); + } + + function asyncPackets(_async_load) { + var type = async_load[? "type"]; + + switch(type) { + case network_type_non_blocking_connect : + noti_status($"Websocket client: Connected at port {port} on node {display_name}"); + connected = true; + break; + } + } + + static step = function() { + var _type = inputs[| 1].getValue(); + + inputs[| 2].setVisible(_type == 0, _type == 0); + inputs[| 3].setVisible(_type == 1, _type == 1); + inputs[| 4].setVisible(_type == 2, _type == 2); + } + + static update = function(frame = ANIMATOR.current_frame) { + var _port = inputs[| 0].getValue(); + var _target = inputs[| 5].getValue(); + + if(port != _port || url != _target) + connectTo(_port, _target); + + var network = ds_map_try_get(NETWORK_CLIENTS, _port, noone); + if(network < 0) return; + + var _type = inputs[| 1].getValue(); + + switch(_type) { + case 0 : + var _stru = inputs[| 2].getValue(); + var _str = json_stringify(_stru); + var _buff = buffer_from_string(_str); + var res = network_send_raw(network, _buff, buffer_get_size(_buff), network_send_text); + break; + case 1 : + var _surf = inputs[| 3].getValue(); + if(!is_surface(_surf)) return; + var _buff = buffer_from_surface(_surf); + var res = network_send_raw(network, _buff, buffer_get_size(_buff), network_send_binary); + break; + case 2 : + var _path = inputs[| 4].getValue(); + if(!file_exists(_path)) return; + var _buff = buffer_from_file(_path); + var res = network_send_raw(network, _buff, buffer_get_size(_buff), network_send_binary); + break; + } + } + + static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) { + var bbox = drawGetBbox(xx, yy, _s); + var network = ds_map_try_get(NETWORK_CLIENTS, port, noone); + + var cc = CDEF.red, aa = 1; + if(network >= 0) cc = CDEF.lime; + + var _y0 = bbox.y0 + ui(16); + var _y1 = bbox.y1 - ui(16); + var _ts = _s * 0.75; + + draw_set_text(f_code, fa_center, fa_top, COLORS._main_text); + draw_set_alpha(0.75); + draw_text_add(bbox.xc, bbox.y0, $"Port {port}", _ts); + draw_set_alpha(1); + + draw_sprite_fit(THEME.node_websocket_send, 0, bbox.xc, (_y0 + _y1) / 2, bbox.w, _y1 - _y0, cc, aa); + } +} \ No newline at end of file diff --git a/scripts/node_websocket_sender/node_websocket_sender.yy b/scripts/node_websocket_sender/node_websocket_sender.yy new file mode 100644 index 000000000..9568615c4 --- /dev/null +++ b/scripts/node_websocket_sender/node_websocket_sender.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_websocket_sender", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "network", + "path": "folders/nodes/data/IO/network.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 a36e2c75d..a4e8711fc 100644 --- a/scripts/node_wrap_mesh/node_wrap_mesh.gml +++ b/scripts/node_wrap_mesh/node_wrap_mesh.gml @@ -44,7 +44,7 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) outputs[| 1] = nodeValue("Mesh data", self, JUNCTION_CONNECT.output, VALUE_TYPE.object, data); input_display_list = [ 5, - ["Mesh", false], 0, 1, 3, 7, + ["Mesh", false], 0, 1, 7, ["Link", false], 4, 6, ["Control points", false], ]; @@ -55,6 +55,8 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) input_display_index = array_length(input_display_list); points = []; + array_push(attributeEditors, "Warp"); + attributes[? "iteration"] = 4; array_push(attributeEditors, ["Iteration", "iteration", new textBox(TEXTBOX_INPUT.number, function(val) { @@ -67,6 +69,13 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) new NodeTool( "Pin / unpin (+ Shift) mesh", THEME.control_pin ) ]; + insp1UpdateTooltip = "Generate"; + insp1UpdateIcon = [ THEME.refresh, 1, COLORS._main_value_positive ]; + + static onInspector1Update = function() { + setTriangle(); + } + static onValueFromUpdate = function(index) { if(index == 0 && array_empty(data.tris)) setTriangle(); @@ -286,9 +295,10 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) var fullmh = inputs[| 7].getValue() || useArray; var gw = ww / sample; var gh = hh / sample; + var cont = noone; if(!fullmh) { - var cont = surface_create_valid(ww, hh); + cont = surface_create_valid(ww, hh); surface_set_target(cont); shader_set(sh_content_sampler); @@ -367,8 +377,7 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) } } - if(!useArray) - surface_free(cont); + if(is_surface(cont)) surface_free(cont); } static reset = function() { diff --git a/scripts/node_zigzag/node_zigzag.yy b/scripts/node_zigzag/node_zigzag.yy index d981b8ac2..66fb3b22d 100644 --- a/scripts/node_zigzag/node_zigzag.yy +++ b/scripts/node_zigzag/node_zigzag.yy @@ -5,7 +5,7 @@ "isCompatibility": false, "isDnD": false, "parent": { - "name": "generator", - "path": "folders/nodes/data/generator.yy", + "name": "pattern", + "path": "folders/nodes/data/generator/pattern.yy", }, } \ No newline at end of file diff --git a/scripts/rotator/rotator.gml b/scripts/rotator/rotator.gml index 2a2f3804c..4e8b73af1 100644 --- a/scripts/rotator/rotator.gml +++ b/scripts/rotator/rotator.gml @@ -30,6 +30,7 @@ function rotator(_onModify, _step = -1) : widget() constructor { w = 0; h = ui(96); + if(!is_real(_data)) return; var knob_y = _y + ui(48) * scale; if(draw_tb) { diff --git a/scripts/rotatorRange/rotatorRange.gml b/scripts/rotatorRange/rotatorRange.gml index 57e0d25a8..3efb61d3d 100644 --- a/scripts/rotatorRange/rotatorRange.gml +++ b/scripts/rotatorRange/rotatorRange.gml @@ -31,6 +31,8 @@ function rotatorRange(_onModify) : widget() constructor { w = 0; h = ui(96); + if(!is_real(_data[0])) return; + if(!is_real(_data[1])) return; var knob_y = _y + ui(48); tb_min.setActiveFocus(hover, active); diff --git a/scripts/scrollBox/scrollBox.gml b/scripts/scrollBox/scrollBox.gml index c5280601d..8e4c89b60 100644 --- a/scripts/scrollBox/scrollBox.gml +++ b/scripts/scrollBox/scrollBox.gml @@ -33,6 +33,7 @@ function scrollBox(_data, _onModify, update_hover = true) : widget() constructor open_rx = _rx; open_ry = _ry; h = _h; + if(is_array(_text)) return; curr_text = _text; w = _w; diff --git a/scripts/slider/slider.gml b/scripts/slider/slider.gml index ea38b9f7a..60d68298e 100644 --- a/scripts/slider/slider.gml +++ b/scripts/slider/slider.gml @@ -39,6 +39,7 @@ function slider(_min, _max, _step, _onModify = noone, _onRelease = noone) : widg y = _y; w = _w; h = _h; + if(!is_real(_data)) return; switch(halign) { case fa_left: _x = _x; break; diff --git a/scripts/sliderRange/sliderRange.gml b/scripts/sliderRange/sliderRange.gml index 124f8e1cd..6c00dfd9c 100644 --- a/scripts/sliderRange/sliderRange.gml +++ b/scripts/sliderRange/sliderRange.gml @@ -37,6 +37,8 @@ function sliderRange(_min, _max, _step, _onModify) : widget() constructor { y = _y; w = _w; h = _h; + if(!is_real(_data[0])) return; + if(!is_real(_data[1])) return; var tb_w = ui(64); var sw = _w - (tb_w + ui(16)) * 2; diff --git a/sprites/s_node_animation_control/ee36f285-8f79-461f-8b85-64d508ce0884.png b/sprites/s_node_animation_control/ee36f285-8f79-461f-8b85-64d508ce0884.png new file mode 100644 index 000000000..b8181217e Binary files /dev/null and b/sprites/s_node_animation_control/ee36f285-8f79-461f-8b85-64d508ce0884.png differ diff --git a/sprites/s_node_animation_control/layers/ee36f285-8f79-461f-8b85-64d508ce0884/8e4e22a6-2186-4f0c-9e77-7e7f723fddd0.png b/sprites/s_node_animation_control/layers/ee36f285-8f79-461f-8b85-64d508ce0884/8e4e22a6-2186-4f0c-9e77-7e7f723fddd0.png new file mode 100644 index 000000000..b8181217e Binary files /dev/null and b/sprites/s_node_animation_control/layers/ee36f285-8f79-461f-8b85-64d508ce0884/8e4e22a6-2186-4f0c-9e77-7e7f723fddd0.png differ diff --git a/sprites/s_node_animation_control/s_node_animation_control.yy b/sprites/s_node_animation_control/s_node_animation_control.yy new file mode 100644 index 000000000..b4db83ad6 --- /dev/null +++ b/sprites/s_node_animation_control/s_node_animation_control.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_animation_control", + "bbox_bottom": 61, + "bbox_left": 4, + "bbox_right": 63, + "bbox_top": 9, + "bboxMode": 0, + "collisionKind": 1, + "collisionTolerance": 0, + "DynamicTexturePage": false, + "edgeFiltering": false, + "For3D": false, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"ee36f285-8f79-461f-8b85-64d508ce0884",}, + ], + "gridX": 0, + "gridY": 0, + "height": 64, + "HTile": false, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"8e4e22a6-2186-4f0c-9e77-7e7f723fddd0","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,}, + ], + "nineSlice": null, + "origin": 4, + "parent": { + "name": "node", + "path": "folders/nodes/icons/node.yy", + }, + "preMultiplyAlpha": false, + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_animation_control", + "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":"ee36f285-8f79-461f-8b85-64d508ce0884","path":"sprites/s_node_animation_control/s_node_animation_control.yy",},},},"Disabled":false,"id":"0e403173-673e-4389-9a5f-8b005f4ac223","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_websocket/45f9b92a-4764-4f13-aeb6-6713bd9dcb45.png b/sprites/s_node_websocket/45f9b92a-4764-4f13-aeb6-6713bd9dcb45.png new file mode 100644 index 000000000..88fb76ced Binary files /dev/null and b/sprites/s_node_websocket/45f9b92a-4764-4f13-aeb6-6713bd9dcb45.png differ diff --git a/sprites/s_node_websocket/layers/45f9b92a-4764-4f13-aeb6-6713bd9dcb45/5e20b007-6f6d-4ffe-8f23-eed9a0f35b7e.png b/sprites/s_node_websocket/layers/45f9b92a-4764-4f13-aeb6-6713bd9dcb45/5e20b007-6f6d-4ffe-8f23-eed9a0f35b7e.png new file mode 100644 index 000000000..88fb76ced Binary files /dev/null and b/sprites/s_node_websocket/layers/45f9b92a-4764-4f13-aeb6-6713bd9dcb45/5e20b007-6f6d-4ffe-8f23-eed9a0f35b7e.png differ diff --git a/sprites/s_node_websocket/s_node_websocket.yy b/sprites/s_node_websocket/s_node_websocket.yy new file mode 100644 index 000000000..fcdbd1720 --- /dev/null +++ b/sprites/s_node_websocket/s_node_websocket.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_websocket", + "bbox_bottom": 55, + "bbox_left": 2, + "bbox_right": 61, + "bbox_top": 8, + "bboxMode": 0, + "collisionKind": 1, + "collisionTolerance": 0, + "DynamicTexturePage": false, + "edgeFiltering": false, + "For3D": false, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"45f9b92a-4764-4f13-aeb6-6713bd9dcb45",}, + ], + "gridX": 0, + "gridY": 0, + "height": 64, + "HTile": false, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"5e20b007-6f6d-4ffe-8f23-eed9a0f35b7e","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,}, + ], + "nineSlice": null, + "origin": 4, + "parent": { + "name": "IO", + "path": "folders/nodes/icons/IO.yy", + }, + "preMultiplyAlpha": false, + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_websocket", + "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":"45f9b92a-4764-4f13-aeb6-6713bd9dcb45","path":"sprites/s_node_websocket/s_node_websocket.yy",},},},"Disabled":false,"id":"4cdf5239-ffcf-468c-8d26-3bb6eb3cb1e7","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_websocket_receive/9264add7-538a-489b-a4fb-867f23b53e26.png b/sprites/s_node_websocket_receive/9264add7-538a-489b-a4fb-867f23b53e26.png new file mode 100644 index 000000000..2e5ae6f5a Binary files /dev/null and b/sprites/s_node_websocket_receive/9264add7-538a-489b-a4fb-867f23b53e26.png differ diff --git a/sprites/s_node_websocket_receive/layers/9264add7-538a-489b-a4fb-867f23b53e26/cab6a034-3966-4bd1-8ec2-48243d32aec2.png b/sprites/s_node_websocket_receive/layers/9264add7-538a-489b-a4fb-867f23b53e26/cab6a034-3966-4bd1-8ec2-48243d32aec2.png new file mode 100644 index 000000000..2e5ae6f5a Binary files /dev/null and b/sprites/s_node_websocket_receive/layers/9264add7-538a-489b-a4fb-867f23b53e26/cab6a034-3966-4bd1-8ec2-48243d32aec2.png differ diff --git a/sprites/s_node_websocket_receive/s_node_websocket_receive.yy b/sprites/s_node_websocket_receive/s_node_websocket_receive.yy new file mode 100644 index 000000000..6e6a70cb1 --- /dev/null +++ b/sprites/s_node_websocket_receive/s_node_websocket_receive.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_websocket_receive", + "bbox_bottom": 61, + "bbox_left": 1, + "bbox_right": 59, + "bbox_top": 4, + "bboxMode": 0, + "collisionKind": 1, + "collisionTolerance": 0, + "DynamicTexturePage": false, + "edgeFiltering": false, + "For3D": false, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"9264add7-538a-489b-a4fb-867f23b53e26",}, + ], + "gridX": 0, + "gridY": 0, + "height": 64, + "HTile": false, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"cab6a034-3966-4bd1-8ec2-48243d32aec2","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,}, + ], + "nineSlice": null, + "origin": 4, + "parent": { + "name": "IO", + "path": "folders/nodes/icons/IO.yy", + }, + "preMultiplyAlpha": false, + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_websocket_receive", + "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":"9264add7-538a-489b-a4fb-867f23b53e26","path":"sprites/s_node_websocket_receive/s_node_websocket_receive.yy",},},},"Disabled":false,"id":"ea43ca65-6068-4d78-98d8-5725796963c3","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_websocket_send/ab5323c0-43c3-44f7-bf2b-b09efe089a28.png b/sprites/s_node_websocket_send/ab5323c0-43c3-44f7-bf2b-b09efe089a28.png new file mode 100644 index 000000000..232c9f94a Binary files /dev/null and b/sprites/s_node_websocket_send/ab5323c0-43c3-44f7-bf2b-b09efe089a28.png differ diff --git a/sprites/s_node_websocket_send/layers/ab5323c0-43c3-44f7-bf2b-b09efe089a28/357aa7b5-9d36-4628-b396-d9d49f815add.png b/sprites/s_node_websocket_send/layers/ab5323c0-43c3-44f7-bf2b-b09efe089a28/357aa7b5-9d36-4628-b396-d9d49f815add.png new file mode 100644 index 000000000..232c9f94a Binary files /dev/null and b/sprites/s_node_websocket_send/layers/ab5323c0-43c3-44f7-bf2b-b09efe089a28/357aa7b5-9d36-4628-b396-d9d49f815add.png differ diff --git a/sprites/s_node_websocket_send/s_node_websocket_send.yy b/sprites/s_node_websocket_send/s_node_websocket_send.yy new file mode 100644 index 000000000..e57dcae8c --- /dev/null +++ b/sprites/s_node_websocket_send/s_node_websocket_send.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_websocket_send", + "bbox_bottom": 61, + "bbox_left": 1, + "bbox_right": 61, + "bbox_top": 2, + "bboxMode": 0, + "collisionKind": 1, + "collisionTolerance": 0, + "DynamicTexturePage": false, + "edgeFiltering": false, + "For3D": false, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"ab5323c0-43c3-44f7-bf2b-b09efe089a28",}, + ], + "gridX": 0, + "gridY": 0, + "height": 64, + "HTile": false, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"357aa7b5-9d36-4628-b396-d9d49f815add","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,}, + ], + "nineSlice": null, + "origin": 4, + "parent": { + "name": "IO", + "path": "folders/nodes/icons/IO.yy", + }, + "preMultiplyAlpha": false, + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_websocket_send", + "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":"ab5323c0-43c3-44f7-bf2b-b09efe089a28","path":"sprites/s_node_websocket_send/s_node_websocket_send.yy",},},},"Disabled":false,"id":"3b432a6c-9913-46a4-83bb-d3401b476a54","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