diff --git a/Pixels Composer.yyp b/Pixels Composer.yyp index f30a1a6dd..cca11c83c 100644 --- a/Pixels Composer.yyp +++ b/Pixels Composer.yyp @@ -3,55 +3,59 @@ "resourceVersion": "1.6", "name": "Pixels Composer", "resources": [ - {"id":{"name":"s_node_corner","path":"sprites/s_node_corner/s_node_corner.yy",},"order":88,}, + {"id":{"name":"s_node_corner","path":"sprites/s_node_corner/s_node_corner.yy",},"order":14,}, {"id":{"name":"panel_function","path":"scripts/panel_function/panel_function.yy",},"order":5,}, {"id":{"name":"node_time_remap","path":"scripts/node_time_remap/node_time_remap.yy",},"order":33,}, {"id":{"name":"sh_perlin","path":"shaders/sh_perlin/sh_perlin.yy",},"order":1,}, {"id":{"name":"sh_normal_light","path":"shaders/sh_normal_light/sh_normal_light.yy",},"order":0,}, {"id":{"name":"sh_scale3x","path":"shaders/sh_scale3x/sh_scale3x.yy",},"order":33,}, - {"id":{"name":"surface_modify","path":"scripts/surface_modify/surface_modify.yy",},"order":2,}, - {"id":{"name":"s_node_normal","path":"sprites/s_node_normal/s_node_normal.yy",},"order":19,}, + {"id":{"name":"surface_functions","path":"scripts/surface_functions/surface_functions.yy",},"order":2,}, + {"id":{"name":"s_node_normal","path":"sprites/s_node_normal/s_node_normal.yy",},"order":28,}, {"id":{"name":"buffer_surface","path":"scripts/buffer_surface/buffer_surface.yy",},"order":3,}, + {"id":{"name":"node_pixel_sort","path":"scripts/node_pixel_sort/node_pixel_sort.yy",},"order":46,}, {"id":{"name":"sh_dither","path":"shaders/sh_dither/sh_dither.yy",},"order":32,}, {"id":{"name":"panel_data","path":"scripts/panel_data/panel_data.yy",},"order":0,}, {"id":{"name":"node_3d_obj","path":"scripts/node_3d_obj/node_3d_obj.yy",},"order":8,}, {"id":{"name":"o_dialog_menubox","path":"objects/o_dialog_menubox/o_dialog_menubox.yy",},"order":1,}, - {"id":{"name":"s_node_blend","path":"sprites/s_node_blend/s_node_blend.yy",},"order":7,}, + {"id":{"name":"s_node_blend","path":"sprites/s_node_blend/s_node_blend.yy",},"order":5,}, {"id":{"name":"libdlgmodule","path":"extensions/libdlgmodule/libdlgmodule.yy",},"order":2,}, {"id":{"name":"node_line","path":"scripts/node_line/node_line.yy",},"order":7,}, - {"id":{"name":"s_node_frame","path":"sprites/s_node_frame/s_node_frame.yy",},"order":79,}, + {"id":{"name":"s_node_frame","path":"sprites/s_node_frame/s_node_frame.yy",},"order":1,}, {"id":{"name":"node_2d_light","path":"scripts/node_2d_light/node_2d_light.yy",},"order":40,}, - {"id":{"name":"s_node_color","path":"sprites/s_node_color/s_node_color.yy",},"order":17,}, - {"id":{"name":"s_node_image_gif","path":"sprites/s_node_image_gif/s_node_image_gif.yy",},"order":69,}, + {"id":{"name":"s_node_color","path":"sprites/s_node_color/s_node_color.yy",},"order":0,}, + {"id":{"name":"s_node_image_gif","path":"sprites/s_node_image_gif/s_node_image_gif.yy",},"order":7,}, {"id":{"name":"node_VFX_effect_wind","path":"scripts/node_VFX_effect_wind/node_VFX_effect_wind.yy",},"order":7,}, - {"id":{"name":"s_node_3d_obj","path":"sprites/s_node_3d_obj/s_node_3d_obj.yy",},"order":114,}, - {"id":{"name":"s_node_scale","path":"sprites/s_node_scale/s_node_scale.yy",},"order":45,}, + {"id":{"name":"s_node_3d_obj","path":"sprites/s_node_3d_obj/s_node_3d_obj.yy",},"order":3,}, + {"id":{"name":"s_node_scale","path":"sprites/s_node_scale/s_node_scale.yy",},"order":6,}, {"id":{"name":"sh_color_picker_value","path":"shaders/sh_color_picker_value/sh_color_picker_value.yy",},"order":36,}, {"id":{"name":"node_dither","path":"scripts/node_dither/node_dither.yy",},"order":11,}, {"id":{"name":"sh_perlin_smear","path":"shaders/sh_perlin_smear/sh_perlin_smear.yy",},"order":7,}, {"id":{"name":"sh_corner","path":"shaders/sh_corner/sh_corner.yy",},"order":23,}, - {"id":{"name":"node_array","path":"scripts/node_array/node_array.yy",},"order":3,}, + {"id":{"name":"node_array","path":"scripts/node_array/node_array.yy",},"order":8,}, {"id":{"name":"sh_colorize","path":"shaders/sh_colorize/sh_colorize.yy",},"order":5,}, - {"id":{"name":"s_node_particle_effector","path":"sprites/s_node_particle_effector/s_node_particle_effector.yy",},"order":52,}, + {"id":{"name":"node_string","path":"scripts/node_string/node_string.yy",},"order":13,}, + {"id":{"name":"s_node_particle_effector","path":"sprites/s_node_particle_effector/s_node_particle_effector.yy",},"order":13,}, + {"id":{"name":"s_node_loop_input","path":"sprites/s_node_loop_input/s_node_loop_input.yy",},"order":14,}, {"id":{"name":"perlin_noise","path":"scripts/perlin_noise/perlin_noise.yy",},"order":5,}, {"id":{"name":"node_functions","path":"scripts/node_functions/node_functions.yy",},"order":2,}, - {"id":{"name":"node_math","path":"scripts/node_math/node_math.yy",},"order":6,}, + {"id":{"name":"node_math","path":"scripts/node_math/node_math.yy",},"order":1,}, {"id":{"name":"array_functions","path":"scripts/array_functions/array_functions.yy",},"order":2,}, {"id":{"name":"sh_blur_final","path":"shaders/sh_blur_final/sh_blur_final.yy",},"order":3,}, - {"id":{"name":"s_node_colorize","path":"sprites/s_node_colorize/s_node_colorize.yy",},"order":90,}, + {"id":{"name":"s_node_colorize","path":"sprites/s_node_colorize/s_node_colorize.yy",},"order":13,}, {"id":{"name":"panel_preview","path":"scripts/panel_preview/panel_preview.yy",},"order":3,}, - {"id":{"name":"s_node_sepearte_shape","path":"sprites/s_node_sepearte_shape/s_node_sepearte_shape.yy",},"order":42,}, - {"id":{"name":"s_node_polar","path":"sprites/s_node_polar/s_node_polar.yy",},"order":49,}, + {"id":{"name":"s_node_sepearte_shape","path":"sprites/s_node_sepearte_shape/s_node_sepearte_shape.yy",},"order":33,}, + {"id":{"name":"s_node_polar","path":"sprites/s_node_polar/s_node_polar.yy",},"order":5,}, {"id":{"name":"o_dialog_notifications","path":"objects/o_dialog_notifications/o_dialog_notifications.yy",},"order":28,}, - {"id":{"name":"s_node_alpha_grey","path":"sprites/s_node_alpha_grey/s_node_alpha_grey.yy",},"order":110,}, + {"id":{"name":"s_node_alpha_grey","path":"sprites/s_node_alpha_grey/s_node_alpha_grey.yy",},"order":2,}, {"id":{"name":"node_blend","path":"scripts/node_blend/node_blend.yy",},"order":13,}, - {"id":{"name":"s_node_level","path":"sprites/s_node_level/s_node_level.yy",},"order":64,}, + {"id":{"name":"s_node_level","path":"sprites/s_node_level/s_node_level.yy",},"order":26,}, {"id":{"name":"node_scatter","path":"scripts/node_scatter/node_scatter.yy",},"order":3,}, - {"id":{"name":"s_node_bloom","path":"sprites/s_node_bloom/s_node_bloom.yy",},"order":104,}, + {"id":{"name":"s_node_bloom","path":"sprites/s_node_bloom/s_node_bloom.yy",},"order":6,}, {"id":{"name":"node_image","path":"scripts/node_image/node_image.yy",},"order":0,}, + {"id":{"name":"s_node_vfx_render","path":"sprites/s_node_vfx_render/s_node_vfx_render.yy",},"order":1,}, {"id":{"name":"sh_cell_noise","path":"shaders/sh_cell_noise/sh_cell_noise.yy",},"order":0,}, {"id":{"name":"sh_blend_max","path":"shaders/sh_blend_max/sh_blend_max.yy",},"order":8,}, - {"id":{"name":"s_node_color_out","path":"sprites/s_node_color_out/s_node_color_out.yy",},"order":93,}, + {"id":{"name":"s_node_color_out","path":"sprites/s_node_color_out/s_node_color_out.yy",},"order":5,}, {"id":{"name":"_3D","path":"scripts/_3D/_3D.yy",},"order":6,}, {"id":{"name":"node_outline","path":"scripts/node_outline/node_outline.yy",},"order":0,}, {"id":{"name":"math_function","path":"scripts/math_function/math_function.yy",},"order":7,}, @@ -59,41 +63,42 @@ {"id":{"name":"o_dialog_exit","path":"objects/o_dialog_exit/o_dialog_exit.yy",},"order":27,}, {"id":{"name":"node_gradient_points","path":"scripts/node_gradient_points/node_gradient_points.yy",},"order":20,}, {"id":{"name":"colToVec4","path":"scripts/colToVec4/colToVec4.yy",},"order":0,}, + {"id":{"name":"s_node_vfx","path":"sprites/s_node_vfx/s_node_vfx.yy",},"order":9,}, {"id":{"name":"draw_surface_blend","path":"scripts/draw_surface_blend/draw_surface_blend.yy",},"order":1,}, {"id":{"name":"blurSurface","path":"scripts/blurSurface/blurSurface.yy",},"order":0,}, {"id":{"name":"sh_cell_noise_edge","path":"shaders/sh_cell_noise_edge/sh_cell_noise_edge.yy",},"order":5,}, {"id":{"name":"node_stripe","path":"scripts/node_stripe/node_stripe.yy",},"order":11,}, {"id":{"name":"sh_texture_atlas","path":"shaders/sh_texture_atlas/sh_texture_atlas.yy",},"order":0,}, - {"id":{"name":"s_node_displace","path":"sprites/s_node_displace/s_node_displace.yy",},"order":83,}, + {"id":{"name":"s_node_displace","path":"sprites/s_node_displace/s_node_displace.yy",},"order":18,}, {"id":{"name":"sh_polar","path":"shaders/sh_polar/sh_polar.yy",},"order":1,}, - {"id":{"name":"s_node_warp_mesh","path":"sprites/s_node_warp_mesh/s_node_warp_mesh.yy",},"order":22,}, + {"id":{"name":"s_node_warp_mesh","path":"sprites/s_node_warp_mesh/s_node_warp_mesh.yy",},"order":10,}, {"id":{"name":"sh_pixel_cloud","path":"shaders/sh_pixel_cloud/sh_pixel_cloud.yy",},"order":13,}, {"id":{"name":"node_iterate","path":"scripts/node_iterate/node_iterate.yy",},"order":1,}, {"id":{"name":"sh_de_stray","path":"shaders/sh_de_stray/sh_de_stray.yy",},"order":16,}, {"id":{"name":"sh_chromatic_aberration","path":"shaders/sh_chromatic_aberration/sh_chromatic_aberration.yy",},"order":35,}, {"id":{"name":"sh_cell_noise_round","path":"shaders/sh_cell_noise_round/sh_cell_noise_round.yy",},"order":9,}, {"id":{"name":"event_recorder","path":"scripts/event_recorder/event_recorder.yy",},"order":3,}, - {"id":{"name":"s_node_noise_cell","path":"sprites/s_node_noise_cell/s_node_noise_cell.yy",},"order":58,}, + {"id":{"name":"s_node_noise_cell","path":"sprites/s_node_noise_cell/s_node_noise_cell.yy",},"order":10,}, {"id":{"name":"node_colorize","path":"scripts/node_colorize/node_colorize.yy",},"order":9,}, - {"id":{"name":"s_node_color_adjust","path":"sprites/s_node_color_adjust/s_node_color_adjust.yy",},"order":97,}, + {"id":{"name":"s_node_color_adjust","path":"sprites/s_node_color_adjust/s_node_color_adjust.yy",},"order":1,}, {"id":{"name":"sh_channel_B","path":"shaders/sh_channel_B/sh_channel_B.yy",},"order":13,}, - {"id":{"name":"s_node_2d_light","path":"sprites/s_node_2d_light/s_node_2d_light.yy",},"order":117,}, - {"id":{"name":"s_node_trail","path":"sprites/s_node_trail/s_node_trail.yy",},"order":31,}, + {"id":{"name":"s_node_2d_light","path":"sprites/s_node_2d_light/s_node_2d_light.yy",},"order":0,}, + {"id":{"name":"s_node_trail","path":"sprites/s_node_trail/s_node_trail.yy",},"order":38,}, {"id":{"name":"sh_level_selector","path":"shaders/sh_level_selector/sh_level_selector.yy",},"order":27,}, {"id":{"name":"string_eval","path":"scripts/string_eval/string_eval.yy",},"order":0,}, {"id":{"name":"globals","path":"scripts/globals/globals.yy",},"order":1,}, - {"id":{"name":"s_node_vfx_repel","path":"sprites/s_node_vfx_repel/s_node_vfx_repel.yy",},"order":123,}, - {"id":{"name":"s_node_noise_perlin","path":"sprites/s_node_noise_perlin/s_node_noise_perlin.yy",},"order":57,}, - {"id":{"name":"s_node_dithering","path":"sprites/s_node_dithering/s_node_dithering.yy",},"order":82,}, + {"id":{"name":"s_node_noise_perlin","path":"sprites/s_node_noise_perlin/s_node_noise_perlin.yy",},"order":11,}, + {"id":{"name":"s_node_dithering","path":"sprites/s_node_dithering/s_node_dithering.yy",},"order":19,}, {"id":{"name":"node_normal_light","path":"scripts/node_normal_light/node_normal_light.yy",},"order":0,}, {"id":{"name":"o_dialog_release_note","path":"objects/o_dialog_release_note/o_dialog_release_note.yy",},"order":16,}, {"id":{"name":"panel_inspector","path":"scripts/panel_inspector/panel_inspector.yy",},"order":0,}, {"id":{"name":"node_padding","path":"scripts/node_padding/node_padding.yy",},"order":10,}, {"id":{"name":"node_VFX_group","path":"scripts/node_VFX_group/node_VFX_group.yy",},"order":6,}, - {"id":{"name":"s_node_pixel_cloud","path":"sprites/s_node_pixel_cloud/s_node_pixel_cloud.yy",},"order":50,}, + {"id":{"name":"s_node_vfx_attract","path":"sprites/s_node_vfx_attract/s_node_vfx_attract.yy",},"order":8,}, + {"id":{"name":"s_node_pixel_cloud","path":"sprites/s_node_pixel_cloud/s_node_pixel_cloud.yy",},"order":30,}, {"id":{"name":"node_noise_grid","path":"scripts/node_noise_grid/node_noise_grid.yy",},"order":8,}, - {"id":{"name":"s_node_compose","path":"sprites/s_node_compose/s_node_compose.yy",},"order":89,}, - {"id":{"name":"s_node_crop","path":"sprites/s_node_crop/s_node_crop.yy",},"order":86,}, + {"id":{"name":"s_node_compose","path":"sprites/s_node_compose/s_node_compose.yy",},"order":1,}, + {"id":{"name":"s_node_crop","path":"sprites/s_node_crop/s_node_crop.yy",},"order":2,}, {"id":{"name":"__VFX","path":"scripts/__VFX/__VFX.yy",},"order":3,}, {"id":{"name":"s_menu_black","path":"sprites/s_menu_black/s_menu_black.yy",},"order":2,}, {"id":{"name":"sh_blend_multiply","path":"shaders/sh_blend_multiply/sh_blend_multiply.yy",},"order":0,}, @@ -102,66 +107,70 @@ {"id":{"name":"font_loader","path":"scripts/font_loader/font_loader.yy",},"order":8,}, {"id":{"name":"point_rotate","path":"scripts/point_rotate/point_rotate.yy",},"order":1,}, {"id":{"name":"node_displacement","path":"scripts/node_displacement/node_displacement.yy",},"order":8,}, - {"id":{"name":"s_node_vec4","path":"sprites/s_node_vec4/s_node_vec4.yy",},"order":24,}, + {"id":{"name":"s_node_vfx_wind","path":"sprites/s_node_vfx_wind/s_node_vfx_wind.yy",},"order":3,}, + {"id":{"name":"s_node_vec4","path":"sprites/s_node_vec4/s_node_vec4.yy",},"order":8,}, {"id":{"name":"buttonGroup","path":"scripts/buttonGroup/buttonGroup.yy",},"order":5,}, - {"id":{"name":"s_node_image_sheet","path":"sprites/s_node_image_sheet/s_node_image_sheet.yy",},"order":67,}, + {"id":{"name":"s_node_image_sheet","path":"sprites/s_node_image_sheet/s_node_image_sheet.yy",},"order":10,}, {"id":{"name":"o_dialog_scrollbox","path":"objects/o_dialog_scrollbox/o_dialog_scrollbox.yy",},"order":2,}, - {"id":{"name":"s_node_palette","path":"sprites/s_node_palette/s_node_palette.yy",},"order":54,}, + {"id":{"name":"s_node_palette","path":"sprites/s_node_palette/s_node_palette.yy",},"order":9,}, {"id":{"name":"curve_damping_function","path":"scripts/curve_damping_function/curve_damping_function.yy",},"order":2,}, {"id":{"name":"sh_blur_box_contrast","path":"shaders/sh_blur_box_contrast/sh_blur_box_contrast.yy",},"order":24,}, {"id":{"name":"node_color_from_rgb","path":"scripts/node_color_from_rgb/node_color_from_rgb.yy",},"order":5,}, {"id":{"name":"node_transform","path":"scripts/node_transform/node_transform.yy",},"order":0,}, {"id":{"name":"curveBox","path":"scripts/curveBox/curveBox.yy",},"order":8,}, {"id":{"name":"sh_gradient_display","path":"shaders/sh_gradient_display/sh_gradient_display.yy",},"order":18,}, - {"id":{"name":"s_node_chromatic_abarration","path":"sprites/s_node_chromatic_abarration/s_node_chromatic_abarration.yy",},"order":1,}, + {"id":{"name":"s_node_chromatic_abarration","path":"sprites/s_node_chromatic_abarration/s_node_chromatic_abarration.yy",},"order":12,}, {"id":{"name":"node_blur_directional","path":"scripts/node_blur_directional/node_blur_directional.yy",},"order":26,}, - {"id":{"name":"s_node_group","path":"sprites/s_node_group/s_node_group.yy",},"order":5,}, + {"id":{"name":"s_node_group","path":"sprites/s_node_group/s_node_group.yy",},"order":4,}, {"id":{"name":"o_dialog_splash","path":"objects/o_dialog_splash/o_dialog_splash.yy",},"order":19,}, {"id":{"name":"json_file","path":"scripts/json_file/json_file.yy",},"order":4,}, {"id":{"name":"node_gradient","path":"scripts/node_gradient/node_gradient.yy",},"order":0,}, {"id":{"name":"textBox","path":"scripts/textBox/textBox.yy",},"order":17,}, - {"id":{"name":"node_statistic","path":"scripts/node_statistic/node_statistic.yy",},"order":15,}, + {"id":{"name":"node_statistic","path":"scripts/node_statistic/node_statistic.yy",},"order":7,}, {"id":{"name":"sh_draw_surface_part_tiled","path":"shaders/sh_draw_surface_part_tiled/sh_draw_surface_part_tiled.yy",},"order":1,}, {"id":{"name":"sh_blend_subtract_alpha","path":"shaders/sh_blend_subtract_alpha/sh_blend_subtract_alpha.yy",},"order":14,}, {"id":{"name":"o_dialog_add_node","path":"objects/o_dialog_add_node/o_dialog_add_node.yy",},"order":1,}, - {"id":{"name":"s_node_curve","path":"sprites/s_node_curve/s_node_curve.yy",},"order":85,}, + {"id":{"name":"s_node_curve","path":"sprites/s_node_curve/s_node_curve.yy",},"order":1,}, {"id":{"name":"sh_blend_normal","path":"shaders/sh_blend_normal/sh_blend_normal.yy",},"order":1,}, + {"id":{"name":"node_feedback_output","path":"scripts/node_feedback_output/node_feedback_output.yy",},"order":2,}, {"id":{"name":"sh_blur_directional","path":"shaders/sh_blur_directional/sh_blur_directional.yy",},"order":15,}, {"id":{"name":"node_processor","path":"scripts/node_processor/node_processor.yy",},"order":8,}, {"id":{"name":"animation_controller","path":"scripts/animation_controller/animation_controller.yy",},"order":1,}, - {"id":{"name":"s_node_shadow","path":"sprites/s_node_shadow/s_node_shadow.yy",},"order":41,}, + {"id":{"name":"s_node_shadow","path":"sprites/s_node_shadow/s_node_shadow.yy",},"order":34,}, {"id":{"name":"sh_zigzag","path":"shaders/sh_zigzag/sh_zigzag.yy",},"order":11,}, {"id":{"name":"sh_color_remove","path":"shaders/sh_color_remove/sh_color_remove.yy",},"order":26,}, - {"id":{"name":"s_node_blur","path":"sprites/s_node_blur/s_node_blur.yy",},"order":103,}, + {"id":{"name":"s_node_blur","path":"sprites/s_node_blur/s_node_blur.yy",},"order":7,}, {"id":{"name":"textArea","path":"scripts/textArea/textArea.yy",},"order":20,}, - {"id":{"name":"s_node_gradient_4points","path":"sprites/s_node_gradient_4points/s_node_gradient_4points.yy",},"order":130,}, - {"id":{"name":"s_node_gradient_out","path":"sprites/s_node_gradient_out/s_node_gradient_out.yy",},"order":76,}, - {"id":{"name":"s_node_vec3","path":"sprites/s_node_vec3/s_node_vec3.yy",},"order":25,}, + {"id":{"name":"s_node_gradient_4points","path":"sprites/s_node_gradient_4points/s_node_gradient_4points.yy",},"order":2,}, + {"id":{"name":"s_node_gradient_out","path":"sprites/s_node_gradient_out/s_node_gradient_out.yy",},"order":8,}, + {"id":{"name":"s_node_vec3","path":"sprites/s_node_vec3/s_node_vec3.yy",},"order":7,}, {"id":{"name":"surface_valid","path":"scripts/surface_valid/surface_valid.yy",},"order":3,}, {"id":{"name":"sh_blur_radial","path":"shaders/sh_blur_radial/sh_blur_radial.yy",},"order":17,}, {"id":{"name":"node_VFX_renderer","path":"scripts/node_VFX_renderer/node_VFX_renderer.yy",},"order":5,}, - {"id":{"name":"s_node_invert","path":"sprites/s_node_invert/s_node_invert.yy",},"order":65,}, - {"id":{"name":"node_array_get","path":"scripts/node_array_get/node_array_get.yy",},"order":14,}, + {"id":{"name":"s_node_invert","path":"sprites/s_node_invert/s_node_invert.yy",},"order":25,}, + {"id":{"name":"node_array_get","path":"scripts/node_array_get/node_array_get.yy",},"order":10,}, {"id":{"name":"sh_grid","path":"shaders/sh_grid/sh_grid.yy",},"order":14,}, {"id":{"name":"sh_twirl","path":"shaders/sh_twirl/sh_twirl.yy",},"order":3,}, - {"id":{"name":"s_node_shape","path":"sprites/s_node_shape/s_node_shape.yy",},"order":40,}, + {"id":{"name":"s_node_shape","path":"sprites/s_node_shape/s_node_shape.yy",},"order":14,}, {"id":{"name":"string_formatting","path":"scripts/string_formatting/string_formatting.yy",},"order":7,}, {"id":{"name":"node_level_selector","path":"scripts/node_level_selector/node_level_selector.yy",},"order":39,}, {"id":{"name":"node_posterize","path":"scripts/node_posterize/node_posterize.yy",},"order":10,}, {"id":{"name":"o_dialog_image_array_edit","path":"objects/o_dialog_image_array_edit/o_dialog_image_array_edit.yy",},"order":0,}, {"id":{"name":"s_ui_base_white","path":"sprites/s_ui_base_white/s_ui_base_white.yy",},"order":2,}, + {"id":{"name":"s_node_array_range","path":"sprites/s_node_array_range/s_node_array_range.yy",},"order":14,}, {"id":{"name":"node_blur","path":"scripts/node_blur/node_blur.yy",},"order":16,}, - {"id":{"name":"s_node_loop","path":"sprites/s_node_loop/s_node_loop.yy",},"order":4,}, + {"id":{"name":"s_node_loop","path":"sprites/s_node_loop/s_node_loop.yy",},"order":5,}, {"id":{"name":"node_zigzag","path":"scripts/node_zigzag/node_zigzag.yy",},"order":12,}, {"id":{"name":"preset_data","path":"scripts/preset_data/preset_data.yy",},"order":7,}, {"id":{"name":"_f_h5","path":"fonts/_f_h5/_f_h5.yy",},"order":2,}, {"id":{"name":"node_color","path":"scripts/node_color/node_color.yy",},"order":0,}, - {"id":{"name":"node_surface_data","path":"scripts/node_surface_data/node_surface_data.yy",},"order":10,}, + {"id":{"name":"node_string_split","path":"scripts/node_string_split/node_string_split.yy",},"order":14,}, + {"id":{"name":"node_surface_data","path":"scripts/node_surface_data/node_surface_data.yy",},"order":4,}, {"id":{"name":"load_palette","path":"scripts/load_palette/load_palette.yy",},"order":3,}, {"id":{"name":"sh_alpha_cutoff","path":"shaders/sh_alpha_cutoff/sh_alpha_cutoff.yy",},"order":25,}, {"id":{"name":"checkbox","path":"scripts/checkbox/checkbox.yy",},"order":7,}, - {"id":{"name":"s_node_particle","path":"sprites/s_node_particle/s_node_particle.yy",},"order":53,}, - {"id":{"name":"s_node_color_remove","path":"sprites/s_node_color_remove/s_node_color_remove.yy",},"order":92,}, + {"id":{"name":"s_node_particle","path":"sprites/s_node_particle/s_node_particle.yy",},"order":12,}, + {"id":{"name":"s_node_color_remove","path":"sprites/s_node_color_remove/s_node_color_remove.yy",},"order":6,}, {"id":{"name":"node_mirror","path":"scripts/node_mirror/node_mirror.yy",},"order":3,}, {"id":{"name":"node_corner","path":"scripts/node_corner/node_corner.yy",},"order":35,}, {"id":{"name":"vertex_function","path":"scripts/vertex_function/vertex_function.yy",},"order":0,}, @@ -172,16 +181,15 @@ {"id":{"name":"sh_seperate_shape_index","path":"shaders/sh_seperate_shape_index/sh_seperate_shape_index.yy",},"order":0,}, {"id":{"name":"node_registry","path":"scripts/node_registry/node_registry.yy",},"order":5,}, {"id":{"name":"sh_checkerboard","path":"shaders/sh_checkerboard/sh_checkerboard.yy",},"order":12,}, - {"id":{"name":"node_character","path":"scripts/node_character/node_character.yy",},"order":9,}, + {"id":{"name":"node_unicode","path":"scripts/node_unicode/node_unicode.yy",},"order":3,}, {"id":{"name":"draw_set_text","path":"scripts/draw_set_text/draw_set_text.yy",},"order":1,}, - {"id":{"name":"s_node_array","path":"sprites/s_node_array/s_node_array.yy",},"order":108,}, - {"id":{"name":"s_node_warp","path":"sprites/s_node_warp/s_node_warp.yy",},"order":23,}, + {"id":{"name":"s_node_array","path":"sprites/s_node_array/s_node_array.yy",},"order":10,}, + {"id":{"name":"s_node_warp","path":"sprites/s_node_warp/s_node_warp.yy",},"order":9,}, {"id":{"name":"color_function","path":"scripts/color_function/color_function.yy",},"order":9,}, {"id":{"name":"node_color_data","path":"scripts/node_color_data/node_color_data.yy",},"order":4,}, {"id":{"name":"node_noise_ani","path":"scripts/node_noise_ani/node_noise_ani.yy",},"order":5,}, - {"id":{"name":"s_node_vfx_turb","path":"sprites/s_node_vfx_turb/s_node_vfx_turb.yy",},"order":122,}, - {"id":{"name":"s_node_transform","path":"sprites/s_node_transform/s_node_transform.yy",},"order":30,}, - {"id":{"name":"node_canvas","path":"scripts/node_canvas/node_canvas.yy",},"order":6,}, + {"id":{"name":"s_node_transform","path":"sprites/s_node_transform/s_node_transform.yy",},"order":8,}, + {"id":{"name":"node_canvas","path":"scripts/node_canvas/node_canvas.yy",},"order":5,}, {"id":{"name":"node_display_image","path":"scripts/node_display_image/node_display_image.yy",},"order":4,}, {"id":{"name":"node_chromatic_aberration","path":"scripts/node_chromatic_aberration/node_chromatic_aberration.yy",},"order":45,}, {"id":{"name":"node_pin","path":"scripts/node_pin/node_pin.yy",},"order":2,}, @@ -189,37 +197,38 @@ {"id":{"name":"sh_skew","path":"shaders/sh_skew/sh_skew.yy",},"order":6,}, {"id":{"name":"node_VFX_effect_destroy","path":"scripts/node_VFX_effect_destroy/node_VFX_effect_destroy.yy",},"order":14,}, {"id":{"name":"sh_bw","path":"shaders/sh_bw/sh_bw.yy",},"order":1,}, - {"id":{"name":"s_node_vfx_attract","path":"sprites/s_node_vfx_attract/s_node_vfx_attract.yy",},"order":125,}, {"id":{"name":"real_comparison","path":"scripts/real_comparison/real_comparison.yy",},"order":1,}, - {"id":{"name":"s_node_stripe","path":"sprites/s_node_stripe/s_node_stripe.yy",},"order":36,}, + {"id":{"name":"s_node_stripe","path":"sprites/s_node_stripe/s_node_stripe.yy",},"order":16,}, {"id":{"name":"sh_grey_alpha","path":"shaders/sh_grey_alpha/sh_grey_alpha.yy",},"order":10,}, {"id":{"name":"sh_normal","path":"shaders/sh_normal/sh_normal.yy",},"order":1,}, - {"id":{"name":"s_node_time_map","path":"sprites/s_node_time_map/s_node_time_map.yy",},"order":33,}, + {"id":{"name":"s_node_time_map","path":"sprites/s_node_time_map/s_node_time_map.yy",},"order":37,}, {"id":{"name":"node_crop","path":"scripts/node_crop/node_crop.yy",},"order":8,}, {"id":{"name":"buttonPalette","path":"scripts/buttonPalette/buttonPalette.yy",},"order":6,}, - {"id":{"name":"s_node_wiggler","path":"sprites/s_node_wiggler/s_node_wiggler.yy",},"order":21,}, + {"id":{"name":"s_node_wiggler","path":"sprites/s_node_wiggler/s_node_wiggler.yy",},"order":2,}, {"id":{"name":"sh_edge_detect","path":"shaders/sh_edge_detect/sh_edge_detect.yy",},"order":34,}, - {"id":{"name":"s_node_area","path":"sprites/s_node_area/s_node_area.yy",},"order":109,}, + {"id":{"name":"s_node_area","path":"sprites/s_node_area/s_node_area.yy",},"order":0,}, {"id":{"name":"type_conversion","path":"scripts/type_conversion/type_conversion.yy",},"order":8,}, {"id":{"name":"node_keyframe","path":"scripts/node_keyframe/node_keyframe.yy",},"order":4,}, {"id":{"name":"ac_flash","path":"animcurves/ac_flash/ac_flash.yy",},"order":0,}, {"id":{"name":"o_dialog_drag_folder","path":"objects/o_dialog_drag_folder/o_dialog_drag_folder.yy",},"order":2,}, {"id":{"name":"node_VFX_effect_repel","path":"scripts/node_VFX_effect_repel/node_VFX_effect_repel.yy",},"order":11,}, - {"id":{"name":"s_node_alpha_cut","path":"sprites/s_node_alpha_cut/s_node_alpha_cut.yy",},"order":111,}, + {"id":{"name":"s_node_alpha_cut","path":"sprites/s_node_alpha_cut/s_node_alpha_cut.yy",},"order":1,}, {"id":{"name":"node_VFX_effect_attract","path":"scripts/node_VFX_effect_attract/node_VFX_effect_attract.yy",},"order":10,}, + {"id":{"name":"s_node_text_splice","path":"sprites/s_node_text_splice/s_node_text_splice.yy",},"order":17,}, {"id":{"name":"sh_blend_multiply_alpha","path":"shaders/sh_blend_multiply_alpha/sh_blend_multiply_alpha.yy",},"order":4,}, {"id":{"name":"draw_sprite_ext_override","path":"scripts/draw_sprite_ext_override/draw_sprite_ext_override.yy",},"order":9,}, + {"id":{"name":"node_array_add","path":"scripts/node_array_add/node_array_add.yy",},"order":9,}, {"id":{"name":"node_noise_cell","path":"scripts/node_noise_cell/node_noise_cell.yy",},"order":2,}, {"id":{"name":"node_noise","path":"scripts/node_noise/node_noise.yy",},"order":17,}, {"id":{"name":"mtl_reader","path":"scripts/mtl_reader/mtl_reader.yy",},"order":6,}, {"id":{"name":"sh_scale2x","path":"shaders/sh_scale2x/sh_scale2x.yy",},"order":31,}, {"id":{"name":"ds_priority","path":"scripts/ds_priority/ds_priority.yy",},"order":3,}, - {"id":{"name":"node_vector","path":"scripts/node_vector/node_vector.yy",},"order":2,}, + {"id":{"name":"node_vector","path":"scripts/node_vector/node_vector.yy",},"order":0,}, {"id":{"name":"node_palette","path":"scripts/node_palette/node_palette.yy",},"order":2,}, {"id":{"name":"buttonColor","path":"scripts/buttonColor/buttonColor.yy",},"order":3,}, {"id":{"name":"notification_system","path":"scripts/notification_system/notification_system.yy",},"order":6,}, {"id":{"name":"node_color_from_hsv","path":"scripts/node_color_from_hsv/node_color_from_hsv.yy",},"order":6,}, - {"id":{"name":"s_node_image_copy","path":"sprites/s_node_image_copy/s_node_image_copy.yy",},"order":0,}, + {"id":{"name":"s_node_image_copy","path":"sprites/s_node_image_copy/s_node_image_copy.yy",},"order":6,}, {"id":{"name":"node_grid_tri","path":"scripts/node_grid_tri/node_grid_tri.yy",},"order":21,}, {"id":{"name":"window_command_hook","path":"extensions/window_command_hook/window_command_hook.yy",},"order":6,}, {"id":{"name":"slider","path":"scripts/slider/slider.yy",},"order":15,}, @@ -227,20 +236,23 @@ {"id":{"name":"sh_grid_hex","path":"shaders/sh_grid_hex/sh_grid_hex.yy",},"order":21,}, {"id":{"name":"node_data","path":"scripts/node_data/node_data.yy",},"order":1,}, {"id":{"name":"node_wiggler","path":"scripts/node_wiggler/node_wiggler.yy",},"order":2,}, - {"id":{"name":"s_node_checker","path":"sprites/s_node_checker/s_node_checker.yy",},"order":98,}, - {"id":{"name":"s_node_grid_noise","path":"sprites/s_node_grid_noise/s_node_grid_noise.yy",},"order":72,}, + {"id":{"name":"s_node_checker","path":"sprites/s_node_checker/s_node_checker.yy",},"order":0,}, + {"id":{"name":"s_node_grid_noise","path":"sprites/s_node_grid_noise/s_node_grid_noise.yy",},"order":5,}, {"id":{"name":"o_dialog_preview_grid","path":"objects/o_dialog_preview_grid/o_dialog_preview_grid.yy",},"order":0,}, - {"id":{"name":"node_image_gif","path":"scripts/node_image_gif/node_image_gif.yy",},"order":7,}, + {"id":{"name":"node_image_gif","path":"scripts/node_image_gif/node_image_gif.yy",},"order":6,}, {"id":{"name":"o_dialog_anim_time_scaler","path":"objects/o_dialog_anim_time_scaler/o_dialog_anim_time_scaler.yy",},"order":0,}, {"id":{"name":"sh_blend_screen_alpha","path":"shaders/sh_blend_screen_alpha/sh_blend_screen_alpha.yy",},"order":6,}, {"id":{"name":"boneObject","path":"scripts/boneObject/boneObject.yy",},"order":0,}, {"id":{"name":"node_color_remove","path":"scripts/node_color_remove/node_color_remove.yy",},"order":38,}, - {"id":{"name":"s_node_grid","path":"sprites/s_node_grid/s_node_grid.yy",},"order":73,}, + {"id":{"name":"s_node_grid","path":"sprites/s_node_grid/s_node_grid.yy",},"order":3,}, {"id":{"name":"node_perlin","path":"scripts/node_perlin/node_perlin.yy",},"order":1,}, + {"id":{"name":"node_feedback_input","path":"scripts/node_feedback_input/node_feedback_input.yy",},"order":1,}, {"id":{"name":"o_dialog_add_multiple_images","path":"objects/o_dialog_add_multiple_images/o_dialog_add_multiple_images.yy",},"order":0,}, {"id":{"name":"assets_data","path":"scripts/assets_data/assets_data.yy",},"order":0,}, {"id":{"name":"sh_color_adjust","path":"shaders/sh_color_adjust/sh_color_adjust.yy",},"order":2,}, {"id":{"name":"surface_get_palette","path":"scripts/surface_get_palette/surface_get_palette.yy",},"order":2,}, + {"id":{"name":"sh_pixel_sort","path":"shaders/sh_pixel_sort/sh_pixel_sort.yy",},"order":41,}, + {"id":{"name":"s_node_vfx_destroy","path":"sprites/s_node_vfx_destroy/s_node_vfx_destroy.yy",},"order":7,}, {"id":{"name":"sh_texture_remap","path":"shaders/sh_texture_remap/sh_texture_remap.yy",},"order":28,}, {"id":{"name":"ds_list","path":"scripts/ds_list/ds_list.yy",},"order":1,}, {"id":{"name":"o_dialog_gradient","path":"objects/o_dialog_gradient/o_dialog_gradient.yy",},"order":1,}, @@ -248,19 +260,16 @@ {"id":{"name":"o_dialog_file_name","path":"objects/o_dialog_file_name/o_dialog_file_name.yy",},"order":0,}, {"id":{"name":"panel_animation","path":"scripts/panel_animation/panel_animation.yy",},"order":4,}, {"id":{"name":"sh_gradient","path":"shaders/sh_gradient/sh_gradient.yy",},"order":17,}, - {"id":{"name":"s_node_zigzag","path":"sprites/s_node_zigzag/s_node_zigzag.yy",},"order":20,}, - {"id":{"name":"s_node_vfx_spawn","path":"sprites/s_node_vfx_spawn/s_node_vfx_spawn.yy",},"order":129,}, + {"id":{"name":"s_node_zigzag","path":"sprites/s_node_zigzag/s_node_zigzag.yy",},"order":18,}, {"id":{"name":"sh_glow","path":"shaders/sh_glow/sh_glow.yy",},"order":39,}, {"id":{"name":"sh_posterize","path":"shaders/sh_posterize/sh_posterize.yy",},"order":22,}, - {"id":{"name":"s_node_mirror","path":"sprites/s_node_mirror/s_node_mirror.yy",},"order":60,}, + {"id":{"name":"s_node_mirror","path":"sprites/s_node_mirror/s_node_mirror.yy",},"order":3,}, {"id":{"name":"node_VFX_spawner","path":"scripts/node_VFX_spawner/node_VFX_spawner.yy",},"order":2,}, {"id":{"name":"libfilesystem","path":"extensions/libfilesystem/libfilesystem.yy",},"order":3,}, {"id":{"name":"sh_color_replace","path":"shaders/sh_color_replace/sh_color_replace.yy",},"order":4,}, {"id":{"name":"rotator","path":"scripts/rotator/rotator.yy",},"order":11,}, - {"id":{"name":"s_node_vfx_wind","path":"sprites/s_node_vfx_wind/s_node_vfx_wind.yy",},"order":120,}, - {"id":{"name":"s_node_edge_detect","path":"sprites/s_node_edge_detect/s_node_edge_detect.yy",},"order":2,}, + {"id":{"name":"s_node_edge_detect","path":"sprites/s_node_edge_detect/s_node_edge_detect.yy",},"order":20,}, {"id":{"name":"node_grid_hex","path":"scripts/node_grid_hex/node_grid_hex.yy",},"order":22,}, - {"id":{"name":"s_node_vfx","path":"sprites/s_node_vfx/s_node_vfx.yy",},"order":127,}, {"id":{"name":"node_blur_radial","path":"scripts/node_blur_radial/node_blur_radial.yy",},"order":29,}, {"id":{"name":"node_bloom","path":"scripts/node_bloom/node_bloom.yy",},"order":15,}, {"id":{"name":"sh_bevel","path":"shaders/sh_bevel/sh_bevel.yy",},"order":3,}, @@ -271,9 +280,10 @@ {"id":{"name":"_node_VFX_effector","path":"scripts/_node_VFX_effector/_node_VFX_effector.yy",},"order":1,}, {"id":{"name":"areaBox","path":"scripts/areaBox/areaBox.yy",},"order":1,}, {"id":{"name":"o_dialog_preset","path":"objects/o_dialog_preset/o_dialog_preset.yy",},"order":1,}, - {"id":{"name":"s_node_erode","path":"sprites/s_node_erode/s_node_erode.yy",},"order":81,}, + {"id":{"name":"s_node_erode","path":"sprites/s_node_erode/s_node_erode.yy",},"order":21,}, {"id":{"name":"node_particle","path":"scripts/node_particle/node_particle.yy",},"order":19,}, {"id":{"name":"level_histogram","path":"scripts/level_histogram/level_histogram.yy",},"order":1,}, + {"id":{"name":"node_array_range","path":"scripts/node_array_range/node_array_range.yy",},"order":12,}, {"id":{"name":"o_dialog_graph_grid","path":"objects/o_dialog_graph_grid/o_dialog_graph_grid.yy",},"order":3,}, {"id":{"name":"append_function","path":"scripts/append_function/append_function.yy",},"order":1,}, {"id":{"name":"obj_reader","path":"scripts/obj_reader/obj_reader.yy",},"order":2,}, @@ -285,19 +295,20 @@ {"id":{"name":"draw_circle_border","path":"scripts/draw_circle_border/draw_circle_border.yy",},"order":3,}, {"id":{"name":"sliderRange","path":"scripts/sliderRange/sliderRange.yy",},"order":16,}, {"id":{"name":"point_rect_overlap","path":"scripts/point_rect_overlap/point_rect_overlap.yy",},"order":2,}, - {"id":{"name":"s_node_bevel","path":"sprites/s_node_bevel/s_node_bevel.yy",},"order":105,}, + {"id":{"name":"s_node_bevel","path":"sprites/s_node_bevel/s_node_bevel.yy",},"order":4,}, {"id":{"name":"color_selector","path":"scripts/color_selector/color_selector.yy",},"order":4,}, {"id":{"name":"node_VFX_effect_turbulence","path":"scripts/node_VFX_effect_turbulence/node_VFX_effect_turbulence.yy",},"order":13,}, {"id":{"name":"sh_seperate_shape_counter","path":"shaders/sh_seperate_shape_counter/sh_seperate_shape_counter.yy",},"order":1,}, - {"id":{"name":"s_node_stack","path":"sprites/s_node_stack/s_node_stack.yy",},"order":37,}, + {"id":{"name":"s_node_stack","path":"sprites/s_node_stack/s_node_stack.yy",},"order":35,}, {"id":{"name":"node_timeline_preview","path":"scripts/node_timeline_preview/node_timeline_preview.yy",},"order":2,}, + {"id":{"name":"s_node_vfx_output","path":"sprites/s_node_vfx_output/s_node_vfx_output.yy",},"order":11,}, {"id":{"name":"sh_greyscale","path":"shaders/sh_greyscale/sh_greyscale.yy",},"order":6,}, {"id":{"name":"node_global","path":"scripts/node_global/node_global.yy",},"order":3,}, {"id":{"name":"sh_outline","path":"shaders/sh_outline/sh_outline.yy",},"order":20,}, {"id":{"name":"node_checkerboard","path":"scripts/node_checkerboard/node_checkerboard.yy",},"order":13,}, {"id":{"name":"node_gradient_output","path":"scripts/node_gradient_output/node_gradient_output.yy",},"order":3,}, - {"id":{"name":"display_refresh","path":"scripts/display_refresh/display_refresh.yy",},"order":18,}, - {"id":{"name":"s_node_grey_alpha","path":"sprites/s_node_grey_alpha/s_node_grey_alpha.yy",},"order":75,}, + {"id":{"name":"display_refresh","path":"scripts/display_refresh/display_refresh.yy",},"order":17,}, + {"id":{"name":"s_node_grey_alpha","path":"sprites/s_node_grey_alpha/s_node_grey_alpha.yy",},"order":23,}, {"id":{"name":"o_dialog_color_selector","path":"objects/o_dialog_color_selector/o_dialog_color_selector.yy",},"order":0,}, {"id":{"name":"sh_bloom_pass1","path":"shaders/sh_bloom_pass1/sh_bloom_pass1.yy",},"order":0,}, {"id":{"name":"node_seperate_shapes","path":"scripts/node_seperate_shapes/node_seperate_shapes.yy",},"order":9,}, @@ -306,46 +317,52 @@ {"id":{"name":"sh_posterize_palette","path":"shaders/sh_posterize_palette/sh_posterize_palette.yy",},"order":8,}, {"id":{"name":"collection_data","path":"scripts/collection_data/collection_data.yy",},"order":8,}, {"id":{"name":"safe_operation","path":"scripts/safe_operation/safe_operation.yy",},"order":6,}, - {"id":{"name":"s_node_array_get","path":"sprites/s_node_array_get/s_node_array_get.yy",},"order":6,}, - {"id":{"name":"s_node_BW","path":"sprites/s_node_BW/s_node_BW.yy",},"order":100,}, + {"id":{"name":"s_node_array_get","path":"sprites/s_node_array_get/s_node_array_get.yy",},"order":11,}, + {"id":{"name":"s_node_BW","path":"sprites/s_node_BW/s_node_BW.yy",},"order":11,}, + {"id":{"name":"s_node_vfx_spawn","path":"sprites/s_node_vfx_spawn/s_node_vfx_spawn.yy",},"order":2,}, {"id":{"name":"node_shadow","path":"scripts/node_shadow/node_shadow.yy",},"order":17,}, - {"id":{"name":"s_node_color_data","path":"sprites/s_node_color_data/s_node_color_data.yy",},"order":96,}, + {"id":{"name":"s_node_color_data","path":"sprites/s_node_color_data/s_node_color_data.yy",},"order":2,}, {"id":{"name":"node_simple_shape","path":"scripts/node_simple_shape/node_simple_shape.yy",},"order":4,}, {"id":{"name":"node_atlas","path":"scripts/node_atlas/node_atlas.yy",},"order":42,}, + {"id":{"name":"s_node_feedback","path":"sprites/s_node_feedback/s_node_feedback.yy",},"order":3,}, {"id":{"name":"getGradientData","path":"scripts/getGradientData/getGradientData.yy",},"order":1,}, - {"id":{"name":"s_node_character","path":"sprites/s_node_character/s_node_character.yy",},"order":99,}, + {"id":{"name":"s_node_character","path":"sprites/s_node_character/s_node_character.yy",},"order":1,}, {"id":{"name":"node_glow","path":"scripts/node_glow/node_glow.yy",},"order":14,}, {"id":{"name":"sh_blend_min","path":"shaders/sh_blend_min/sh_blend_min.yy",},"order":9,}, {"id":{"name":"node_polar","path":"scripts/node_polar/node_polar.yy",},"order":5,}, - {"id":{"name":"s_node_twirl","path":"sprites/s_node_twirl/s_node_twirl.yy",},"order":29,}, + {"id":{"name":"s_node_twirl","path":"sprites/s_node_twirl/s_node_twirl.yy",},"order":39,}, {"id":{"name":"sh_2d_light","path":"shaders/sh_2d_light/sh_2d_light.yy",},"order":11,}, {"id":{"name":"node_image_animated","path":"scripts/node_image_animated/node_image_animated.yy",},"order":2,}, - {"id":{"name":"s_node_solid","path":"sprites/s_node_solid/s_node_solid.yy",},"order":39,}, + {"id":{"name":"s_node_solid","path":"sprites/s_node_solid/s_node_solid.yy",},"order":15,}, {"id":{"name":"string_hexadecimal","path":"scripts/string_hexadecimal/string_hexadecimal.yy",},"order":1,}, + {"id":{"name":"s_node_camera","path":"sprites/s_node_camera/s_node_camera.yy",},"order":3,}, {"id":{"name":"sh_vertex_pnt_light","path":"shaders/sh_vertex_pnt_light/sh_vertex_pnt_light.yy",},"order":4,}, {"id":{"name":"surfaceBox","path":"scripts/surfaceBox/surfaceBox.yy",},"order":22,}, - {"id":{"name":"s_node_array_length","path":"sprites/s_node_array_length/s_node_array_length.yy",},"order":107,}, + {"id":{"name":"s_node_array_length","path":"sprites/s_node_array_length/s_node_array_length.yy",},"order":12,}, {"id":{"name":"string_splice","path":"scripts/string_splice/string_splice.yy",},"order":5,}, + {"id":{"name":"s_node_vfx_input","path":"sprites/s_node_vfx_input/s_node_vfx_input.yy",},"order":12,}, {"id":{"name":"sh_seperate_shape_ite","path":"shaders/sh_seperate_shape_ite/sh_seperate_shape_ite.yy",},"order":2,}, {"id":{"name":"o_main","path":"objects/o_main/o_main.yy",},"order":1,}, {"id":{"name":"area_function","path":"scripts/area_function/area_function.yy",},"order":2,}, - {"id":{"name":"s_node_statistic","path":"sprites/s_node_statistic/s_node_statistic.yy",},"order":3,}, + {"id":{"name":"s_node_statistic","path":"sprites/s_node_statistic/s_node_statistic.yy",},"order":4,}, {"id":{"name":"sh_blend_alpha_addition","path":"shaders/sh_blend_alpha_addition/sh_blend_alpha_addition.yy",},"order":13,}, {"id":{"name":"node_VFX_effect_vortex","path":"scripts/node_VFX_effect_vortex/node_VFX_effect_vortex.yy",},"order":12,}, - {"id":{"name":"s_node_noise","path":"sprites/s_node_noise/s_node_noise.yy",},"order":118,}, + {"id":{"name":"s_node_skew","path":"sprites/s_node_skew/s_node_skew.yy",},"order":11,}, + {"id":{"name":"s_node_feedback_input","path":"sprites/s_node_feedback_input/s_node_feedback_input.yy",},"order":10,}, + {"id":{"name":"s_node_noise","path":"sprites/s_node_noise/s_node_noise.yy",},"order":8,}, {"id":{"name":"sh_erode","path":"shaders/sh_erode/sh_erode.yy",},"order":19,}, {"id":{"name":"node_pixel_cloud","path":"scripts/node_pixel_cloud/node_pixel_cloud.yy",},"order":15,}, {"id":{"name":"sh_alpha_grey","path":"shaders/sh_alpha_grey/sh_alpha_grey.yy",},"order":9,}, {"id":{"name":"s_transparent","path":"sprites/s_transparent/s_transparent.yy",},"order":1,}, {"id":{"name":"o_dialog_animation","path":"objects/o_dialog_animation/o_dialog_animation.yy",},"order":1,}, - {"id":{"name":"s_node_grid_tri","path":"sprites/s_node_grid_tri/s_node_grid_tri.yy",},"order":131,}, + {"id":{"name":"s_node_grid_tri","path":"sprites/s_node_grid_tri/s_node_grid_tri.yy",},"order":6,}, {"id":{"name":"_f_p0b","path":"fonts/_f_p0b/_f_p0b.yy",},"order":5,}, {"id":{"name":"o_dialog_keyframe_curve","path":"objects/o_dialog_keyframe_curve/o_dialog_keyframe_curve.yy",},"order":2,}, - {"id":{"name":"s_node_vec2","path":"sprites/s_node_vec2/s_node_vec2.yy",},"order":26,}, + {"id":{"name":"s_node_vec2","path":"sprites/s_node_vec2/s_node_vec2.yy",},"order":6,}, {"id":{"name":"node_twirl","path":"scripts/node_twirl/node_twirl.yy",},"order":30,}, - {"id":{"name":"s_node_decorner","path":"sprites/s_node_decorner/s_node_decorner.yy",},"order":10,}, - {"id":{"name":"s_node_gradient","path":"sprites/s_node_gradient/s_node_gradient.yy",},"order":77,}, - {"id":{"name":"s_node_padding","path":"sprites/s_node_padding/s_node_padding.yy",},"order":55,}, + {"id":{"name":"s_node_decorner","path":"sprites/s_node_decorner/s_node_decorner.yy",},"order":15,}, + {"id":{"name":"s_node_gradient","path":"sprites/s_node_gradient/s_node_gradient.yy",},"order":1,}, + {"id":{"name":"s_node_padding","path":"sprites/s_node_padding/s_node_padding.yy",},"order":4,}, {"id":{"name":"sh_blend_add_alpha_adj","path":"shaders/sh_blend_add_alpha_adj/sh_blend_add_alpha_adj.yy",},"order":2,}, {"id":{"name":"node_text","path":"scripts/node_text/node_text.yy",},"order":10,}, {"id":{"name":"panel_collection","path":"scripts/panel_collection/panel_collection.yy",},"order":7,}, @@ -353,49 +370,50 @@ {"id":{"name":"vectorRangeBox","path":"scripts/vectorRangeBox/vectorRangeBox.yy",},"order":19,}, {"id":{"name":"sh_draw_vertex_aa","path":"shaders/sh_draw_vertex_aa/sh_draw_vertex_aa.yy",},"order":0,}, {"id":{"name":"sh_outline_only","path":"shaders/sh_outline_only/sh_outline_only.yy",},"order":40,}, - {"id":{"name":"s_node_destray","path":"sprites/s_node_destray/s_node_destray.yy",},"order":9,}, + {"id":{"name":"s_node_destray","path":"sprites/s_node_destray/s_node_destray.yy",},"order":16,}, {"id":{"name":"node_color_sampler","path":"scripts/node_color_sampler/node_color_sampler.yy",},"order":1,}, {"id":{"name":"ase_reader","path":"scripts/ase_reader/ase_reader.yy",},"order":1,}, - {"id":{"name":"node_path","path":"scripts/node_path/node_path.yy",},"order":8,}, + {"id":{"name":"node_path","path":"scripts/node_path/node_path.yy",},"order":2,}, {"id":{"name":"node_wrap_area","path":"scripts/node_wrap_area/node_wrap_area.yy",},"order":11,}, {"id":{"name":"sh_seperate_shape_sep","path":"shaders/sh_seperate_shape_sep/sh_seperate_shape_sep.yy",},"order":3,}, - {"id":{"name":"s_node_image_sequence","path":"sprites/s_node_image_sequence/s_node_image_sequence.yy",},"order":68,}, + {"id":{"name":"s_node_image_sequence","path":"sprites/s_node_image_sequence/s_node_image_sequence.yy",},"order":8,}, {"id":{"name":"sh_content_sampler","path":"shaders/sh_content_sampler/sh_content_sampler.yy",},"order":34,}, {"id":{"name":"s_menu_white","path":"sprites/s_menu_white/s_menu_white.yy",},"order":1,}, {"id":{"name":"color_loader","path":"scripts/color_loader/color_loader.yy",},"order":13,}, {"id":{"name":"node_trail","path":"scripts/node_trail/node_trail.yy",},"order":6,}, {"id":{"name":"byte_reader","path":"scripts/byte_reader/byte_reader.yy",},"order":0,}, + {"id":{"name":"s_node_loop_output","path":"sprites/s_node_loop_output/s_node_loop_output.yy",},"order":13,}, {"id":{"name":"_p_dialog","path":"objects/_p_dialog/_p_dialog.yy",},"order":0,}, {"id":{"name":"render_data","path":"scripts/render_data/render_data.yy",},"order":2,}, {"id":{"name":"_node_VFX","path":"scripts/_node_VFX/_node_VFX.yy",},"order":4,}, - {"id":{"name":"s_node_blur_directional","path":"sprites/s_node_blur_directional/s_node_blur_directional.yy",},"order":8,}, + {"id":{"name":"s_node_blur_directional","path":"sprites/s_node_blur_directional/s_node_blur_directional.yy",},"order":9,}, {"id":{"name":"distance_to_line","path":"scripts/distance_to_line/distance_to_line.yy",},"order":0,}, - {"id":{"name":"s_node_sprite_sheet","path":"sprites/s_node_sprite_sheet/s_node_sprite_sheet.yy",},"order":38,}, - {"id":{"name":"s_node_grid_hex","path":"sprites/s_node_grid_hex/s_node_grid_hex.yy",},"order":132,}, - {"id":{"name":"s_node_3d_cube","path":"sprites/s_node_3d_cube/s_node_3d_cube.yy",},"order":116,}, - {"id":{"name":"s_node_sampler","path":"sprites/s_node_sampler/s_node_sampler.yy",},"order":46,}, + {"id":{"name":"s_node_sprite_sheet","path":"sprites/s_node_sprite_sheet/s_node_sprite_sheet.yy",},"order":1,}, + {"id":{"name":"s_node_grid_hex","path":"sprites/s_node_grid_hex/s_node_grid_hex.yy",},"order":4,}, + {"id":{"name":"s_node_3d_cube","path":"sprites/s_node_3d_cube/s_node_3d_cube.yy",},"order":0,}, + {"id":{"name":"s_node_sampler","path":"sprites/s_node_sampler/s_node_sampler.yy",},"order":10,}, {"id":{"name":"node_animate_curve","path":"scripts/node_animate_curve/node_animate_curve.yy",},"order":0,}, {"id":{"name":"curve_bounce_function","path":"scripts/curve_bounce_function/curve_bounce_function.yy",},"order":1,}, - {"id":{"name":"s_node_number","path":"sprites/s_node_number/s_node_number.yy",},"order":12,}, + {"id":{"name":"s_node_number","path":"sprites/s_node_number/s_node_number.yy",},"order":9,}, {"id":{"name":"gif_reader","path":"scripts/gif_reader/gif_reader.yy",},"order":4,}, - {"id":{"name":"s_node_vfx_vortex","path":"sprites/s_node_vfx_vortex/s_node_vfx_vortex.yy",},"order":121,}, {"id":{"name":"_f_p3","path":"fonts/_f_p3/_f_p3.yy",},"order":7,}, {"id":{"name":"node_group_input","path":"scripts/node_group_input/node_group_input.yy",},"order":1,}, {"id":{"name":"draw_rect_border","path":"scripts/draw_rect_border/draw_rect_border.yy",},"order":6,}, {"id":{"name":"node_composite","path":"scripts/node_composite/node_composite.yy",},"order":4,}, - {"id":{"name":"s_node_greyscale","path":"sprites/s_node_greyscale/s_node_greyscale.yy",},"order":74,}, + {"id":{"name":"s_node_greyscale","path":"sprites/s_node_greyscale/s_node_greyscale.yy",},"order":24,}, {"id":{"name":"sh_dilate","path":"shaders/sh_dilate/sh_dilate.yy",},"order":4,}, {"id":{"name":"node_image_sequence","path":"scripts/node_image_sequence/node_image_sequence.yy",},"order":1,}, {"id":{"name":"s_menu_transparent","path":"sprites/s_menu_transparent/s_menu_transparent.yy",},"order":0,}, {"id":{"name":"key_press","path":"scripts/key_press/key_press.yy",},"order":0,}, {"id":{"name":"sh_mirror","path":"shaders/sh_mirror/sh_mirror.yy",},"order":0,}, {"id":{"name":"sh_cell_noise_random","path":"shaders/sh_cell_noise_random/sh_cell_noise_random.yy",},"order":6,}, - {"id":{"name":"node_iteration_input","path":"scripts/node_iteration_input/node_iteration_input.yy",},"order":2,}, - {"id":{"name":"s_node_atlas","path":"sprites/s_node_atlas/s_node_atlas.yy",},"order":106,}, + {"id":{"name":"node_iterator_input","path":"scripts/node_iterator_input/node_iterator_input.yy",},"order":2,}, + {"id":{"name":"s_node_atlas","path":"sprites/s_node_atlas/s_node_atlas.yy",},"order":3,}, {"id":{"name":"node_normal","path":"scripts/node_normal/node_normal.yy",},"order":1,}, - {"id":{"name":"s_node_glow","path":"sprites/s_node_glow/s_node_glow.yy",},"order":78,}, - {"id":{"name":"s_node_condition","path":"sprites/s_node_condition/s_node_condition.yy",},"order":11,}, - {"id":{"name":"node_array_length","path":"scripts/node_array_length/node_array_length.yy",},"order":13,}, + {"id":{"name":"s_node_glow","path":"sprites/s_node_glow/s_node_glow.yy",},"order":22,}, + {"id":{"name":"s_node_condition","path":"sprites/s_node_condition/s_node_condition.yy",},"order":0,}, + {"id":{"name":"s_node_vfx_repel","path":"sprites/s_node_vfx_repel/s_node_vfx_repel.yy",},"order":6,}, + {"id":{"name":"node_array_length","path":"scripts/node_array_length/node_array_length.yy",},"order":11,}, {"id":{"name":"node_erode","path":"scripts/node_erode/node_erode.yy",},"order":31,}, {"id":{"name":"node_wrap_mesh","path":"scripts/node_wrap_mesh/node_wrap_mesh.yy",},"order":7,}, {"id":{"name":"sh_blur_alpha","path":"shaders/sh_blur_alpha/sh_blur_alpha.yy",},"order":2,}, @@ -409,24 +427,23 @@ {"id":{"name":"node_blur_contrast","path":"scripts/node_blur_contrast/node_blur_contrast.yy",},"order":36,}, {"id":{"name":"s_fx_pixel","path":"sprites/s_fx_pixel/s_fx_pixel.yy",},"order":0,}, {"id":{"name":"gradients_function","path":"scripts/gradients_function/gradients_function.yy",},"order":0,}, - {"id":{"name":"s_node_border","path":"sprites/s_node_border/s_node_border.yy",},"order":101,}, + {"id":{"name":"s_node_border","path":"sprites/s_node_border/s_node_border.yy",},"order":10,}, {"id":{"name":"d3_vector","path":"scripts/d3_vector/d3_vector.yy",},"order":1,}, - {"id":{"name":"s_node_pin","path":"sprites/s_node_pin/s_node_pin.yy",},"order":16,}, - {"id":{"name":"s_node_9patch","path":"sprites/s_node_9patch/s_node_9patch.yy",},"order":112,}, - {"id":{"name":"s_node_blur_contrast","path":"sprites/s_node_blur_contrast/s_node_blur_contrast.yy",},"order":102,}, - {"id":{"name":"s_node_text","path":"sprites/s_node_text/s_node_text.yy",},"order":35,}, - {"id":{"name":"s_node_color_from_rgb","path":"sprites/s_node_color_from_rgb/s_node_color_from_rgb.yy",},"order":94,}, - {"id":{"name":"node_scale_algo","path":"scripts/node_scale_algo/node_scale_algo.yy",},"order":43,}, + {"id":{"name":"s_node_pin","path":"sprites/s_node_pin/s_node_pin.yy",},"order":2,}, + {"id":{"name":"s_node_9patch","path":"sprites/s_node_9patch/s_node_9patch.yy",},"order":0,}, + {"id":{"name":"s_node_blur_contrast","path":"sprites/s_node_blur_contrast/s_node_blur_contrast.yy",},"order":8,}, + {"id":{"name":"s_node_text_render","path":"sprites/s_node_text_render/s_node_text_render.yy",},"order":17,}, + {"id":{"name":"s_node_color_from_rgb","path":"sprites/s_node_color_from_rgb/s_node_color_from_rgb.yy",},"order":4,}, + {"id":{"name":"node_scale_algo","path":"scripts/node_scale_algo/node_scale_algo.yy",},"order":13,}, {"id":{"name":"mouse_input","path":"scripts/mouse_input/mouse_input.yy",},"order":1,}, {"id":{"name":"string_cut","path":"scripts/string_cut/string_cut.yy",},"order":4,}, - {"id":{"name":"s_node_vfx_destroy","path":"sprites/s_node_vfx_destroy/s_node_vfx_destroy.yy",},"order":124,}, {"id":{"name":"node_3d_prim_cylinder","path":"scripts/node_3d_prim_cylinder/node_3d_prim_cylinder.yy",},"order":7,}, {"id":{"name":"sh_gradient_points","path":"shaders/sh_gradient_points/sh_gradient_points.yy",},"order":19,}, + {"id":{"name":"s_node_vfx_turb","path":"sprites/s_node_vfx_turb/s_node_vfx_turb.yy",},"order":5,}, {"id":{"name":"node_grid","path":"scripts/node_grid/node_grid.yy",},"order":16,}, {"id":{"name":"node_edge_detect","path":"scripts/node_edge_detect/node_edge_detect.yy",},"order":44,}, {"id":{"name":"node_anim_priority","path":"scripts/node_anim_priority/node_anim_priority.yy",},"order":2,}, {"id":{"name":"s_texture_default","path":"sprites/s_texture_default/s_texture_default.yy",},"order":1,}, - {"id":{"name":"FileDropper","path":"extensions/FileDropper/FileDropper.yy",},"order":4,}, {"id":{"name":"directory_object","path":"scripts/directory_object/directory_object.yy",},"order":3,}, {"id":{"name":"node_dilate","path":"scripts/node_dilate/node_dilate.yy",},"order":34,}, {"id":{"name":"sh_stripe","path":"shaders/sh_stripe/sh_stripe.yy",},"order":10,}, @@ -435,86 +452,93 @@ {"id":{"name":"node_3d_transform","path":"scripts/node_3d_transform/node_3d_transform.yy",},"order":2,}, {"id":{"name":"node_display_text","path":"scripts/node_display_text/node_display_text.yy",},"order":3,}, {"id":{"name":"s_kenney","path":"sprites/s_kenney/s_kenney.yy",},"order":0,}, + {"id":{"name":"node_feedback","path":"scripts/node_feedback/node_feedback.yy",},"order":0,}, {"id":{"name":"sh_grid_noise","path":"shaders/sh_grid_noise/sh_grid_noise.yy",},"order":8,}, - {"id":{"name":"s_node_line","path":"sprites/s_node_line/s_node_line.yy",},"order":62,}, + {"id":{"name":"s_node_line","path":"sprites/s_node_line/s_node_line.yy",},"order":7,}, {"id":{"name":"panel_graph","path":"scripts/panel_graph/panel_graph.yy",},"order":1,}, {"id":{"name":"node_counter","path":"scripts/node_counter/node_counter.yy",},"order":1,}, {"id":{"name":"sh_color_picker_hue","path":"shaders/sh_color_picker_hue/sh_color_picker_hue.yy",},"order":3,}, - {"id":{"name":"s_node_timeline_preview","path":"sprites/s_node_timeline_preview/s_node_timeline_preview.yy",},"order":32,}, + {"id":{"name":"s_node_timeline_preview","path":"sprites/s_node_timeline_preview/s_node_timeline_preview.yy",},"order":2,}, {"id":{"name":"scrollPane","path":"scripts/scrollPane/scrollPane.yy",},"order":14,}, - {"id":{"name":"s_node_normal_light","path":"sprites/s_node_normal_light/s_node_normal_light.yy",},"order":18,}, + {"id":{"name":"s_node_normal_light","path":"sprites/s_node_normal_light/s_node_normal_light.yy",},"order":29,}, {"id":{"name":"node_transform_single","path":"scripts/node_transform_single/node_transform_single.yy",},"order":1,}, - {"id":{"name":"s_node_3d_extrude","path":"sprites/s_node_3d_extrude/s_node_3d_extrude.yy",},"order":119,}, - {"id":{"name":"s_node_vfx_render","path":"sprites/s_node_vfx_render/s_node_vfx_render.yy",},"order":128,}, + {"id":{"name":"s_node_3d_extrude","path":"sprites/s_node_3d_extrude/s_node_3d_extrude.yy",},"order":2,}, {"id":{"name":"buttonGradient","path":"scripts/buttonGradient/buttonGradient.yy",},"order":4,}, - {"id":{"name":"s_node_texture_map","path":"sprites/s_node_texture_map/s_node_texture_map.yy",},"order":34,}, - {"id":{"name":"s_node_level_selector","path":"sprites/s_node_level_selector/s_node_level_selector.yy",},"order":63,}, + {"id":{"name":"s_node_texture_map","path":"sprites/s_node_texture_map/s_node_texture_map.yy",},"order":36,}, + {"id":{"name":"s_node_level_selector","path":"sprites/s_node_level_selector/s_node_level_selector.yy",},"order":27,}, {"id":{"name":"random_function","path":"scripts/random_function/random_function.yy",},"order":3,}, - {"id":{"name":"s_node_input","path":"sprites/s_node_input/s_node_input.yy",},"order":66,}, + {"id":{"name":"s_node_input","path":"sprites/s_node_input/s_node_input.yy",},"order":6,}, {"id":{"name":"string_decimal","path":"scripts/string_decimal/string_decimal.yy",},"order":0,}, {"id":{"name":"_f_h3","path":"fonts/_f_h3/_f_h3.yy",},"order":3,}, - {"id":{"name":"s_node_math","path":"sprites/s_node_math/s_node_math.yy",},"order":61,}, - {"id":{"name":"node_iteration_index","path":"scripts/node_iteration_index/node_iteration_index.yy",},"order":4,}, + {"id":{"name":"s_node_math","path":"sprites/s_node_math/s_node_math.yy",},"order":2,}, + {"id":{"name":"node_iterator_index","path":"scripts/node_iterator_index/node_iterator_index.yy",},"order":4,}, {"id":{"name":"node_greyscale","path":"scripts/node_greyscale/node_greyscale.yy",},"order":19,}, {"id":{"name":"node_color_adjustment","path":"scripts/node_color_adjustment/node_color_adjustment.yy",},"order":5,}, {"id":{"name":"sh_ani_noise","path":"shaders/sh_ani_noise/sh_ani_noise.yy",},"order":4,}, {"id":{"name":"rectangle_collision","path":"scripts/rectangle_collision/rectangle_collision.yy",},"order":0,}, {"id":{"name":"sh_level","path":"shaders/sh_level/sh_level.yy",},"order":7,}, {"id":{"name":"sh_grid_tri","path":"shaders/sh_grid_tri/sh_grid_tri.yy",},"order":20,}, + {"id":{"name":"s_node_text","path":"sprites/s_node_text/s_node_text.yy",},"order":16,}, {"id":{"name":"panel_menu","path":"scripts/panel_menu/panel_menu.yy",},"order":2,}, {"id":{"name":"draw_line_round","path":"scripts/draw_line_round/draw_line_round.yy",},"order":4,}, {"id":{"name":"vectorBox","path":"scripts/vectorBox/vectorBox.yy",},"order":18,}, {"id":{"name":"sh_blend_normal_dim","path":"shaders/sh_blend_normal_dim/sh_blend_normal_dim.yy",},"order":10,}, {"id":{"name":"node_skew","path":"scripts/node_skew/node_skew.yy",},"order":12,}, - {"id":{"name":"s_node_canvas","path":"sprites/s_node_canvas/s_node_canvas.yy",},"order":15,}, + {"id":{"name":"s_node_canvas","path":"sprites/s_node_canvas/s_node_canvas.yy",},"order":3,}, {"id":{"name":"sh_remove_black","path":"shaders/sh_remove_black/sh_remove_black.yy",},"order":38,}, {"id":{"name":"path_parser","path":"scripts/path_parser/path_parser.yy",},"order":3,}, - {"id":{"name":"s_node_unicode","path":"sprites/s_node_unicode/s_node_unicode.yy",},"order":28,}, - {"id":{"name":"s_node_color_from_hsv","path":"sprites/s_node_color_from_hsv/s_node_color_from_hsv.yy",},"order":95,}, - {"id":{"name":"node_area","path":"scripts/node_area/node_area.yy",},"order":11,}, - {"id":{"name":"s_node_posterize","path":"sprites/s_node_posterize/s_node_posterize.yy",},"order":48,}, - {"id":{"name":"s_node_counter","path":"sprites/s_node_counter/s_node_counter.yy",},"order":87,}, - {"id":{"name":"s_node_image_sequence_to_anim","path":"sprites/s_node_image_sequence_to_anim/s_node_image_sequence_to_anim.yy",},"order":13,}, + {"id":{"name":"s_node_unicode","path":"sprites/s_node_unicode/s_node_unicode.yy",},"order":15,}, + {"id":{"name":"s_node_color_from_hsv","path":"sprites/s_node_color_from_hsv/s_node_color_from_hsv.yy",},"order":3,}, + {"id":{"name":"node_area","path":"scripts/node_area/node_area.yy",},"order":5,}, + {"id":{"name":"s_node_vfx_accel","path":"sprites/s_node_vfx_accel/s_node_vfx_accel.yy",},"order":0,}, + {"id":{"name":"s_node_posterize","path":"sprites/s_node_posterize/s_node_posterize.yy",},"order":31,}, + {"id":{"name":"s_node_vfx_vortex","path":"sprites/s_node_vfx_vortex/s_node_vfx_vortex.yy",},"order":4,}, + {"id":{"name":"s_node_array_add","path":"sprites/s_node_array_add/s_node_array_add.yy",},"order":13,}, + {"id":{"name":"s_node_counter","path":"sprites/s_node_counter/s_node_counter.yy",},"order":0,}, + {"id":{"name":"s_node_image_sequence_to_anim","path":"sprites/s_node_image_sequence_to_anim/s_node_image_sequence_to_anim.yy",},"order":9,}, + {"id":{"name":"_node_VFX_spawner","path":"scripts/_node_VFX_spawner/_node_VFX_spawner.yy",},"order":15,}, {"id":{"name":"draw_UI_scale","path":"scripts/draw_UI_scale/draw_UI_scale.yy",},"order":8,}, {"id":{"name":"path_function","path":"scripts/path_function/path_function.yy",},"order":4,}, - {"id":{"name":"s_node_RGB","path":"sprites/s_node_RGB/s_node_RGB.yy",},"order":47,}, - {"id":{"name":"s_node_export","path":"sprites/s_node_export/s_node_export.yy",},"order":80,}, + {"id":{"name":"s_node_RGB","path":"sprites/s_node_RGB/s_node_RGB.yy",},"order":32,}, + {"id":{"name":"s_node_export","path":"sprites/s_node_export/s_node_export.yy",},"order":0,}, {"id":{"name":"node_grey_to_alpha","path":"scripts/node_grey_to_alpha/node_grey_to_alpha.yy",},"order":23,}, {"id":{"name":"sh_blend_add","path":"shaders/sh_blend_add/sh_blend_add.yy",},"order":7,}, {"id":{"name":"node_de_stray","path":"scripts/node_de_stray/node_de_stray.yy",},"order":27,}, {"id":{"name":"sh_channel_G","path":"shaders/sh_channel_G/sh_channel_G.yy",},"order":12,}, - {"id":{"name":"s_node_dilate","path":"sprites/s_node_dilate/s_node_dilate.yy",},"order":84,}, + {"id":{"name":"s_node_dilate","path":"sprites/s_node_dilate/s_node_dilate.yy",},"order":17,}, {"id":{"name":"node_collection","path":"scripts/node_collection/node_collection.yy",},"order":0,}, {"id":{"name":"node_value","path":"scripts/node_value/node_value.yy",},"order":6,}, {"id":{"name":"draw_line_curve","path":"scripts/draw_line_curve/draw_line_curve.yy",},"order":5,}, - {"id":{"name":"s_node_vfx_accel","path":"sprites/s_node_vfx_accel/s_node_vfx_accel.yy",},"order":126,}, {"id":{"name":"sh_blend_screen","path":"shaders/sh_blend_screen/sh_blend_screen.yy",},"order":3,}, {"id":{"name":"node_group_output","path":"scripts/node_group_output/node_group_output.yy",},"order":2,}, - {"id":{"name":"s_node_scatter","path":"sprites/s_node_scatter/s_node_scatter.yy",},"order":43,}, + {"id":{"name":"s_node_scatter","path":"sprites/s_node_scatter/s_node_scatter.yy",},"order":19,}, {"id":{"name":"_f_p2","path":"fonts/_f_p2/_f_p2.yy",},"order":4,}, {"id":{"name":"button","path":"scripts/button/button.yy",},"order":2,}, {"id":{"name":"node_VFX_effector","path":"scripts/node_VFX_effector/node_VFX_effector.yy",},"order":8,}, {"id":{"name":"sh_blur_gaussian","path":"shaders/sh_blur_gaussian/sh_blur_gaussian.yy",},"order":1,}, - {"id":{"name":"s_node_3d_cylinder","path":"sprites/s_node_3d_cylinder/s_node_3d_cylinder.yy",},"order":115,}, - {"id":{"name":"s_node_vec_split","path":"sprites/s_node_vec_split/s_node_vec_split.yy",},"order":27,}, + {"id":{"name":"s_node_3d_cylinder","path":"sprites/s_node_3d_cylinder/s_node_3d_cylinder.yy",},"order":1,}, + {"id":{"name":"s_node_vec_split","path":"sprites/s_node_vec_split/s_node_vec_split.yy",},"order":5,}, {"id":{"name":"paddingBox","path":"scripts/paddingBox/paddingBox.yy",},"order":9,}, {"id":{"name":"_f_p1","path":"fonts/_f_p1/_f_p1.yy",},"order":1,}, {"id":{"name":"curve_bezier_function","path":"scripts/curve_bezier_function/curve_bezier_function.yy",},"order":0,}, - {"id":{"name":"s_node_image_animation","path":"sprites/s_node_image_animation/s_node_image_animation.yy",},"order":70,}, + {"id":{"name":"s_node_image_animation","path":"sprites/s_node_image_animation/s_node_image_animation.yy",},"order":5,}, + {"id":{"name":"s_node_feedback_output","path":"sprites/s_node_feedback_output/s_node_feedback_output.yy",},"order":9,}, {"id":{"name":"draw_line_dashed","path":"scripts/draw_line_dashed/draw_line_dashed.yy",},"order":7,}, {"id":{"name":"regex","path":"scripts/regex/regex.yy",},"order":0,}, {"id":{"name":"node_invert","path":"scripts/node_invert/node_invert.yy",},"order":41,}, - {"id":{"name":"s_node_path","path":"sprites/s_node_path/s_node_path.yy",},"order":51,}, + {"id":{"name":"s_node_path","path":"sprites/s_node_path/s_node_path.yy",},"order":3,}, {"id":{"name":"node_level","path":"scripts/node_level/node_level.yy",},"order":12,}, {"id":{"name":"o_dialog_warning","path":"objects/o_dialog_warning/o_dialog_warning.yy",},"order":14,}, + {"id":{"name":"s_node_group_output","path":"sprites/s_node_group_output/s_node_group_output.yy",},"order":15,}, {"id":{"name":"string_scale","path":"scripts/string_scale/string_scale.yy",},"order":6,}, - {"id":{"name":"s_node_image","path":"sprites/s_node_image/s_node_image.yy",},"order":71,}, + {"id":{"name":"s_node_image","path":"sprites/s_node_image/s_node_image.yy",},"order":4,}, {"id":{"name":"node_value_processor","path":"scripts/node_value_processor/node_value_processor.yy",},"order":7,}, + {"id":{"name":"s_node_group_input","path":"sprites/s_node_group_input/s_node_group_input.yy",},"order":16,}, {"id":{"name":"sample_projects","path":"scripts/sample_projects/sample_projects.yy",},"order":5,}, {"id":{"name":"load_function","path":"scripts/load_function/load_function.yy",},"order":2,}, {"id":{"name":"ds_map","path":"scripts/ds_map/ds_map.yy",},"order":0,}, - {"id":{"name":"s_node_3d_transform","path":"sprites/s_node_3d_transform/s_node_3d_transform.yy",},"order":113,}, - {"id":{"name":"s_node_output","path":"sprites/s_node_output/s_node_output.yy",},"order":56,}, + {"id":{"name":"s_node_3d_transform","path":"sprites/s_node_3d_transform/s_node_3d_transform.yy",},"order":4,}, + {"id":{"name":"s_node_output","path":"sprites/s_node_output/s_node_output.yy",},"order":7,}, {"id":{"name":"sh_atlas","path":"shaders/sh_atlas/sh_atlas.yy",},"order":30,}, {"id":{"name":"node_3d_extrude","path":"scripts/node_3d_extrude/node_3d_extrude.yy",},"order":9,}, {"id":{"name":"node_scale","path":"scripts/node_scale/node_scale.yy",},"order":9,}, @@ -523,32 +547,39 @@ {"id":{"name":"rangeBox","path":"scripts/rangeBox/rangeBox.yy",},"order":10,}, {"id":{"name":"node_VFX_effect_accelerate","path":"scripts/node_VFX_effect_accelerate/node_VFX_effect_accelerate.yy",},"order":9,}, {"id":{"name":"node_frame","path":"scripts/node_frame/node_frame.yy",},"order":1,}, - {"id":{"name":"s_node_scale_algo","path":"sprites/s_node_scale_algo/s_node_scale_algo.yy",},"order":44,}, + {"id":{"name":"s_node_scale_algo","path":"sprites/s_node_scale_algo/s_node_scale_algo.yy",},"order":7,}, {"id":{"name":"node_bw","path":"scripts/node_bw/node_bw.yy",},"order":20,}, {"id":{"name":"sh_de_corner","path":"shaders/sh_de_corner/sh_de_corner.yy",},"order":14,}, + {"id":{"name":"file_dropper","path":"extensions/file_dropper/file_dropper.yy",},"order":7,}, {"id":{"name":"sprite_loader","path":"scripts/sprite_loader/sprite_loader.yy",},"order":12,}, - {"id":{"name":"s_node_iterator_index","path":"sprites/s_node_iterator_index/s_node_iterator_index.yy",},"order":14,}, + {"id":{"name":"s_node_iterator_index","path":"sprites/s_node_iterator_index/s_node_iterator_index.yy",},"order":8,}, {"id":{"name":"node_de_corner","path":"scripts/node_de_corner/node_de_corner.yy",},"order":25,}, {"id":{"name":"preferences","path":"scripts/preferences/preferences.yy",},"order":4,}, {"id":{"name":"sh_solid","path":"shaders/sh_solid/sh_solid.yy",},"order":15,}, {"id":{"name":"timer_function","path":"scripts/timer_function/timer_function.yy",},"order":0,}, + {"id":{"name":"font_data","path":"scripts/font_data/font_data.yy",},"order":9,}, {"id":{"name":"animation_curve","path":"scripts/animation_curve/animation_curve.yy",},"order":0,}, - {"id":{"name":"s_node_color_replace","path":"sprites/s_node_color_replace/s_node_color_replace.yy",},"order":91,}, + {"id":{"name":"node_camera","path":"scripts/node_camera/node_camera.yy",},"order":3,}, + {"id":{"name":"s_node_color_replace","path":"sprites/s_node_color_replace/s_node_color_replace.yy",},"order":7,}, + {"id":{"name":"draw_surface_functions","path":"scripts/draw_surface_functions/draw_surface_functions.yy",},"order":4,}, {"id":{"name":"sh_mask","path":"shaders/sh_mask/sh_mask.yy",},"order":36,}, {"id":{"name":"node_alpha_to_grey","path":"scripts/node_alpha_to_grey/node_alpha_to_grey.yy",},"order":21,}, + {"id":{"name":"shell_helper","path":"scripts/shell_helper/shell_helper.yy",},"order":20,}, {"id":{"name":"o_dialog_preference","path":"objects/o_dialog_preference/o_dialog_preference.yy",},"order":15,}, {"id":{"name":"node_wrap","path":"scripts/node_wrap/node_wrap.yy",},"order":2,}, {"id":{"name":"o_dialog_about","path":"objects/o_dialog_about/o_dialog_about.yy",},"order":13,}, {"id":{"name":"dialog_management","path":"scripts/dialog_management/dialog_management.yy",},"order":5,}, + {"id":{"name":"draw_shapes","path":"scripts/draw_shapes/draw_shapes.yy",},"order":10,}, {"id":{"name":"node_channels","path":"scripts/node_channels/node_channels.yy",},"order":24,}, {"id":{"name":"execute_shell_simple_ext","path":"extensions/execute_shell_simple_ext/execute_shell_simple_ext.yy",},"order":5,}, {"id":{"name":"node_solid","path":"scripts/node_solid/node_solid.yy",},"order":14,}, - {"id":{"name":"node_iteration_output","path":"scripts/node_iteration_output/node_iteration_output.yy",},"order":3,}, + {"id":{"name":"node_iterator_output","path":"scripts/node_iterator_output/node_iterator_output.yy",},"order":3,}, {"id":{"name":"debug","path":"scripts/debug/debug.yy",},"order":9,}, {"id":{"name":"o_dialog_assetbox","path":"objects/o_dialog_assetbox/o_dialog_assetbox.yy",},"order":3,}, - {"id":{"name":"node_lerp","path":"scripts/node_lerp/node_lerp.yy",},"order":12,}, + {"id":{"name":"node_lerp","path":"scripts/node_lerp/node_lerp.yy",},"order":6,}, + {"id":{"name":"s_node_pixel_sort","path":"sprites/s_node_pixel_sort/s_node_pixel_sort.yy",},"order":40,}, {"id":{"name":"node_texture_remap","path":"scripts/node_texture_remap/node_texture_remap.yy",},"order":32,}, - {"id":{"name":"s_node_noise_aniso","path":"sprites/s_node_noise_aniso/s_node_noise_aniso.yy",},"order":59,}, + {"id":{"name":"s_node_noise_aniso","path":"sprites/s_node_noise_aniso/s_node_noise_aniso.yy",},"order":9,}, {"id":{"name":"sh_perlin_tiled","path":"shaders/sh_perlin_tiled/sh_perlin_tiled.yy",},"order":2,}, {"id":{"name":"sh_time_remap","path":"shaders/sh_time_remap/sh_time_remap.yy",},"order":2,}, {"id":{"name":"rm_main","path":"rooms/rm_main/rm_main.yy",},"order":0,}, @@ -587,20 +618,20 @@ {"resourceType":"GMFolder","resourceVersion":"1.0","name":"font","folderPath":"folders/font.yy","order":8,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"functions","folderPath":"folders/functions.yy","order":7,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"3d","folderPath":"folders/functions/3d.yy","order":0,}, - {"resourceType":"GMFolder","resourceVersion":"1.0","name":"animation","folderPath":"folders/functions/animation.yy","order":21,}, - {"resourceType":"GMFolder","resourceVersion":"1.0","name":"bones","folderPath":"folders/functions/bones.yy","order":20,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"animation","folderPath":"folders/functions/animation.yy","order":19,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"bones","folderPath":"folders/functions/bones.yy","order":18,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"compat","folderPath":"folders/functions/compat.yy","order":13,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"curve","folderPath":"folders/functions/curve.yy","order":12,}, - {"resourceType":"GMFolder","resourceVersion":"1.0","name":"debug","folderPath":"folders/functions/debug.yy","order":15,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"debug","folderPath":"folders/functions/debug.yy","order":14,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"draw","folderPath":"folders/functions/draw.yy","order":2,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"ds","folderPath":"folders/functions/ds.yy","order":5,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"eval","folderPath":"folders/functions/eval.yy","order":10,}, - {"resourceType":"GMFolder","resourceVersion":"1.0","name":"files","folderPath":"folders/functions/files.yy","order":16,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"files","folderPath":"folders/functions/files.yy","order":15,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"importers","folderPath":"folders/functions/importers.yy","order":6,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"inputs","folderPath":"folders/functions/inputs.yy","order":7,}, - {"resourceType":"GMFolder","resourceVersion":"1.0","name":"physics","folderPath":"folders/functions/physics.yy","order":14,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"physics","folderPath":"folders/functions/physics.yy","order":21,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"regex","folderPath":"folders/functions/regex.yy","order":11,}, - {"resourceType":"GMFolder","resourceVersion":"1.0","name":"shader","folderPath":"folders/functions/shader.yy","order":17,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"shader","folderPath":"folders/functions/shader.yy","order":16,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"string","folderPath":"folders/functions/string.yy","order":4,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"surface","folderPath":"folders/functions/surface.yy","order":8,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"value","folderPath":"folders/functions/value.yy","order":1,}, @@ -613,16 +644,29 @@ {"resourceType":"GMFolder","resourceVersion":"1.0","name":"3D","folderPath":"folders/nodes/data/3D.yy","order":7,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"animation","folderPath":"folders/nodes/data/animation.yy","order":5,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"color","folderPath":"folders/nodes/data/color.yy","order":9,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"feedback","folderPath":"folders/nodes/data/feedback.yy","order":14,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"filter","folderPath":"folders/nodes/data/filter.yy","order":1,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"generator","folderPath":"folders/nodes/data/generator.yy","order":4,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"group","folderPath":"folders/nodes/data/group.yy","order":6,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"input","folderPath":"folders/nodes/data/input.yy","order":0,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"iterate","folderPath":"folders/nodes/data/iterate.yy","order":10,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"node","folderPath":"folders/nodes/data/node.yy","order":11,}, - {"resourceType":"GMFolder","resourceVersion":"1.0","name":"number","folderPath":"folders/nodes/data/number.yy","order":3,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"render","folderPath":"folders/nodes/data/render.yy","order":2,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"transform","folderPath":"folders/nodes/data/transform.yy","order":8,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"value","folderPath":"folders/nodes/data/value.yy","order":3,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"VFX","folderPath":"folders/nodes/data/VFX.yy","order":13,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"icons","folderPath":"folders/nodes/icons.yy","order":6,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"3D","folderPath":"folders/nodes/icons/3D.yy","order":133,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"animation","folderPath":"folders/nodes/icons/animation.yy","order":135,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"color","folderPath":"folders/nodes/icons/color.yy","order":136,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"filter","folderPath":"folders/nodes/icons/filter.yy","order":141,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"generator","folderPath":"folders/nodes/icons/generator.yy","order":142,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"input","folderPath":"folders/nodes/icons/input.yy","order":143,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"node","folderPath":"folders/nodes/icons/node.yy","order":139,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"render","folderPath":"folders/nodes/icons/render.yy","order":140,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"transform","folderPath":"folders/nodes/icons/transform.yy","order":145,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"value","folderPath":"folders/nodes/icons/value.yy","order":144,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"VFX","folderPath":"folders/nodes/icons/VFX.yy","order":134,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"panels","folderPath":"folders/panels.yy","order":3,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"data","folderPath":"folders/panels/data.yy","order":9,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"inspectors","folderPath":"folders/panels/data/inspectors.yy","order":6,}, @@ -636,11 +680,10 @@ {"resourceType":"GMFolder","resourceVersion":"1.0","name":"generator","folderPath":"folders/shader/generator.yy","order":19,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"shape seperator","folderPath":"folders/shader/shape seperator.yy","order":35,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"sprites","folderPath":"folders/shader/sprites.yy","order":20,}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"warp","folderPath":"folders/shader/warp.yy","order":41,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"sprites","folderPath":"folders/sprites.yy","order":10,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"texture","folderPath":"folders/sprites/texture.yy","order":2,}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"widgets","folderPath":"folders/widgets.yy","order":6,}, - {"resourceType":"GMFolder","resourceVersion":"1.0","name":"VFX","folderPath":"folders/nodes/data/VFX.yy","order":13,}, - {"resourceType":"GMFolder","resourceVersion":"1.0","name":"warp","folderPath":"folders/shader/warp.yy","order":41,}, ], "AudioGroups": [ {"resourceType":"GMAudioGroup","resourceVersion":"1.3","name":"audiogroup_default","targets":-1,}, @@ -702,7 +745,6 @@ {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"5 Particle and effectors.pxc","CopyToMask":-1,"filePath":"datafiles/Getting started",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"4 Looping operation.pxc","CopyToMask":-1,"filePath":"datafiles/Getting started",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"2 animation.pxc","CopyToMask":-1,"filePath":"datafiles/Getting started",}, - {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"Assets.zip","CopyToMask":-1,"filePath":"datafiles/data",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"tile_0126.png","CopyToMask":-1,"filePath":"datafiles/Getting started",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"card_back.png","CopyToMask":-1,"filePath":"datafiles/Getting started",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"card_clubs_02.png","CopyToMask":-1,"filePath":"datafiles/Getting started",}, @@ -890,7 +932,6 @@ {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphic.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/UI",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_dialog_bg.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/UI",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_refresh_24.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, - {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"Collections.zip","CopyToMask":-1,"filePath":"datafiles/data",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_icon_tile_view_strip4.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_preset.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_animation_stretch.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, @@ -907,8 +948,10 @@ {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"graphics x2.ai","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_vfx.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"default.zip","CopyToMask":-1,"filePath":"datafiles/data/themes",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"Collections.zip","CopyToMask":-1,"filePath":"datafiles/data",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"Assets.zip","CopyToMask":-1,"filePath":"datafiles/data",}, ], "MetaData": { - "IDEVersion": "2022.11.0.54", + "IDEVersion": "2022.11.1.56", }, } \ No newline at end of file diff --git a/datafiles/data/Assets.zip b/datafiles/data/Assets.zip index 188a12c99..bd4423fdc 100644 Binary files a/datafiles/data/Assets.zip and b/datafiles/data/Assets.zip differ diff --git a/datafiles/data/Collections.zip b/datafiles/data/Collections.zip index 4240f292e..e7c20a7c9 100644 Binary files a/datafiles/data/Collections.zip and b/datafiles/data/Collections.zip differ diff --git a/datafiles/data/themes/default.zip b/datafiles/data/themes/default.zip index 95ad43f9e..22bb845e5 100644 Binary files a/datafiles/data/themes/default.zip and b/datafiles/data/themes/default.zip differ diff --git a/datafiles/data/themes/default/colors.json b/datafiles/data/themes/default/colors.json index c3b036404..fc2f69cf8 100644 --- a/datafiles/data/themes/default/colors.json +++ b/datafiles/data/themes/default/colors.json @@ -60,7 +60,9 @@ "node_blend_default": "blue_ltgrey", "node_blend_number": "cyan", "node_blend_input": ["white", "lime", 0.5], - "node_blend_loop": "lime", + "node_blend_loop": "cyan", + "node_blend_vfx": "lime", + "node_blend_feedback": "pink", "node_blend_collection": "yellow", "node_blend_canvas": ["white", "orange", 0.5], "node_path_overlay_control_line": "blue_grey", @@ -89,7 +91,6 @@ "panel_bg_clear_inner": "blue_dkblack", "panel_bg_clear": "blue_black", - "panel_graph_grid": "blue_dkgrey", "panel_graph_minimap_outline": "blue_dkgrey", "panel_graph_node_dimension": "blue_grey", "panel_graph_minimap_focus": "blue_ltgrey", diff --git a/extensions/FileDropper/FileDropper.dll b/extensions/FileDropper/FileDropper.dll deleted file mode 100644 index a52f3a608..000000000 Binary files a/extensions/FileDropper/FileDropper.dll and /dev/null differ diff --git a/extensions/FileDropper/FileDropper.dll.zip b/extensions/FileDropper/FileDropper.dll.zip deleted file mode 100644 index 6280e239b..000000000 Binary files a/extensions/FileDropper/FileDropper.dll.zip and /dev/null differ diff --git a/extensions/FileDropper/FileDropper.dylib b/extensions/FileDropper/FileDropper.dylib deleted file mode 100644 index 176234777..000000000 Binary files a/extensions/FileDropper/FileDropper.dylib and /dev/null differ diff --git a/extensions/FileDropper/FileDropper.dylib.zip b/extensions/FileDropper/FileDropper.dylib.zip deleted file mode 100644 index 4d82546e3..000000000 Binary files a/extensions/FileDropper/FileDropper.dylib.zip and /dev/null differ diff --git a/extensions/FileDropper/FileDropper.yy b/extensions/FileDropper/FileDropper.yy deleted file mode 100644 index 43f899fdb..000000000 --- a/extensions/FileDropper/FileDropper.yy +++ /dev/null @@ -1,91 +0,0 @@ -{ - "resourceType": "GMExtension", - "resourceVersion": "1.2", - "name": "FileDropper", - "optionsFile": "options.json", - "options": [], - "exportToGame": true, - "supportedTargets": 202375362, - "extensionVersion": "1.0.0", - "packageId": "", - "productId": "", - "author": "", - "date": "2019-05-07T04:22:47", - "license": "Free to use, also for commercial games.", - "description": "", - "helpfile": "", - "iosProps": false, - "tvosProps": false, - "androidProps": false, - "installdir": "", - "files": [ - {"resourceType":"GMExtensionFile","resourceVersion":"1.0","name":"","filename":"FileDropper.dll","origname":"extensions\\FileDropper.dll","init":"","final":"","kind":1,"uncompress":false,"functions":[ - {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"file_dnd_get_enabled","externalName":"file_dnd_get_enabled","kind":12,"help":"file_dnd_get_enabled()","hidden":false,"returnType":2,"argCount":-1,"args":[],"documentation":"",}, - {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"file_dnd_set_enabled","externalName":"file_dnd_set_enabled","kind":12,"help":"file_dnd_set_enabled(enable)","hidden":false,"returnType":2,"argCount":1,"args":[ - 2, - ],"documentation":"",}, - {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"file_dnd_get_files","externalName":"file_dnd_get_files","kind":12,"help":"file_dnd_get_files()","hidden":false,"returnType":1,"argCount":-1,"args":[],"documentation":"",}, - {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"file_dnd_set_files","externalName":"file_dnd_set_files","kind":12,"help":"file_dnd_set_files(pattern,allowfiles,allowdirs,allowmulti)","hidden":false,"returnType":2,"argCount":4,"args":[ - 1, - 2, - 2, - 2, - ],"documentation":"",}, - {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"file_dnd_get_hwnd","externalName":"file_dnd_get_hwnd","kind":1,"help":"file_dnd_get_hwnd()","hidden":false,"returnType":1,"argCount":0,"args":[],"documentation":"",}, - {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"file_dnd_set_hwnd","externalName":"file_dnd_set_hwnd","kind":1,"help":"file_dnd_set_hwnd(hwnd)","hidden":false,"returnType":2,"argCount":0,"args":[ - 1, - ],"documentation":"",}, - ],"constants":[ - {"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"hwnd_main","value":"window_handle()","hidden":false,}, - {"resourceType":"GMExtensionConstant","resourceVersion":"1.0","name":"hwnd_default","value":"pointer_null","hidden":false,}, - ],"ProxyFiles":[ - {"resourceType":"GMProxyFile","resourceVersion":"1.0","name":"FileDropper.dylib","TargetMask":1,}, - ],"copyToTargets":66,"usesRunnerInterface":false,"order":[ - {"name":"file_dnd_get_enabled","path":"extensions/FileDropper/FileDropper.yy",}, - {"name":"file_dnd_set_enabled","path":"extensions/FileDropper/FileDropper.yy",}, - {"name":"file_dnd_get_files","path":"extensions/FileDropper/FileDropper.yy",}, - {"name":"file_dnd_set_files","path":"extensions/FileDropper/FileDropper.yy",}, - {"name":"file_dnd_get_hwnd","path":"extensions/FileDropper/FileDropper.yy",}, - {"name":"file_dnd_set_hwnd","path":"extensions/FileDropper/FileDropper.yy",}, - ],}, - {"resourceType":"GMExtensionFile","resourceVersion":"1.0","name":"","filename":"FileDropper.dll.zip","origname":"extensions\\FileDropper.dll.zip","init":"","final":"","kind":4,"uncompress":false,"functions":[],"constants":[],"ProxyFiles":[],"copyToTargets":0,"usesRunnerInterface":false,"order":[],}, - {"resourceType":"GMExtensionFile","resourceVersion":"1.0","name":"","filename":"FileDropper.dylib.zip","origname":"extensions\\FileDropper.dylib.zip","init":"","final":"","kind":4,"uncompress":false,"functions":[],"constants":[],"ProxyFiles":[],"copyToTargets":0,"usesRunnerInterface":false,"order":[],}, - ], - "classname": "", - "tvosclassname": "", - "tvosdelegatename": "", - "iosdelegatename": "", - "androidclassname": "", - "sourcedir": "", - "androidsourcedir": "", - "macsourcedir": "", - "maccompilerflags": "", - "tvosmaccompilerflags": "", - "maclinkerflags": "", - "tvosmaclinkerflags": "", - "iosplistinject": "", - "tvosplistinject": "", - "androidinject": "", - "androidmanifestinject": "", - "androidactivityinject": "", - "gradleinject": "", - "androidcodeinjection": "", - "hasConvertedCodeInjection": true, - "ioscodeinjection": "", - "tvoscodeinjection": "", - "iosSystemFrameworkEntries": [], - "tvosSystemFrameworkEntries": [], - "iosThirdPartyFrameworkEntries": [], - "tvosThirdPartyFrameworkEntries": [], - "IncludedResources": [], - "androidPermissions": [], - "copyToTargets": 202375362, - "iosCocoaPods": "", - "tvosCocoaPods": "", - "iosCocoaPodDependencies": "", - "tvosCocoaPodDependencies": "", - "parent": { - "name": "Extensions", - "path": "folders/Extensions.yy", - }, -} \ No newline at end of file diff --git a/extensions/file_dropper/autogen.gml b/extensions/file_dropper/autogen.gml new file mode 100644 index 000000000..c11f79df2 --- /dev/null +++ b/extensions/file_dropper/autogen.gml @@ -0,0 +1,6 @@ +#define file_dropper_init +/// file_dropper_init()->bool +var _buf = file_dropper_prepare_buffer(8); +buffer_write(_buf, buffer_u64, int64(window_handle())); +return file_dropper_init_raw(buffer_get_address(_buf), 8); + diff --git a/extensions/file_dropper/file_dropper.cpp b/extensions/file_dropper/file_dropper.cpp new file mode 100644 index 000000000..f7ec9046f --- /dev/null +++ b/extensions/file_dropper/file_dropper.cpp @@ -0,0 +1,495 @@ +#pragma once +#include "stdafx.h" + +// As per http://help.yoyogames.com/hc/en-us/articles/216755258: +typedef int gml_ds_map; +// +typedef void (*gml_event_perform_async_t)(gml_ds_map map, int event_type); +typedef int (*gml_ds_map_create_ext_t)(int n, ...); +typedef bool (*gml_ds_map_set_double_t)(gml_ds_map map, char* key, double value); +typedef bool (*gml_ds_map_set_string_t)(gml_ds_map map, char* key, const char* value); +// +extern gml_event_perform_async_t gml_event_perform_async; +extern gml_ds_map_create_ext_t gml_ds_map_create_ext; +extern gml_ds_map_set_double_t gml_ds_map_set_double; +extern gml_ds_map_set_string_t gml_ds_map_set_string; +// +inline gml_ds_map gml_ds_map_create() { + return gml_ds_map_create_ext(0); +} + +// A wrapper for queuing async events for GML easier. +class gml_async_event { +private: + gml_ds_map map; +public: + gml_async_event() { + map = gml_ds_map_create(); + } + gml_async_event(char* type) { + map = gml_ds_map_create(); + gml_ds_map_set_string(map, "event_type", type); + } + ~gml_async_event() { + // + } + /// Dispatches this event and cleans up the map. + void dispatch(int kind) { + gml_event_perform_async(map, kind); + } + bool set(char* key, double value) { + return gml_ds_map_set_double(map, key, value); + } + bool set(char* key, const char* value) { + return gml_ds_map_set_string(map, key, value); + } +};#pragma once +#include "stdafx.h" +#include +#if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L) +#include +#endif +#include +#include +#include +using namespace std; + +#define dllg /* tag */ + +#if defined(WIN32) +#define dllx extern "C" __declspec(dllexport) +#elif defined(GNUC) +#define dllx extern "C" __attribute__ ((visibility("default"))) +#else +#define dllx extern "C" +#endif + +#ifdef _WINDEF_ +typedef HWND GAME_HWND; +#endif + +struct gml_buffer { +private: + uint8_t* _data; + int32_t _size; + int32_t _tell; +public: + gml_buffer() : _data(nullptr), _tell(0), _size(0) {} + gml_buffer(uint8_t* data, int32_t size, int32_t tell) : _data(data), _size(size), _tell(tell) {} + + inline uint8_t* data() { return _data; } + inline int32_t tell() { return _tell; } + inline int32_t size() { return _size; } +}; + +class gml_istream { + uint8_t* pos; + uint8_t* start; +public: + gml_istream(void* origin) : pos((uint8_t*)origin), start((uint8_t*)origin) {} + + template T read() { + static_assert(std::is_trivially_copyable_v, "T must be trivially copyable to be read"); + T result{}; + std::memcpy(&result, pos, sizeof(T)); + pos += sizeof(T); + return result; + } + + char* read_string() { + char* r = (char*)pos; + while (*pos != 0) pos++; + pos++; + return r; + } + + template std::vector read_vector() { + static_assert(std::is_trivially_copyable_v, "T must be trivially copyable to be read"); + auto n = read(); + std::vector vec(n); + std::memcpy(vec.data(), pos, sizeof(T) * n); + pos += sizeof(T) * n; + return vec; + } + + gml_buffer read_gml_buffer() { + auto _data = (uint8_t*)read(); + auto _size = read(); + auto _tell = read(); + return gml_buffer(_data, _size, _tell); + } + + #pragma region Tuples + #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L) + template + std::tuple read_tuple() { + std::tuple tup; + std::apply([this](auto&&... arg) { + (( + arg = this->read>() + ), ...); + }, tup); + return tup; + } + + template optional read_optional() { + if (read()) { + return read; + } else return {}; + } + #else + template std::tuple read_tuple() { + A a = read(); + B b = read(); + return std::tuple(a, b); + } + + template std::tuple read_tuple() { + A a = read(); + B b = read(); + C c = read(); + return std::tuple(a, b, c); + } + + template std::tuple read_tuple() { + A a = read(); + B b = read(); + C c = read(); + D d = read(); + return std::tuple(a, b, c, d); + } + #endif +}; + +class gml_ostream { + uint8_t* pos; + uint8_t* start; +public: + gml_ostream(void* origin) : pos((uint8_t*)origin), start((uint8_t*)origin) {} + + template void write(T val) { + static_assert(std::is_trivially_copyable_v, "T must be trivially copyable to be write"); + memcpy(pos, &val, sizeof(T)); + pos += sizeof(T); + } + + void write_string(const char* s) { + for (int i = 0; s[i] != 0; i++) write(s[i]); + write(0); + } + + template void write_vector(std::vector& vec) { + static_assert(std::is_trivially_copyable_v, "T must be trivially copyable to be write"); + auto n = vec.size(); + write(n); + memcpy(pos, vec.data(), n * sizeof(T)); + pos += n * sizeof(T); + } + + #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L) + template + void write_tuple(std::tuple tup) { + std::apply([this](auto&&... arg) { + (this->write(arg), ...); + }, tup); + } + + template void write_optional(optional& val) { + auto hasValue = val.has_value(); + write(hasValue); + if (hasValue) write(val.value()); + } + #else + template void write_tuple(std::tuple& tup) { + write(std::get<0>(tup)); + write(std::get<1>(tup)); + } + template void write_tuple(std::tuple& tup) { + write(std::get<0>(tup)); + write(std::get<1>(tup)); + write(std::get<2>(tup)); + } + template void write_tuple(std::tuple& tup) { + write(std::get<0>(tup)); + write(std::get<1>(tup)); + write(std::get<2>(tup)); + write(std::get<3>(tup)); + } + #endif +}; +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by file_dropper.rc + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 101 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#pragma once + +#ifdef _WINDOWS + #include "targetver.h" + + #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers + #include +#endif + +#if defined(WIN32) +#define dllx extern "C" __declspec(dllexport) +#elif defined(GNUC) +#define dllx extern "C" __attribute__ ((visibility("default"))) +#else +#define dllx extern "C" +#endif + +#define trace(...) { printf("[file_dropper:%d] ", __LINE__); printf(__VA_ARGS__); printf("\n"); fflush(stdout); } + +#include "gml_ext.h" + +// TODO: reference additional headers your program requires here#pragma once + +// Including SDKDDKVer.h defines the highest available Windows platform. + +// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and +// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. + +#include +#pragma once +#include "stdafx.h" + +template T* malloc_arr(size_t count) { + return (T*)malloc(sizeof(T) * count); +} +template T* realloc_arr(T* arr, size_t count) { + return (T*)realloc(arr, sizeof(T) * count); +} +template T* memcpy_arr(T* dst, const T* src, size_t count) { + return (T*)memcpy(dst, src, sizeof(T) * count); +} + +template class tiny_string_t { + C* _data = nullptr; + size_t _size = 0; + size_t _capacity = 0; +public: + tiny_string_t() {} + inline void init(size_t capacity = 32) { + _data = malloc_arr(capacity); + _size = 0; + _capacity = capacity; + } + inline void init(const C* val) { + init(4); + set(val); + } + + /// Returns current size, in characters (not including final NUL) + inline size_t size() { return _size; } + inline void setSize(size_t size) { _size = size; } + + inline bool empty() { + return _size == 0; + } + inline C* c_str() { + return _data; + } + inline C* prepare(size_t capacity) { + if (_capacity < capacity) { + auto new_data = realloc_arr(_data, capacity); + if (new_data == nullptr) { + trace("Failed to reallocate %zu bytes in tiny_string::prepare", sizeof(C) * capacity); + return nullptr; + } + _data = new_data; + _capacity = capacity; + } + return _data; + } + inline const C* set(const C* value, size_t len = SIZE_MAX) { + if (len == SIZE_MAX) { + const C* iter = value; + len = 1; + while (*iter) { iter++; len++; } + } + C* result = prepare(len); + memcpy_arr(result, value, len); + _size = len - 1; + return result; + } + // + inline void operator=(const C* value) { set(value); } + template inline void operator =(const C(&value)[size]) { set(value, size); } +}; +struct tiny_string : public tiny_string_t { +public: + inline char* conv(const wchar_t* wstr) { + auto size = WideCharToMultiByte(CP_UTF8, 0, wstr, -1, NULL, 0, NULL, NULL); + auto str = prepare(size); + WideCharToMultiByte(CP_UTF8, 0, wstr, -1, str, size, NULL, NULL); + setSize(size - 1); + return str; + } + + inline void operator=(const char* value) { set(value); } + template inline void operator =(const char(&value)[size]) { set(value, size); } +}; +struct tiny_wstring : public tiny_string_t { +public: + inline wchar_t* conv(const char* str) { + auto size = MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0); + auto wstr = prepare(size); + MultiByteToWideChar(CP_UTF8, 0, str, -1, wstr, size); + setSize(size - 1); + return wstr; + } + + inline void operator=(const wchar_t* value) { set(value); } + template inline void operator =(const wchar_t(&value)[size]) { set(value, size); } +};#include "gml_ext.h" +extern bool file_dropper_init(GAME_HWND hwnd); +dllx double file_dropper_init_raw(void* _in_ptr, double _in_ptr_size) { + gml_istream _in(_in_ptr); + GAME_HWND _arg_hwnd; + _arg_hwnd = (GAME_HWND)_in.read(); + return file_dropper_init(_arg_hwnd); +} + +// dllmain.cpp : Defines the entry point for the DLL application. +#include "stdafx.h" + +BOOL APIENTRY DllMain( HMODULE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved + ) +{ + switch (ul_reason_for_call) + { + case DLL_PROCESS_ATTACH: + case DLL_THREAD_ATTACH: + case DLL_THREAD_DETACH: + case DLL_PROCESS_DETACH: + break; + } + return TRUE; +} + +/// @author YellowAfterlife + +#include +#include "stdafx.h" +#include "gml_async_glue.h" +#include "tiny_string.h" + +static tiny_string utf8c; +static UINT GMDropTarget_refCount = 0; + +struct GMDropTarget : IDropTarget { + // Inherited via IDropTarget + virtual HRESULT __stdcall QueryInterface(REFIID riid, void** ppvObject) override { + if (IsEqualIID(riid, IID_IDropTarget) || IsEqualIID(riid, IID_IUnknown)) { + *ppvObject = this; + this->AddRef(); + return NOERROR; + } else { + *ppvObject = nullptr; + return E_NOINTERFACE; + } + } + virtual ULONG __stdcall AddRef(void) override { + return ++GMDropTarget_refCount; + } + virtual ULONG __stdcall Release(void) override { + return --GMDropTarget_refCount; + } + virtual HRESULT __stdcall DragEnter(IDataObject* pDataObj, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect) override { + return S_OK; + } + virtual HRESULT __stdcall DragOver(DWORD grfKeyState, POINTL pt, DWORD* pdwEffect) override { + return S_OK; + } + virtual HRESULT __stdcall DragLeave(void) override { + return S_OK; + } + virtual HRESULT __stdcall Drop(IDataObject* pDataObj, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect) override { + //trace("drop"); + FORMATETC formatEtc; + formatEtc.cfFormat = CF_HDROP; + formatEtc.dwAspect = DVASPECT_CONTENT; + formatEtc.lindex = -1; + formatEtc.ptd = NULL; + formatEtc.tymed = TYMED_HGLOBAL; + + STGMEDIUM medium; + auto hr = pDataObj->GetData(&formatEtc, &medium); + if (FAILED(hr)) return hr; + if (medium.tymed != TYMED_HGLOBAL) return S_OK; + + auto drop = (HDROP)medium.hGlobal; + auto fileCount = DragQueryFileW(drop, UINT32_MAX, NULL, 0); + //trace("fileCount=%d", fileCount); + for (auto k = 0u; k < fileCount; k++) { + auto nameLen = DragQueryFileW(drop, k, nullptr, 0); + if (nameLen == 0) continue; + + auto wname = malloc_arr(nameLen + 1); + DragQueryFile(drop, k, wname, nameLen + 1); + auto name = utf8c.conv(wname); + + gml_async_event e("file_drop"); + e.set("filename", name); + e.dispatch(75); // async system + delete wname; + } + return S_OK; + } +}; +static GMDropTarget* dropTarget = nullptr; + +dllg bool file_dropper_init(GAME_HWND hwnd) { + if (dropTarget != nullptr) return true; + + auto hr = OleInitialize(0); + if (hr != S_OK && hr != S_FALSE) { + trace("OleInitialize failed, hresult=0x%x", hr); + return false; + } + + dropTarget = new GMDropTarget(); + utf8c.init(); + hr = RegisterDragDrop(hwnd, dropTarget); + if (FAILED(hr)) trace("RegisterDragDrop failed, hresult=0x%x", hr); + return SUCCEEDED(hr); +} +#include "gml_async_glue.h" + +gml_event_perform_async_t gml_event_perform_async = nullptr; +gml_ds_map_create_ext_t gml_ds_map_create_ext = nullptr; +gml_ds_map_set_double_t gml_ds_map_set_double = nullptr; +gml_ds_map_set_string_t gml_ds_map_set_string = nullptr; + +// Called by GM on DLL init +dllx double RegisterCallbacks(void* f1, void* f2, void* f3, void* f4) { + gml_event_perform_async = (gml_event_perform_async_t)f1; + gml_ds_map_create_ext = (gml_ds_map_create_ext_t)f2; + gml_ds_map_set_double = (gml_ds_map_set_double_t)f3; + gml_ds_map_set_string = (gml_ds_map_set_string_t)f4; + return 0; +}// stdafx.cpp : source file that includes just the standard includes +// file_dropper.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + +// TODO: reference any additional headers you need in STDAFX.H +// and not in this file diff --git a/extensions/file_dropper/file_dropper.dll b/extensions/file_dropper/file_dropper.dll new file mode 100644 index 000000000..3d10f3b86 Binary files /dev/null and b/extensions/file_dropper/file_dropper.dll differ diff --git a/extensions/file_dropper/file_dropper.gml b/extensions/file_dropper/file_dropper.gml new file mode 100644 index 000000000..2d1eb7cb8 --- /dev/null +++ b/extensions/file_dropper/file_dropper.gml @@ -0,0 +1,13 @@ +#define file_dropper_prepare_buffer +/// (size:int)->buffer~ +var _size = argument0; +gml_pragma("global", "global.__file_dropper_buffer = undefined"); +var _buf = global.__file_dropper_buffer; +if (_buf == undefined) { + _buf = buffer_create(_size, buffer_grow, 1); + global.__file_dropper_buffer = _buf; +} else if (buffer_get_size(_buf) < _size) { + buffer_resize(_buf, _size); +} +buffer_seek(_buf, buffer_seek_start, 0); +return _buf; \ No newline at end of file diff --git a/extensions/file_dropper/file_dropper.yy b/extensions/file_dropper/file_dropper.yy new file mode 100644 index 000000000..2a476a53f --- /dev/null +++ b/extensions/file_dropper/file_dropper.yy @@ -0,0 +1,89 @@ +{ + "resourceType": "GMExtension", + "resourceVersion": "1.2", + "name": "file_dropper", + "optionsFile": "options.json", + "options": [], + "exportToGame": true, + "supportedTargets": 113497714299118, + "extensionVersion": "1.0.0", + "packageId": "", + "productId": "", + "author": "", + "date": "2019-12-12T01:34:29", + "license": "Proprietary", + "description": "", + "helpfile": "", + "iosProps": true, + "tvosProps": false, + "androidProps": true, + "installdir": "", + "files": [ + {"resourceType":"GMExtensionFile","resourceVersion":"1.0","name":"","filename":"file_dropper.dll","origname":"extensions\\file_dropper.dll","init":"","final":"","kind":1,"uncompress":false,"functions":[ + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"file_dropper_init_raw","externalName":"file_dropper_init_raw","kind":11,"help":"","hidden":true,"returnType":2,"argCount":2,"args":[ + 1, + 2, + ],"documentation":"",}, + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"RegisterCallbacks","externalName":"RegisterCallbacks","kind":11,"help":"","hidden":true,"returnType":2,"argCount":4,"args":[ + 1, + 1, + 1, + 1, + ],"documentation":"",}, + ],"constants":[],"ProxyFiles":[ + {"resourceType":"GMProxyFile","resourceVersion":"1.0","name":"file_dropper_x64.dll","TargetMask":6,}, + ],"copyToTargets":9223372036854775807,"usesRunnerInterface":false,"order":[ + {"name":"file_dropper_init_raw","path":"extensions/file_dropper/file_dropper.yy",}, + {"name":"RegisterCallbacks","path":"extensions/file_dropper/file_dropper.yy",}, + ],}, + {"resourceType":"GMExtensionFile","resourceVersion":"1.0","name":"","filename":"file_dropper.gml","origname":"extensions\\gml.gml","init":"","final":"","kind":2,"uncompress":false,"functions":[ + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"file_dropper_prepare_buffer","externalName":"file_dropper_prepare_buffer","kind":11,"help":"","hidden":true,"returnType":2,"argCount":1,"args":[ + 2, + ],"documentation":"",}, + ],"constants":[],"ProxyFiles":[],"copyToTargets":9223372036854775807,"usesRunnerInterface":false,"order":[ + {"name":"file_dropper_prepare_buffer","path":"extensions/file_dropper/file_dropper.yy",}, + ],}, + {"resourceType":"GMExtensionFile","resourceVersion":"1.0","name":"","filename":"autogen.gml","origname":"extensions\\autogen.gml","init":"","final":"","kind":2,"uncompress":false,"functions":[ + {"resourceType":"GMExtensionFunction","resourceVersion":"1.0","name":"file_dropper_init","externalName":"file_dropper_init","kind":2,"help":"file_dropper_init()->bool","hidden":false,"returnType":2,"argCount":0,"args":[],"documentation":"",}, + ],"constants":[],"ProxyFiles":[],"copyToTargets":-1,"usesRunnerInterface":false,"order":[ + {"name":"file_dropper_init","path":"extensions/file_dropper/file_dropper.yy",}, + ],}, + ], + "classname": "", + "tvosclassname": "", + "tvosdelegatename": "", + "iosdelegatename": "", + "androidclassname": "", + "sourcedir": "", + "androidsourcedir": "", + "macsourcedir": "", + "maccompilerflags": "", + "tvosmaccompilerflags": "", + "maclinkerflags": "", + "tvosmaclinkerflags": "", + "iosplistinject": "", + "tvosplistinject": "", + "androidinject": "", + "androidmanifestinject": "", + "androidactivityinject": "", + "gradleinject": "", + "androidcodeinjection": "", + "hasConvertedCodeInjection": true, + "ioscodeinjection": "", + "tvoscodeinjection": "", + "iosSystemFrameworkEntries": [], + "tvosSystemFrameworkEntries": [], + "iosThirdPartyFrameworkEntries": [], + "tvosThirdPartyFrameworkEntries": [], + "IncludedResources": [], + "androidPermissions": [], + "copyToTargets": 113497714299118, + "iosCocoaPods": "", + "tvosCocoaPods": "", + "iosCocoaPodDependencies": "", + "tvosCocoaPodDependencies": "", + "parent": { + "name": "Extensions", + "path": "folders/Extensions.yy", + }, +} \ No newline at end of file diff --git a/extensions/file_dropper/file_dropper_x64.dll b/extensions/file_dropper/file_dropper_x64.dll new file mode 100644 index 000000000..e8b47dd11 Binary files /dev/null and b/extensions/file_dropper/file_dropper_x64.dll differ diff --git a/objects/o_dialog_about/Create_0.gml b/objects/o_dialog_about/Create_0.gml index 7df14815a..25de3cd4e 100644 --- a/objects/o_dialog_about/Create_0.gml +++ b/objects/o_dialog_about/Create_0.gml @@ -16,6 +16,7 @@ event_inherited(); [ "Chromatic aberration shader", "jcant0n" ], [ "gif importer\nWindow commands\nExecute shell simple", "YellowAfterLife" ], [ "Triangle grid", "Farini" ], + [ "Pixel sort", "Ciphrd" ], ] sc_thank = new scrollPane(dialog_w - ui(64), thank_h, function(_y, _m) { diff --git a/objects/o_dialog_add_multiple_images/Create_0.gml b/objects/o_dialog_add_multiple_images/Create_0.gml index fb11b39b1..281bf0b58 100644 --- a/objects/o_dialog_add_multiple_images/Create_0.gml +++ b/objects/o_dialog_add_multiple_images/Create_0.gml @@ -13,11 +13,10 @@ event_inherited(); function setPath(path) { paths = path; - is_dir = directory_exists(path); + is_dir = directory_exists(path[0]); - if(is_dir) { + if(is_dir) dialog_h += ui(96); - } } cb_recursive = new checkBox(function(val) { dir_recursive = !dir_recursive; }); @@ -27,8 +26,8 @@ event_inherited(); #region nodes nodes = [ - nodeFind("Image"), - nodeFind("Image array"), - nodeFind("Animation"), + ALL_NODES[? "Node_Image"], + ALL_NODES[? "Node_Image_Sequence"], + ALL_NODES[? "Node_Image_Animated"], ]; #endregion \ No newline at end of file diff --git a/objects/o_dialog_add_multiple_images/Draw_64.gml b/objects/o_dialog_add_multiple_images/Draw_64.gml index 274ba8db9..0b7c01373 100644 --- a/objects/o_dialog_add_multiple_images/Draw_64.gml +++ b/objects/o_dialog_add_multiple_images/Draw_64.gml @@ -29,7 +29,7 @@ if !ready exit; if(sHOVER && point_in_rectangle(mouse_mx, mouse_my, xx, yy, xx + grid_width, yy + grid_size)) { draw_sprite_stretched_ext(THEME.node_active, 0, xx, yy, grid_size, grid_size, COLORS._main_accent, 1); if(mouse_press(mb_left, sFOCUS)) { - var path_arr = paths_to_array(paths, dir_recursive, dir_filter); + var path_arr = path_search(paths, dir_recursive, dir_filter); switch(i) { case 0 : for( var i = 0; i < array_length(path_arr); i++ ) { diff --git a/objects/o_dialog_add_node/Create_0.gml b/objects/o_dialog_add_node/Create_0.gml index b5bc9a7d2..c7c4b3e4e 100644 --- a/objects/o_dialog_add_node/Create_0.gml +++ b/objects/o_dialog_add_node/Create_0.gml @@ -11,7 +11,7 @@ event_inherited(); if(ADD_NODE_W == -1 || ADD_NODE_H == -1) { ADD_NODE_W = ui(532); - ADD_NODE_H = ui(346); + ADD_NODE_H = ui(400); } dialog_w = ADD_NODE_W; @@ -24,8 +24,11 @@ event_inherited(); anchor = ANCHOR.left | ANCHOR.top; - page_key = ADD_NODE_PAGE == ""? NODE_CATAGORY[| 3] : ADD_NODE_PAGE; - page = ALL_NODES[? page_key]; + function setPage(pageIndex) { + ADD_NODE_PAGE = pageIndex; + node_list = NODE_CATEGORY[| ADD_NODE_PAGE].list; + } + setPage(ADD_NODE_PAGE); function buildNode(_node, _param = "") { instance_destroy(); @@ -36,7 +39,7 @@ event_inherited(); var _inputs = 0, _outputs = 0; if(is_struct(_node) && instanceof(_node) == "NodeObject") { - _new_node = _node.build(node_target_x, node_target_y, _param); + _new_node = _node.build(node_target_x, node_target_y,, _param); if(!_new_node) return; _inputs = _new_node.inputs; _outputs = _new_node.outputs; @@ -102,54 +105,44 @@ event_inherited(); var hh = 0; var hg = ui(28); - var key = ds_map_find_first(ALL_NODES); var cnt = PANEL_GRAPH.getCurrentContext(); var context = cnt == -1? "" : instanceof(cnt); - for(var i = 0; i < ds_list_size(NODE_CATAGORY); i++) { - var key = NODE_CATAGORY[| i]; + for(var i = 0; i < ds_list_size(NODE_CATEGORY); i++) { + var cat = NODE_CATEGORY[| i]; + var name = cat.name; draw_set_text(f_p0, fa_left, fa_center, COLORS._main_text); - switch(key) { - case "Group" : - if(context != "Node_Group") continue; - draw_set_text(f_p0, fa_left, fa_center, COLORS._main_text_accent); - break; - case "Loop" : - if(context != "Node_Iterate") continue; - draw_set_text(f_p0, fa_left, fa_center, COLORS._main_text_accent); - break; - case "VFX" : - if(context != "Node_VFX_Group") continue; - draw_set_text(f_p0, fa_left, fa_center, COLORS._main_text_accent); - break; + if(cat.filter != "") { + if(context != cat.filter) { + if(ADD_NODE_PAGE == i) setPage(NODE_PAGE_DEFAULT); + continue; + } + draw_set_text(f_p0, fa_left, fa_center, COLORS._main_text_accent); } - if(key == page_key) { + if(i == ADD_NODE_PAGE) { draw_sprite_stretched(THEME.ui_panel_bg, 0, 0, _y + hh, ui(132), hg); } else if(sHOVER && point_in_rectangle(_m[0], _m[1], 0, _y + hh, ui(100), _y + hh + hg - 1)) { - draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, 0, _y + hh + ui(3), ui(103), hg - ui(6), c_white, 0.75); + draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, 0, _y + hh, ui(132), hg, c_white, 0.75); if(mouse_click(mb_left, sFOCUS)) { - page_key = key; - ADD_NODE_PAGE = key; - page = ALL_NODES[? page_key]; + setPage(i); content_pane.scroll_y = 0; content_pane.scroll_y_to = 0; } } - draw_text(ui(8), _y + hh + hg / 2, key); + draw_text(ui(8), _y + hh + hg / 2, name); hh += hg; } return hh; }); - content_pane = new scrollPane(dialog_w - ui(144), dialog_h - ui(66), function(_y, _m) { + content_pane = new scrollPane(dialog_w - ui(136), dialog_h - ui(66), function(_y, _m) { draw_clear_alpha(c_white, 0); - var nodes = page; - var node_count = ds_list_size(nodes); + var node_count = ds_list_size(node_list); var hh = 0; if(ADD_NODE_MODE == 0) { @@ -167,7 +160,7 @@ event_inherited(); for(var j = 0; j < col; j++) { var index = i * col + j; if(index < node_count) { - var _node = nodes[| index]; + var _node = node_list[| index]; if(!_node) continue; var _nx = grid_space + (grid_width + grid_space) * j; @@ -204,7 +197,7 @@ event_inherited(); hh += list_height; for(var i = 0; i < node_count; i++) { - var _node = nodes[| i]; + var _node = node_list[| i]; if(!_node) continue; if(i % 2) { @@ -242,13 +235,13 @@ event_inherited(); dialog_resizable = true; dialog_w_min = ui(200); dialog_h_min = ui(120); - dialog_w_max = ui(800); - dialog_h_max = ui(640); + dialog_w_max = ui(960); + dialog_h_max = ui(800); onResize = function() { catagory_pane.resize(ui(132), dialog_h - ui(66)); - content_pane.resize(dialog_w - ui(144), dialog_h - ui(66)); - search_pane.resize(dialog_w - ui(40), dialog_h - ui(66)); + content_pane.resize(dialog_w - ui(136), dialog_h - ui(66)); + search_pane.resize(dialog_w - ui(32), dialog_h - ui(66)); ADD_NODE_W = dialog_w; ADD_NODE_H = dialog_h; @@ -276,18 +269,15 @@ event_inherited(); var context = cnt == -1? "" : instanceof(cnt); var search_lower = string_lower(search_string); - for(var i = 0; i < ds_list_size(NODE_CATAGORY); i++) { - var key = NODE_CATAGORY[| i]; + for(var i = 0; i < ds_list_size(NODE_CATEGORY); i++) { + var cat = NODE_CATEGORY[| i]; - switch(key) { - case "Group" : if(context != "Node_Group") continue; break; - case "Loop" : if(context != "Node_Iterate") continue; break; - } + if(cat.filter != "" && context != cat.filter) + continue; - var _page = ALL_NODES[? key]; - - for(var j = 0; j < ds_list_size(_page); j++) { - var _node = _page[| j]; + var _content = cat.list; + for(var j = 0; j < ds_list_size(_content); j++) { + var _node = _content[| j]; if(!_node) continue; var match = string_pos(search_lower, string_lower(_node.name)) > 0; @@ -307,7 +297,7 @@ event_inherited(); searchCollection(search_list, search_string, false); } - search_pane = new scrollPane(dialog_w - ui(40), dialog_h - ui(66), function(_y, _m) { + search_pane = new scrollPane(dialog_w - ui(32), dialog_h - ui(66), function(_y, _m) { draw_clear_alpha(c_white, 0); var amo = ds_list_size(search_list); diff --git a/objects/o_dialog_scrollbox/Alarm_0.gml b/objects/o_dialog_scrollbox/Alarm_0.gml index a3061f84b..98919e16c 100644 --- a/objects/o_dialog_scrollbox/Alarm_0.gml +++ b/objects/o_dialog_scrollbox/Alarm_0.gml @@ -1,8 +1,9 @@ /// @description init #region pos var hght = line_height(f_p0, 8); - var hh = array_length(scrollbox.data_list) * hght; + var hh = array_length(scrollbox.data) * hght; - dialog_h = hh; + dialog_h = min(max_h, hh); + sc_content.resize(dialog_w, dialog_h); #endregion event_inherited(); \ No newline at end of file diff --git a/objects/o_dialog_scrollbox/Create_0.gml b/objects/o_dialog_scrollbox/Create_0.gml index 7a741690d..5ac935b44 100644 --- a/objects/o_dialog_scrollbox/Create_0.gml +++ b/objects/o_dialog_scrollbox/Create_0.gml @@ -2,6 +2,7 @@ event_inherited(); #region + max_h = 640; align = fa_center; draggable = false; destroy_on_click_out = true; @@ -9,4 +10,33 @@ event_inherited(); scrollbox = noone; anchor = ANCHOR.top | ANCHOR.left; + + sc_content = new scrollPane(0, 0, function(_y, _m) { + draw_clear_alpha(COLORS.panel_bg_clear, 0); + var hght = line_height(f_p0, 8); + var data = scrollbox.data; + var _h = array_length(data) * hght; + var _dw = sc_content.surface_w; + + for(var i = 0; i < array_length(data); i++) { + var _ly = _y + i * hght; + + if(sHOVER && point_in_rectangle(_m[0], _m[1], 0, _ly + 1, _dw, _ly + hght - 1)) { + draw_sprite_stretched_ext(THEME.textbox, 3, 0, _ly, _dw, hght, COLORS.dialog_menubox_highlight, 1); + + if(mouse_press(mb_left, sFOCUS)) { + scrollbox.onModify(i); + instance_destroy(); + } + } + + draw_set_text(f_p0, align, fa_center, COLORS._main_text); + if(align == fa_center) + draw_text_cut(_dw / 2, _ly + hght / 2, data[i], _dw); + else if(align == fa_left) + draw_text_cut(ui(8), _ly + hght / 2, data[i], _dw); + } + + return _h; + }); #endregion diff --git a/objects/o_dialog_scrollbox/Draw_64.gml b/objects/o_dialog_scrollbox/Draw_64.gml index 1b977eab4..df2ac7c74 100644 --- a/objects/o_dialog_scrollbox/Draw_64.gml +++ b/objects/o_dialog_scrollbox/Draw_64.gml @@ -1,25 +1,6 @@ /// @description init #region draw - var hght = line_height(f_p0, 8); - draw_sprite_stretched(THEME.textbox, 1, dialog_x, dialog_y, dialog_w, dialog_h); - - for(var i = 0; i < array_length(scrollbox.data_list); i++) { - var _ly = dialog_y + i * hght; - - if(sHOVER && point_in_rectangle(mouse_mx, mouse_my, dialog_x, _ly + 1, dialog_x + dialog_w, _ly + hght - 1)) { - draw_sprite_stretched_ext(THEME.textbox, 3, dialog_x, _ly, dialog_w, hght, COLORS.dialog_menubox_highlight, 1); - - if(mouse_press(mb_left, sFOCUS)) { - scrollbox.onModify(i); - instance_destroy(); - } - } - - draw_set_text(f_p0, align, fa_center, COLORS._main_text); - if(align == fa_center) - draw_text(dialog_x + dialog_w / 2, _ly + hght / 2, scrollbox.data_list[i]); - else if(align == fa_left) - draw_text(dialog_x + ui(8), _ly + hght / 2, scrollbox.data_list[i]); - } + sc_content.active = sHOVER; + sc_content.draw(dialog_x, dialog_y); #endregion \ No newline at end of file diff --git a/objects/o_dialog_splash/Create_0.gml b/objects/o_dialog_splash/Create_0.gml index 8352d7526..a61f7bfc6 100644 --- a/objects/o_dialog_splash/Create_0.gml +++ b/objects/o_dialog_splash/Create_0.gml @@ -14,7 +14,7 @@ event_inherited(); var y0 = dialog_y + ui(128); var y1 = dialog_y + dialog_h - ui(16); - sp_recent = new scrollPane(x1 - x0 - ui(12), y1 - y0, function(_y, _m) { + sp_recent = new scrollPane(x1 - x0 - ui(8), y1 - y0, function(_y, _m) { draw_clear_alpha(COLORS.panel_bg_clear_inner, 0); var ww = sp_recent.surface_w - ui(2); var hh = 0; @@ -54,7 +54,7 @@ event_inherited(); x0 = x1 + ui(16); x1 = dialog_x + dialog_w - ui(16); - sp_sample = new scrollPane(x1 - x0 - ui(12), y1 - y0, function(_y, _m) { + sp_sample = new scrollPane(x1 - x0 - ui(8), y1 - y0, function(_y, _m) { draw_clear_alpha(COLORS.panel_bg_clear_inner, 0); var hh = 0; var grid_heigh = ui(96); diff --git a/objects/o_main/Alarm_3.gml b/objects/o_main/Alarm_3.gml index 676ba33bc..85684b183 100644 --- a/objects/o_main/Alarm_3.gml +++ b/objects/o_main/Alarm_3.gml @@ -1,10 +1,4 @@ /// @description file drop #region drop PANEL_GRAPH.stepBegin(); - - if(PANEL_GRAPH.dropFile(file_dropping)) { - Render(false); - } else - load_file_path(file_dropping, true); - file_dropping = ""; #endregion diff --git a/objects/o_main/Create_0.gml b/objects/o_main/Create_0.gml index e90014310..910d1c281 100644 --- a/objects/o_main/Create_0.gml +++ b/objects/o_main/Create_0.gml @@ -59,47 +59,43 @@ #endregion #region file drop - file_dnd_set_hwnd(window_handle()); - file_dnd_set_enabled(true); - file_dnd_filelist = ""; - file_dropping = ""; - file_dnd_pattern = "*.*"; - file_dnd_allowfiles = true; - file_dnd_allowdirs = true; - file_dnd_allowmulti = true; + file_dropper_init(); + drop_path = []; - function load_file_path(path, _new = false) { - if(string_pos("\n", path) == 1) path = string_replace(path, "\n", ""); - - var is_multi = string_pos("\n", path) != 0 || directory_exists(path); + function load_file_path(path) { + if(array_length(path) == 0) return; + var is_multi = array_length(path) > 1 || directory_exists(path[0]); if(is_multi) { with(dialogCall(o_dialog_add_multiple_images, WIN_W / 2, WIN_H / 2)) { setPath(path); } } else { - PANEL_GRAPH.stepBegin(); + PANEL_GRAPH.onStepBegin(); + path = path[0]; var ext = filename_ext(path); + var node = noone; switch(ext) { case ".png" : case ".jpg" : case ".jpeg" : - Node_create_Image_path(PANEL_GRAPH.mouse_grid_x, PANEL_GRAPH.mouse_grid_y, path); + node = Node_create_Image_path(PANEL_GRAPH.mouse_grid_x, PANEL_GRAPH.mouse_grid_y, path); break; case ".gif" : - Node_create_Image_gif_path(PANEL_GRAPH.mouse_grid_x, PANEL_GRAPH.mouse_grid_y, path); + node = Node_create_Image_gif_path(PANEL_GRAPH.mouse_grid_x, PANEL_GRAPH.mouse_grid_y, path); break; case ".obj" : - Node_create_3D_Obj_path(PANEL_GRAPH.mouse_grid_x, PANEL_GRAPH.mouse_grid_y, path); + node = Node_create_3D_Obj_path(PANEL_GRAPH.mouse_grid_x, PANEL_GRAPH.mouse_grid_y, path); break; case ".json" : case ".pxc" : - if(_new) NEW(); LOAD_PATH(path); break; } - PANEL_GRAPH.fullView(); + + if(node) + PANEL_GRAPH.toCenterNode(); } } #endregion diff --git a/objects/o_main/Other_2.gml b/objects/o_main/Other_2.gml index 73495e165..082977992 100644 --- a/objects/o_main/Other_2.gml +++ b/objects/o_main/Other_2.gml @@ -13,6 +13,7 @@ __initCollection(); __initAssets(); __initPresets(); + __initFontFolder(); PREF_LOAD(); loadFonts(); diff --git a/objects/o_main/Other_75.gml b/objects/o_main/Other_75.gml new file mode 100644 index 000000000..a7d9fbf8c --- /dev/null +++ b/objects/o_main/Other_75.gml @@ -0,0 +1,5 @@ +/// @description +if(async_load[?"event_type"] == "file_drop") { + dropping = async_load[?"filename"]; + array_push(drop_path, dropping); +} \ No newline at end of file diff --git a/objects/o_main/Step_0.gml b/objects/o_main/Step_0.gml index 89d4853c5..b60bfb614 100644 --- a/objects/o_main/Step_0.gml +++ b/objects/o_main/Step_0.gml @@ -87,20 +87,9 @@ #endregion #region file drop - file_dnd_set_files(file_dnd_pattern, file_dnd_allowfiles, file_dnd_allowdirs, file_dnd_allowmulti); - file_dnd_filelist = file_dnd_get_files(); - - file_dnd_set_enabled(true); - - if(file_dnd_filelist != "" && file_dnd_filelist != 0) { - file_dropping = file_dnd_filelist; - if(string_pos("\n", file_dropping) == 1) - file_dropping = string_replace(file_dropping, "\n", ""); - - alarm[3] = 2; - - file_dnd_set_enabled(false); - file_dnd_filelist = ""; + if(array_length(drop_path)) { + load_file_path(drop_path); + drop_path = []; } #endregion diff --git a/objects/o_main/Step_1.gml b/objects/o_main/Step_1.gml index 06392c8e1..650d590e2 100644 --- a/objects/o_main/Step_1.gml +++ b/objects/o_main/Step_1.gml @@ -27,8 +27,11 @@ #endregion #region nodes - for(var i = 0; i < ds_list_size(NODES); i++) { - NODES[| i].stepBegin(); + var _k = ds_map_find_first(NODE_MAP); + var _a = ds_map_size(NODE_MAP); + repeat(_a) { + NODE_MAP[? _k].stepBegin(); + _k = ds_map_find_next(NODE_MAP, _k); } if(UPDATE & RENDER_TYPE.full) diff --git a/objects/o_main/o_main.yy b/objects/o_main/o_main.yy index dae7c4ccd..106d25daf 100644 --- a/objects/o_main/o_main.yy +++ b/objects/o_main/o_main.yy @@ -37,6 +37,7 @@ {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":3,"eventType":7,"collisionObjectId":null,}, {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":1,"eventType":5,"collisionObjectId":null,}, {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":1,"eventType":10,"collisionObjectId":null,}, + {"resourceType":"GMEvent","resourceVersion":"1.0","name":"","isDnD":false,"eventNum":75,"eventType":7,"collisionObjectId":null,}, ], "properties": [], "overriddenProperties": [], diff --git a/options/extensions/file_dropper.json b/options/extensions/file_dropper.json new file mode 100644 index 000000000..75b40a25b --- /dev/null +++ b/options/extensions/file_dropper.json @@ -0,0 +1,9 @@ +{ + "extensionId": { + "name": "file_dropper", + "path": "extensions/file_dropper/file_dropper.yy" + }, + "resourceVersion": "1.0", + "resourceType": "GMExtensionConfigSet", + "configurables": null +} \ No newline at end of file diff --git a/scripts/__VFX/__VFX.gml b/scripts/__VFX/__VFX.gml index 6011fe620..990600152 100644 --- a/scripts/__VFX/__VFX.gml +++ b/scripts/__VFX/__VFX.gml @@ -9,8 +9,9 @@ enum PARTICLE_BLEND_MODE { additive } -function __part() constructor { +function __part(_node) constructor { seed = irandom(99999); + node = _node; active = false; surf = noone; x = 0; @@ -44,6 +45,7 @@ function __part() constructor { life = 0; life_total = 0; + step_int = 0; anim_speed = 1; anim_end = ANIM_END_ACTION.loop; @@ -57,6 +59,7 @@ function __part() constructor { life = _life; life_total = life; + node.onPartCreate(self); } function setPhysic(_sx, _sy, _ac, _g, _wig) { @@ -84,7 +87,8 @@ function __part() constructor { } function kill() { - active = false; + active = false; + node.onPartDestroy(self); } static step = function() { @@ -116,6 +120,8 @@ function __part() constructor { rot += rot_s; alp_draw = alp * eval_bezier_cubic(1 - life / life_total, alp_fade[0], alp_fade[1], alp_fade[2], alp_fade[3]); + if(step_int > 0 && safe_mod(life, step_int) == 0) + node.onPartStep(self); if(life-- < 0) kill(); } diff --git a/scripts/_node_VFX/_node_VFX.gml b/scripts/_node_VFX/_node_VFX.gml index 9b1f23e5c..b6843a0af 100644 --- a/scripts/_node_VFX/_node_VFX.gml +++ b/scripts/_node_VFX/_node_VFX.gml @@ -1,10 +1,4 @@ /* Backup -function Node_create_VFX(_x, _y) { - var node = new Node_VFX(_x, _y); - //ds_list_add(PANEL_GRAPH.nodes_list, node); - return node; -} - function Node_VFX(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { name = "VFX"; auto_update = false; @@ -239,7 +233,7 @@ function Node_VFX(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { if(!_loop) return; for(var i = 0; i < ANIMATOR.frames_total; i++) - runFrame(i); + runVFX(i); seed = seed_origin; } @@ -267,7 +261,7 @@ function Node_VFX(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { } } - static runFrame = function(_time = ANIMATOR.current_frame) { + static runVFX = function(_time = ANIMATOR.current_frame) { var _spawn_delay = inputs[| 2].getValue(_time); var _spawn_type = inputs[| 17].getValue(_time); @@ -321,9 +315,9 @@ function Node_VFX(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { if(ANIMATOR.current_frame == 0) { reset(); - runFrame(ANIMATOR.current_frame); + runVFX(ANIMATOR.current_frame); } else if(cached_output[ANIMATOR.current_frame - 1] != 0) { - runFrame(ANIMATOR.current_frame); + runVFX(ANIMATOR.current_frame); } } } diff --git a/scripts/_node_VFX_spawner/_node_VFX_spawner.gml b/scripts/_node_VFX_spawner/_node_VFX_spawner.gml new file mode 100644 index 000000000..af66e8c8d --- /dev/null +++ b/scripts/_node_VFX_spawner/_node_VFX_spawner.gml @@ -0,0 +1,320 @@ +function Node_VFX_Spawner_Base(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { + name = "Spawner"; + + inputs[| 0] = nodeValue(0, "Particle sprite", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0) + .setDisplay(noone, "particles"); + + inputs[| 1] = nodeValue(1, "Spawn delay", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4); + inputs[| 2] = nodeValue(2, "Spawn amount", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 2); + inputs[| 3] = nodeValue(3, "Spawn area", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ def_surf_size / 2, def_surf_size / 2, def_surf_size / 2, def_surf_size / 2, AREA_SHAPE.rectangle ]) + .setDisplay(VALUE_DISPLAY.area, function() { return inputs[| 1].getValue(); }); + + inputs[| 4] = nodeValue(4, "Spawn distribution", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.enum_button, [ "Area", "Border" ]); + + inputs[| 5] = nodeValue(5, "Lifespan", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 20, 30 ]) + .setDisplay(VALUE_DISPLAY.range); + + inputs[| 6] = nodeValue(6, "Spawn direction", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 45, 135 ]) + .setDisplay(VALUE_DISPLAY.rotation_range); + inputs[| 7] = nodeValue(7, "Acceleration", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) + .setDisplay(VALUE_DISPLAY.range); + + inputs[| 8] = nodeValue(8, "Orientation", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [0, 0]) + .setDisplay(VALUE_DISPLAY.rotation_range); + + inputs[| 9] = nodeValue(9, "Rotational speed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) + .setDisplay(VALUE_DISPLAY.range); + + inputs[| 10] = nodeValue(10, "Spawn scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1, 1 ] ) + .setDisplay(VALUE_DISPLAY.vector_range); + inputs[| 11] = nodeValue(11, "Scaling speed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) + .setDisplay(VALUE_DISPLAY.vector); + + inputs[| 12] = nodeValue(12, "Color over lifetime", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white) + .setDisplay(VALUE_DISPLAY.gradient); + inputs[| 13] = nodeValue(13, "Alpha", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) + .setDisplay(VALUE_DISPLAY.range); + inputs[| 14] = nodeValue(14, "Alpha over time", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, [1, 1, 1, 1]); + + inputs[| 15] = nodeValue(15, "Rotate by direction", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); + + inputs[| 16] = nodeValue(16, "Spawn type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.enum_button, [ "Stream", "Burst" ]); + + inputs[| 17] = nodeValue(17, "Spawn size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ] ) + .setDisplay(VALUE_DISPLAY.range); + + inputs[| 18] = nodeValue(18, "Spawn velocity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [1, 2] ) + .setDisplay(VALUE_DISPLAY.range); + + inputs[| 19] = nodeValue(19, "Gravity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ); + inputs[| 20] = nodeValue(20, "Wiggle", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ); + + inputs[| 21] = nodeValue(21, "Loop", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true ); + + inputs[| 22] = nodeValue(22, "Surface array", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) + .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Random", "Order", "Animation" ]) + .setVisible(false); + + inputs[| 23] = nodeValue(23, "Animation speed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1 ) + .setVisible(false); + + inputs[| 24] = nodeValue(24, "Scatter", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1) + .setDisplay(VALUE_DISPLAY.enum_button, [ "Uniform", "Random", "Data" ]); + + inputs[| 25] = nodeValue(25, "Boundary data", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, []) + .setVisible(false, true); + + inputs[| 26] = nodeValue(26, "On animation end", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, ANIM_END_ACTION.loop) + .setDisplay(VALUE_DISPLAY.enum_button, [ "Loop", "Ping pong", "Destroy" ]) + .setVisible(false); + + inputs[| 27] = nodeValue(27, "Spawn", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); + input_len = ds_list_size(inputs); + + input_display_list = [ + ["Sprite", false], 0, 22, 23, 26, + ["Spawn", true], 27, 16, 1, 2, 3, 4, 24, 25, 5, + ["Movement", true], 6, 18, 7, + ["Physics", true], 19, 20, + ["Rotation", true], 15, 8, 9, + ["Scale", true], 10, 17, 11, + ["Color", true], 12, 13, 14, + ["Render", true], 21 + ]; + + parts = ds_list_create(); + + seed_origin = irandom(9999999); + seed = seed_origin; + spawn_index = 0; + def_surface = -1; + + for(var i = 0; i < PREF_MAP[? "part_max_amount"]; i++) + ds_list_add(parts, new __part(self)); + + static spawn = function(_time = ANIMATOR.current_frame, _pos = -1) { + random_set_seed(seed++); + + var _inSurf = inputs[| 0].getValue(_time); + + if(_inSurf == 0) { + if(def_surface == -1 || !surface_exists(def_surface)) { + def_surface = PIXEL_SURFACE; + surface_set_target(def_surface); + draw_clear(c_white); + surface_reset_target(); + } + _inSurf = def_surface; + } + + var _spawn_amount = inputs[| 2].getValue(_time); + var _amo = _spawn_amount; + + var _spawn_area = inputs[| 3].getValue(_time); + var _distrib = inputs[| 4].getValue(_time); + var _scatter = inputs[| 24].getValue(_time); + + var _life = inputs[| 5].getValue(_time); + var _direction = inputs[| 6].getValue(_time); + var _velocity = inputs[| 18].getValue(_time); + + var _accel = inputs[| 7].getValue(_time); + var _grav = inputs[| 19].getValue(_time); + var _wigg = inputs[| 20].getValue(_time); + + var _follow = inputs[| 15].getValue(_time); + var _rotation = inputs[| 8].getValue(_time); + var _rotation_speed = inputs[| 9].getValue(_time); + var _scale = inputs[| 10].getValue(_time); + var _size = inputs[| 17].getValue(_time); + var _scale_speed = inputs[| 11].getValue(_time); + + var _color = inputs[| 12].getValue(_time); + var _alpha = inputs[| 13].getValue(_time); + var _fade = inputs[| 14].getValue(_time); + + var _arr_type = inputs[| 22].getValue(_time); + var _anim_speed = inputs[| 23].getValue(_time); + var _anim_end = inputs[| 26].getValue(_time); + + if(_rotation[1] < _rotation[0]) _rotation[1] += 360; + + for(var i = 0; i < PREF_MAP[? "part_max_amount"]; i++) { + if(parts[| i].active) continue; + + var _spr = _inSurf, _index = 0; + if(is_array(_inSurf)) { + if(_arr_type == 0) { + _index = irandom(array_length(_inSurf) - 1); + _spr = _inSurf[_index]; + } else if(_arr_type == 1) { + _index = safe_mod(spawn_index, array_length(_inSurf)); + _spr = _inSurf[_index]; + } else if(_arr_type == 2) + _spr = _inSurf; + } + var xx = 0; + var yy = 0; + + if(_pos == -1) { + if(_scatter == 2) { + var _b_data = inputs[| 25].getValue(_time); + if(!is_array(_b_data) || array_length(_b_data) <= 0) return; + var _b = _b_data[safe_mod(_index, array_length(_b_data))]; + if(!is_array(_b) || array_length(_b) != 4) return; + + xx = array_safe_get(_spawn_area, 0) - array_safe_get(_spawn_area, 2); + yy = array_safe_get(_spawn_area, 1) - array_safe_get(_spawn_area, 3); + + parts[| i].boundary_data = _b; + } else { + var sp = area_get_random_point(_spawn_area, _distrib, _scatter, spawn_index, _spawn_amount); + xx = sp[0]; + yy = sp[1]; + + parts[| i].boundary_data = -1; + } + } else { + xx = _pos[0]; + yy = _pos[1]; + } + + var _lif = irandom_range(_life[0], _life[1]); + + var _rot = random_range(_rotation[0], _rotation[1]); + var _rot_spd = random_range(_rotation_speed[0], _rotation_speed[1]); + + var _dirr = random_range(_direction[0], _direction[1]); + + var _velo = random_range(_velocity[0], _velocity[1]); + var _vx = lengthdir_x(_velo, _dirr); + var _vy = lengthdir_y(_velo, _dirr); + var _acc = random_range(_accel[0], _accel[1]); + + var _ss = random_range(_size[0], _size[1]); + var _scx = random_range(_scale[0], _scale[1]) * _ss; + var _scy = random_range(_scale[2], _scale[3]) * _ss; + + var _alp = random_range(_alpha[0], _alpha[1]); + + parts[| i].create(_spr, xx, yy, _lif); + parts[| i].anim_speed = _anim_speed; + parts[| i].anim_end = _anim_end; + + parts[| i].setPhysic(_vx, _vy, _acc, _grav, _wigg); + parts[| i].setTransform(_scx, _scy, _scale_speed[0], _scale_speed[1], _rot, _rot_spd, _follow); + parts[| i].setDraw(_color, _alp, _fade); + spawn_index = safe_mod(spawn_index + 1, PREF_MAP[? "part_max_amount"]); + onSpawn(_time, parts[| i]); + + if(--_amo <= 0) return; + } + } + + static onSpawn = function(_time, part) {} + + function reset() { + spawn_index = 0; + for(var i = 0; i < PREF_MAP[? "part_max_amount"]; i++) { + parts[| i].kill(); + } + render(); + seed = seed_origin; + + var _loop = inputs[| 21].getValue(); + if(!_loop) return; + + for(var i = 0; i < ANIMATOR.frames_total; i++) + runVFX(i); + + seed = seed_origin; + } + + function checkPartPool() { + var _part_amo = PREF_MAP[? "part_max_amount"]; + var _curr_amo = ds_list_size(parts); + + if(_part_amo > _curr_amo) { + repeat(_part_amo - _curr_amo) + ds_list_add(parts, new __part(self)); + } else if(_part_amo < _curr_amo) { + repeat(_curr_amo - _part_amo) + ds_list_delete(parts, 0); + } + } + + static runVFX = function(_time = ANIMATOR.current_frame) { + var _spawn_delay = inputs[| 1].getValue(_time); + var _spawn_type = inputs[| 16].getValue(_time); + var _spawn_active = inputs[| 27].getValue(_time); + + if(_spawn_active) { + switch(_spawn_type) { + case 0 : + if(safe_mod(_time, _spawn_delay) == 0) + spawn(_time); + break; + case 1 : + if(_time == _spawn_delay) + spawn(_time); + break; + } + } + + for(var i = 0; i < ds_list_size(parts); i++) + parts[| i].step(); + triggerRender(); + render(_time); + } + + static step = function() { + var _inSurf = inputs[| 0].getValue(); + var _scatt = inputs[| 24].getValue(); + + inputs[| 22].setVisible(false); + inputs[| 23].setVisible(false); + inputs[| 25].setVisible(_scatt == 2); + + if(is_array(_inSurf)) { + inputs[| 22].setVisible(true); + var _type = inputs[| 22].getValue(); + if(_type == 2) { + inputs[| 23].setVisible(true); + inputs[| 26].setVisible(true); + } + } + + checkPartPool(); + var _spawn_type = inputs[| 16].getValue(); + if(_spawn_type == 0) inputs[| 1].name = "Spawn delay"; + else inputs[| 1].name = "Spawn frame"; + + onStep(); + } + + static onStep = function() { + if(!ANIMATOR.frame_progress) return; + if(!ANIMATOR.is_playing) return; + + if(ANIMATOR.current_frame == 0) + reset(); + runVFX(ANIMATOR.current_frame); + } + + static drawOverlay = function(active, _x, _y, _s, _mx, _my) { + inputs[| 3].drawOverlay(active, _x, _y, _s, _mx, _my); + if(onDrawOverlay != -1) + onDrawOverlay(active, _x, _y, _s, _mx, _my); + } + + static onDrawOverlay = -1; + + static update = function() {} + static render = function() {} + + static onPartCreate = function(part) {} + static onPartStep = function(part) {} + static onPartDestroy = function(part) {} +} \ No newline at end of file diff --git a/scripts/node_character/node_character.yy b/scripts/_node_VFX_spawner/_node_VFX_spawner.yy similarity index 57% rename from scripts/node_character/node_character.yy rename to scripts/_node_VFX_spawner/_node_VFX_spawner.yy index ffbcd75ff..8a52914a4 100644 --- a/scripts/node_character/node_character.yy +++ b/scripts/_node_VFX_spawner/_node_VFX_spawner.yy @@ -1,11 +1,11 @@ { "resourceType": "GMScript", "resourceVersion": "1.0", - "name": "node_character", + "name": "_node_VFX_spawner", "isDnD": false, "isCompatibility": false, "parent": { - "name": "number", - "path": "folders/nodes/data/number.yy", + "name": "VFX", + "path": "folders/nodes/data/VFX.yy", }, } \ No newline at end of file diff --git a/scripts/array_functions/array_functions.gml b/scripts/array_functions/array_functions.gml index fff0ccf0a..b56d3173c 100644 --- a/scripts/array_functions/array_functions.gml +++ b/scripts/array_functions/array_functions.gml @@ -40,4 +40,12 @@ function array_merge() { } return arr; +} + +function array_clone(arr) { + var _res = array_create(array_length(arr)); + for( var i = 0; i < array_length(arr); i++ ) { + _res[i] = arr[i]; + } + return _res; } \ No newline at end of file diff --git a/scripts/button/button.gml b/scripts/button/button.gml index 9bee30ded..4460ea43e 100644 --- a/scripts/button/button.gml +++ b/scripts/button/button.gml @@ -6,7 +6,8 @@ function buttonClass(_onClick) constructor { active = false; hover = false; - icon = noone; + icon = noone; + icon_blend = c_white; icon_index = 0; text = ""; @@ -14,8 +15,10 @@ function buttonClass(_onClick) constructor { onClick = _onClick; - static setIcon = function(_icon, _index = 0) { - icon = _icon; icon_index = _index + static setIcon = function(_icon, _index = 0, _blend = c_white) { + icon = _icon; + icon_index = _index; + icon_blend = _blend; return self; } @@ -43,7 +46,7 @@ function buttonClass(_onClick) constructor { } else { draw_sprite_stretched_ext(spr, 0, _x, _y, _w, _h, blend, 1); } - if(icon) draw_sprite_ui_uniform(icon, icon_index, _x + _w / 2, _y + _h / 2); + if(icon) draw_sprite_ui_uniform(icon, icon_index, _x + _w / 2, _y + _h / 2,, icon_blend); if(text != "") { draw_set_text(f_p0, fa_center, fa_center, COLORS._main_text); draw_text(_x + _w / 2, _y + _h / 2, text); diff --git a/scripts/draw_line_curve/draw_line_curve.gml b/scripts/draw_line_curve/draw_line_curve.gml index f9b4ee191..0e333535d 100644 --- a/scripts/draw_line_curve/draw_line_curve.gml +++ b/scripts/draw_line_curve/draw_line_curve.gml @@ -109,8 +109,8 @@ function draw_line_elbow_color(x0, y0, x1, y1, thick, col1, col2, type = LINE_ST draw_line_width_color(cx, y0 - thick / 2, cx, y1 + thick / 2, thick, cm, cm); draw_line_width_color(cx, y1, x1, y1, thick, cm, col2); } else { - draw_line_dashed(x0, y0, cx, y0, thick, col1, cm, 12); - draw_line_dashed(cx, y0 - thick / 2, cx, y1 + thick / 2, thick, cm, cm, 12); - draw_line_dashed(cx, y1, x1, y1, thick, cm, col2, 12); + draw_line_dashed_color(x0, y0, cx, y0, thick, col1, cm, 12); + draw_line_dashed_color(cx, y0 - thick / 2, cx, y1 + thick / 2, thick, cm, cm, 12); + draw_line_dashed_color(cx, y1, x1, y1, thick, cm, col2, 12); } } \ No newline at end of file diff --git a/scripts/draw_line_dashed/draw_line_dashed.gml b/scripts/draw_line_dashed/draw_line_dashed.gml index 991497dd6..449d7d02b 100644 --- a/scripts/draw_line_dashed/draw_line_dashed.gml +++ b/scripts/draw_line_dashed/draw_line_dashed.gml @@ -1,4 +1,28 @@ -function draw_line_dashed(x0, y0, x1, y1, th, c0, c1, dash_distance = 8) { +function draw_line_dashed(x0, y0, x1, y1, th, dash_distance = 8) { + var dis = point_distance(x0, y0, x1, y1); + var dir = point_direction(x0, y0, x1, y1); + var part = ceil(dis / dash_distance); + + var dx = lengthdir_x(1, dir); + var dy = lengthdir_y(1, dir); + + var ox, oy, nx, ny; + var dd = 0; + + for( var i = 0; i <= part; i++ ) { + dd = min(dis, i * dash_distance); + nx = x0 + dx * dd; + ny = y0 + dy * dd; + + if(i && i % 2) + draw_line_width(ox, oy, nx, ny, th); + + ox = nx; + oy = ny; + } +} + +function draw_line_dashed_color(x0, y0, x1, y1, th, c0, c1, dash_distance = 8) { var dis = point_distance(x0, y0, x1, y1); var dir = point_direction(x0, y0, x1, y1); var part = ceil(dis / dash_distance); diff --git a/scripts/draw_shapes/draw_shapes.gml b/scripts/draw_shapes/draw_shapes.gml new file mode 100644 index 000000000..91c0710bf --- /dev/null +++ b/scripts/draw_shapes/draw_shapes.gml @@ -0,0 +1,67 @@ +function draw_rectangle_width(x0, y0, x1, y1, th = 1) { + draw_line_width(x0 - th / 2, y0, x1 + th / 2, y0, th); + draw_line_width(x0 - th / 2, y1, x1 + th / 2, y1, th); + + draw_line_width(x0, y0 - th / 2, x0, y1 + th / 2, th); + draw_line_width(x1, y0 - th / 2, x1, y1 + th / 2, th); +} + +function draw_rectangle_dashed(x0, y0, x1, y1, th = 1, dash = 8) { + draw_line_dashed(x0 - th / 2, y0, x1 + th / 2, y0, th, dash); + draw_line_dashed(x0 - th / 2, y1, x1 + th / 2, y1, th, dash); + + draw_line_dashed(x0, y0 - th / 2, x0, y1 + th / 2, th, dash); + draw_line_dashed(x1, y0 - th / 2, x1, y1 + th / 2, th, dash); +} + +function draw_ellipse_width(x0, y0, x1, y1, th = 1) { + var cx = (x0 + x1) / 2; + var cy = (y0 + y1) / 2; + var ww = abs(x0 - x1) / 2; + var hh = abs(y0 - y1) / 2; + + var samp = 32; + var ox, oy, nx, ny; + + for( var i = 0; i < samp; i++ ) { + nx = cx + lengthdir_x(ww, i * 360 / samp); + ny = cy + lengthdir_y(hh, i * 360 / samp); + + if(i) + draw_line_width(ox, oy, nx, ny, th); + + ox = nx; + oy = ny; + } +} + +function draw_ellipse_dash(x0, y0, x1, y1, th = 1, dash = 8) { + var cx = (x0 + x1) / 2; + var cy = (y0 + y1) / 2; + var ww = abs(x0 - x1) / 2; + var hh = abs(y0 - y1) / 2; + var rd = max(ww, hh); + + var dash_dist = 0, is_dash = true; + var samp = 64; + var ox, oy, nx, ny; + + for( var i = 0; i < samp; i++ ) { + nx = cx + lengthdir_x(ww, i * 360 / samp); + ny = cy + lengthdir_y(hh, i * 360 / samp); + + if(i) { + dash_dist += point_distance(ox, oy, nx, ny); + if(dash_dist >= dash) { + dash_dist -= dash; + is_dash = !is_dash; + } + + if(is_dash) + draw_line_width(ox, oy, nx, ny, th); + } + + ox = nx; + oy = ny; + } +} \ No newline at end of file diff --git a/scripts/draw_shapes/draw_shapes.yy b/scripts/draw_shapes/draw_shapes.yy new file mode 100644 index 000000000..cf42dda77 --- /dev/null +++ b/scripts/draw_shapes/draw_shapes.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "draw_shapes", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "draw", + "path": "folders/functions/draw.yy", + }, +} \ No newline at end of file diff --git a/scripts/draw_surface_functions/draw_surface_functions.gml b/scripts/draw_surface_functions/draw_surface_functions.gml new file mode 100644 index 000000000..f3b0d18b2 --- /dev/null +++ b/scripts/draw_surface_functions/draw_surface_functions.gml @@ -0,0 +1,19 @@ +function draw_surface_align(surface, _x, _y, _s, _halign = fa_left, _valign = fa_top) { + var w = surface_get_width(surface) * _s; + var h = surface_get_height(surface) * _s; + + var _sx = _x, _sy = _y; + switch(_halign) { + case fa_left: _sx = _x; break; + case fa_center: _sx = _x - w / 2; break; + case fa_right: _sx = _x - w; break; + } + + switch(_valign) { + case fa_top: _sy = _y; break; + case fa_center: _sy = _y - h / 2; break; + case fa_bottom: _sy = _y - h; break; + } + + draw_surface_ext(surface, _sx, _sy, _s, _s, 0, c_white, 1); +} \ No newline at end of file diff --git a/scripts/draw_surface_functions/draw_surface_functions.yy b/scripts/draw_surface_functions/draw_surface_functions.yy new file mode 100644 index 000000000..767df8c81 --- /dev/null +++ b/scripts/draw_surface_functions/draw_surface_functions.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "draw_surface_functions", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "surface", + "path": "folders/functions/surface.yy", + }, +} \ No newline at end of file diff --git a/scripts/font_data/font_data.gml b/scripts/font_data/font_data.gml new file mode 100644 index 000000000..5f2b616f7 --- /dev/null +++ b/scripts/font_data/font_data.gml @@ -0,0 +1,5 @@ +function __initFontFolder() { + var root = DIRECTORY + "Fonts"; + if(!directory_exists(root)) + directory_create(root); +} \ No newline at end of file diff --git a/scripts/font_data/font_data.yy b/scripts/font_data/font_data.yy new file mode 100644 index 000000000..f1f8209b5 --- /dev/null +++ b/scripts/font_data/font_data.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "font_data", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "scritps", + "path": "folders/main/scritps.yy", + }, +} \ No newline at end of file diff --git a/scripts/globals/globals.gml b/scripts/globals/globals.gml index 7011b39c5..979a6a648 100644 --- a/scripts/globals/globals.gml +++ b/scripts/globals/globals.gml @@ -56,7 +56,7 @@ DIALOG_CLICK = true; globalvar ADD_NODE_PAGE, ADD_NODE_W, ADD_NODE_H, ADD_NODE_MODE; - ADD_NODE_PAGE = ""; + ADD_NODE_PAGE = 0; ADD_NODE_W = -1; ADD_NODE_H = -1; ADD_NODE_MODE = 0; diff --git a/scripts/load_function/load_function.gml b/scripts/load_function/load_function.gml index f5fa219bf..bd8d24740 100644 --- a/scripts/load_function/load_function.gml +++ b/scripts/load_function/load_function.gml @@ -1,5 +1,5 @@ function LOAD() { - var path = get_open_filename("*.pxc;*.json", ""); + var path = get_open_filename("Pixel Composer project (.pxc)|*.pxc", ""); if(path == "") return; if(filename_ext(path) != ".json" && filename_ext(path) != ".pxc") return; diff --git a/scripts/node_VFX_effect_accelerate/node_VFX_effect_accelerate.gml b/scripts/node_VFX_effect_accelerate/node_VFX_effect_accelerate.gml index fdda5bcce..2722896ee 100644 --- a/scripts/node_VFX_effect_accelerate/node_VFX_effect_accelerate.gml +++ b/scripts/node_VFX_effect_accelerate/node_VFX_effect_accelerate.gml @@ -1,5 +1,6 @@ function Node_VFX_Accelerate(_x, _y, _group = -1) : Node_VFX_effector(_x, _y, _group) constructor { name = "Accelerate"; + node_draw_icon = s_node_vfx_accel; function onAffect(part, str) { var _vect = current_data[4]; diff --git a/scripts/node_VFX_effect_attract/node_VFX_effect_attract.gml b/scripts/node_VFX_effect_attract/node_VFX_effect_attract.gml index abfa93333..224f312ea 100644 --- a/scripts/node_VFX_effect_attract/node_VFX_effect_attract.gml +++ b/scripts/node_VFX_effect_attract/node_VFX_effect_attract.gml @@ -1,5 +1,6 @@ function Node_VFX_Attract(_x, _y, _group = -1) : Node_VFX_effector(_x, _y, _group) constructor { name = "Attract"; + node_draw_icon = s_node_vfx_attract; function onAffect(part, str) { var _area = current_data[1]; diff --git a/scripts/node_VFX_effect_destroy/node_VFX_effect_destroy.gml b/scripts/node_VFX_effect_destroy/node_VFX_effect_destroy.gml index ca7658ce8..e8cbe5641 100644 --- a/scripts/node_VFX_effect_destroy/node_VFX_effect_destroy.gml +++ b/scripts/node_VFX_effect_destroy/node_VFX_effect_destroy.gml @@ -1,5 +1,6 @@ function Node_VFX_Destroy(_x, _y, _group = -1) : Node_VFX_effector(_x, _y, _group) constructor { name = "Destroy"; + node_draw_icon = s_node_vfx_destroy; function onAffect(part, str) { var _sten = current_data[5]; diff --git a/scripts/node_VFX_effect_repel/node_VFX_effect_repel.gml b/scripts/node_VFX_effect_repel/node_VFX_effect_repel.gml index f5d675ba3..78d4936ee 100644 --- a/scripts/node_VFX_effect_repel/node_VFX_effect_repel.gml +++ b/scripts/node_VFX_effect_repel/node_VFX_effect_repel.gml @@ -1,5 +1,6 @@ function Node_VFX_Repel(_x, _y, _group = -1) : Node_VFX_effector(_x, _y, _group) constructor { name = "Repel"; + node_draw_icon = s_node_vfx_repel; function onAffect(part, str) { var _area = current_data[1]; diff --git a/scripts/node_VFX_effect_turbulence/node_VFX_effect_turbulence.gml b/scripts/node_VFX_effect_turbulence/node_VFX_effect_turbulence.gml index 1f2805575..f5cc7f4ca 100644 --- a/scripts/node_VFX_effect_turbulence/node_VFX_effect_turbulence.gml +++ b/scripts/node_VFX_effect_turbulence/node_VFX_effect_turbulence.gml @@ -1,5 +1,6 @@ function Node_VFX_Turbulence(_x, _y, _group = -1) : Node_VFX_effector(_x, _y, _group) constructor { name = "Turbulence"; + node_draw_icon = s_node_vfx_turb; function onAffect(part, str) { var _vect = current_data[4]; diff --git a/scripts/node_VFX_effect_vortex/node_VFX_effect_vortex.gml b/scripts/node_VFX_effect_vortex/node_VFX_effect_vortex.gml index f075648db..951d3e53e 100644 --- a/scripts/node_VFX_effect_vortex/node_VFX_effect_vortex.gml +++ b/scripts/node_VFX_effect_vortex/node_VFX_effect_vortex.gml @@ -1,5 +1,6 @@ function Node_VFX_Vortex(_x, _y, _group = -1) : Node_VFX_effector(_x, _y, _group) constructor { name = "Vortex"; + node_draw_icon = s_node_vfx_vortex; function onAffect(part, str) { var _area = current_data[1]; diff --git a/scripts/node_VFX_effect_wind/node_VFX_effect_wind.gml b/scripts/node_VFX_effect_wind/node_VFX_effect_wind.gml index cbda1e465..e5949b796 100644 --- a/scripts/node_VFX_effect_wind/node_VFX_effect_wind.gml +++ b/scripts/node_VFX_effect_wind/node_VFX_effect_wind.gml @@ -1,5 +1,6 @@ function Node_VFX_Wind(_x, _y, _group = -1) : Node_VFX_effector(_x, _y, _group) constructor { name = "Wind"; + node_draw_icon = s_node_vfx_wind; function onAffect(part, str) { var _vect = current_data[4]; diff --git a/scripts/node_VFX_effector/node_VFX_effector.gml b/scripts/node_VFX_effector/node_VFX_effector.gml index fd96a9c7a..4b2aa3f12 100644 --- a/scripts/node_VFX_effector/node_VFX_effector.gml +++ b/scripts/node_VFX_effector/node_VFX_effector.gml @@ -1,9 +1,10 @@ function Node_VFX_effector(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { name = "Effector"; previewable = false; + node_draw_icon = s_node_vfx_accel; - w = 64; - h = 64; + w = 96; + h = 80; min_h = h; inputs[| 0] = nodeValue(0, "Particles", self, JUNCTION_CONNECT.input, VALUE_TYPE.object, -1 ) @@ -41,6 +42,44 @@ function Node_VFX_effector(_x, _y, _group = -1) : Node(_x, _y, _group) construct static drawOverlay = function(active, _x, _y, _s, _mx, _my) { inputs[| 1].drawOverlay(active, _x, _y, _s, _mx, _my); + + var area = inputs[| 1].getValue(); + var cx = _x + area[0] * _s; + var cy = _y + area[1] * _s; + var cw = area[2] * _s; + var ch = area[3] * _s; + var cs = area[4]; + + var fall = inputs[| 3].getValue() * _s; + var x0 = cx - cw + fall; + var x1 = cx + cw - fall; + var y0 = cy - ch + fall; + var y1 = cy + ch - fall; + + if(x1 > x0 && y1 > y0) { + draw_set_color(COLORS._main_accent); + draw_set_alpha(0.5); + switch(cs) { + case AREA_SHAPE.elipse : draw_ellipse_dash(x0, y0, x1, y1); break; + case AREA_SHAPE.rectangle : draw_rectangle_dashed(x0, y0, x1, y1); break; + } + draw_set_alpha(1); + } + + x0 = cx - cw - fall; + x1 = cx + cw + fall; + y0 = cy - ch - fall; + y1 = cy + ch + fall; + + if(x1 > x0 && y1 > y0) { + draw_set_color(COLORS._main_accent); + draw_set_alpha(0.5); + switch(cs) { + case AREA_SHAPE.elipse : draw_ellipse_dash(x0, y0, x1, y1); break; + case AREA_SHAPE.rectangle : draw_rectangle_dashed(x0, y0, x1, y1); break; + } + draw_set_alpha(1); + } } function onAffect(part, str) {} @@ -65,24 +104,30 @@ function Node_VFX_effector(_x, _y, _group = -1) : Node(_x, _y, _group) construct random_set_seed(part.seed); - var str = 0; + var str = 0, in, _dst; var pv = part.getPivot(); if(_area_t == AREA_SHAPE.rectangle) { - if(point_in_rectangle(pv[0], pv[1], _area_x0, _area_y0, _area_x1, _area_y1)) { - var _dst = min( distance_to_line(pv[0], pv[1], _area_x0, _area_y0, _area_x1, _area_y0), - distance_to_line(pv[0], pv[1], _area_x0, _area_y1, _area_x1, _area_y1), - distance_to_line(pv[0], pv[1], _area_x0, _area_y0, _area_x0, _area_y1), - distance_to_line(pv[0], pv[1], _area_x1, _area_y0, _area_x1, _area_y1)); - str = eval_curve_bezier_cubic(_fall, clamp(_dst / _fads, 0., 1.)); - } + in = point_in_rectangle(pv[0], pv[1], _area_x0, _area_y0, _area_x1, _area_y1) + _dst = min( distance_to_line(pv[0], pv[1], _area_x0, _area_y0, _area_x1, _area_y0), + distance_to_line(pv[0], pv[1], _area_x0, _area_y1, _area_x1, _area_y1), + distance_to_line(pv[0], pv[1], _area_x0, _area_y0, _area_x0, _area_y1), + distance_to_line(pv[0], pv[1], _area_x1, _area_y0, _area_x1, _area_y1)); } else if(_area_t == AREA_SHAPE.elipse) { - if(point_in_circle(pv[0], pv[1], _area_x, _area_y, min(_area_w, _area_h))) { - var _dst = point_distance(pv[0], pv[1], _area_x, _area_y); - str = eval_curve_bezier_cubic(_fall, clamp(_dst / _fads, 0., 1.)); - } + var _dirr = point_direction(_area_x, _area_y, pv[0], pv[1]); + var _epx = _area_x + lengthdir_x(_area_w / 2, _dirr); + var _epy = _area_y + lengthdir_y(_area_h / 2, _dirr); + + in = point_distance(_area_x, _area_y, pv[0], pv[1]) < point_distance(_area_x, _area_y, _epx, _epy); + _dst = point_distance(pv[0], pv[1], _epx, _epy); } + if(_dst <= _fads) { + var inf = in? 0.5 + _dst / _fads : 0.5 - _dst / _fads; + str = eval_curve_bezier_cubic(_fall, clamp(inf, 0., 1.)); + } else if(in) + str = 1; + if(str == 0) return; onAffect(part, str); @@ -106,4 +151,10 @@ function Node_VFX_effector(_x, _y, _group = -1) : Node(_x, _y, _group) construct jun.value_to[| j].node.doUpdate(); } } + + static onDrawNode = function(xx, yy, _mx, _my, _s) { + var cx = xx + w * _s / 2; + var cy = yy + 10 + (h - 10) * _s / 2; + draw_sprite_uniform(node_draw_icon, 0, cx, cy, _s); + } } \ No newline at end of file diff --git a/scripts/node_VFX_group/node_VFX_group.gml b/scripts/node_VFX_group/node_VFX_group.gml index a01f67c8e..8acd51726 100644 --- a/scripts/node_VFX_group/node_VFX_group.gml +++ b/scripts/node_VFX_group/node_VFX_group.gml @@ -1,6 +1,6 @@ function Node_VFX_Group(_x, _y, _group = -1) : Node_Collection(_x, _y, _group) constructor { name = "VFX"; - color = COLORS.node_blend_collection; + color = COLORS.node_blend_vfx; ungroupable = false; if(!LOADING && !APPENDING) { @@ -8,7 +8,7 @@ function Node_VFX_Group(_x, _y, _group = -1) : Node_Collection(_x, _y, _group) c var renderer = nodeBuild("Node_VFX_Renderer", 256, -32, self); var output = nodeBuild("Node_Group_Output", 256 + 32 * 5, -32, self); - renderer.inputs[| 0].setFrom(input.outputs[| 0]); + renderer.inputs[| renderer.input_index].setFrom(input.outputs[| 0]); output.inputs[| 0].setFrom(renderer.outputs[| 0]); } } \ No newline at end of file diff --git a/scripts/node_VFX_renderer/node_VFX_renderer.gml b/scripts/node_VFX_renderer/node_VFX_renderer.gml index c7156d5ca..14ae79501 100644 --- a/scripts/node_VFX_renderer/node_VFX_renderer.gml +++ b/scripts/node_VFX_renderer/node_VFX_renderer.gml @@ -1,24 +1,50 @@ function Node_VFX_Renderer(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { name = "Renderer"; - inputs[| 0] = nodeValue(0, "Particles", self, JUNCTION_CONNECT.input, VALUE_TYPE.object, noone ) - .setVisible(true, true); - - inputs[| 1] = nodeValue(1, "Output dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, def_surf_size2) + inputs[| 0] = nodeValue(0, "Output dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, def_surf_size2) .setDisplay(VALUE_DISPLAY.vector); - inputs[| 2] = nodeValue(2, "Round position", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true ); + inputs[| 1] = nodeValue(1, "Round position", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true ); - inputs[| 3] = nodeValue(3, "Blend mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) + inputs[| 2] = nodeValue(2, "Blend mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Normal", "Additive" ]); + input_index = ds_list_size(inputs); + + static createNewInput = function() { + var index = ds_list_size(inputs); + inputs[| index] = nodeValue( index, "Particles", self, JUNCTION_CONNECT.input, VALUE_TYPE.object, noone ) + .setVisible(true, true); + } + createNewInput(); + outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); + static updateValueFrom = function(index) { + if(index < input_index) return; + + var _l = ds_list_create(); + for( var i = 0; i < ds_list_size(inputs); i++ ) { + if(i < input_index || inputs[| i].value_from) + ds_list_add(_l, inputs[| i]); + else + delete inputs[| i]; + } + + for( var i = 0; i < ds_list_size(_l); i++ ) { + _l[| i].index = i; + } + + ds_list_destroy(inputs); + inputs = _l; + + createNewInput(); + } + function update(_time = ANIMATOR.current_frame) { - var parts = inputs[| 0].getValue(_time); - var _dim = inputs[| 1].getValue(_time); - var _exact = inputs[| 2].getValue(_time); - var _blend = inputs[| 3].getValue(_time); + var _dim = inputs[| 0].getValue(_time); + var _exact = inputs[| 1].getValue(_time); + var _blend = inputs[| 2].getValue(_time); var _outSurf = outputs[| 0].getValue(); @@ -37,12 +63,23 @@ function Node_VFX_Renderer(_x, _y, _group = -1) : Node(_x, _y, _group) construct case PARTICLE_BLEND_MODE.additive : gpu_set_blendmode(bm_add); break; } - for(var i = 0; i < PREF_MAP[? "part_max_amount"]; i++) - parts[| i].draw(_exact); + for( var i = input_index; i < ds_list_size(inputs) - 1; i++ ) { + var parts = inputs[| i].getValue(_time); + for(var j = 0; j < PREF_MAP[? "part_max_amount"]; j++) + parts[| j].draw(_exact); + } gpu_set_blendmode(bm_normal); surface_reset_target(); cacheCurrentFrame(_outSurf); } + + static postDeserialize = function() { + var _inputs = load_map[? "inputs"]; + + for(var i = input_index; i < ds_list_size(_inputs); i++) + createNewInput(); + } + } \ No newline at end of file diff --git a/scripts/node_VFX_spawner/node_VFX_spawner.gml b/scripts/node_VFX_spawner/node_VFX_spawner.gml index baf602b62..75bf12b38 100644 --- a/scripts/node_VFX_spawner/node_VFX_spawner.gml +++ b/scripts/node_VFX_spawner/node_VFX_spawner.gml @@ -1,305 +1,74 @@ -function Node_VFX_Spawner(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { +function Node_VFX_Spawner(_x, _y, _group = -1) : Node_VFX_Spawner_Base(_x, _y, _group) constructor { name = "Spawner"; - inputs[| 0] = nodeValue(0, "Particle sprite", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0) - .setDisplay(noone, "particles"); + inputs[| input_len + 0] = nodeValue(input_len + 0, "Spawn trigger", self, JUNCTION_CONNECT.input, VALUE_TYPE.node, false) + .setVisible(true, true); - inputs[| 1] = nodeValue(1, "Spawn delay", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4); - inputs[| 2] = nodeValue(2, "Spawn amount", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 2); - inputs[| 3] = nodeValue(3, "Spawn area", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ def_surf_size / 2, def_surf_size / 2, def_surf_size / 2, def_surf_size / 2, AREA_SHAPE.rectangle ]) - .setDisplay(VALUE_DISPLAY.area, function() { return inputs[| 1].getValue(); }); + inputs[| input_len + 1] = nodeValue(input_len + 1, "Step interval", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1); - inputs[| 4] = nodeValue(4, "Spawn distribution", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) - .setDisplay(VALUE_DISPLAY.enum_button, [ "Area", "Border" ]); - - inputs[| 5] = nodeValue(5, "Lifespan", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 20, 30 ]) - .setDisplay(VALUE_DISPLAY.range); - - inputs[| 6] = nodeValue(6, "Spawn direction", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 45, 135 ]) - .setDisplay(VALUE_DISPLAY.rotation_range); - inputs[| 7] = nodeValue(7, "Acceleration", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) - .setDisplay(VALUE_DISPLAY.range); - - inputs[| 8] = nodeValue(8, "Orientation", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [0, 0]) - .setDisplay(VALUE_DISPLAY.rotation_range); - - inputs[| 9] = nodeValue(9, "Rotational speed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) - .setDisplay(VALUE_DISPLAY.range); - - inputs[| 10] = nodeValue(10, "Spawn scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1, 1 ] ) - .setDisplay(VALUE_DISPLAY.vector_range); - inputs[| 11] = nodeValue(11, "Scaling speed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) - .setDisplay(VALUE_DISPLAY.vector); - - inputs[| 12] = nodeValue(12, "Color over lifetime", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white) - .setDisplay(VALUE_DISPLAY.gradient); - inputs[| 13] = nodeValue(13, "Alpha", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ]) - .setDisplay(VALUE_DISPLAY.range); - inputs[| 14] = nodeValue(14, "Alpha over time", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, [1, 1, 1, 1]); - - inputs[| 15] = nodeValue(15, "Rotate by direction", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); - - inputs[| 16] = nodeValue(16, "Spawn type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) - .setDisplay(VALUE_DISPLAY.enum_button, [ "Stream", "Burst" ]); - - inputs[| 17] = nodeValue(17, "Spawn size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ] ) - .setDisplay(VALUE_DISPLAY.range); - - inputs[| 18] = nodeValue(18, "Spawn velocity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [1, 2] ) - .setDisplay(VALUE_DISPLAY.range); - - inputs[| 19] = nodeValue(19, "Gravity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ); - inputs[| 20] = nodeValue(20, "Wiggle", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ); - - inputs[| 21] = nodeValue(21, "Loop", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true ); - - inputs[| 22] = nodeValue(22, "Surface array", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) - .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Random", "Order", "Animation" ]) - .setVisible(false); - - inputs[| 23] = nodeValue(23, "Animation speed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1 ) - .setVisible(false); - - inputs[| 24] = nodeValue(24, "Scatter", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1) - .setDisplay(VALUE_DISPLAY.enum_button, [ "Uniform", "Random", "Data" ]); - - inputs[| 25] = nodeValue(25, "Boundary data", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, []) - .setVisible(false, true); - - inputs[| 26] = nodeValue(26, "On animation end", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, ANIM_END_ACTION.loop) - .setDisplay(VALUE_DISPLAY.enum_button, [ "Loop", "Ping pong", "Destroy" ]) - .setVisible(false); - - input_display_list = [ - ["Sprite", false], 0, 22, 23, 26, - ["Spawn", true], 16, 1, 2, 3, 4, 24, 25, 5, - ["Movement", true], 6, 18, 7, - ["Physics", true], 19, 20, - ["Rotation", true], 15, 8, 9, - ["Scale", true], 10, 17, 11, - ["Color", true], 12, 13, 14, - ["Render", true], 21 - ]; - - parts = ds_list_create(); outputs[| 0] = nodeValue(0, "Particles", self, JUNCTION_CONNECT.output, VALUE_TYPE.object, parts ); + outputs[| 1] = nodeValue(1, "On create", self, JUNCTION_CONNECT.output, VALUE_TYPE.node, noone ); + outputs[| 2] = nodeValue(2, "On step", self, JUNCTION_CONNECT.output, VALUE_TYPE.node, noone ); + outputs[| 3] = nodeValue(3, "On destroy", self, JUNCTION_CONNECT.output, VALUE_TYPE.node, noone ); - seed_origin = irandom(9999999); - seed = seed_origin; - spawn_index = 0; - def_surface = -1; + array_insert(input_display_list, 0, ["Trigger", true], input_len + 0, input_len + 1); - for(var i = 0; i < PREF_MAP[? "part_max_amount"]; i++) - ds_list_add(parts, new __part()); + static onSpawn = function(_time, part) { + part.step_int = inputs[| input_len + 1].getValue(_time); + } + + static onPartCreate = function(part) { + var pv = part.getPivot(); - static spawn = function(_time = ANIMATOR.current_frame) { - random_set_seed(seed++); + var vt = outputs[| 1]; + for( var i = 0; i < ds_list_size(vt.value_to); i++ ) { + var _n = vt.value_to[| i]; + if(_n.value_from != vt) continue; + _n.node.spawn(, pv); + } + } + + static onPartStep = function(part) { + var pv = part.getPivot(); - var _inSurf = inputs[| 0].getValue(_time); + var vt = outputs[| 2]; + for( var i = 0; i < ds_list_size(vt.value_to); i++ ) { + var _n = vt.value_to[| i]; + if(_n.value_from != vt) continue; + _n.node.spawn(, pv); + } + } + + static onPartDestroy = function(part) { + var pv = part.getPivot(); - if(_inSurf == 0) { + var vt = outputs[| 3]; + for( var i = 0; i < ds_list_size(vt.value_to); i++ ) { + var _n = vt.value_to[| i]; + if(_n.value_from != vt) continue; + _n.node.spawn(, pv); + } + } + + static onDrawNode = function(xx, yy, _mx, _my, _s) { + var spr = inputs[| 0].getValue(); + + if(spr == 0) { if(def_surface == -1 || !surface_exists(def_surface)) { def_surface = PIXEL_SURFACE; surface_set_target(def_surface); draw_clear(c_white); surface_reset_target(); } - _inSurf = def_surface; + spr = def_surface; } - var _spawn_amount = inputs[| 2].getValue(_time); - var _amo = _spawn_amount; + if(is_array(spr)) + spr = spr[safe_mod(round(current_time / 100), array_length(spr))]; - var _spawn_area = inputs[| 3].getValue(_time); - var _distrib = inputs[| 4].getValue(_time); - var _scatter = inputs[| 24].getValue(_time); - - var _life = inputs[| 5].getValue(_time); - var _direction = inputs[| 6].getValue(_time); - var _velocity = inputs[| 18].getValue(_time); - - var _accel = inputs[| 7].getValue(_time); - var _grav = inputs[| 19].getValue(_time); - var _wigg = inputs[| 20].getValue(_time); - - var _follow = inputs[| 15].getValue(_time); - var _rotation = inputs[| 8].getValue(_time); - var _rotation_speed = inputs[| 9].getValue(_time); - var _scale = inputs[| 10].getValue(_time); - var _size = inputs[| 17].getValue(_time); - var _scale_speed = inputs[| 11].getValue(_time); - - var _color = inputs[| 12].getValue(_time); - var _alpha = inputs[| 13].getValue(_time); - var _fade = inputs[| 14].getValue(_time); - - var _arr_type = inputs[| 22].getValue(_time); - var _anim_speed = inputs[| 23].getValue(_time); - var _anim_end = inputs[| 26].getValue(_time); - - if(_rotation[1] < _rotation[0]) _rotation[1] += 360; - - for(var i = 0; i < PREF_MAP[? "part_max_amount"]; i++) { - if(!parts[| i].active) { - var _spr = _inSurf, _index = 0; - if(is_array(_inSurf)) { - if(_arr_type == 0) { - _index = irandom(array_length(_inSurf) - 1); - _spr = _inSurf[_index]; - } else if(_arr_type == 1) { - _index = safe_mod(spawn_index, array_length(_inSurf)); - _spr = _inSurf[_index]; - } else if(_arr_type == 2) - _spr = _inSurf; - } - var xx = 0; - var yy = 0; - - if(_scatter == 2) { - var _b_data = inputs[| 25].getValue(_time); - if(!is_array(_b_data) || array_length(_b_data) <= 0) return; - var _b = _b_data[safe_mod(_index, array_length(_b_data))]; - if(!is_array(_b) || array_length(_b) != 4) return; - - xx = array_safe_get(_spawn_area, 0) - array_safe_get(_spawn_area, 2); - yy = array_safe_get(_spawn_area, 1) - array_safe_get(_spawn_area, 3); - - parts[| i].boundary_data = _b; - } else { - var sp = area_get_random_point(_spawn_area, _distrib, _scatter, spawn_index, _spawn_amount); - xx = sp[0]; - yy = sp[1]; - - parts[| i].boundary_data = -1; - } - - var _lif = random_range(_life[0], _life[1]); - - var _rot = random_range(_rotation[0], _rotation[1]); - var _rot_spd = random_range(_rotation_speed[0], _rotation_speed[1]); - - var _dirr = random_range(_direction[0], _direction[1]); - - var _velo = random_range(_velocity[0], _velocity[1]); - var _vx = lengthdir_x(_velo, _dirr); - var _vy = lengthdir_y(_velo, _dirr); - var _acc = random_range(_accel[0], _accel[1]); - - var _ss = random_range(_size[0], _size[1]); - var _scx = random_range(_scale[0], _scale[1]) * _ss; - var _scy = random_range(_scale[2], _scale[3]) * _ss; - - var _alp = random_range(_alpha[0], _alpha[1]); - - parts[| i].create(_spr, xx, yy, _lif); - parts[| i].anim_speed = _anim_speed; - parts[| i].anim_end = _anim_end; - - parts[| i].setPhysic(_vx, _vy, _acc, _grav, _wigg); - parts[| i].setTransform(_scx, _scy, _scale_speed[0], _scale_speed[1], _rot, _rot_spd, _follow); - parts[| i].setDraw(_color, _alp, _fade); - spawn_index = safe_mod(spawn_index + 1, PREF_MAP[? "part_max_amount"]); - - if(--_amo <= 0) - return; - } - } + var cx = xx + w * _s / 2; + var cy = yy + h * _s / 2; + var ss = min((w - 8) / surface_get_width(spr), (h - 8) / surface_get_height(spr)) * _s; + draw_surface_align(spr, cx, cy, ss, fa_center, fa_center); } - - function reset() { - spawn_index = 0; - for(var i = 0; i < PREF_MAP[? "part_max_amount"]; i++) { - parts[| i].kill(); - } - render(); - seed = seed_origin; - - var _loop = inputs[| 21].getValue(); - if(!_loop) return; - - for(var i = 0; i < ANIMATOR.frames_total; i++) - runFrame(i); - - seed = seed_origin; - } - - function checkPartPool() { - var _part_amo = PREF_MAP[? "part_max_amount"]; - var _curr_amo = ds_list_size(parts); - - if(_part_amo > _curr_amo) { - repeat(_part_amo - _curr_amo) - ds_list_add(parts, new __part()); - } else if(_part_amo < _curr_amo) { - repeat(_curr_amo - _part_amo) - ds_list_delete(parts, 0); - } - } - - static runFrame = function(_time = ANIMATOR.current_frame) { - var _spawn_delay = inputs[| 1].getValue(_time); - var _spawn_type = inputs[| 16].getValue(_time); - - switch(_spawn_type) { - case 0 : - if(safe_mod(_time, _spawn_delay) == 0) - spawn(_time); - break; - case 1 : - if(_time == _spawn_delay) - spawn(_time); - break; - } - - for(var i = 0; i < ds_list_size(parts); i++) - parts[| i].step(); - triggerRender(); - render(_time); - } - - static step = function() { - var _inSurf = inputs[| 0].getValue(); - var _scatt = inputs[| 24].getValue(); - var _loop = inputs[| 21].getValue(); - - inputs[| 22].setVisible(false); - inputs[| 23].setVisible(false); - inputs[| 25].setVisible(_scatt == 2); - - if(is_array(_inSurf)) { - inputs[| 22].setVisible(true); - var _type = inputs[| 22].getValue(); - if(_type == 2) { - inputs[| 23].setVisible(true); - inputs[| 26].setVisible(true); - } - } - - checkPartPool(); - var _spawn_type = inputs[| 16].getValue(); - if(_spawn_type == 0) inputs[| 1].name = "Spawn delay"; - else inputs[| 1].name = "Spawn frame"; - - onStep(); - } - - static onStep = function() { - if(!ANIMATOR.frame_progress) return; - if(!ANIMATOR.is_playing) return; - - if(ANIMATOR.current_frame == 0) - reset(); - runFrame(ANIMATOR.current_frame); - } - - static drawOverlay = function(active, _x, _y, _s, _mx, _my) { - inputs[| 3].drawOverlay(active, _x, _y, _s, _mx, _my); - if(onDrawOverlay != -1) - onDrawOverlay(active, _x, _y, _s, _mx, _my); - } - - static onDrawOverlay = -1; - - static update = function() {} - static render = function() {} } \ No newline at end of file diff --git a/scripts/node_area/node_area.yy b/scripts/node_area/node_area.yy index e51333d79..0a01f2515 100644 --- a/scripts/node_area/node_area.yy +++ b/scripts/node_area/node_area.yy @@ -5,7 +5,7 @@ "isDnD": false, "isCompatibility": false, "parent": { - "name": "number", - "path": "folders/nodes/data/number.yy", + "name": "value", + "path": "folders/nodes/data/value.yy", }, } \ No newline at end of file diff --git a/scripts/node_array/node_array.yy b/scripts/node_array/node_array.yy index 10d2af466..7c7509d67 100644 --- a/scripts/node_array/node_array.yy +++ b/scripts/node_array/node_array.yy @@ -5,7 +5,7 @@ "isDnD": false, "isCompatibility": false, "parent": { - "name": "number", - "path": "folders/nodes/data/number.yy", + "name": "value", + "path": "folders/nodes/data/value.yy", }, } \ No newline at end of file diff --git a/scripts/node_array_add/node_array_add.gml b/scripts/node_array_add/node_array_add.gml new file mode 100644 index 000000000..bf25b20b2 --- /dev/null +++ b/scripts/node_array_add/node_array_add.gml @@ -0,0 +1,36 @@ +function Node_Array_Add(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { + name = "Array add"; + previewable = false; + + w = 96; + h = 32 + 24; + min_h = h; + + inputs[| 0] = nodeValue(0, "Array", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0) + .setVisible(true, true); + + inputs[| 1] = nodeValue(1, "Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, 0) + .setVisible(true, true); + + inputs[| 2] = nodeValue(2, "Spread array", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); + + outputs[| 0] = nodeValue(0, "Size", self, JUNCTION_CONNECT.output, VALUE_TYPE.integer, 0); + + static update = function() { + var _arr = inputs[| 0].getValue(); + var _val = inputs[| 1].getValue(); + var _app = inputs[| 2].getValue(); + + inputs[| 2].setVisible(is_array(_val)); + + if(!is_array(_arr)) return; + var _out = array_clone(_arr); + if(is_array(_val) && _app) + array_append(_out, _val); + else + array_push(_out, _val); + outputs[| 0].setValue(_out); + } + + doUpdate(); +} \ No newline at end of file diff --git a/scripts/node_array_add/node_array_add.yy b/scripts/node_array_add/node_array_add.yy new file mode 100644 index 000000000..fd43ed726 --- /dev/null +++ b/scripts/node_array_add/node_array_add.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_array_add", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "value", + "path": "folders/nodes/data/value.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_array_add/node_counter.yy b/scripts/node_array_add/node_counter.yy new file mode 100644 index 000000000..10832a0b0 --- /dev/null +++ b/scripts/node_array_add/node_counter.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "variable", + "path": "folders/nodes/data/variable.yy", + }, + "resourceVersion": "1.0", + "name": "node_counter", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_array_get/node_array_get.yy b/scripts/node_array_get/node_array_get.yy index 649cde11d..4297f291d 100644 --- a/scripts/node_array_get/node_array_get.yy +++ b/scripts/node_array_get/node_array_get.yy @@ -5,7 +5,7 @@ "isDnD": false, "isCompatibility": false, "parent": { - "name": "number", - "path": "folders/nodes/data/number.yy", + "name": "value", + "path": "folders/nodes/data/value.yy", }, } \ No newline at end of file diff --git a/scripts/node_array_length/node_array_length.yy b/scripts/node_array_length/node_array_length.yy index 3fc732bf7..1cb3304e2 100644 --- a/scripts/node_array_length/node_array_length.yy +++ b/scripts/node_array_length/node_array_length.yy @@ -5,7 +5,7 @@ "isDnD": false, "isCompatibility": false, "parent": { - "name": "number", - "path": "folders/nodes/data/number.yy", + "name": "value", + "path": "folders/nodes/data/value.yy", }, } \ No newline at end of file diff --git a/scripts/node_array_range/node_array_range.gml b/scripts/node_array_range/node_array_range.gml new file mode 100644 index 000000000..18c1316ec --- /dev/null +++ b/scripts/node_array_range/node_array_range.gml @@ -0,0 +1,27 @@ +function Node_Array_Range(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { + name = "Array range"; + previewable = false; + + w = 96; + min_h = 0; + + inputs[| 0] = nodeValue(0, "Start", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0); + inputs[| 1] = nodeValue(1, "End", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 10); + inputs[| 2] = nodeValue(2, "Step", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1); + + outputs[| 0] = nodeValue(0, "Array", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, []); + + static update = function() { + var st = inputs[| 0].getValue(); + var ed = inputs[| 1].getValue(); + var step = inputs[| 2].getValue(); + var arr = []; + + if((step > 0 && st <= ed) || (step < 0 && st >= ed)) { + for( var i = st; i <= ed; i += step ) + array_push(arr, i); + } + + outputs[| 0].setValue(arr); + } +} \ No newline at end of file diff --git a/scripts/node_array_range/node_array_range.yy b/scripts/node_array_range/node_array_range.yy new file mode 100644 index 000000000..5a3213f8a --- /dev/null +++ b/scripts/node_array_range/node_array_range.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_array_range", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "value", + "path": "folders/nodes/data/value.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_array_range/node_counter.yy b/scripts/node_array_range/node_counter.yy new file mode 100644 index 000000000..10832a0b0 --- /dev/null +++ b/scripts/node_array_range/node_counter.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "variable", + "path": "folders/nodes/data/variable.yy", + }, + "resourceVersion": "1.0", + "name": "node_counter", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_camera/node_camera.gml b/scripts/node_camera/node_camera.gml new file mode 100644 index 000000000..fb87a9fe9 --- /dev/null +++ b/scripts/node_camera/node_camera.gml @@ -0,0 +1,42 @@ +function Node_Camera(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constructor { + name = "Camera"; + preview_alpha = 0.5; + + inputs[| 0] = nodeValue(0, "Scene", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + inputs[| 1] = nodeValue(1, "Focus area", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 16, 16, 4, 4, AREA_SHAPE.rectangle ]) + .setDisplay(VALUE_DISPLAY.area); + + outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); + + static getPreviewValue = function() { return inputs[| 0]; } + + static drawOverlay = function(active, _x, _y, _s, _mx, _my) { + var _out = outputs[| 0].getValue(); + var _area = current_data[1]; + var _px = _x + (_area[0] - _area[2]) * _s; + var _py = _y + (_area[1] - _area[3]) * _s; + + draw_surface_ext_safe(_out, _px, _py, _s, _s); + inputs[| 1].drawOverlay(active, _x, _y, _s, _mx, _my); + } + + static process_data = function(_outSurf, _data, _output_index) { + var _area = _data[1]; + + var _dw = surface_valid_size(_area[2]) * 2; + var _dh = surface_valid_size(_area[3]) * 2; + surface_size_to(_outSurf, _dw, _dh); + + var _px = _area[0] - _dw / 2; + var _py = _area[1] - _dh / 2; + + surface_set_target(_outSurf); + draw_clear_alpha(0, 0); + BLEND_ADD + draw_surface_safe(_data[0], -_px, -_py); + BLEND_NORMAL + surface_reset_target(); + + return _outSurf; + } +} \ No newline at end of file diff --git a/scripts/node_camera/node_camera.yy b/scripts/node_camera/node_camera.yy new file mode 100644 index 000000000..1c821724c --- /dev/null +++ b/scripts/node_camera/node_camera.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_camera", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "render", + "path": "folders/nodes/data/render.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_camera/node_color_adjustment.yy b/scripts/node_camera/node_color_adjustment.yy new file mode 100644 index 000000000..8df16cc8c --- /dev/null +++ b/scripts/node_camera/node_color_adjustment.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "filter", + "path": "folders/nodes/data/filter.yy", + }, + "resourceVersion": "1.0", + "name": "node_color_adjustment", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_camera/node_color_replacement.yy b/scripts/node_camera/node_color_replacement.yy new file mode 100644 index 000000000..024aa6a80 --- /dev/null +++ b/scripts/node_camera/node_color_replacement.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "process", + "path": "folders/nodes/data/process.yy", + }, + "resourceVersion": "1.0", + "name": "node_color_replacement", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_camera/node_greyscale.yy b/scripts/node_camera/node_greyscale.yy new file mode 100644 index 000000000..ee372977e --- /dev/null +++ b/scripts/node_camera/node_greyscale.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "filter", + "path": "folders/nodes/data/filter.yy", + }, + "resourceVersion": "1.0", + "name": "node_greyscale", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_camera/node_outline.yy b/scripts/node_camera/node_outline.yy new file mode 100644 index 000000000..86468bc09 --- /dev/null +++ b/scripts/node_camera/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_collection/node_collection.gml b/scripts/node_collection/node_collection.gml index ba008ab65..f87c55c30 100644 --- a/scripts/node_collection/node_collection.gml +++ b/scripts/node_collection/node_collection.gml @@ -10,6 +10,15 @@ function Node_Collection(_x, _y, _group = -1) : Node(_x, _y, _group) constructor custom_input_index = 0; custom_output_index = 0; + static getNextNodes = function() { + for(var i = custom_input_index; i < ds_list_size(inputs); i++) { + var _in = inputs[| i].from; + + ds_stack_push(RENDER_STACK, _in); + printIf(global.RENDER_LOG, "Push group input " + _in.name + " to stack"); + } + } + static setRenderStatus = function(result) { rendered = result; @@ -18,7 +27,7 @@ function Node_Collection(_x, _y, _group = -1) : Node(_x, _y, _group) constructor for( var i = custom_output_index; i < siz; i++ ) { var _o = outputs[| i]; if(_o.node.rendered) continue; - + rendered = false; break; } @@ -96,6 +105,7 @@ function Node_Collection(_x, _y, _group = -1) : Node(_x, _y, _group) constructor } setHeight(); + doStepBegin(); } static doUpdate = function() { @@ -115,8 +125,12 @@ function Node_Collection(_x, _y, _group = -1) : Node(_x, _y, _group) constructor PANEL_GRAPH.addContext(self); DOUBLE_CLICK = false; } + + onStep(); } + static onStep = function() {} + static triggerRender = function() { for(var i = custom_input_index; i < ds_list_size(inputs); i++) { var jun_node = inputs[| i].from; diff --git a/scripts/node_crop/node_crop.gml b/scripts/node_crop/node_crop.gml index 97c4da72a..4543f7eba 100644 --- a/scripts/node_crop/node_crop.gml +++ b/scripts/node_crop/node_crop.gml @@ -1,5 +1,6 @@ function Node_Crop(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constructor { name = "Crop"; + preview_alpha = 0.5; inputs[| 0] = nodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); inputs[| 1] = nodeValue(1, "Crop", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 0, 0, 0, 0 ]) @@ -12,23 +13,27 @@ function Node_Crop(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constru drag_my = 0; drag_sv = 0; + static getPreviewValue = function() { return inputs[| 0]; } + static drawOverlay = function(active, _x, _y, _s, _mx, _my) { if(array_length(current_data) < 2) return; var _inSurf = current_data[0]; - var _dim = [ surface_get_width(_inSurf), surface_get_height(_inSurf) ]; var _splice = current_data[1]; - var sp_r = _x + (_dim[0] - _splice[0] - _splice[2]) * _s; - var sp_l = _x; + var dim = [ surface_get_width(_inSurf), surface_get_height(_inSurf) ] - var sp_t = _y; - var sp_b = _y + (_dim[1] - _splice[1] - _splice[3]) * _s; + var sp_r = _x + (dim[0] - _splice[0]) * _s; + var sp_l = _x + _splice[2] * _s; + + var sp_t = _y + _splice[1] * _s; + var sp_b = _y + (dim[1] - _splice[3]) * _s; var ww = WIN_W; var hh = WIN_H; - draw_surface_ext_safe(_inSurf, _x - _splice[2] * _s, _y - _splice[1] * _s, _s, _s, 0, c_white, 0.1); + var _out = outputs[| 0].getValue(); + draw_surface_ext_safe(_out, sp_l, sp_t, _s, _s); draw_set_color(COLORS._main_accent); draw_line(sp_r, -hh, sp_r, hh); @@ -43,7 +48,7 @@ function Node_Crop(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constru else if(drag_side == 2) vv = drag_sv + (_mx - drag_mx) / _s; else if(drag_side == 1) vv = drag_sv + (_my - drag_my) / _s; else vv = drag_sv - (_my - drag_my) / _s; - + _splice[drag_side] = vv; if(inputs[| 1].setValue(_splice)) UNDO_HOLDING = true; @@ -94,9 +99,6 @@ function Node_Crop(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constru var _crop = _data[1]; var _dim = [ surface_get_width(_inSurf) - _crop[0] - _crop[2], surface_get_height(_inSurf) - _crop[1] - _crop[3] ]; - preview_x = _crop[2]; - preview_y = _crop[1]; - surface_size_to(_outSurf, _dim[0], _dim[1]); surface_set_target(_outSurf); diff --git a/scripts/node_data/node_data.gml b/scripts/node_data/node_data.gml index 763ebba5d..06fdb1c80 100644 --- a/scripts/node_data/node_data.gml +++ b/scripts/node_data/node_data.gml @@ -43,6 +43,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor { preview_speed = 0; preview_index = 0; preview_channel = 0; + preview_alpha = 1; preview_x = 0; preview_y = 0; @@ -101,28 +102,25 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor { } static stepBegin = function() { - if(use_cache) { + if(use_cache) cacheArrayCheck(); - } var stack_push = false; if(always_output) { for(var i = 0; i < ds_list_size(outputs); i++) { - if(outputs[| i].type == VALUE_TYPE.surface) { - var val = outputs[| i].getValue(); + if(outputs[| i].type != VALUE_TYPE.surface) + continue; + var val = outputs[| i].getValue(); - if(is_array(val)) { - for(var j = 0; j < array_length(val); j++) { - var _surf = val[j]; - if(!is_surface(_surf) || _surf == DEF_SURFACE) { - stack_push = true; - } - } - } else { - if(!is_surface(val) || val == DEF_SURFACE) { - stack_push = true; - } + if(is_array(val)) { + for(var j = 0; j < array_length(val); j++) { + var _surf = val[j]; + if(is_surface(_surf) && _surf != DEF_SURFACE) + continue; + stack_push = true; } + } else if(!is_surface(val) || val == DEF_SURFACE) { + stack_push = true; } } } @@ -143,7 +141,11 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor { if(auto_height) setHeight(); + + doStepBegin(); } + static doStepBegin = function() {} + static step = function() {} static focusStep = function() {} @@ -370,7 +372,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor { if(ty == LINE_STYLE.solid) draw_line_width_color(jx, jy, frx, fry, th, c0, c1); else - draw_line_dashed(jx, jy, frx, fry, th, c0, c1, 12); + draw_line_dashed_color(jx, jy, frx, fry, th, c0, c1, 12); break; case 1 : draw_line_curve_color(jx, jy, frx, fry, th, c0, c1, ty); break; case 2 : draw_line_elbow_color(jx, jy, frx, fry, th, c0, c1, ty); break; @@ -449,8 +451,8 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor { drawNodeBase(xx, yy, _s); if(previewable && ds_list_size(outputs) > 0) drawPreview(outputs[| preview_channel], xx, yy, _s); - drawNodeName(xx, yy, _s); onDrawNode(xx, yy, _mx, _my, _s); + drawNodeName(xx, yy, _s); if(active_draw_index > -1) { draw_sprite_stretched_ext(bg_sel_spr, 0, xx, yy, w * _s, h * _s, active_draw_index > 1? COLORS.node_border_file_drop : COLORS._main_accent, 1); @@ -484,6 +486,11 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor { static drawOverlay = function(active, _x, _y, _s, _mx, _my) {} + static getPreviewValue = function() { + if(preview_channel > ds_list_size(outputs)) return noone; + return outputs[| preview_channel]; + } + static destroy = function(_merge = false) { active = false; if(PANEL_GRAPH.node_hover == self) PANEL_GRAPH.node_hover = noone; @@ -530,6 +537,26 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor { static onDestroy = function() {} + static getNextNodes = function() { + for(var i = 0; i < ds_list_size(outputs); i++) { + var _ot = outputs[| i]; + if(_ot.type == VALUE_TYPE.node) continue; + + for(var j = 0; j < ds_list_size(_ot.value_to); j++) { + var _to = _ot.value_to[| j]; + if(!_to.node.active || _to.value_from == noone) continue; + if(_to.value_from.node != self) continue; + + _to.node.triggerRender(); + if(_to.node.isUpdateReady()) { + ds_stack_push(RENDER_STACK, _to.node); + printIf(global.RENDER_LOG, " > Push " + _to.node.name + " node to stack"); + } else + printIf(global.RENDER_LOG, " > Node " + _to.node.name + " not ready"); + } + } + } + static cacheArrayCheck = function() { if(array_length(cached_output) != ANIMATOR.frames_total + 1) array_resize(cached_output, ANIMATOR.frames_total + 1); @@ -632,7 +659,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) constructor { static clone = function() { var _type = instanceof(self); - var _node = NODE_CREATE_FUCTION[? _type](x, y); + var _node = nodeBuild(_type, x, y); var _data = serialize(); _node.deserialize(ds_map_clone(_data)); diff --git a/scripts/node_feedback/node_feedback.gml b/scripts/node_feedback/node_feedback.gml new file mode 100644 index 000000000..04b56af47 --- /dev/null +++ b/scripts/node_feedback/node_feedback.gml @@ -0,0 +1,31 @@ +function Node_Feedback(_x, _y, _group = -1) : Node_Collection(_x, _y, _group) constructor { + name = "Feedback"; + color = COLORS.node_blend_feedback; + + if(!LOADING && !APPENDING) { + var input = nodeBuild("Node_Feedback_Input", -256, -32, self); + var output = nodeBuild("Node_Feedback_Output", 256, -32, self); + + input.inputs[| 2].setValue(4); + output.inputs[| 0].setFrom(input.outputs[| 0]); + output.inputs[| 2].setFrom(input.outputs[| 1]); + } + + static doStepBegin = function() { + if(!ANIMATOR.frame_progress) return; + setRenderStatus(false); + UPDATE |= RENDER_TYPE.full; + } + + static getNextNodes = function() { + var allReady = true; + for(var i = custom_input_index; i < ds_list_size(inputs); i++) { + var _in = inputs[| i].from; + allReady &= _in.isUpdateReady() + } + + if(!allReady) return; + + __nodeLeafList(nodes, RENDER_STACK); + } +} \ No newline at end of file diff --git a/scripts/node_feedback/node_feedback.yy b/scripts/node_feedback/node_feedback.yy new file mode 100644 index 000000000..792861ea7 --- /dev/null +++ b/scripts/node_feedback/node_feedback.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_feedback", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "feedback", + "path": "folders/nodes/data/feedback.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_feedback_input/node_feedback_input.gml b/scripts/node_feedback_input/node_feedback_input.gml new file mode 100644 index 000000000..64f9ed86f --- /dev/null +++ b/scripts/node_feedback_input/node_feedback_input.gml @@ -0,0 +1,26 @@ +function Node_Feedback_Input(_x, _y, _group = -1) : Node_Group_Input(_x, _y, _group) constructor { + name = "Input"; + color = COLORS.node_blend_feedback; + + w = 96; + h = 32 + 24 * 2; + min_h = h; + + outputs[| 0].getValueRecursive = function(_time) { + var _node_output = noone; + for( var i = 0; i < ds_list_size(outputs[| 1].value_to); i++ ) { + var vt = outputs[| 1].value_to[| i]; + if(vt.value_from == outputs[| 1]) + _node_output = vt; + } + + if(ANIMATOR.current_frame > 1 && _node_output != noone) + return [ _node_output.node.cache_value, inputs[| 2].getValue() ]; + + if(inParent.value_from == noone) + return [ -1, VALUE_TYPE.any ]; + return inParent.value_from.getValueRecursive(_time); + } + + outputs[| 1] = nodeValue(1, "Feedback loop", self, JUNCTION_CONNECT.output, VALUE_TYPE.node, 0); +} \ No newline at end of file diff --git a/scripts/node_feedback_input/node_feedback_input.yy b/scripts/node_feedback_input/node_feedback_input.yy new file mode 100644 index 000000000..9238d1688 --- /dev/null +++ b/scripts/node_feedback_input/node_feedback_input.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_feedback_input", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "feedback", + "path": "folders/nodes/data/feedback.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_feedback_output/node_feedback_output.gml b/scripts/node_feedback_output/node_feedback_output.gml new file mode 100644 index 000000000..045a53d49 --- /dev/null +++ b/scripts/node_feedback_output/node_feedback_output.gml @@ -0,0 +1,28 @@ +function Node_Feedback_Output(_x, _y, _group = -1) : Node_Group_Output(_x, _y, _group) constructor { + name = "Output"; + color = COLORS.node_blend_feedback; + + w = 96; + h = 32 + 24 * 2; + min_h = h; + + inputs[| 2] = nodeValue(2, "Feedback loop", self, JUNCTION_CONNECT.input, VALUE_TYPE.node, -1) + .setVisible(true, true); + + cache_value = -1; + + static update = function() { + var _val_get = inputs[| 0].getValue(); + + switch(inputs[| 0].type) { + case VALUE_TYPE.surface : + if(is_surface(cache_value)) + surface_free(cache_value); + if(is_surface(_val_get)) + cache_value = surface_clone(_val_get); + break; + default : + cache_value = _val_get; + } + } +} \ No newline at end of file diff --git a/scripts/node_feedback_output/node_feedback_output.yy b/scripts/node_feedback_output/node_feedback_output.yy new file mode 100644 index 000000000..458d9ec8c --- /dev/null +++ b/scripts/node_feedback_output/node_feedback_output.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_feedback_output", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "feedback", + "path": "folders/nodes/data/feedback.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_iteration_output/node_group_input.yy b/scripts/node_feedback_output/node_group_input.yy similarity index 100% rename from scripts/node_iteration_output/node_group_input.yy rename to scripts/node_feedback_output/node_group_input.yy diff --git a/scripts/node_group_input/node_group_input.gml b/scripts/node_group_input/node_group_input.gml index 86929a68b..d67f98c26 100644 --- a/scripts/node_group_input/node_group_input.gml +++ b/scripts/node_group_input/node_group_input.gml @@ -5,7 +5,6 @@ function Node_Group_Input(_x, _y, _group = -1) : Node(_x, _y, _group) constructo auto_height = false; input_index = -1; - group = _group; inParent = undefined; w = 96; diff --git a/scripts/node_group_output/node_group_output.gml b/scripts/node_group_output/node_group_output.gml index 748cb3a91..bba1a673d 100644 --- a/scripts/node_group_output/node_group_output.gml +++ b/scripts/node_group_output/node_group_output.gml @@ -4,8 +4,6 @@ function Node_Group_Output(_x, _y, _group = -1) : Node(_x, _y, _group) construct previewable = false; auto_height = false; - self.group = _group; - w = 96; h = 32 + 24; min_h = h; @@ -24,6 +22,33 @@ function Node_Group_Output(_x, _y, _group = -1) : Node(_x, _y, _group) construct group.sortIO(); } + static getNextNodes = function() { + group.setRenderStatus(true); + printIf(global.RENDER_LOG, "Value to amount " + string(ds_list_size(outParent.value_to))); + + for(var j = 0; j < ds_list_size(outParent.value_to); j++) { + var _to = outParent.value_to[| j]; + printIf(global.RENDER_LOG, "Value to " + _to.name); + + if(!_to.node.active || _to.value_from == noone) { + printIf(global.RENDER_LOG, "no value from"); + continue; + } + + if(_to.value_from.node != group) { + printIf(global.RENDER_LOG, "value from not equal group"); + continue; + } + + printIf(global.RENDER_LOG, "Group output ready " + string(_to.node.isUpdateReady())); + + if(_to.node.isUpdateReady()) { + ds_stack_push(RENDER_STACK, _to.node); + printIf(global.RENDER_LOG, "Push node " + _to.node.name + " to stack"); + } + } + } + static createOutput = function(override_order = true) { if(group && is_struct(group)) { if(override_order) { diff --git a/scripts/node_iterate/node_iterate.gml b/scripts/node_iterate/node_iterate.gml index b8df780d3..4289442c1 100644 --- a/scripts/node_iterate/node_iterate.gml +++ b/scripts/node_iterate/node_iterate.gml @@ -37,6 +37,19 @@ function Node_Iterate(_x, _y, _group = -1) : Node_Collection(_x, _y, _group) con printIf(global.RENDER_LOG, "LOOP INIT"); } + static getNextNodes = function() { + var allReady = true; + for(var i = custom_input_index; i < ds_list_size(inputs); i++) { + var _in = inputs[| i].from; + allReady &= _in.isUpdateReady() + } + + if(!allReady) return; + + __nodeLeafList(nodes, RENDER_STACK); + initLoop(); + } + static iterationStatus = function() { var iter = true; for( var i = 0; i < ds_list_size(outputs); i++ ) { diff --git a/scripts/node_iteration_index/node_iteration_index.gml b/scripts/node_iteration_index/node_iteration_index.gml deleted file mode 100644 index 4ce71dba3..000000000 --- a/scripts/node_iteration_index/node_iteration_index.gml +++ /dev/null @@ -1,15 +0,0 @@ -function Node_Iterator_Index(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { - name = "Index"; - color = COLORS.node_blend_number; - previewable = false; - - w = 96; - min_h = 32 + 24 * 1; - - outputs[| 0] = nodeValue(0, "Loop index", self, JUNCTION_CONNECT.output, VALUE_TYPE.integer, 0); - - static update = function() { - if(variable_struct_exists(group, "iterated")) - outputs[| 0].setValue(group.iterated); - } -} \ No newline at end of file diff --git a/scripts/node_iteration_input/node_iteration_input.gml b/scripts/node_iteration_input/node_iteration_input.gml deleted file mode 100644 index b26a52606..000000000 --- a/scripts/node_iteration_input/node_iteration_input.gml +++ /dev/null @@ -1,227 +0,0 @@ -function Node_Iterator_Input(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { - name = "Input"; - color = COLORS.node_blend_collection; - previewable = false; - auto_height = false; - input_index = -1; - - inParent = undefined; - local_output = noone; - - w = 96; - h = 32 + 24 * 2; - min_h = h; - - inputs[| 0] = nodeValue(0, "Display type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) - .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Default", "Range", "Enum Scroll", "Enum Button", "Rotation", "Rotation range", - "Slider", "Slider range", "Gradient", "Palette", "Padding", "Vector", "Vector range", "Area", "Curve" ]); - - inputs[| 1] = nodeValue(1, "Range", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [0, 1]) - .setDisplay(VALUE_DISPLAY.vector) - .setVisible(false); - - inputs[| 2] = nodeValue(2, "Input type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) - .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Integer", "Float", "Boolean", "Color", "Surface", "Path", "Curve", "Text", "Object", "Any" ]); - - inputs[| 3] = nodeValue(3, "Enum label", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "") - .setVisible(false); - - inputs[| 4] = nodeValue(4, "Vector size", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) - .setDisplay(VALUE_DISPLAY.enum_button, [ "2", "3", "4" ]) - .setVisible(false); - - inputs[| 5] = nodeValue(5, "Order", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0); - - input_display_list = [ - ["Display", false], 5, - ["Data", false], 2, 0, 4, 1, 3, - ]; - - outputs[| 0] = nodeValue(0, "Value", self, JUNCTION_CONNECT.output, VALUE_TYPE.any, 0); - outputs[| 0].getValueDefault = method(outputs[| 0], outputs[| 0].getValueRecursive); //Get value from outside loop - outputs[| 0].getValueRecursive = function() { - //show_debug_message("iteration " + string(group.iterated)); - if(!variable_struct_exists(group, "iterated")) - return outputs[| 0].getValueDefault(); - - var _node_output = noone; - for( var i = 0; i < ds_list_size(outputs[| 1].value_to); i++ ) { - var vt = outputs[| 1].value_to[| i]; - if(vt.value_from == outputs[| 1]) - _node_output = vt; - } - - if(_node_output == noone || group.iterated == 0) - return outputs[| 0].getValueDefault(); - - return [ _node_output.node.cache_value, inputs[| 2].getValue() ]; - } - - outputs[| 1] = nodeValue(1, "Loop entrance", self, JUNCTION_CONNECT.output, VALUE_TYPE.node, 0); - - output_display_list = [ - 1, 0 - ] - - static onValueUpdate = function(index) { - if(is_undefined(inParent)) return; - - var _dtype = inputs[| 0].getValue(); - var _range = inputs[| 1].getValue(); - var _val_type = inputs[| 2].getValue(); - var _enum_label = inputs[| 3].getValue(); - var _vec_size = inputs[| 4].getValue(); - - if(index == 2) { - var _o = outputs[| 0]; - for(var j = 0; j < ds_list_size(_o.value_to); j++) { - var _to = _o.value_to[| j]; - if(_to.value_from == _o) - _to.removeFrom(); - } - } - - inParent.type = _val_type; - outputs[| 0].type = _val_type; - var _val = inParent.getValue(); - - switch(_dtype) { - case VALUE_DISPLAY.range : - case VALUE_DISPLAY.slider : - inParent.setDisplay(_dtype, [_range[0], _range[1], 0.01]); - break; - - case VALUE_DISPLAY.slider_range : - inParent.setDisplay(_dtype, [_range[0], _range[1], 0.01]); - break; - - case VALUE_DISPLAY.rotation_range : - if(!is_array(_val) || array_length(_val) != 2) - inParent.animator = new valueAnimator([0, 0], inParent); - inParent.setDisplay(_dtype); - break; - - case VALUE_DISPLAY.enum_button : - case VALUE_DISPLAY.enum_scroll : - inParent.setDisplay(_dtype, string_splice(_enum_label, ",")); - break; - - case VALUE_DISPLAY.padding : - if(!is_array(_val) || array_length(_val) != 4) - inParent.animator = new valueAnimator([0, 0, 0, 0], inParent); - inParent.setDisplay(_dtype); - break; - - case VALUE_DISPLAY.area : - if(!is_array(_val) || array_length(_val) != 5) - inParent.animator = new valueAnimator([0, 0, 0, 0, 5], inParent); - inParent.setDisplay(_dtype); - break; - - case VALUE_DISPLAY.vector : - case VALUE_DISPLAY.vector_range : - switch(_vec_size) { - case 0 : - if(!is_array(_val) || array_length(_val) != 2) - inParent.animator = new valueAnimator([0, 0], inParent); - break; - case 1 : - if(!is_array(_val) || array_length(_val) != 3) - inParent.animator = new valueAnimator([0, 0, 0], inParent); - break; - case 2 : - if(!is_array(_val) || array_length(_val) != 4) - inParent.animator = new valueAnimator([0, 0, 0, 0], inParent); - break; - } - - inParent.setDisplay(_dtype); - break; - - case VALUE_DISPLAY.palette : - if(!is_array(_val)) - inParent.animator = new valueAnimator([c_black], inParent); - inParent.setDisplay(_dtype); - break; - - default : - inParent.setDisplay(_dtype); - break; - } - - if(index == 5) { - group.sortIO(); - } - } - - static createInput = function(override_order = true) { - if(group && is_struct(group)) { - if(override_order = true) { - input_index = ds_list_size(group.inputs); - inputs[| 5].setValue(input_index); - } else { - input_index = inputs[| 5].getValue(); - } - - inParent = nodeValue(ds_list_size(group.inputs), "Value", group, JUNCTION_CONNECT.input, VALUE_TYPE.any, -1) - .setVisible(true, true); - inParent.from = self; - - ds_list_add(group.inputs, inParent); - outputs[| 0].setFrom(inParent, false, false); - group.setHeight(); - group.sortIO(); - - onValueUpdate(0); - } - } - - if(!LOADING && !APPENDING) - createInput(); - - dtype = -1; - range = 0; - - static step = function() { - if(is_undefined(inParent)) return; - - inParent.name = name; - } - - static update = function() { - if(is_undefined(inParent)) return; - - var _dtype = inputs[| 0].getValue(); - - inputs[| 1].setVisible(false); - inputs[| 3].setVisible(false); - inputs[| 4].setVisible(false); - - switch(_dtype) { - case VALUE_DISPLAY.range : - case VALUE_DISPLAY.slider : - case VALUE_DISPLAY.slider_range : - inputs[| 1].setVisible(true); - break; - case VALUE_DISPLAY.enum_button : - case VALUE_DISPLAY.enum_scroll : - inputs[| 3].setVisible(true); - break; - case VALUE_DISPLAY.vector : - case VALUE_DISPLAY.vector_range : - inputs[| 4].setVisible(true); - break; - } - } - - static postDeserialize = function() { - createInput(false); - onValueUpdate(0); - } - - static onDestroy = function() { - if(is_undefined(inParent)) return; - - ds_list_remove(group.inputs, inParent); - } -} \ No newline at end of file diff --git a/scripts/node_iteration_output/node_iteration_output.gml b/scripts/node_iteration_output/node_iteration_output.gml deleted file mode 100644 index 99f943378..000000000 --- a/scripts/node_iteration_output/node_iteration_output.gml +++ /dev/null @@ -1,104 +0,0 @@ -function Node_Iterator_Output(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { - name = "Output"; - color = COLORS.node_blend_collection; - previewable = false; - auto_height = false; - - self.group = _group; - - w = 96; - h = 32 + 24 * 2; - min_h = h; - - inputs[| 0] = nodeValue(0, "Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.any, -1) - .setVisible(true, true); - - inputs[| 1] = nodeValue(1, "Order", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0); - - inputs[| 2] = nodeValue(2, "Loop exit", self, JUNCTION_CONNECT.input, VALUE_TYPE.node, -1) - .setVisible(true, true); - - input_display_list = [ - 2, 0, 1 - ] - - cache_value = -1; - outParent = undefined; - output_index = -1; - - static onValueUpdate = function(index) { - if(is_undefined(outParent)) return; - group.sortIO(); - } - - static initLoop = function() { - cache_value = noone; - } - - static createOutput = function(override_order = true) { - if(group && is_struct(group)) { - if(override_order) { - output_index = ds_list_size(group.outputs); - inputs[| 1].setValue(output_index); - } else { - output_index = inputs[| 1].getValue(); - } - - outParent = nodeValue(ds_list_size(group.outputs), "Value", group, JUNCTION_CONNECT.output, VALUE_TYPE.any, -1) - .setVisible(true, true); - outParent.from = self; - - ds_list_add(group.outputs, outParent); - group.setHeight(); - group.sortIO(); - - outParent.setFrom(inputs[| 0]); - } - } - - if(!LOADING && !APPENDING) - createOutput(); - - static step = function() { - if(is_undefined(outParent)) return; - - outParent.name = name; - - inputs[| 0].type = inputs[| 0].value_from == noone? VALUE_TYPE.any : inputs[| 0].value_from.type; - outParent.type = inputs[| 0].type; - } - - static triggerRender = function() { - if(is_undefined(outParent)) return; - - for(var j = 0; j < ds_list_size(outParent.value_to); j++) { - if(outParent.value_to[| j].value_from == outParent) - outParent.value_to[| j].node.triggerRender(); - } - } - - static update = function() { - var _val_get = inputs[| 0].getValue(); - - switch(inputs[| 0].type) { - case VALUE_TYPE.surface : - if(is_surface(cache_value)) - surface_free(cache_value); - if(is_surface(_val_get)) - cache_value = surface_clone(_val_get); - printIf(global.RENDER_LOG, "LOOP cache result"); - break; - default : - cache_value = _val_get; - } - } - - static postDeserialize = function() { - createOutput(false); - } - - static onDestroy = function() { - if(is_undefined(outParent)) return; - ds_list_delete(group.outputs, ds_list_find_index(group.outputs, outParent)); - } -} \ No newline at end of file diff --git a/scripts/node_iterator_index/node_iterator_index.gml b/scripts/node_iterator_index/node_iterator_index.gml new file mode 100644 index 000000000..686c34e76 --- /dev/null +++ b/scripts/node_iterator_index/node_iterator_index.gml @@ -0,0 +1,21 @@ +function Node_Iterator_Index(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { + name = "Index"; + color = COLORS.node_blend_loop; + previewable = false; + + w = 96; + min_h = 80; + + outputs[| 0] = nodeValue(0, "Loop index", self, JUNCTION_CONNECT.output, VALUE_TYPE.integer, 0); + + static update = function() { + if(!variable_struct_exists(group, "iterated")) return; + outputs[| 0].setValue(group.iterated); + } + + static onDrawNode = function(xx, yy, _mx, _my, _s) { + var cx = xx + w * _s / 2; + var cy = yy + 10 + (h - 10) * _s / 2; + draw_sprite_uniform(s_node_iterator_index, 0, cx, cy, _s * 0.8); + } +} \ No newline at end of file diff --git a/scripts/node_iteration_index/node_iteration_index.yy b/scripts/node_iterator_index/node_iterator_index.yy similarity index 85% rename from scripts/node_iteration_index/node_iteration_index.yy rename to scripts/node_iterator_index/node_iterator_index.yy index 1eb817a65..3cc7f7d52 100644 --- a/scripts/node_iteration_index/node_iteration_index.yy +++ b/scripts/node_iterator_index/node_iterator_index.yy @@ -1,7 +1,7 @@ { "resourceType": "GMScript", "resourceVersion": "1.0", - "name": "node_iteration_index", + "name": "node_iterator_index", "isDnD": false, "isCompatibility": false, "parent": { diff --git a/scripts/node_iterator_input/node_iterator_input.gml b/scripts/node_iterator_input/node_iterator_input.gml new file mode 100644 index 000000000..65ece00f1 --- /dev/null +++ b/scripts/node_iterator_input/node_iterator_input.gml @@ -0,0 +1,31 @@ +function Node_Iterator_Input(_x, _y, _group = -1) : Node_Group_Input(_x, _y, _group) constructor { + name = "Input"; + color = COLORS.node_blend_loop; + + local_output = noone; + + w = 96; + h = 32 + 24 * 2; + min_h = h; + + outputs[| 0].getValueDefault = method(outputs[| 0], outputs[| 0].getValueRecursive); //Get value from outside loop + outputs[| 0].getValueRecursive = function() { + //show_debug_message("iteration " + string(group.iterated)); + if(!variable_struct_exists(group, "iterated")) + return outputs[| 0].getValueDefault(); + + var _node_output = noone; + for( var i = 0; i < ds_list_size(outputs[| 1].value_to); i++ ) { + var vt = outputs[| 1].value_to[| i]; + if(vt.value_from == outputs[| 1]) + _node_output = vt; + } + + if(_node_output == noone || group.iterated == 0) + return outputs[| 0].getValueDefault(); + + return [ _node_output.node.cache_value, inputs[| 2].getValue() ]; + } + + outputs[| 1] = nodeValue(1, "Loop entrance", self, JUNCTION_CONNECT.output, VALUE_TYPE.node, 0); +} \ No newline at end of file diff --git a/scripts/node_iteration_input/node_iteration_input.yy b/scripts/node_iterator_input/node_iterator_input.yy similarity index 85% rename from scripts/node_iteration_input/node_iteration_input.yy rename to scripts/node_iterator_input/node_iterator_input.yy index 996e94ebd..42d792f4d 100644 --- a/scripts/node_iteration_input/node_iteration_input.yy +++ b/scripts/node_iterator_input/node_iterator_input.yy @@ -1,7 +1,7 @@ { "resourceType": "GMScript", "resourceVersion": "1.0", - "name": "node_iteration_input", + "name": "node_iterator_input", "isDnD": false, "isCompatibility": false, "parent": { diff --git a/scripts/node_iterator_output/node_group_input.yy b/scripts/node_iterator_output/node_group_input.yy new file mode 100644 index 000000000..b48fa62c4 --- /dev/null +++ b/scripts/node_iterator_output/node_group_input.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "group", + "path": "folders/nodes/data/group.yy", + }, + "resourceVersion": "1.0", + "name": "node_group_input", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_iterator_output/node_iterator_output.gml b/scripts/node_iterator_output/node_iterator_output.gml new file mode 100644 index 000000000..ce01194cd --- /dev/null +++ b/scripts/node_iterator_output/node_iterator_output.gml @@ -0,0 +1,58 @@ +function Node_Iterator_Output(_x, _y, _group = -1) : Node_Group_Output(_x, _y, _group) constructor { + name = "Output"; + color = COLORS.node_blend_loop; + + w = 96; + h = 32 + 24 * 2; + min_h = h; + + inputs[| 2] = nodeValue(2, "Loop exit", self, JUNCTION_CONNECT.input, VALUE_TYPE.node, -1) + .setVisible(true, true); + + cache_value = -1; + + static getNextNodes = function() { + var _node_it = group; + var _ren = _node_it.iterationStatus(); + + if(_ren == ITERATION_STATUS.loop) { //Go back to the beginning of the loop, reset render status for leaf node inside? + printIf(global.RENDER_LOG, " > Loop restart: iteration " + string(group.iterated)); + __nodeLeafList(group.nodes, RENDER_STACK); + var loopEnt = inputs[| 2].value_from.node; + ds_stack_push(RENDER_STACK, loopEnt); + } else if(_ren == ITERATION_STATUS.complete) { //Go out of loop + printIf(global.RENDER_LOG, " > Loop completed"); + group.setRenderStatus(true); + var _ot = outParent; + for(var j = 0; j < ds_list_size(_ot.value_to); j++) { + var _to = _ot.value_to[| j]; + + if(_to.node.active && _to.value_from != noone && _to.value_from.node == group) { + _to.node.triggerRender(); + if(_to.node.isUpdateReady()) ds_stack_push(RENDER_STACK, _to.node); + } + } + } else + printIf(global.RENDER_LOG, " > Loop not ready"); + } + + static initLoop = function() { + cache_value = noone; + } + + static update = function() { + var _val_get = inputs[| 0].getValue(); + + switch(inputs[| 0].type) { + case VALUE_TYPE.surface : + if(is_surface(cache_value)) + surface_free(cache_value); + if(is_surface(_val_get)) + cache_value = surface_clone(_val_get); + printIf(global.RENDER_LOG, "LOOP cache result"); + break; + default : + cache_value = _val_get; + } + } +} \ No newline at end of file diff --git a/scripts/node_iteration_output/node_iteration_output.yy b/scripts/node_iterator_output/node_iterator_output.yy similarity index 84% rename from scripts/node_iteration_output/node_iteration_output.yy rename to scripts/node_iterator_output/node_iterator_output.yy index 768009d3c..00efd302e 100644 --- a/scripts/node_iteration_output/node_iteration_output.yy +++ b/scripts/node_iterator_output/node_iterator_output.yy @@ -1,7 +1,7 @@ { "resourceType": "GMScript", "resourceVersion": "1.0", - "name": "node_iteration_output", + "name": "node_iterator_output", "isDnD": false, "isCompatibility": false, "parent": { diff --git a/scripts/node_lerp/node_lerp.yy b/scripts/node_lerp/node_lerp.yy index 03127e47d..625c7158a 100644 --- a/scripts/node_lerp/node_lerp.yy +++ b/scripts/node_lerp/node_lerp.yy @@ -5,7 +5,7 @@ "isDnD": false, "isCompatibility": false, "parent": { - "name": "number", - "path": "folders/nodes/data/number.yy", + "name": "value", + "path": "folders/nodes/data/value.yy", }, } \ No newline at end of file diff --git a/scripts/node_math/node_math.gml b/scripts/node_math/node_math.gml index b5bef73ec..f1377c3a8 100644 --- a/scripts/node_math/node_math.gml +++ b/scripts/node_math/node_math.gml @@ -66,21 +66,41 @@ function Node_Math(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { static _eval = function(mode, a, b, deg = true) { switch(mode) { - case MATH_OPERATOR.add : return a + b; - case MATH_OPERATOR.subtract : return a - b; - case MATH_OPERATOR.multiply : return a * b; - case MATH_OPERATOR.divide : return b == 0? 0 : a / b; - case MATH_OPERATOR.power : return power(a, b); - case MATH_OPERATOR.root : return b == 0? 0 : power(a, 1 / b); + case MATH_OPERATOR.add : + if(is_real(a) && is_real(b)) return a + b; + else if(is_string(a) || is_string(b)) return string(a) + string(b); + + case MATH_OPERATOR.subtract : + if(is_real(a) && is_real(b)) return a - b; + else if(is_string(a) || is_string(b)) return string_replace(string(a), string(b), ""); + + case MATH_OPERATOR.multiply : + if(is_real(a) && is_real(b)) return a * b; + else if(is_string(a) || is_real(b)) { + var s = ""; + repeat(b) s += a; + return s; + } else if(is_string(b) || is_real(a)) { + var s = ""; + repeat(a) s += b; + return s; + } + + case MATH_OPERATOR.divide : + if(is_real(a) && is_real(b)) return b == 0? 0 : a / b; + else if(is_string(a) || is_string(b)) return string_replace_all(string(a), string(b), ""); - case MATH_OPERATOR.sin : return sin(degtorad(a)) * b; - case MATH_OPERATOR.cos : return cos(degtorad(a)) * b; - case MATH_OPERATOR.tan : return tan(degtorad(a)) * b; - case MATH_OPERATOR.modulo : return safe_mod(a, b); + case MATH_OPERATOR.power : if(is_real(a) && is_real(b)) return power(a, b); + case MATH_OPERATOR.root : if(is_real(a) && is_real(b)) return b == 0? 0 : power(a, 1 / b); - case MATH_OPERATOR.floor : return floor(a); - case MATH_OPERATOR.ceiling : return ceil(a); - case MATH_OPERATOR.round : return round(a); + case MATH_OPERATOR.sin : if(is_real(a) && is_real(b)) return sin(degtorad(a)) * b; + case MATH_OPERATOR.cos : if(is_real(a) && is_real(b)) return cos(degtorad(a)) * b; + case MATH_OPERATOR.tan : if(is_real(a) && is_real(b)) return tan(degtorad(a)) * b; + case MATH_OPERATOR.modulo : if(is_real(a) && is_real(b)) return safe_mod(a, b); + + case MATH_OPERATOR.floor : if(is_real(a)) return floor(a); + case MATH_OPERATOR.ceiling : if(is_real(a)) return ceil(a); + case MATH_OPERATOR.round : if(is_real(a)) return round(a); } return 0; } diff --git a/scripts/node_math/node_math.yy b/scripts/node_math/node_math.yy index 5f81af0be..5fe6757f0 100644 --- a/scripts/node_math/node_math.yy +++ b/scripts/node_math/node_math.yy @@ -5,7 +5,7 @@ "isDnD": false, "isCompatibility": false, "parent": { - "name": "number", - "path": "folders/nodes/data/number.yy", + "name": "value", + "path": "folders/nodes/data/value.yy", }, } \ No newline at end of file diff --git a/scripts/node_particle/node_particle.gml b/scripts/node_particle/node_particle.gml index 6cb5d8981..4e821c3f5 100644 --- a/scripts/node_particle/node_particle.gml +++ b/scripts/node_particle/node_particle.gml @@ -1,9 +1,8 @@ -function Node_Particle(_x, _y, _group = -1) : Node_VFX_Spawner(_x, _y, _group) constructor { +function Node_Particle(_x, _y, _group = -1) : Node_VFX_Spawner_Base(_x, _y, _group) constructor { name = "Particle"; auto_update = false; use_cache = true; - input_len = ds_list_size(inputs); inputs[| input_len + 0] = nodeValue(input_len + 0, "Output dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, def_surf_size2) .setDisplay(VALUE_DISPLAY.vector); @@ -31,9 +30,9 @@ function Node_Particle(_x, _y, _group = -1) : Node_VFX_Spawner(_x, _y, _group) c if(ANIMATOR.current_frame == 0) { reset(); - runFrame(ANIMATOR.current_frame); + runVFX(ANIMATOR.current_frame); } else if(cached_output[ANIMATOR.current_frame - 1] != 0) { - runFrame(ANIMATOR.current_frame); + runVFX(ANIMATOR.current_frame); } } diff --git a/scripts/node_path/node_path.gml b/scripts/node_path/node_path.gml index f64c58ed8..3342194a0 100644 --- a/scripts/node_path/node_path.gml +++ b/scripts/node_path/node_path.gml @@ -385,7 +385,9 @@ function Node_Path(_x, _y, _group = -1) : Node(_x, _y, _group) constructor { } static onDrawNode = function(xx, yy, _mx, _my, _s) { - draw_sprite_ext(THEME.node_draw_path, 0, xx + w * _s / 2, yy + 10 + (h - 10) * _s / 2, _s, _s, 0, c_white, 1); + var cx = xx + w * _s / 2; + var cy = yy + 10 + (h - 10) * _s / 2; + draw_sprite_uniform(THEME.node_draw_path, 0, cx, cy, _s); } static postDeserialize = function() { diff --git a/scripts/node_path/node_path.yy b/scripts/node_path/node_path.yy index cdc05fccb..004b0f415 100644 --- a/scripts/node_path/node_path.yy +++ b/scripts/node_path/node_path.yy @@ -5,7 +5,7 @@ "isDnD": false, "isCompatibility": false, "parent": { - "name": "number", - "path": "folders/nodes/data/number.yy", + "name": "value", + "path": "folders/nodes/data/value.yy", }, } \ No newline at end of file diff --git a/scripts/node_pixel_sort/node_color_adjustment.yy b/scripts/node_pixel_sort/node_color_adjustment.yy new file mode 100644 index 000000000..8df16cc8c --- /dev/null +++ b/scripts/node_pixel_sort/node_color_adjustment.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "filter", + "path": "folders/nodes/data/filter.yy", + }, + "resourceVersion": "1.0", + "name": "node_color_adjustment", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_pixel_sort/node_color_replacement.yy b/scripts/node_pixel_sort/node_color_replacement.yy new file mode 100644 index 000000000..024aa6a80 --- /dev/null +++ b/scripts/node_pixel_sort/node_color_replacement.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "process", + "path": "folders/nodes/data/process.yy", + }, + "resourceVersion": "1.0", + "name": "node_color_replacement", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_pixel_sort/node_greyscale.yy b/scripts/node_pixel_sort/node_greyscale.yy new file mode 100644 index 000000000..ee372977e --- /dev/null +++ b/scripts/node_pixel_sort/node_greyscale.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "filter", + "path": "folders/nodes/data/filter.yy", + }, + "resourceVersion": "1.0", + "name": "node_greyscale", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_pixel_sort/node_outline.yy b/scripts/node_pixel_sort/node_outline.yy new file mode 100644 index 000000000..86468bc09 --- /dev/null +++ b/scripts/node_pixel_sort/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_pixel_sort/node_pixel_sort.gml b/scripts/node_pixel_sort/node_pixel_sort.gml new file mode 100644 index 000000000..d9fa66f9b --- /dev/null +++ b/scripts/node_pixel_sort/node_pixel_sort.gml @@ -0,0 +1,72 @@ +function Node_Pixel_Sort(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constructor { + name = "Pixel sort"; + + shader = sh_pixel_sort; + uniform_dim = shader_get_uniform(shader, "dimension"); + uniform_itr = shader_get_uniform(shader, "iteration"); + uniform_tre = shader_get_uniform(shader, "threshold"); + uniform_dir = shader_get_uniform(shader, "direction"); + + inputs[| 0] = nodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); + inputs[| 1] = nodeValue(1, "Iteration", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 2); + inputs[| 2] = nodeValue(2, "Threshold", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.1) + .setDisplay(VALUE_DISPLAY.slider, [0, 1, 0.01]); + inputs[| 3] = nodeValue(3, "Direction", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.rotation, 90); + + outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, PIXEL_SURFACE); + + static process_data = function(_outSurf, _data, _output_index) { + var _in = _data[0]; + var _it = _data[1]; + var _tr = _data[2]; + var _dr = floor(_data[3] / 90) % 4; + if(_dr < 0) _dr = 4 + _dr; + if(_it <= 0) return _outSurf; + + var sw = surface_get_width(_outSurf); + var sh = surface_get_height(_outSurf); + + var pp = [ surface_create(sw, sh), surface_create(sw, sh) ]; + var sBase, sDraw; + + surface_set_target(pp[1]); + draw_clear_alpha(0, 0); + BLEND_ADD + draw_surface(_in, 0, 0); + BLEND_NORMAL + surface_reset_target(); + + shader_set(shader); + shader_set_uniform_f(uniform_dim, surface_get_width(_in), surface_get_height(_in)); + shader_set_uniform_f(uniform_tre, _tr); + shader_set_uniform_i(uniform_dir, _dr); + + for( var i = 0; i < _it; i++ ) { + var it = i % 2; + sBase = pp[it]; + sDraw = pp[!it]; + + surface_set_target(sBase); + draw_clear_alpha(0, 0); + BLEND_ADD + shader_set_uniform_f(uniform_itr, i); + draw_surface_safe(sDraw, 0, 0); + BLEND_NORMAL + surface_reset_target(); + } + + shader_reset(); + + surface_set_target(_outSurf); + BLEND_ADD + draw_surface(sBase, 0, 0); + BLEND_NORMAL + surface_reset_target(); + + surface_free(pp[0]); + surface_free(pp[1]); + + return _outSurf; + } +} \ No newline at end of file diff --git a/scripts/node_pixel_sort/node_pixel_sort.yy b/scripts/node_pixel_sort/node_pixel_sort.yy new file mode 100644 index 000000000..c27f20f3e --- /dev/null +++ b/scripts/node_pixel_sort/node_pixel_sort.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_pixel_sort", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "filter", + "path": "folders/nodes/data/filter.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_registry/node_registry.gml b/scripts/node_registry/node_registry.gml index 81fe434c1..7bf0922f0 100644 --- a/scripts/node_registry/node_registry.gml +++ b/scripts/node_registry/node_registry.gml @@ -1,68 +1,58 @@ -function NodeObject(_name, _spr, _create, tags = []) constructor { +function NodeObject(_name, _spr, _node, _create, tags = []) constructor { name = _name; spr = _spr; + node = _node; createNode = _create; self.tags = tags; - function build(_x, _y, _param = "") { - var group = PANEL_GRAPH.getCurrentContext(); - var _node = createNode[0]? new createNode[1](_x, _y, group, _param) : createNode[1](_x, _y, group, _param); + function build(_x, _y, _group = PANEL_GRAPH.getCurrentContext(), _param = "") { + var _node = createNode[0]? new createNode[1](_x, _y, _group, _param) : createNode[1](_x, _y, _group, _param); return _node; } } #region nodes - globalvar ALL_NODES, NODE_CATAGORY, NODE_CREATE_FUCTION; - ALL_NODES = ds_map_create(); - NODE_CATAGORY = ds_list_create(); - NODE_CREATE_FUCTION = ds_map_create(); - - function addNodeObject(_list, _name, _spr, _node, _fun, _tag = []) { - NODE_CREATE_FUCTION[? _node] = _fun; - ds_list_add(_list, new NodeObject(_name, _spr, _fun, _tag)); - } - - function addNodeCatagory(name, list) { - ALL_NODES[? name] = list; - ds_list_add(NODE_CATAGORY, name); - } - - function nodeFind(_name) { - for(var i = 0; i < ds_list_size(NODE_CATAGORY); i++) { - var _page = ALL_NODES[? NODE_CATAGORY[| i]]; - - for(var j = 0; j < ds_list_size(_page); j++) { - var _node = _page[| j]; - if(_node.name == _name) - return _node; - } - } - return noone; - } + globalvar ALL_NODES, NODE_CATEGORY, NODE_PAGE_DEFAULT; + ALL_NODES = ds_map_create(); + NODE_CATEGORY = ds_list_create(); function nodeBuild(_name, _x, _y, _group = PANEL_GRAPH.getCurrentContext()) { - var funs = NODE_CREATE_FUCTION[? _name]; - var _node = funs[0]? new funs[1](_x, _y, _group) : funs[1](_x, _y, _group); - if(!_node) return noone; + var _node = ALL_NODES[? _name]; + return _node.build(_x, _y, _group); + } + + function addNodeObject(_list, _name, _spr, _node, _fun, _tag = []) { + var _n = new NodeObject(_name, _spr, _node, _fun, _tag); - return _node; + ALL_NODES[? _node] = _n; + ds_list_add(_list, _n); + } + + function addNodeCatagory(name, list, filter = "") { + ds_list_add(NODE_CATEGORY, { name: name, list: list, filter: filter }); } var group = ds_list_create(); - addNodeCatagory("Group", group); - addNodeObject(group, "Input", s_node_input, "Node_Group_Input", [1, Node_Group_Input]); - addNodeObject(group, "Output", s_node_output, "Node_Group_Output", [1, Node_Group_Output]); + addNodeCatagory("Group", group, "Node_Group"); + addNodeObject(group, "Input", s_node_group_input, "Node_Group_Input", [1, Node_Group_Input]); + addNodeObject(group, "Output", s_node_group_output,"Node_Group_Output", [1, Node_Group_Output]); var iter = ds_list_create(); - addNodeCatagory("Loop", iter); + addNodeCatagory("Loop", iter, "Node_Iterate"); addNodeObject(iter, "Index", s_node_iterator_index, "Node_Iterator_Index", [1, Node_Iterator_Index]); - addNodeObject(iter, "Input", s_node_input, "Node_Iterator_Input", [1, Node_Iterator_Input]); - addNodeObject(iter, "Output", s_node_output, "Node_Iterator_Output", [1, Node_Iterator_Output]); + addNodeObject(iter, "Input", s_node_loop_input, "Node_Iterator_Input", [1, Node_Iterator_Input]); + addNodeObject(iter, "Output", s_node_loop_output, "Node_Iterator_Output", [1, Node_Iterator_Output]); + + var feed = ds_list_create(); + addNodeCatagory("Feedback", feed, "Node_Feedback"); + addNodeObject(feed, "Input", s_node_feedback_input, "Node_Feedback_Input", [1, Node_Feedback_Input]); + addNodeObject(feed, "Output", s_node_feedback_output, "Node_Feedback_Output", [1, Node_Feedback_Output]); var vfx = ds_list_create(); - addNodeCatagory("VFX", vfx); - addNodeObject(vfx, "Input", s_node_input, "Node_Group_Input", [1, Node_Group_Input]); + addNodeCatagory("VFX", vfx, "Node_VFX_Group"); + addNodeObject(vfx, "Input", s_node_vfx_input, "Node_Group_Input", [1, Node_Group_Input]); + addNodeObject(vfx, "Output", s_node_vfx_output, "Node_Group_Output", [1, Node_Group_Output]); addNodeObject(vfx, "Spawner", s_node_vfx_spawn, "Node_VFX_Spawner", [1, Node_VFX_Spawner]); addNodeObject(vfx, "Renderer", s_node_vfx_render, "Node_VFX_Renderer", [1, Node_VFX_Renderer]); addNodeObject(vfx, "Accelerate", s_node_vfx_accel, "Node_VFX_Accelerate", [1, Node_VFX_Accelerate]); @@ -73,15 +63,17 @@ function NodeObject(_name, _spr, _create, tags = []) constructor { addNodeObject(vfx, "Turbulence", s_node_vfx_turb, "Node_VFX_Turbulence", [1, Node_VFX_Turbulence]); addNodeObject(vfx, "Repel", s_node_vfx_repel, "Node_VFX_Repel", [1, Node_VFX_Repel]); - var input = ds_list_create(); - addNodeCatagory("Input", input); - addNodeObject(input, "Canvas", s_node_canvas, "Node_Canvas", [1, Node_Canvas], ["draw"]); - addNodeObject(input, "Image", s_node_image, "Node_Image", [0, Node_create_Image]); - addNodeObject(input, "Image gif", s_node_image_gif, "Node_Image_gif", [0, Node_create_Image_gif]); - addNodeObject(input, "Splice spritesheet", s_node_image_sheet, "Node_Image_Sheet", [1, Node_Image_Sheet]); - addNodeObject(input, "Image array", s_node_image_sequence, "Node_Image_Sequence", [0, Node_create_Image_Sequence]); - addNodeObject(input, "Animation", s_node_image_animation, "Node_Image_Animated", [0, Node_create_Image_Animated]); - addNodeObject(input, "Array to anim", s_node_image_sequence_to_anim, "Node_Sequence_Anim", [1, Node_Sequence_Anim]); + var image = ds_list_create(); + NODE_PAGE_DEFAULT = ds_list_size(NODE_CATEGORY); + ADD_NODE_PAGE = NODE_PAGE_DEFAULT; + addNodeCatagory("Image", image); + addNodeObject(image, "Canvas", s_node_canvas, "Node_Canvas", [1, Node_Canvas], ["draw"]); + addNodeObject(image, "Image", s_node_image, "Node_Image", [0, Node_create_Image]); + addNodeObject(image, "Image gif", s_node_image_gif, "Node_Image_gif", [0, Node_create_Image_gif]); + addNodeObject(image, "Splice spritesheet", s_node_image_sheet, "Node_Image_Sheet", [1, Node_Image_Sheet]); + addNodeObject(image, "Image array", s_node_image_sequence, "Node_Image_Sequence", [0, Node_create_Image_Sequence]); + addNodeObject(image, "Animation", s_node_image_animation, "Node_Image_Animated", [0, Node_create_Image_Animated]); + addNodeObject(image, "Array to anim", s_node_image_sequence_to_anim, "Node_Sequence_Anim", [1, Node_Sequence_Anim]); var transform = ds_list_create(); addNodeCatagory("Transform", transform); @@ -90,7 +82,7 @@ function NodeObject(_name, _spr, _create, tags = []) constructor { addNodeObject(transform, "Crop", s_node_crop, "Node_Crop", [1, Node_Crop]); addNodeObject(transform, "Mirror", s_node_mirror, "Node_Mirror", [1, Node_Mirror]); addNodeObject(transform, "Warp", s_node_warp, "Node_Warp", [1, Node_Warp], ["wrap"]); - addNodeObject(transform, "Skew", s_node_warp, "Node_Skew", [1, Node_Skew]); + addNodeObject(transform, "Skew", s_node_skew, "Node_Skew", [1, Node_Skew]); addNodeObject(transform, "Mesh warp", s_node_warp_mesh, "Node_Mesh_Warp", [1, Node_Mesh_Warp], ["mesh wrap"]); addNodeObject(transform, "Compose", s_node_compose, "Node_Composite", [1, Node_Composite], ["merge"]); addNodeObject(transform, "Polar", s_node_polar, "Node_Polar", [1, Node_Polar]); @@ -137,6 +129,7 @@ function NodeObject(_name, _spr, _create, tags = []) constructor { addNodeObject(filter, "Atlas", s_node_atlas, "Node_Atlas", [1, Node_Atlas]); addNodeObject(filter, "Scale algorithm", s_node_scale_algo, "Node_Scale_Algo", [0, Node_create_Scale_Algo], ["scale2x", "scale3x"]); addNodeObject(filter, "Pixel cloud", s_node_pixel_cloud, "Node_Pixel_Cloud", [1, Node_Pixel_Cloud]); + addNodeObject(filter, "Pixel sort", s_node_pixel_sort, "Node_Pixel_Sort", [1, Node_Pixel_Sort]); addNodeObject(filter, "Edge detect", s_node_edge_detect, "Node_Edge_Detect", [1, Node_Edge_Detect]); addNodeObject(filter, "Chromatic aberration", s_node_chromatic_abarration, "Node_Chromatic_Aberration", [1, Node_Chromatic_Aberration]); //addNodeObject(filter, "Corner", s_node_corner, "Node_Corner", [1, Node_create_Corner]); @@ -153,39 +146,6 @@ function NodeObject(_name, _spr, _create, tags = []) constructor { addNodeObject(threeD, "3D Cylinder", s_node_3d_cylinder, "Node_3D_Cylinder", [1, Node_3D_Cylinder]); addNodeObject(threeD, "3D Extrude", s_node_3d_extrude, "Node_3D_Extrude", [1, Node_3D_Extrude]); - var number = ds_list_create(); - addNodeCatagory("Number", number); - addNodeObject(number, "Math", s_node_math, "Node_Math", [0, Node_create_Math], ["add", "subtract", "multiply", "divide", "power", "modulo", "round", "ceiling", "floor", "sin", "cos", "tan"]); - addNodeObject(number, "Statistic", s_node_statistic, "Node_Statistic", [0, Node_create_Statistic], ["sum", "average", "mean", "median", "min", "max"]); - addNodeObject(number, "Array", s_node_array, "Node_Array", [1, Node_Array]); - addNodeObject(number, "Array length", s_node_array_length, "Node_Array_Length", [1, Node_Array_Length]); - addNodeObject(number, "Array get", s_node_array_get, "Node_Array_Get", [1, Node_Array_Get]); - addNodeObject(number, "Number", s_node_number, "Node_Number", [1, Node_Number]); - addNodeObject(number, "Vector2", s_node_vec2, "Node_Vector2", [1, Node_Vector2]); - addNodeObject(number, "Vector3", s_node_vec3, "Node_Vector3", [1, Node_Vector3]); - addNodeObject(number, "Vector4", s_node_vec4, "Node_Vector4", [1, Node_Vector4]); - addNodeObject(number, "Vector split", s_node_vec_split, "Node_Vector_Split", [1, Node_Vector_Split]); - addNodeObject(number, "Unicode", s_node_unicode, "Node_Unicode", [1, Node_Unicode]); - addNodeObject(number, "Path", s_node_path, "Node_Path", [1, Node_Path]); - addNodeObject(number, "Area", s_node_area, "Node_Area", [1, Node_Area]); - //addNodeObject(number, "Surface data", s_node_surface_data, "Node_Surface_data", [1, Node_Surface_data]); - - var color = ds_list_create(); - addNodeCatagory("Color", color); - addNodeObject(color, "Color", s_node_color_out, "Node_Color", [1, Node_Color]); - addNodeObject(color, "RGB Color", s_node_color_from_rgb, "Node_Color_RGB", [1, Node_Color_RGB]); - addNodeObject(color, "HSV Color", s_node_color_from_hsv, "Node_Color_HSV", [1, Node_Color_HSV]); - addNodeObject(color, "Palette", s_node_palette, "Node_Palette", [1, Node_Palette]); - addNodeObject(color, "Gradient", s_node_gradient_out, "Node_Gradient_Out", [1, Node_Gradient_Out]); - addNodeObject(color, "Sampler", s_node_sampler, "Node_Sampler", [1, Node_Sampler]); - addNodeObject(color, "Color data", s_node_color_data, "Node_Color_Data", [1, Node_Color_Data]); - - var animation = ds_list_create(); - addNodeCatagory("Animation", animation); - addNodeObject(animation, "Counter", s_node_counter, "Node_Counter", [1, Node_Counter]); - addNodeObject(animation, "Wiggler", s_node_wiggler, "Node_Wiggler", [1, Node_Wiggler]); - addNodeObject(animation, "Curve", s_node_curve, "Node_Anim_Curve", [1, Node_Anim_Curve]); - var generator = ds_list_create(); addNodeCatagory("Generate", generator); addNodeObject(generator, "Solid", s_node_solid, "Node_Solid", [1, Node_Solid]); @@ -209,17 +169,56 @@ function NodeObject(_name, _spr, _create, tags = []) constructor { addNodeObject(generator, "Grid hexagonal", s_node_grid_hex, "Node_Grid_Hex", [1, Node_Grid_Hex]); addNodeObject(generator, "Anisotropic noise", s_node_noise_aniso, "Node_Noise_Aniso", [1, Node_Noise_Aniso]); addNodeObject(generator, "Seperate shape", s_node_sepearte_shape, "Node_Seperate_Shape", [1, Node_Seperate_Shape]); - addNodeObject(generator, "Text", s_node_text, "Node_Text", [1, Node_Text]); + addNodeObject(generator, "Draw text", s_node_text_render, "Node_Text", [1, Node_Text]); var renderNode = ds_list_create(); addNodeCatagory("Render", renderNode); addNodeObject(renderNode, "Render sprite sheet", s_node_sprite_sheet, "Node_Render_Sprite_Sheet", [1, Node_Render_Sprite_Sheet]); addNodeObject(renderNode, "Export", s_node_export, "Node_Export", [0, Node_create_Export]); + addNodeObject(renderNode, "Camera", s_node_camera, "Node_Camera", [1, Node_Camera]); //addNodeObject(renderNode, "Preview timeline", s_node_timeline_preview,"Node_Timeline_Preview", [1, Node_create_Timeline_Preview]); + var values = ds_list_create(); + addNodeCatagory("Values", values); + addNodeObject(values, "Math", s_node_math, "Node_Math", [0, Node_create_Math], ["add", "subtract", "multiply", "divide", "power", "modulo", "round", "ceiling", "floor", "sin", "cos", "tan"]); + addNodeObject(values, "Statistic", s_node_statistic, "Node_Statistic", [0, Node_create_Statistic], ["sum", "average", "mean", "median", "min", "max"]); + addNodeObject(values, "Number", s_node_number, "Node_Number", [1, Node_Number]); + addNodeObject(values, "Vector2", s_node_vec2, "Node_Vector2", [1, Node_Vector2]); + addNodeObject(values, "Vector3", s_node_vec3, "Node_Vector3", [1, Node_Vector3]); + addNodeObject(values, "Vector4", s_node_vec4, "Node_Vector4", [1, Node_Vector4]); + addNodeObject(values, "Vector split", s_node_vec_split, "Node_Vector_Split", [1, Node_Vector_Split]); + addNodeObject(values, "Unicode", s_node_unicode, "Node_Unicode", [1, Node_Unicode]); + addNodeObject(values, "Text", s_node_text, "Node_String", [1, Node_String]); + addNodeObject(values, "Split text", s_node_text_splice, "Node_String_Split", [1, Node_String_Split]); + addNodeObject(values, "Path", s_node_path, "Node_Path", [1, Node_Path]); + addNodeObject(values, "Area", s_node_area, "Node_Area", [1, Node_Area]); + addNodeObject(values, "Array", s_node_array, "Node_Array", [1, Node_Array]); + addNodeObject(values, "Array range", s_node_array_range, "Node_Array_Range", [1, Node_Array_Range]); + addNodeObject(values, "Array add", s_node_array_add, "Node_Array_Add", [1, Node_Array_Add]); + addNodeObject(values, "Array length", s_node_array_length, "Node_Array_Length", [1, Node_Array_Length]); + addNodeObject(values, "Array get", s_node_array_get, "Node_Array_Get", [1, Node_Array_Get]); + //addNodeObject(number, "Surface data", s_node_surface_data, "Node_Surface_data", [1, Node_Surface_data]); + + var color = ds_list_create(); + addNodeCatagory("Color", color); + addNodeObject(color, "Color", s_node_color_out, "Node_Color", [1, Node_Color]); + addNodeObject(color, "RGB Color", s_node_color_from_rgb, "Node_Color_RGB", [1, Node_Color_RGB]); + addNodeObject(color, "HSV Color", s_node_color_from_hsv, "Node_Color_HSV", [1, Node_Color_HSV]); + addNodeObject(color, "Palette", s_node_palette, "Node_Palette", [1, Node_Palette]); + addNodeObject(color, "Gradient", s_node_gradient_out, "Node_Gradient_Out", [1, Node_Gradient_Out]); + addNodeObject(color, "Sampler", s_node_sampler, "Node_Sampler", [1, Node_Sampler]); + addNodeObject(color, "Color data", s_node_color_data, "Node_Color_Data", [1, Node_Color_Data]); + + var animation = ds_list_create(); + addNodeCatagory("Animation", animation); + addNodeObject(animation, "Counter", s_node_counter, "Node_Counter", [1, Node_Counter]); + addNodeObject(animation, "Wiggler", s_node_wiggler, "Node_Wiggler", [1, Node_Wiggler]); + addNodeObject(animation, "Curve", s_node_curve, "Node_Anim_Curve", [1, Node_Anim_Curve]); + var node = ds_list_create(); addNodeCatagory("Node", node); addNodeObject(node, "Group", s_node_group, "Node_Group", [1, Node_Group]); + addNodeObject(node, "Feedback", s_node_feedback, "Node_Feedback", [1, Node_Feedback]); addNodeObject(node, "Loop", s_node_loop, "Node_Iterate", [1, Node_Iterate]); addNodeObject(node, "Pin", s_node_pin, "Nodee_Pin", [1, Node_Pin]); addNodeObject(node, "Frame", s_node_frame, "Node_Frame", [1, Node_Frame]); @@ -235,14 +234,7 @@ function NodeObject(_name, _spr, _create, tags = []) constructor { var _x = ds_map_try_get(_data, "x", 0); var _y = ds_map_try_get(_data, "y", 0); var _type = ds_map_try_get(_data, "type", 0); - - if(!ds_map_exists(NODE_CREATE_FUCTION, _type)) { - noti_warning("LOAD: node creation function [" + _type + "] not found.") - return noone; - } - - var funs = NODE_CREATE_FUCTION[? _type]; - var _node = funs[0]? new funs[1](_x, _y) : funs[1](_x, _y); + var _node = nodeBuild(_type, _x, _y); if(_node) { var map = ds_map_clone(_data); diff --git a/scripts/node_scale_algo/node_scale_algo.yy b/scripts/node_scale_algo/node_scale_algo.yy index 5b9e15e0a..f5a33b6de 100644 --- a/scripts/node_scale_algo/node_scale_algo.yy +++ b/scripts/node_scale_algo/node_scale_algo.yy @@ -5,7 +5,7 @@ "isDnD": false, "isCompatibility": false, "parent": { - "name": "filter", - "path": "folders/nodes/data/filter.yy", + "name": "transform", + "path": "folders/nodes/data/transform.yy", }, } \ No newline at end of file diff --git a/scripts/node_statistic/node_statistic.yy b/scripts/node_statistic/node_statistic.yy index ca0df4ebb..ac043f9fa 100644 --- a/scripts/node_statistic/node_statistic.yy +++ b/scripts/node_statistic/node_statistic.yy @@ -5,7 +5,7 @@ "isDnD": false, "isCompatibility": false, "parent": { - "name": "number", - "path": "folders/nodes/data/number.yy", + "name": "value", + "path": "folders/nodes/data/value.yy", }, } \ No newline at end of file diff --git a/scripts/node_string/node_string.gml b/scripts/node_string/node_string.gml new file mode 100644 index 000000000..d43d46876 --- /dev/null +++ b/scripts/node_string/node_string.gml @@ -0,0 +1,22 @@ +function Node_String(_x, _y, _group = -1) : Node_Value_Processor(_x, _y, _group) constructor { + name = "Text"; + previewable = false; + + w = 96; + min_h = 0; + + inputs[| 0] = nodeValue(0, "Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, ""); + outputs[| 0] = nodeValue(0, "Text", self, JUNCTION_CONNECT.output, VALUE_TYPE.text, ""); + + function process_value_data(_data) { + return _data[0]; + } + + doUpdate(); + + function onDrawNode(xx, yy, _mx, _my, _s) { + draw_set_text(f_h5, fa_center, fa_center, COLORS._main_text); + var str = inputs[| 0].getValue(); + draw_text_cut(xx + w / 2 * _s, yy + 10 + h / 2 * _s, str, w - ui(6)); + } +} \ No newline at end of file diff --git a/scripts/node_string/node_string.yy b/scripts/node_string/node_string.yy new file mode 100644 index 000000000..06e2f6701 --- /dev/null +++ b/scripts/node_string/node_string.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_string", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "value", + "path": "folders/nodes/data/value.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_string_split/node_string_split.gml b/scripts/node_string_split/node_string_split.gml new file mode 100644 index 000000000..8251d3d89 --- /dev/null +++ b/scripts/node_string_split/node_string_split.gml @@ -0,0 +1,25 @@ +function Node_String_Split(_x, _y, _group = -1) : Node_Value_Processor(_x, _y, _group) constructor { + name = "Text split"; + previewable = false; + + w = 96; + min_h = 0; + + inputs[| 0] = nodeValue(0, "Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "") + .setVisible(true, true); + inputs[| 1] = nodeValue(1, "Delimiter", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, " "); + + outputs[| 0] = nodeValue(0, "Text", self, JUNCTION_CONNECT.output, VALUE_TYPE.text, ""); + + function process_value_data(_data) { + return string_splice(_data[0], _data[1]); + } + + doUpdate(); + + function onDrawNode(xx, yy, _mx, _my, _s) { + var cx = xx + w * _s / 2; + var cy = yy + 10 + (h - 10) * _s / 2; + draw_sprite_uniform(s_node_text_splice, 0, cx, cy, _s); + } +} \ No newline at end of file diff --git a/scripts/node_string_split/node_string_split.yy b/scripts/node_string_split/node_string_split.yy new file mode 100644 index 000000000..8ade5235f --- /dev/null +++ b/scripts/node_string_split/node_string_split.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_string_split", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "value", + "path": "folders/nodes/data/value.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_surface_data/node_surface_data.yy b/scripts/node_surface_data/node_surface_data.yy index cc7572e34..9445ba47c 100644 --- a/scripts/node_surface_data/node_surface_data.yy +++ b/scripts/node_surface_data/node_surface_data.yy @@ -5,7 +5,7 @@ "isDnD": false, "isCompatibility": false, "parent": { - "name": "number", - "path": "folders/nodes/data/number.yy", + "name": "value", + "path": "folders/nodes/data/value.yy", }, } \ No newline at end of file diff --git a/scripts/node_text/node_text.gml b/scripts/node_text/node_text.gml index f45554956..c68ebff2b 100644 --- a/scripts/node_text/node_text.gml +++ b/scripts/node_text/node_text.gml @@ -3,10 +3,11 @@ function Node_Text(_x, _y, _group = -1) : Node_Processor(_x, _y, _group) constru font = f_p0; - inputs[| 0] = nodeValue(0, "Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, ""); + inputs[| 0] = nodeValue(0, "Text", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "") + .setVisible(true, true); inputs[| 1] = nodeValue(1, "Font", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "") - .setDisplay(VALUE_DISPLAY.path_load, ["*.ttf;*.otf", ""]); + .setDisplay(VALUE_DISPLAY.path_font); inputs[| 2] = nodeValue(2, "Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 16); diff --git a/scripts/node_character/node_character.gml b/scripts/node_unicode/node_unicode.gml similarity index 100% rename from scripts/node_character/node_character.gml rename to scripts/node_unicode/node_unicode.gml diff --git a/scripts/node_unicode/node_unicode.yy b/scripts/node_unicode/node_unicode.yy new file mode 100644 index 000000000..b2cce36fb --- /dev/null +++ b/scripts/node_unicode/node_unicode.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_unicode", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "value", + "path": "folders/nodes/data/value.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_value/node_value.gml b/scripts/node_value/node_value.gml index 516c5fa53..a3c54ee19 100644 --- a/scripts/node_value/node_value.gml +++ b/scripts/node_value/node_value.gml @@ -64,6 +64,7 @@ enum VALUE_DISPLAY { //path path_save, path_load, + path_font, } enum PADDING { @@ -255,7 +256,7 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T case VALUE_DISPLAY.rotation : editWidget = new rotator(function(val, _save) { setValue(val, _save); - } ); + }, display_data ); break; case VALUE_DISPLAY.rotation_range : editWidget = new rotatorRange(function(index, val) { @@ -364,6 +365,38 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T setValue(path); } ); break; + case VALUE_DISPLAY.path_font : + editWidget = new scrollBox( + function() { + var pth = []; + var root = DIRECTORY + "Fonts/*"; + var f = file_find_first(root, -1); + var filter = [ ".ttf", ".otf" ]; + while(f != "") { + var ext = filename_ext(DIRECTORY + "Fonts/" + f); + if(array_exists(filter, string_lower(ext))) + array_push(pth, f); + f = file_find_next(); + } + file_find_close(); + array_push(pth, "Open font folder..."); + return pth; + }, + function(val) { + if(val == array_length(editWidget.data) - 1) { + shellOpenExplorer(DIRECTORY + "Fonts\\"); + return; + } + setValue(DIRECTORY + "Fonts\\" + editWidget.data[val]); + } + ); + + editWidget.extra_button = button(function() { + var path = get_open_filename("*.ttf;*.otf", ""); + if(path == "") return noone; + setValue(path); + } ).setTooltip("Load font...").setIcon(THEME.folder_content, 0, COLORS._main_icon); + break; } break; case VALUE_TYPE.curve : @@ -433,6 +466,13 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T return self; } + static valueProcess = function(value, type) { + switch(type) { + case VALUE_TYPE.text : return string(value); + default : return value; + } + } + static getValue = function(_time = ANIMATOR.current_frame) { var _val = getValueRecursive(_time); var val = _val[0]; @@ -457,12 +497,17 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T if(!is_array(val)) return array_create(array_length(_base), val); else if(array_length(val) < array_length(_base)) { - for( var i = array_length(val); i < array_length(_base); i++ ) { + for( var i = array_length(val); i < array_length(_base); i++ ) val[i] = 0; - } } } + if(is_array(val)) { + for( var i = 0; i < array_length(val); i++ ) + val[i] = valueProcess(val[i], typ); + } else + val = valueProcess(val, typ); + return val; } @@ -471,9 +516,8 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T if(value_from == noone) val = [animator.getValue(_time), type]; - else if(value_from != self) { + else if(value_from != self) val = value_from.getValueRecursive(_time); - } return val; } @@ -884,6 +928,11 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T _val[3] = _dy; } + if(keyboard_check(vk_shift)) { + _val[2] = max(_dx, _dy); + _val[3] = max(_dx, _dy); + } + if(setValue(_val)) UNDO_HOLDING = true; diff --git a/scripts/node_vector/node_vector.yy b/scripts/node_vector/node_vector.yy index f55a63e2e..fe2b40b20 100644 --- a/scripts/node_vector/node_vector.yy +++ b/scripts/node_vector/node_vector.yy @@ -5,7 +5,7 @@ "isDnD": false, "isCompatibility": false, "parent": { - "name": "number", - "path": "folders/nodes/data/number.yy", + "name": "value", + "path": "folders/nodes/data/value.yy", }, } \ No newline at end of file diff --git a/scripts/panel_collection/panel_collection.gml b/scripts/panel_collection/panel_collection.gml index a5aad5bb8..e119651a0 100644 --- a/scripts/panel_collection/panel_collection.gml +++ b/scripts/panel_collection/panel_collection.gml @@ -3,7 +3,7 @@ function Panel_Collection() : PanelContent() constructor { group_w = ui(180); function initSize() { - content_w = w - ui(24) - group_w; + content_w = w - ui(8) - group_w; content_h = h - ui(40) - ui(16); } initSize(); @@ -57,12 +57,13 @@ function Panel_Collection() : PanelContent() constructor { var node_count = ds_list_size(nodes); var hh = 0; var frame = current_time * PREF_MAP[? "collection_preview_speed"] / 3000; + var _cw = contentPane.surface_w; if(contentView == 0) { var grid_size = ui(64); var grid_width = ui(80); var grid_space = ui(12); - var col = max(1, floor(content_w / (grid_width + grid_space))); + var col = max(1, floor(_cw / (grid_width + grid_space))); var row = ceil(node_count / col); var yy = _y + grid_space; var name_height = 0; @@ -119,7 +120,7 @@ function Panel_Collection() : PanelContent() constructor { yy += hght; } } else { - var list_width = content_w - ui(12); + var list_width = _cw; var list_height = ui(28); var yy = _y + list_height / 2; hh += list_height; @@ -174,12 +175,12 @@ function Panel_Collection() : PanelContent() constructor { return hh; }); - folderPane = new scrollPane(group_w - ui(8), content_h, function(_y, _m) { + folderPane = new scrollPane(group_w - ui(4), content_h, function(_y, _m) { draw_clear(COLORS.panel_bg_clear); var hh = ui(8); for(var i = 0; i < ds_list_size(root.subDir); i++) { - var hg = root.subDir[| i].draw(self, ui(8), _y, _m, folderPane.w - ui(16), pHOVER, pFOCUS, root); + var hg = root.subDir[| i].draw(self, ui(8), _y, _m, folderPane.w - ui(20), pHOVER, pFOCUS, root); hh += hg; _y += hg; } @@ -188,10 +189,9 @@ function Panel_Collection() : PanelContent() constructor { }); function onResize() { - content_w = w - ui(24) - group_w; - content_h = h - ui(40) - ui(16); + initSize(); contentPane.resize(content_w, content_h); - folderPane.resize(group_w - ui(8), content_h); + folderPane.resize(group_w - ui(4), content_h); } function setContext(cont) { @@ -218,9 +218,9 @@ function Panel_Collection() : PanelContent() constructor { draw_clear_alpha(COLORS.panel_bg_clear, 0); var content_y = ui(48); - draw_sprite_stretched(THEME.ui_panel_bg, 1, group_w, content_y, content_w + ui(16), content_h); + draw_sprite_stretched(THEME.ui_panel_bg, 1, group_w, content_y, content_w, content_h); contentPane.active = pHOVER; - contentPane.draw(group_w + ui(8), content_y, mx - group_w - ui(8), my - content_y); + contentPane.draw(group_w, content_y, mx - group_w - ui(8), my - content_y); folderPane.active = pHOVER; folderPane.draw(0, content_y, mx, my - content_y); @@ -300,9 +300,7 @@ function Panel_Collection() : PanelContent() constructor { } if(buttonInstant(THEME.button_hide, bx, by, ui(24), ui(24), [mx, my], pFOCUS, pHOVER, "Open in file explorer", THEME.folder) == 2) { - var _contPath = context.path; - var _windir = environment_get_variable("WINDIR") + "/explorer.exe"; - execute_shell_simple(_windir, _contPath); + shellOpenExplorer(context.path); } bx -= ui(32); diff --git a/scripts/panel_data/panel_data.gml b/scripts/panel_data/panel_data.gml index 76763623d..39d648123 100644 --- a/scripts/panel_data/panel_data.gml +++ b/scripts/panel_data/panel_data.gml @@ -194,7 +194,7 @@ function Panel(_parent, _x, _y, _w, _h) constructor { } function stepBegin() { - if(content) content.onStepBegin(self); + if(content) content.panelStepBegin(self); if(dragging == 1) { var _mx = clamp(mouse_mx, ui(16), WIN_W - ui(16)); @@ -424,9 +424,12 @@ function PanelContent() constructor { onResize(); } - function onStepBegin(panel) { + function panelStepBegin(panel) { setPanelSize(panel); - + onStepBegin(); + } + + function onStepBegin() { mx = mouse_mx - x; my = mouse_my - y; diff --git a/scripts/panel_graph/panel_graph.gml b/scripts/panel_graph/panel_graph.gml index 3da806aef..b4dd39aeb 100644 --- a/scripts/panel_graph/panel_graph.gml +++ b/scripts/panel_graph/panel_graph.gml @@ -6,8 +6,8 @@ function Panel_Graph() : PanelContent() constructor { graph_s = ui(scale[graph_s_index]); graph_s_to = graph_s; graph_line_s = 32; - grid_color = COLORS.panel_graph_grid; - grid_opacity = 0.5; + grid_color = c_white; + grid_opacity = 0.05; function toOrigin() { graph_x = round(w / 2 / graph_s); @@ -73,6 +73,12 @@ function Panel_Graph() : PanelContent() constructor { minimap_drag_mx = 0; minimap_drag_my = 0; + context_framing = false; + context_frame_progress = 0; + context_frame_direct = 0; + context_frame_sx = 0; context_frame_ex = 0; + context_frame_sy = 0; context_frame_ey = 0; + drag_locking = false; toolbar_height = ui(40); @@ -176,7 +182,8 @@ function Panel_Graph() : PanelContent() constructor { addHotkey("Graph", "Delete (merge)", vk_delete, MOD_KEY.none, function() { doDelete(true); }); function stepBegin() { - var gr_x = graph_x * graph_s; var gr_y = graph_y * graph_s; + var gr_x = graph_x * graph_s; + var gr_y = graph_y * graph_s; var m_x = (mx - gr_x) / graph_s; var m_y = (my - gr_y) / graph_s; mouse_graph_x = m_x; @@ -608,9 +615,9 @@ function Panel_Graph() : PanelContent() constructor { if(nodes_select_drag) { if(point_distance(nodes_select_mx, nodes_select_my, mx, my) > 16) { draw_set_color(COLORS._main_accent); - draw_rectangle(nodes_select_mx, nodes_select_my, mx, my, true); + draw_roundrect_ext(nodes_select_mx, nodes_select_my, mx, my, 6, 6, true); draw_set_alpha(0.05); - draw_rectangle(nodes_select_mx, nodes_select_my, mx, my, false); + draw_roundrect_ext(nodes_select_mx, nodes_select_my, mx, my, 6, 6, false); draw_set_alpha(1); ds_list_clear(nodes_select_list); @@ -1019,6 +1026,7 @@ function Panel_Graph() : PanelContent() constructor { node_focus = noone; PANEL_PREVIEW.preview_node[0] = noone; PANEL_PREVIEW.preview_node[1] = noone; + setContextFrame(true, node_context[| i + 1]); if(i == -1) { ds_list_clear(node_context); @@ -1028,7 +1036,7 @@ function Panel_Graph() : PanelContent() constructor { } else { for(var j = ds_list_size(node_context) - 1; j > i; j--) ds_list_delete(node_context, j); - nodes_list = node_context[| i].nodes; + nodes_list = node_context[| i].nodes; toCenterNode(); PANEL_ANIMATION.updatePropertyList(); break; @@ -1038,8 +1046,8 @@ function Panel_Graph() : PanelContent() constructor { draw_sprite_ui_uniform(THEME.arrow, 0, xx + tw + ui(16), tbh, 1, COLORS._main_icon); } - draw_set_color(COLORS._main_text_sub); - draw_set_alpha(i < ds_list_size(node_context) - 1? 0.5 : 1); + draw_set_color(COLORS._main_text); + draw_set_alpha(i < ds_list_size(node_context) - 1? 0.33 : 1); draw_text(xx, tbh - 2, tt); draw_set_alpha(1); xx += tw; @@ -1181,6 +1189,36 @@ function Panel_Graph() : PanelContent() constructor { draw_sprite_ui(THEME.node_resize, 0, mx0 + ui(2), my0 + ui(2), 1, 1, 180, c_white, 0.3); } + function drawContextFrame() { + if(!context_framing) return; + context_frame_progress = lerp_float(context_frame_progress, 1, 5); + if(context_frame_progress == 1) + context_framing = false; + + var _s = graph_s; + var _x = graph_x * _s; + var _y = graph_y * _s; + + var _fr_x0 = 0, _fr_y0 = 0; + var _fr_x1 = w, _fr_y1 = h; + + var _to_x0 = _x + context_frame_sx * _s; + var _to_y0 = _y + context_frame_sy * _s; + var _to_x1 = _x + context_frame_ex * _s; + var _to_y1 = _y + context_frame_ey * _s; + + var prog = context_frame_direct? context_frame_progress : 1 - context_frame_progress; + var frm_x0 = lerp(_fr_x0, _to_x0, prog); + var frm_y0 = lerp(_fr_y0, _to_y0, prog); + var frm_x1 = lerp(_fr_x1, _to_x1, prog); + var frm_y1 = lerp(_fr_y1, _to_y1, prog); + + draw_set_color(COLORS._main_accent); + draw_set_alpha(0.5); + draw_roundrect_ext(frm_x0, frm_y0, frm_x1, frm_y1, 8, 8, true); + draw_set_alpha(1); + } + function addContext(node) { recordAction(ACTION_TYPE.var_modify, self, [nodes_list, "nodes_list"]); recordAction(ACTION_TYPE.list_insert, node_context, [node, ds_list_size(node_context)]); @@ -1194,6 +1232,18 @@ function Panel_Graph() : PanelContent() constructor { toCenterNode(); PANEL_ANIMATION.updatePropertyList(); + + setContextFrame(false, node) + } + + function setContextFrame(dirr, node) { + context_framing = true; + context_frame_direct = dirr; + context_frame_progress = 0; + context_frame_sx = node.x; + context_frame_sy = node.y; + context_frame_ex = node.x + node.w; + context_frame_ey = node.y + node.h; } function getCurrentContext() { @@ -1225,7 +1275,16 @@ function Panel_Graph() : PanelContent() constructor { function drawContent(panel) { dragGraph(); - draw_clear(COLORS.panel_bg_clear); + var bg = COLORS.panel_bg_clear; + var cnt = getCurrentContext(); + var context = cnt == -1? "" : instanceof(cnt); + switch(context) { + case "Node_Group" : bg = merge_color(COLORS.panel_bg_clear, COLORS.node_blend_collection, 0.05); break; + case "Node_Iterate" : bg = merge_color(COLORS.panel_bg_clear, COLORS.node_blend_loop, 0.05); break; + case "Node_VFX_Group" : bg = merge_color(COLORS.panel_bg_clear, COLORS.node_blend_vfx, 0.05); break; + case "Node_Feedback" : bg = merge_color(COLORS.panel_bg_clear, COLORS.node_blend_feedback, 0.05); break; + } + draw_clear(bg); if(show_grid) drawGrid(); @@ -1234,6 +1293,7 @@ function Panel_Graph() : PanelContent() constructor { drawNodes(); drawJunctionConnect(); + drawContextFrame(); mouse_on_graph = true; drawToolBar(); diff --git a/scripts/panel_inspector/panel_inspector.gml b/scripts/panel_inspector/panel_inspector.gml index a69b23e15..9f37eb381 100644 --- a/scripts/panel_inspector/panel_inspector.gml +++ b/scripts/panel_inspector/panel_inspector.gml @@ -13,7 +13,7 @@ function Panel_Inspector() : PanelContent() constructor { prop_selecting = noone; function initSize() { - content_w = w - ui(32); + content_w = w - ui(28); content_h = h - top_bar_h - ui(12); } initSize(); @@ -68,7 +68,7 @@ function Panel_Inspector() : PanelContent() constructor { } contentPane = new scrollPane(content_w, content_h, function(_y, _m) { - var con_w = contentPane.surface_w; + var con_w = contentPane.surface_w - ui(4); draw_clear_alpha(COLORS.panel_bg_clear, 0); if(point_in_rectangle(_m[0], _m[1], 0, 0, con_w, content_h) && mouse_press(mb_left, pFOCUS)) @@ -324,23 +324,35 @@ function Panel_Inspector() : PanelContent() constructor { } break; case VALUE_TYPE.path : - var val = jun.showValue(), txt = ""; - var pathExist = jun.value_validation == VALIDATION.pass; + switch(jun.display_type) { + case VALUE_DISPLAY.path_load : + case VALUE_DISPLAY.path_save : + case VALUE_DISPLAY.path_array : + var val = jun.showValue(), txt = ""; + var pathExist = jun.value_validation == VALIDATION.pass; - if(is_array(val)) - txt = "[" + string(array_length(val)) + "] " + val[0]; - else - txt = val; + if(is_array(val)) + txt = "[" + string(array_length(val)) + "] " + val[0]; + else + txt = val; - jun.editWidget.draw(editBoxX, editBoxY, editBoxW, editBoxH, _m,, pathExist? COLORS._main_text : COLORS._main_value_negative); - var icx = editBoxX + editBoxW - ui(16); - var icy = editBoxY + editBoxH / 2; - draw_sprite_ui_uniform(pathExist? THEME.button_path_icon : THEME.button_path_not_found_icon, 0, icx, icy, 1,, 1); - draw_set_text(f_p0, fa_left, fa_center, COLORS._main_text); - draw_text_cut(editBoxX + ui(8), editBoxY + editBoxH / 2, txt, editBoxW - ui(60)); + jun.editWidget.draw(editBoxX, editBoxY, editBoxW, editBoxH, _m,, pathExist? COLORS._main_text : COLORS._main_value_negative); + var icx = editBoxX + editBoxW - ui(16); + var icy = editBoxY + editBoxH / 2; + draw_sprite_ui_uniform(pathExist? THEME.button_path_icon : THEME.button_path_not_found_icon, 0, icx, icy, 1,, 1); + draw_set_text(f_p0, fa_left, fa_center, COLORS._main_text); + draw_text_cut(editBoxX + ui(8), editBoxY + editBoxH / 2, txt, editBoxW - ui(60)); - if(!pathExist && pHOVER && point_in_rectangle(_m[0], _m[1], icx - ui(17), icy - ui(17), icx + ui(17), icy + ui(17))) - TOOLTIP = "File not exist"; + if(!pathExist && pHOVER && point_in_rectangle(_m[0], _m[1], icx - ui(17), icy - ui(17), icx + ui(17), icy + ui(17))) + TOOLTIP = "File not exist"; + break; + case VALUE_DISPLAY.path_font : + var val = jun.showValue(); + if(file_exists(val)) + val = filename_name(val); + jun.editWidget.draw(editBoxX, editBoxY, editBoxW, editBoxH, val, _m, ui(16) + x, top_bar_h + y); + break; + } break; case VALUE_TYPE.surface : editBoxH = ui(96); diff --git a/scripts/panel_preview/panel_preview.gml b/scripts/panel_preview/panel_preview.gml index 87c99dbaf..0dfaa4156 100644 --- a/scripts/panel_preview/panel_preview.gml +++ b/scripts/panel_preview/panel_preview.gml @@ -143,10 +143,11 @@ function Panel_Preview() : PanelContent() constructor { var node = preview_node[i]; if(node == noone) continue; - if(node.preview_channel >= ds_list_size(node.outputs)) continue; - var _prev_val = node.outputs[| node.preview_channel]; - if(_prev_val.type != VALUE_TYPE.surface) return; + var _prev_val = node.getPreviewValue(); + + if(_prev_val == noone) continue; + if(_prev_val.type != VALUE_TYPE.surface) continue; var value = _prev_val.getValue(); @@ -295,7 +296,10 @@ function Panel_Preview() : PanelContent() constructor { preview_node[0].previewing = 1; switch(tileMode) { - case 0 : draw_surface_ext_safe(preview_surface[0], psx, psy, ss, ss, 0, c_white, 1); break; + case 0 : + var aa = preview_node[0].preview_alpha; + draw_surface_ext_safe(preview_surface[0], psx, psy, ss, ss, 0, c_white, aa); + break; case 1 : draw_surface_ext_safe(preview_surface[0], psx, psy, ss, ss, 0, c_white, 1); break; case 2 : draw_surface_ext_safe(preview_surface[0], psx, psy, ss, ss, 0, c_white, 1); break; case 3 : draw_surface_tiled_ext_safe(preview_surface[0], psx, psy, ss, ss, c_white, 1); break; @@ -397,77 +401,79 @@ function Panel_Preview() : PanelContent() constructor { draw_text(w - ui(8), right_menu_y, "x" + string(canvas_s)); right_menu_y += string_height("l"); + var pseq = getNodePreviewSequence(); + if(pseq == 0) return; + + if(!array_equals(pseq, _preview_sequence)) { + _preview_sequence = pseq; + preview_x = 0; + preview_x_to = 0; + } + var prev_size = ui(48); preview_x = lerp_float(preview_x, preview_x_to, 4); - - var pseq = getNodePreviewSequence(); - if(pseq != 0) { - if(pseq != _preview_sequence) { - _preview_sequence = pseq; - preview_x = 0; - preview_x_to = 0; - } - if(pHOVER && my > h - toolbar_height - prev_size - ui(16)) { - canvas_hover = false; - if(mouse_wheel_down()) preview_x_to = clamp(preview_x_to - prev_size, - preview_x_max, 0); - if(mouse_wheel_up()) preview_x_to = clamp(preview_x_to + prev_size, - preview_x_max, 0); - } + if(pHOVER && my > h - toolbar_height - prev_size - ui(16)) { + canvas_hover = false; + if(mouse_wheel_down()) preview_x_to = clamp(preview_x_to - prev_size, - preview_x_max, 0); + if(mouse_wheel_up()) preview_x_to = clamp(preview_x_to + prev_size, - preview_x_max, 0); + } - preview_x_max = 0; - for(var i = 0; i < array_length(pseq); i++) { - var xx = preview_x + ui(8) + (prev_size + ui(8)) * i; - var yy = h - toolbar_height - prev_size - ui(8); + preview_x_max = 0; + var xx = preview_x + ui(8); + for(var i = 0; i < array_length(pseq); i++) { + var yy = h - toolbar_height - prev_size - ui(8); - var prev = pseq[i]; - if(!is_surface(prev)) continue; + var prev = pseq[i]; + if(!is_surface(prev)) continue; - var prev_w = surface_get_width(prev); - var prev_h = surface_get_height(prev); - var ss = prev_size / max(prev_w, prev_h); + var prev_w = surface_get_width(prev); + var prev_h = surface_get_height(prev); + var ss = prev_size / max(prev_w, prev_h); + var prev_sw = prev_w * ss; + + draw_set_color(COLORS.panel_preview_surface_outline); + draw_rectangle(xx, yy, xx + prev_w * ss, yy + prev_h * ss, true); - draw_set_color(COLORS.panel_preview_surface_outline); - draw_rectangle(xx, yy, xx + prev_w * ss, yy + prev_h * ss, true); - - if(pHOVER && point_in_rectangle(mx, my, xx, yy, xx + prev_w * ss, yy + prev_h * ss)) { - if(mouse_press(mb_left, pFOCUS)) { - _node.preview_index = i; - _node.onValueUpdate(0); - if(resetViewOnDoubleClick) - do_fullView = true; - } - draw_surface_ext_safe(prev, xx, yy, ss, ss, 0, c_white, 1); - } else { - draw_surface_ext_safe(prev, xx, yy, ss, ss, 0, c_white, 0.5); + if(pHOVER && point_in_rectangle(mx, my, xx, yy, xx + prev_sw, yy + prev_h * ss)) { + if(mouse_press(mb_left, pFOCUS)) { + _node.preview_index = i; + _node.onValueUpdate(0); + if(resetViewOnDoubleClick) + do_fullView = true; } - - if(i == _node.preview_index) { - draw_set_color(COLORS._main_accent); - draw_rectangle(xx, yy, xx + prev_w * ss, yy + prev_h * ss, true); - } - - preview_x_max += prev_size + 8; - } - preview_x_max = max(preview_x_max - ui(100), 0); - - var by = h - toolbar_height - prev_size - ui(56); - var bx = ui(10); - - var b = buttonInstant(THEME.button_hide, bx, by, ui(40), ui(40), [mx, my], pFOCUS, pHOVER); - - if(_node.preview_speed == 0) { - if(b) { - draw_sprite_ui_uniform(THEME.sequence_control, 1, bx + ui(20), by + ui(20), 1, COLORS._main_icon, 1); - if(b == 2) _node.preview_speed = preview_rate / game_get_speed(gamespeed_fps); - } - draw_sprite_ui_uniform(THEME.sequence_control, 1, bx + ui(20), by + ui(20), 1, COLORS._main_icon, 0.5); + draw_surface_ext_safe(prev, xx, yy, ss, ss, 0, c_white, 1); } else { - if(b) { - draw_sprite_ui_uniform(THEME.sequence_control, 0, bx + ui(20), by + ui(20), 1, COLORS._main_accent, 1); - if(b == 2) _node.preview_speed = 0; - } - draw_sprite_ui_uniform(THEME.sequence_control, 0, bx + ui(20), by + ui(20), 1, COLORS._main_accent, .75); + draw_surface_ext_safe(prev, xx, yy, ss, ss, 0, c_white, 0.5); } + + if(i == _node.preview_index) { + draw_set_color(COLORS._main_accent); + draw_rectangle(xx, yy, xx + prev_sw, yy + prev_h * ss, true); + } + + xx += prev_sw + ui(8); + preview_x_max += prev_sw + ui(8); + } + preview_x_max = max(preview_x_max - ui(100), 0); + + var by = h - toolbar_height - prev_size - ui(56); + var bx = ui(10); + + var b = buttonInstant(THEME.button_hide, bx, by, ui(40), ui(40), [mx, my], pFOCUS, pHOVER); + + if(_node.preview_speed == 0) { + if(b) { + draw_sprite_ui_uniform(THEME.sequence_control, 1, bx + ui(20), by + ui(20), 1, COLORS._main_icon, 1); + if(b == 2) _node.preview_speed = preview_rate / game_get_speed(gamespeed_fps); + } + draw_sprite_ui_uniform(THEME.sequence_control, 1, bx + ui(20), by + ui(20), 1, COLORS._main_icon, 0.5); + } else { + if(b) { + draw_sprite_ui_uniform(THEME.sequence_control, 0, bx + ui(20), by + ui(20), 1, COLORS._main_accent, 1); + if(b == 2) _node.preview_speed = 0; + } + draw_sprite_ui_uniform(THEME.sequence_control, 0, bx + ui(20), by + ui(20), 1, COLORS._main_accent, .75); } } diff --git a/scripts/path_reader/path_reader.gml b/scripts/path_reader/path_reader.gml index 2bc7d5a3c..422fbd39b 100644 --- a/scripts/path_reader/path_reader.gml +++ b/scripts/path_reader/path_reader.gml @@ -1,3 +1,11 @@ +function path_search(paths, recur = false, _filter = "") { + var _paths = []; + for( var i = 0; i < array_length(paths); i++ ) { + array_append(_paths, paths_to_array(paths[i], recur, _filter)); + } + return _paths; +} + function paths_to_array(paths, recur = false, _filter = "") { var _paths = []; var in = 0; @@ -27,29 +35,8 @@ function paths_to_array(paths, recur = false, _filter = "") { regx.free(); delete regx; ds_stack_destroy(st); - } else { - var path_left = paths; - - while(string_length(path_left) > 0) { - var space = 0; - if(string_pos("\n", path_left) == 0) - space = string_length(path_left) + 1; - else - space = string_pos("\n", path_left); - - var path_str = string_copy(path_left, 1, space - 1); - path_left = string_copy(path_left, space + 1, string_length(path_left) - space); - - if(!file_exists(path_str)) { - var local_path = filename_dir(CURRENT_PATH) + "\\" + path_str; - if(path_is_image(local_path)) - path_str = local_path; - } - - if(file_exists(path_str)) - array_push(_paths, path_str); - } - } + } else if(file_exists(paths)) + array_push(_paths, paths); return _paths; } diff --git a/scripts/render_data/render_data.gml b/scripts/render_data/render_data.gml index 373ab2965..c12913de5 100644 --- a/scripts/render_data/render_data.gml +++ b/scripts/render_data/render_data.gml @@ -14,6 +14,8 @@ function __nodeLeafList(_list, _stack) { var _startNode = true; for(var j = 0; j < ds_list_size(_node.inputs); j++) { var _in = _node.inputs[| j]; + if(_in.type == VALUE_TYPE.node) continue; + _node.triggerRender(); if(_in.value_from != noone && !_in.value_from.node.rendered) @@ -26,6 +28,16 @@ function __nodeLeafList(_list, _stack) { } } +function __nodeInLoop(_node) { + var gr = _node.group; + while(gr != -1) { + if(instanceof(gr) == "Node_Iterate") return true; + if(instanceof(gr) == "Node_Feedback") return true; + gr = gr.group; + } + return false; +} + function Render(partial = false) { var rendering = noone; var error = 0; @@ -34,7 +46,7 @@ function Render(partial = false) { if(!partial || ALWAYS_FULL) { var _key = ds_map_find_first(NODE_MAP); var amo = ds_map_size(NODE_MAP); - + repeat(amo) { var _node = NODE_MAP[? _key]; _node.setRenderStatus(false); @@ -57,10 +69,13 @@ function Render(partial = false) { if(!_node.active) continue; if(_node.rendered) continue; + if(__nodeInLoop(_node)) continue; var _startNode = true; for(var j = 0; j < ds_list_size(_node.inputs); j++) { var _in = _node.inputs[| j]; + if(_in.type == VALUE_TYPE.node) continue; + if(_in.value_from != noone && !_in.value_from.node.rendered) _startNode = false; } @@ -81,97 +96,7 @@ function Render(partial = false) { rendering.setRenderStatus(true); } printIf(global.RENDER_LOG, "Rendered " + rendering.name + " [" + string(instanceof(rendering)) + "]" + txt); - - if(instanceof(rendering) == "Node_Group") { //Put each input node in group to stack - //if(!rendering.isUpdateReady()) continue; - for(var i = rendering.custom_input_index; i < ds_list_size(rendering.inputs); i++) { - var _in = rendering.inputs[| i].from; - - ds_stack_push(RENDER_STACK, _in); - printIf(global.RENDER_LOG, "Push group input " + _in.name + " to stack"); - } - } else if(instanceof(rendering) == "Node_Group_Output") { //Group output in-junction connect automatically to parent out-junction - rendering.group.setRenderStatus(true); - var _ot = rendering.outParent; - printIf(global.RENDER_LOG, "Value to amount " + string(ds_list_size(_ot.value_to))); - for(var j = 0; j < ds_list_size(_ot.value_to); j++) { - var _to = _ot.value_to[| j]; - printIf(global.RENDER_LOG, "Value to " + _to.name); - if(!_to.node.active || _to.value_from == noone) { - printIf(global.RENDER_LOG, "no value from"); - continue; - } - if(_to.value_from.node != rendering.group) { - printIf(global.RENDER_LOG, "value from not equal group"); - continue; - } - - printIf(global.RENDER_LOG, "Group output ready " + string(_to.node.isUpdateReady())); - //_to.node.triggerRender(); - if(_to.node.isUpdateReady()) { - ds_stack_push(RENDER_STACK, _to.node); - printIf(global.RENDER_LOG, "Push node " + _to.node + " to stack"); - } - } - } else if(instanceof(rendering) == "Node_Iterate") { //Put each input node in group to stack - var allReady = true; - for(var i = rendering.custom_input_index; i < ds_list_size(rendering.inputs); i++) { - var _in = rendering.inputs[| i].from; - allReady &= _in.isUpdateReady() - } - - if(allReady) { - for(var i = rendering.custom_input_index; i < ds_list_size(rendering.inputs); i++) { - var _in = rendering.inputs[| i].from; - ds_stack_push(RENDER_STACK, _in); - printIf(global.RENDER_LOG, " > Push " + _in.name + " node to stack"); - } - rendering.initLoop(); - } - } else if(instanceof(rendering) == "Node_Iterator_Output") { //Check iteration result - var _node_it = rendering.group; - var _ren = _node_it.iterationStatus(); - - if(_ren == ITERATION_STATUS.loop) { //Go back to the beginning of the loop, reset render status for leaf node inside? - printIf(global.RENDER_LOG, " > Loop restart: iteration " + string(rendering.group.iterated)); - __nodeLeafList(rendering.group.nodes, RENDER_STACK); - var loopEnt = rendering.inputs[| 2].value_from.node; - ds_stack_push(RENDER_STACK, loopEnt); - } else if(_ren == ITERATION_STATUS.complete) { //Go out of loop - printIf(global.RENDER_LOG, " > Loop completed"); - rendering.group.setRenderStatus(true); - var _ot = rendering.outParent; - for(var j = 0; j < ds_list_size(_ot.value_to); j++) { - var _to = _ot.value_to[| j]; - - if(_to.node.active && _to.value_from != noone && _to.value_from.node == rendering.group) { - _to.node.triggerRender(); - if(_to.node.isUpdateReady()) ds_stack_push(RENDER_STACK, _to.node); - } - } - } else - printIf(global.RENDER_LOG, " > Loop not ready"); - } else { //push next node - for(var i = 0; i < ds_list_size(rendering.outputs); i++) { - var _ot = rendering.outputs[| i]; - if(_ot.type == VALUE_TYPE.node) continue; - - for(var j = 0; j < ds_list_size(_ot.value_to); j++) { - var _to = _ot.value_to[| j]; - if(!_to.node.active || _to.value_from == noone) continue; - if(_to.value_from.node != rendering) continue; - - _to.node.triggerRender(); - if(_to.node.isUpdateReady()) { - ds_stack_push(RENDER_STACK, _to.node); - printIf(global.RENDER_LOG, " > Push " + _to.node.name + " node to stack"); - } else - printIf(global.RENDER_LOG, " > Node " + _to.node.name + " not ready"); - } - } - } - - //show_debug_message(txt); + rendering.getNextNodes(); } printIf(global.RENDER_LOG, "=== RENDER COMPLETE ===\n"); diff --git a/scripts/rotator/rotator.gml b/scripts/rotator/rotator.gml index 2ef58ba03..e0235ff11 100644 --- a/scripts/rotator/rotator.gml +++ b/scripts/rotator/rotator.gml @@ -1,8 +1,9 @@ -function rotator(_onModify) constructor { +function rotator(_onModify, _step = -1) constructor { active = false; hover = false; onModify = _onModify; + step = _step; dragging = false; drag_sv = 0; @@ -34,6 +35,9 @@ function rotator(_onModify) constructor { else val = real_val; + if(step != -1) + val = round(real_val / step) * step; + draw_sprite_ui_uniform(THEME.rotator_knob, 1, px, py); if(val != drag_sv) { @@ -46,7 +50,7 @@ function rotator(_onModify) constructor { if(mouse_release(mb_left)) { dragging = false; - UNDO_HOLDING = false; + UNDO_HOLDING = false; } } else if(hover && point_in_circle(_m[0], _m[1], _x, knob_y, ui(48))) { diff --git a/scripts/save_function/save_function.gml b/scripts/save_function/save_function.gml index 903a40dd1..8c948e1d6 100644 --- a/scripts/save_function/save_function.gml +++ b/scripts/save_function/save_function.gml @@ -69,7 +69,7 @@ function SAVE() { } function SAVE_AS() { - var path = get_save_filename(".pxc", ""); + var path = get_save_filename("Pixel Composer project (.pxc)|*.pxc", ""); if(path == "") return false; if(filename_ext(path) != ".pxc") diff --git a/scripts/scrollBox/scrollBox.gml b/scripts/scrollBox/scrollBox.gml index 9b7f203fa..d4e28931c 100644 --- a/scripts/scrollBox/scrollBox.gml +++ b/scripts/scrollBox/scrollBox.gml @@ -1,39 +1,58 @@ function scrollBox(_data, _onModify) constructor { onModify = _onModify; data_list = _data; + data = []; active = false; hover = false; open = false; align = fa_center; + extra_button = noone; static draw = function(_x, _y, _w, _h, _text, _m = mouse_ui, _rx = 0, _ry = 0) { - if(!open) { - if(hover && point_in_rectangle(_m[0], _m[1], _x, _y, _x + _w, _y + _h)) { - draw_sprite_stretched(THEME.textbox, 1, _x, _y, _w, _h); - if(mouse_press(mb_left, active)) { - open = true; - with(dialogCall(o_dialog_scrollbox, _x + _rx, _y + _ry)) { - scrollbox = other; - dialog_w = _w; - align = other.align; - } - } - if(mouse_click(mb_left, active)) - draw_sprite_stretched(THEME.textbox, 2, _x, _y, _w, _h); - } else { - draw_sprite_stretched(THEME.textbox, 0, _x, _y, _w, _h); - } - - draw_set_text(f_p0, align, fa_center, COLORS._main_text); - if(align == fa_center) - draw_text(_x + _w / 2, _y + _h / 2 - ui(2), _text); - else if(align == fa_left) - draw_text(_x + ui(8), _y + _h / 2 - ui(2), _text); - draw_sprite_ui_uniform(THEME.scroll_box_arrow, 0, _x + _w - 20, _y + _h / 2, 1, COLORS._main_icon); + var ww = _w; + if(extra_button != noone) { + extra_button.hover = hover; + extra_button.active = active; + extra_button.draw(_x + _w - ui(32), _y + _h / 2 - ui(32 / 2), ui(32), ui(32), _m, THEME.button_hide); + ww -= ui(40); } + if(open) { + hover = false; + active = false; + return; + } + + if(hover && point_in_rectangle(_m[0], _m[1], _x, _y, _x + ww, _y + _h)) { + draw_sprite_stretched(THEME.textbox, 1, _x, _y, ww, _h); + if(mouse_press(mb_left, active)) { + if(is_method(data_list)) + data = data_list(); + else + data = data_list; + + open = true; + with(dialogCall(o_dialog_scrollbox, _x + _rx, _y + _ry)) { + scrollbox = other; + dialog_w = ww; + align = other.align; + } + } + if(mouse_click(mb_left, active)) + draw_sprite_stretched(THEME.textbox, 2, _x, _y, ww, _h); + } else { + draw_sprite_stretched(THEME.textbox, 0, _x, _y, ww, _h); + } + + draw_set_text(f_p0, align, fa_center, COLORS._main_text); + if(align == fa_center) + draw_text(_x + ww / 2, _y + _h / 2 - ui(2), _text); + else if(align == fa_left) + draw_text(_x + ui(8), _y + _h / 2 - ui(2), _text); + draw_sprite_ui_uniform(THEME.scroll_box_arrow, 0, _x + ww - 20, _y + _h / 2, 1, COLORS._main_icon); + hover = false; active = false; } diff --git a/scripts/scrollPane/scrollPane.gml b/scripts/scrollPane/scrollPane.gml index 2e7e4d30f..ee384dead 100644 --- a/scripts/scrollPane/scrollPane.gml +++ b/scripts/scrollPane/scrollPane.gml @@ -5,13 +5,14 @@ function scrollPane(_w, _h, ondraw) constructor { w = _w; h = _h; - surface_w = _w - ui(8); + surface_w = _w - ui(12); surface_h = _h; surface = surface_create_valid(surface_w, surface_h); drawFunc = ondraw; content_h = 0; + is_scroll = true; scroll_step = 64; active = false; @@ -21,7 +22,7 @@ function scrollPane(_w, _h, ondraw) constructor { static resize = function(_w, _h) { w = _w; h = _h; - surface_w = _w - ui(8); + surface_w = _w - is_scroll * ui(12); surface_h = _h; if(surface_w > 1 && surface_h > 1) { @@ -35,7 +36,7 @@ function scrollPane(_w, _h, ondraw) constructor { static draw = function(x, y, _mx = mouse_mx - x, _my = mouse_my - y) { var mx = _mx, my = _my; - if(!point_in_rectangle(mx, my, 0, 0, w, h)) { + if(!point_in_rectangle(mx, my, 0, 0, surface_w, surface_h)) { mx = -100; my = -100; } @@ -43,9 +44,15 @@ function scrollPane(_w, _h, ondraw) constructor { if(!is_surface(surface)) surface = surface_create_valid(surface_w, surface_h); surface_set_target(surface); draw_clear(COLORS.panel_bg_clear); - content_h = max(0, drawFunc(scroll_y, [mx, my], [x, y]) - surface_h); + var hh = drawFunc(scroll_y, [mx, my], [x, y]); + content_h = max(0, hh - surface_h); surface_reset_target(); + var sc = is_scroll; + is_scroll = hh > surface_h; + if(sc != is_scroll) + resize(w, h); + scroll_y_to = clamp(scroll_y_to, -content_h, 0); scroll_y_raw = lerp_float(scroll_y_raw, scroll_y_to, 4); scroll_y = round(scroll_y_raw); @@ -57,7 +64,7 @@ function scrollPane(_w, _h, ondraw) constructor { } if(abs(content_h) > 0) { - draw_scroll(x + surface_w + ui(6), y + ui(6), true, surface_h - ui(12), -scroll_y / content_h, surface_h / (surface_h + content_h), COLORS.scrollbar_idle, COLORS.scrollbar_hover, x + _mx, y + _my); + draw_scroll(x + surface_w + ui(4), y + ui(6), true, surface_h - ui(12), -scroll_y / content_h, surface_h / (surface_h + content_h), COLORS.scrollbar_idle, COLORS.scrollbar_hover, x + _mx, y + _my); } } diff --git a/scripts/shell_helper/shell_helper.gml b/scripts/shell_helper/shell_helper.gml new file mode 100644 index 000000000..ba5e170fa --- /dev/null +++ b/scripts/shell_helper/shell_helper.gml @@ -0,0 +1,4 @@ +function shellOpenExplorer(path) { + var _windir = environment_get_variable("WINDIR") + "/explorer.exe"; + execute_shell_simple(_windir, path); +} \ No newline at end of file diff --git a/scripts/shell_helper/shell_helper.yy b/scripts/shell_helper/shell_helper.yy new file mode 100644 index 000000000..5d3ef3ea8 --- /dev/null +++ b/scripts/shell_helper/shell_helper.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "shell_helper", + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "functions", + "path": "folders/functions.yy", + }, +} \ No newline at end of file diff --git a/scripts/surface_modify/surface_modify.gml b/scripts/surface_functions/surface_functions.gml similarity index 100% rename from scripts/surface_modify/surface_modify.gml rename to scripts/surface_functions/surface_functions.gml diff --git a/scripts/surface_modify/surface_modify.yy b/scripts/surface_functions/surface_functions.yy similarity index 86% rename from scripts/surface_modify/surface_modify.yy rename to scripts/surface_functions/surface_functions.yy index 195ca52c8..d19267baf 100644 --- a/scripts/surface_modify/surface_modify.yy +++ b/scripts/surface_functions/surface_functions.yy @@ -1,7 +1,7 @@ { "resourceType": "GMScript", "resourceVersion": "1.0", - "name": "surface_modify", + "name": "surface_functions", "isDnD": false, "isCompatibility": false, "parent": { diff --git a/shaders/sh_pixel_sort/sh_pixel_sort.fsh b/shaders/sh_pixel_sort/sh_pixel_sort.fsh new file mode 100644 index 000000000..827978a57 --- /dev/null +++ b/shaders/sh_pixel_sort/sh_pixel_sort.fsh @@ -0,0 +1,66 @@ +// +// Simple passthrough fragment shader +// By ciphrd +// + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +uniform vec2 dimension; +uniform float iteration; +uniform float threshold; +uniform int direction; + +float getBrightness(vec3 col) { + return dot(col, vec3(0.2126, 0.7152, 0.0722)); +} + +void main() { + vec2 pixPos = floor(v_vTexcoord * dimension); + float fParity = mod(iteration, 2.) * 2. - 1.; + + float vp; + vec2 dir; + bool shft = false; + + if(direction == 0 || direction == 2) { + vp = mod(floor(pixPos.x), 2.0) * 2. - 1.; + dir = vec2(1., 0.); + } else if(direction == 1 || direction == 3) { + vp = mod(floor(pixPos.y), 2.0) * 2. - 1.; + dir = vec2(0., -1.); + } + + dir *= fParity * vp; + dir /= dimension; + + if(direction == 0) shft = dir.x < 0.; + if(direction == 1) shft = dir.y < 0.; + if(direction == 2) shft = dir.x > 0.; + if(direction == 3) shft = dir.y > 0.; + + vec2 dest = v_vTexcoord + dir; + vec4 curr = texture2D(gm_BaseTexture, v_vTexcoord); + vec4 comp = texture2D(gm_BaseTexture, dest); + + float gCurr = getBrightness(curr.rgb); + float gComp = getBrightness(comp.rgb); + + if (dest != clamp(dest, 0., 1.)) { + gl_FragColor = curr; + return; + } + + if (shft) { + if (gCurr > threshold && gComp > gCurr) + gl_FragColor = comp; + else + gl_FragColor = curr; + } + else { + if (gComp > threshold && gCurr >= gComp) + gl_FragColor = comp; + else + gl_FragColor = curr; + } +} diff --git a/shaders/sh_pixel_sort/sh_pixel_sort.vsh b/shaders/sh_pixel_sort/sh_pixel_sort.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_pixel_sort/sh_pixel_sort.vsh @@ -0,0 +1,19 @@ +// +// Simple passthrough vertex shader +// +attribute vec3 in_Position; // (x,y,z) +//attribute vec3 in_Normal; // (x,y,z) unused in this shader. +attribute vec4 in_Colour; // (r,g,b,a) +attribute vec2 in_TextureCoord; // (u,v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() +{ + vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} diff --git a/shaders/sh_pixel_sort/sh_pixel_sort.yy b/shaders/sh_pixel_sort/sh_pixel_sort.yy new file mode 100644 index 000000000..5cdef8e24 --- /dev/null +++ b/shaders/sh_pixel_sort/sh_pixel_sort.yy @@ -0,0 +1,10 @@ +{ + "resourceType": "GMShader", + "resourceVersion": "1.0", + "name": "sh_pixel_sort", + "type": 1, + "parent": { + "name": "filter", + "path": "folders/shader/filter.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_2d_light/s_node_2d_light.yy b/sprites/s_node_2d_light/s_node_2d_light.yy index 000cee1d5..3cca28a10 100644 --- a/sprites/s_node_2d_light/s_node_2d_light.yy +++ b/sprites/s_node_2d_light/s_node_2d_light.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_3d_cube/s_node_3d_cube.yy b/sprites/s_node_3d_cube/s_node_3d_cube.yy index f65f775cf..3cf2b57f8 100644 --- a/sprites/s_node_3d_cube/s_node_3d_cube.yy +++ b/sprites/s_node_3d_cube/s_node_3d_cube.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "3D", + "path": "folders/nodes/icons/3D.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_3d_cylinder/s_node_3d_cylinder.yy b/sprites/s_node_3d_cylinder/s_node_3d_cylinder.yy index 4625a24dc..aa5e1a6cd 100644 --- a/sprites/s_node_3d_cylinder/s_node_3d_cylinder.yy +++ b/sprites/s_node_3d_cylinder/s_node_3d_cylinder.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "3D", + "path": "folders/nodes/icons/3D.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_3d_extrude/s_node_3d_extrude.yy b/sprites/s_node_3d_extrude/s_node_3d_extrude.yy index 7a4eaf637..960cece96 100644 --- a/sprites/s_node_3d_extrude/s_node_3d_extrude.yy +++ b/sprites/s_node_3d_extrude/s_node_3d_extrude.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "3D", + "path": "folders/nodes/icons/3D.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_3d_obj/s_node_3d_obj.yy b/sprites/s_node_3d_obj/s_node_3d_obj.yy index cb02ec784..96d61c74d 100644 --- a/sprites/s_node_3d_obj/s_node_3d_obj.yy +++ b/sprites/s_node_3d_obj/s_node_3d_obj.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "3D", + "path": "folders/nodes/icons/3D.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_3d_transform/s_node_3d_transform.yy b/sprites/s_node_3d_transform/s_node_3d_transform.yy index b328b3d6c..d1a590e08 100644 --- a/sprites/s_node_3d_transform/s_node_3d_transform.yy +++ b/sprites/s_node_3d_transform/s_node_3d_transform.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "3D", + "path": "folders/nodes/icons/3D.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_9patch/s_node_9patch.yy b/sprites/s_node_9patch/s_node_9patch.yy index 5f4f44d6d..884e619c3 100644 --- a/sprites/s_node_9patch/s_node_9patch.yy +++ b/sprites/s_node_9patch/s_node_9patch.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "transform", + "path": "folders/nodes/icons/transform.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_BW/s_node_BW.yy b/sprites/s_node_BW/s_node_BW.yy index 4b446d5f2..473a8d893 100644 --- a/sprites/s_node_BW/s_node_BW.yy +++ b/sprites/s_node_BW/s_node_BW.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_RGB/s_node_RGB.yy b/sprites/s_node_RGB/s_node_RGB.yy index c4b3f747d..7488a193e 100644 --- a/sprites/s_node_RGB/s_node_RGB.yy +++ b/sprites/s_node_RGB/s_node_RGB.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_alpha_cut/s_node_alpha_cut.yy b/sprites/s_node_alpha_cut/s_node_alpha_cut.yy index d8a09f6e7..53f4f7798 100644 --- a/sprites/s_node_alpha_cut/s_node_alpha_cut.yy +++ b/sprites/s_node_alpha_cut/s_node_alpha_cut.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_alpha_grey/s_node_alpha_grey.yy b/sprites/s_node_alpha_grey/s_node_alpha_grey.yy index 7a4287bf3..cdaa0ad68 100644 --- a/sprites/s_node_alpha_grey/s_node_alpha_grey.yy +++ b/sprites/s_node_alpha_grey/s_node_alpha_grey.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_area/s_node_area.yy b/sprites/s_node_area/s_node_area.yy index 871b22df2..057b4b1e1 100644 --- a/sprites/s_node_area/s_node_area.yy +++ b/sprites/s_node_area/s_node_area.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "value", + "path": "folders/nodes/icons/value.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_array/s_node_array.yy b/sprites/s_node_array/s_node_array.yy index 1b5e4d9a8..04398da7d 100644 --- a/sprites/s_node_array/s_node_array.yy +++ b/sprites/s_node_array/s_node_array.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "value", + "path": "folders/nodes/icons/value.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_array_add/ed993967-b214-4b27-a424-b56d02930b9d.png b/sprites/s_node_array_add/ed993967-b214-4b27-a424-b56d02930b9d.png new file mode 100644 index 000000000..6116f3fe0 Binary files /dev/null and b/sprites/s_node_array_add/ed993967-b214-4b27-a424-b56d02930b9d.png differ diff --git a/sprites/s_node_array_add/layers/ed993967-b214-4b27-a424-b56d02930b9d/5e00e540-fd4a-4142-a789-656af76e3344.png b/sprites/s_node_array_add/layers/ed993967-b214-4b27-a424-b56d02930b9d/5e00e540-fd4a-4142-a789-656af76e3344.png new file mode 100644 index 000000000..6116f3fe0 Binary files /dev/null and b/sprites/s_node_array_add/layers/ed993967-b214-4b27-a424-b56d02930b9d/5e00e540-fd4a-4142-a789-656af76e3344.png differ diff --git a/sprites/s_node_array_add/s_node_array_add.yy b/sprites/s_node_array_add/s_node_array_add.yy new file mode 100644 index 000000000..7264a5cb9 --- /dev/null +++ b/sprites/s_node_array_add/s_node_array_add.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_array_add", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 0, + "bbox_right": 63, + "bbox_top": 12, + "bbox_bottom": 59, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"ed993967-b214-4b27-a424-b56d02930b9d",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_array_add", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"7b213954-5e98-4d03-89af-ed6237b6da20","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"ed993967-b214-4b27-a424-b56d02930b9d","path":"sprites/s_node_array_add/s_node_array_add.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"5e00e540-fd4a-4142-a789-656af76e3344","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "value", + "path": "folders/nodes/icons/value.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_array_get/3fcc0732-e7ef-4fdb-8688-de9a9f55e9dd.png b/sprites/s_node_array_get/3fcc0732-e7ef-4fdb-8688-de9a9f55e9dd.png deleted file mode 100644 index 986ed9b1b..000000000 Binary files a/sprites/s_node_array_get/3fcc0732-e7ef-4fdb-8688-de9a9f55e9dd.png and /dev/null differ diff --git a/sprites/s_node_array_get/9ed93d96-bdd3-4d24-9c7e-c0af4b8a2e91.png b/sprites/s_node_array_get/9ed93d96-bdd3-4d24-9c7e-c0af4b8a2e91.png new file mode 100644 index 000000000..de7d90f60 Binary files /dev/null and b/sprites/s_node_array_get/9ed93d96-bdd3-4d24-9c7e-c0af4b8a2e91.png differ diff --git a/sprites/s_node_array_get/layers/3fcc0732-e7ef-4fdb-8688-de9a9f55e9dd/979936b1-12b1-4871-9b32-643b7a636499.png b/sprites/s_node_array_get/layers/3fcc0732-e7ef-4fdb-8688-de9a9f55e9dd/979936b1-12b1-4871-9b32-643b7a636499.png deleted file mode 100644 index 986ed9b1b..000000000 Binary files a/sprites/s_node_array_get/layers/3fcc0732-e7ef-4fdb-8688-de9a9f55e9dd/979936b1-12b1-4871-9b32-643b7a636499.png and /dev/null differ diff --git a/sprites/s_node_array_get/layers/9ed93d96-bdd3-4d24-9c7e-c0af4b8a2e91/e52caecf-ffe9-455a-8ab2-70eb86fc31d8.png b/sprites/s_node_array_get/layers/9ed93d96-bdd3-4d24-9c7e-c0af4b8a2e91/e52caecf-ffe9-455a-8ab2-70eb86fc31d8.png new file mode 100644 index 000000000..de7d90f60 Binary files /dev/null and b/sprites/s_node_array_get/layers/9ed93d96-bdd3-4d24-9c7e-c0af4b8a2e91/e52caecf-ffe9-455a-8ab2-70eb86fc31d8.png differ diff --git a/sprites/s_node_array_get/s_node_array_get.yy b/sprites/s_node_array_get/s_node_array_get.yy index 19876ed5f..a57be973c 100644 --- a/sprites/s_node_array_get/s_node_array_get.yy +++ b/sprites/s_node_array_get/s_node_array_get.yy @@ -12,8 +12,8 @@ "swfPrecision": 2.525, "bbox_left": 0, "bbox_right": 63, - "bbox_top": 12, - "bbox_bottom": 51, + "bbox_top": 18, + "bbox_bottom": 45, "HTile": false, "VTile": false, "For3D": false, @@ -28,7 +28,7 @@ "gridX": 0, "gridY": 0, "frames": [ - {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"3fcc0732-e7ef-4fdb-8688-de9a9f55e9dd",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"9ed93d96-bdd3-4d24-9c7e-c0af4b8a2e91",}, ], "sequence": { "resourceType": "GMSequence", @@ -45,10 +45,10 @@ "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, "tracks": [ {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ - {"id":"24d5d0ae-ef1a-4da9-8e0e-6bc8a7617b2d","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"3fcc0732-e7ef-4fdb-8688-de9a9f55e9dd","path":"sprites/s_node_array_get/s_node_array_get.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"e373f879-f7f3-4c3a-9fa0-4cacb9509319","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"9ed93d96-bdd3-4d24-9c7e-c0af4b8a2e91","path":"sprites/s_node_array_get/s_node_array_get.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "lockOrigin": false, "showBackdrop": true, "showBackdropImage": false, @@ -64,11 +64,11 @@ "eventStubScript": null, }, "layers": [ - {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"979936b1-12b1-4871-9b32-643b7a636499","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"e52caecf-ffe9-455a-8ab2-70eb86fc31d8","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "value", + "path": "folders/nodes/icons/value.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_array_length/s_node_array_length.yy b/sprites/s_node_array_length/s_node_array_length.yy index 147650ced..f95e6f4e7 100644 --- a/sprites/s_node_array_length/s_node_array_length.yy +++ b/sprites/s_node_array_length/s_node_array_length.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "value", + "path": "folders/nodes/icons/value.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_array_range/86783b1a-0861-4aaa-9fef-a2730c610589.png b/sprites/s_node_array_range/86783b1a-0861-4aaa-9fef-a2730c610589.png new file mode 100644 index 000000000..5fcab837e Binary files /dev/null and b/sprites/s_node_array_range/86783b1a-0861-4aaa-9fef-a2730c610589.png differ diff --git a/sprites/s_node_array_range/layers/86783b1a-0861-4aaa-9fef-a2730c610589/10020266-0d94-4a2b-957a-45c49df77fb5.png b/sprites/s_node_array_range/layers/86783b1a-0861-4aaa-9fef-a2730c610589/10020266-0d94-4a2b-957a-45c49df77fb5.png new file mode 100644 index 000000000..5fcab837e Binary files /dev/null and b/sprites/s_node_array_range/layers/86783b1a-0861-4aaa-9fef-a2730c610589/10020266-0d94-4a2b-957a-45c49df77fb5.png differ diff --git a/sprites/s_node_array_range/s_node_array_range.yy b/sprites/s_node_array_range/s_node_array_range.yy new file mode 100644 index 000000000..91f958659 --- /dev/null +++ b/sprites/s_node_array_range/s_node_array_range.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_array_range", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 0, + "bbox_right": 63, + "bbox_top": 6, + "bbox_bottom": 59, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"86783b1a-0861-4aaa-9fef-a2730c610589",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_array_range", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"4723092b-4b01-4916-9b9e-8cf9ac960cd8","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"86783b1a-0861-4aaa-9fef-a2730c610589","path":"sprites/s_node_array_range/s_node_array_range.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"10020266-0d94-4a2b-957a-45c49df77fb5","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "value", + "path": "folders/nodes/icons/value.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_atlas/s_node_atlas.yy b/sprites/s_node_atlas/s_node_atlas.yy index a39bfa471..443f69068 100644 --- a/sprites/s_node_atlas/s_node_atlas.yy +++ b/sprites/s_node_atlas/s_node_atlas.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_bevel/s_node_bevel.yy b/sprites/s_node_bevel/s_node_bevel.yy index df2725e07..dd1900684 100644 --- a/sprites/s_node_bevel/s_node_bevel.yy +++ b/sprites/s_node_bevel/s_node_bevel.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_blend/s_node_blend.yy b/sprites/s_node_blend/s_node_blend.yy index 5e07bf2ea..1e42160a3 100644 --- a/sprites/s_node_blend/s_node_blend.yy +++ b/sprites/s_node_blend/s_node_blend.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_bloom/s_node_bloom.yy b/sprites/s_node_bloom/s_node_bloom.yy index 9908f8de4..880102f3f 100644 --- a/sprites/s_node_bloom/s_node_bloom.yy +++ b/sprites/s_node_bloom/s_node_bloom.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_blur/s_node_blur.yy b/sprites/s_node_blur/s_node_blur.yy index 268259c7b..c23c2ac81 100644 --- a/sprites/s_node_blur/s_node_blur.yy +++ b/sprites/s_node_blur/s_node_blur.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_blur_contrast/s_node_blur_contrast.yy b/sprites/s_node_blur_contrast/s_node_blur_contrast.yy index ab841085b..41c7f2908 100644 --- a/sprites/s_node_blur_contrast/s_node_blur_contrast.yy +++ b/sprites/s_node_blur_contrast/s_node_blur_contrast.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_blur_directional/s_node_blur_directional.yy b/sprites/s_node_blur_directional/s_node_blur_directional.yy index 2abb31790..760300e2f 100644 --- a/sprites/s_node_blur_directional/s_node_blur_directional.yy +++ b/sprites/s_node_blur_directional/s_node_blur_directional.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_border/s_node_border.yy b/sprites/s_node_border/s_node_border.yy index 1de644550..ae8c91f59 100644 --- a/sprites/s_node_border/s_node_border.yy +++ b/sprites/s_node_border/s_node_border.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_camera/46eee247-74e5-4f4e-aca7-ef432343a931.png b/sprites/s_node_camera/46eee247-74e5-4f4e-aca7-ef432343a931.png new file mode 100644 index 000000000..25462518f Binary files /dev/null and b/sprites/s_node_camera/46eee247-74e5-4f4e-aca7-ef432343a931.png differ diff --git a/sprites/s_node_camera/layers/46eee247-74e5-4f4e-aca7-ef432343a931/c9e4ad85-b10a-4091-91df-e353f1b406f7.png b/sprites/s_node_camera/layers/46eee247-74e5-4f4e-aca7-ef432343a931/c9e4ad85-b10a-4091-91df-e353f1b406f7.png new file mode 100644 index 000000000..25462518f Binary files /dev/null and b/sprites/s_node_camera/layers/46eee247-74e5-4f4e-aca7-ef432343a931/c9e4ad85-b10a-4091-91df-e353f1b406f7.png differ diff --git a/sprites/s_node_camera/s_node_camera.yy b/sprites/s_node_camera/s_node_camera.yy new file mode 100644 index 000000000..25bfa3b7e --- /dev/null +++ b/sprites/s_node_camera/s_node_camera.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_camera", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 2, + "bbox_right": 61, + "bbox_top": 4, + "bbox_bottom": 51, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"46eee247-74e5-4f4e-aca7-ef432343a931",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_camera", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"6216ee8a-de02-4d54-a8bf-2a18b6482b1e","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"46eee247-74e5-4f4e-aca7-ef432343a931","path":"sprites/s_node_camera/s_node_camera.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"c9e4ad85-b10a-4091-91df-e353f1b406f7","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "render", + "path": "folders/nodes/icons/render.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_canvas/s_node_canvas.yy b/sprites/s_node_canvas/s_node_canvas.yy index 9254f9dd9..15e6de302 100644 --- a/sprites/s_node_canvas/s_node_canvas.yy +++ b/sprites/s_node_canvas/s_node_canvas.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "input", + "path": "folders/nodes/icons/input.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_character/s_node_character.yy b/sprites/s_node_character/s_node_character.yy index 1b8766802..3583f692e 100644 --- a/sprites/s_node_character/s_node_character.yy +++ b/sprites/s_node_character/s_node_character.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "value", + "path": "folders/nodes/icons/value.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_checker/s_node_checker.yy b/sprites/s_node_checker/s_node_checker.yy index 447b2864e..ee23d1119 100644 --- a/sprites/s_node_checker/s_node_checker.yy +++ b/sprites/s_node_checker/s_node_checker.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "generator", + "path": "folders/nodes/icons/generator.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_chromatic_abarration/s_node_chromatic_abarration.yy b/sprites/s_node_chromatic_abarration/s_node_chromatic_abarration.yy index 1335ef3f0..2672adfa8 100644 --- a/sprites/s_node_chromatic_abarration/s_node_chromatic_abarration.yy +++ b/sprites/s_node_chromatic_abarration/s_node_chromatic_abarration.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_color/s_node_color.yy b/sprites/s_node_color/s_node_color.yy index 1b8d50e38..57282f368 100644 --- a/sprites/s_node_color/s_node_color.yy +++ b/sprites/s_node_color/s_node_color.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "color", + "path": "folders/nodes/icons/color.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_color_adjust/s_node_color_adjust.yy b/sprites/s_node_color_adjust/s_node_color_adjust.yy index 3d5be15d6..440e5fa2d 100644 --- a/sprites/s_node_color_adjust/s_node_color_adjust.yy +++ b/sprites/s_node_color_adjust/s_node_color_adjust.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "color", + "path": "folders/nodes/icons/color.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_color_data/s_node_color_data.yy b/sprites/s_node_color_data/s_node_color_data.yy index 405ce151d..c1a81c3c2 100644 --- a/sprites/s_node_color_data/s_node_color_data.yy +++ b/sprites/s_node_color_data/s_node_color_data.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "color", + "path": "folders/nodes/icons/color.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_color_from_hsv/s_node_color_from_hsv.yy b/sprites/s_node_color_from_hsv/s_node_color_from_hsv.yy index 4ffac2128..7887ba400 100644 --- a/sprites/s_node_color_from_hsv/s_node_color_from_hsv.yy +++ b/sprites/s_node_color_from_hsv/s_node_color_from_hsv.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "color", + "path": "folders/nodes/icons/color.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_color_from_rgb/s_node_color_from_rgb.yy b/sprites/s_node_color_from_rgb/s_node_color_from_rgb.yy index 6835442e5..e92068448 100644 --- a/sprites/s_node_color_from_rgb/s_node_color_from_rgb.yy +++ b/sprites/s_node_color_from_rgb/s_node_color_from_rgb.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "color", + "path": "folders/nodes/icons/color.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_color_out/s_node_color_out.yy b/sprites/s_node_color_out/s_node_color_out.yy index 802b1fd56..3814ffbb8 100644 --- a/sprites/s_node_color_out/s_node_color_out.yy +++ b/sprites/s_node_color_out/s_node_color_out.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "color", + "path": "folders/nodes/icons/color.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_color_remove/s_node_color_remove.yy b/sprites/s_node_color_remove/s_node_color_remove.yy index 0764c6560..1a5dab71e 100644 --- a/sprites/s_node_color_remove/s_node_color_remove.yy +++ b/sprites/s_node_color_remove/s_node_color_remove.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "color", + "path": "folders/nodes/icons/color.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_color_replace/s_node_color_replace.yy b/sprites/s_node_color_replace/s_node_color_replace.yy index d7ca7d513..cb1640399 100644 --- a/sprites/s_node_color_replace/s_node_color_replace.yy +++ b/sprites/s_node_color_replace/s_node_color_replace.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "color", + "path": "folders/nodes/icons/color.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_colorize/s_node_colorize.yy b/sprites/s_node_colorize/s_node_colorize.yy index a4fe3a3be..0be2f1312 100644 --- a/sprites/s_node_colorize/s_node_colorize.yy +++ b/sprites/s_node_colorize/s_node_colorize.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_compose/s_node_compose.yy b/sprites/s_node_compose/s_node_compose.yy index 47f5502f1..78237c894 100644 --- a/sprites/s_node_compose/s_node_compose.yy +++ b/sprites/s_node_compose/s_node_compose.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "transform", + "path": "folders/nodes/icons/transform.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_condition/s_node_condition.yy b/sprites/s_node_condition/s_node_condition.yy index 9b70c62fe..242ad3725 100644 --- a/sprites/s_node_condition/s_node_condition.yy +++ b/sprites/s_node_condition/s_node_condition.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "node", + "path": "folders/nodes/icons/node.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_corner/s_node_corner.yy b/sprites/s_node_corner/s_node_corner.yy index ea17411c7..df74881d0 100644 --- a/sprites/s_node_corner/s_node_corner.yy +++ b/sprites/s_node_corner/s_node_corner.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_counter/s_node_counter.yy b/sprites/s_node_counter/s_node_counter.yy index c467bebd7..a34ce3653 100644 --- a/sprites/s_node_counter/s_node_counter.yy +++ b/sprites/s_node_counter/s_node_counter.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "animation", + "path": "folders/nodes/icons/animation.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_crop/s_node_crop.yy b/sprites/s_node_crop/s_node_crop.yy index fa038456a..a9179f55e 100644 --- a/sprites/s_node_crop/s_node_crop.yy +++ b/sprites/s_node_crop/s_node_crop.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "transform", + "path": "folders/nodes/icons/transform.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_curve/s_node_curve.yy b/sprites/s_node_curve/s_node_curve.yy index bdca0bc8e..dfebcd2b0 100644 --- a/sprites/s_node_curve/s_node_curve.yy +++ b/sprites/s_node_curve/s_node_curve.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "animation", + "path": "folders/nodes/icons/animation.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_decorner/s_node_decorner.yy b/sprites/s_node_decorner/s_node_decorner.yy index 3a3789204..3a3285ad0 100644 --- a/sprites/s_node_decorner/s_node_decorner.yy +++ b/sprites/s_node_decorner/s_node_decorner.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_destray/s_node_destray.yy b/sprites/s_node_destray/s_node_destray.yy index 3ec7d8b1f..900afd91c 100644 --- a/sprites/s_node_destray/s_node_destray.yy +++ b/sprites/s_node_destray/s_node_destray.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_dilate/s_node_dilate.yy b/sprites/s_node_dilate/s_node_dilate.yy index bc8e846d9..fceb42b85 100644 --- a/sprites/s_node_dilate/s_node_dilate.yy +++ b/sprites/s_node_dilate/s_node_dilate.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_displace/s_node_displace.yy b/sprites/s_node_displace/s_node_displace.yy index f7a0c19bf..bc8f40b99 100644 --- a/sprites/s_node_displace/s_node_displace.yy +++ b/sprites/s_node_displace/s_node_displace.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_dithering/s_node_dithering.yy b/sprites/s_node_dithering/s_node_dithering.yy index ede1d24a3..ca417d2b5 100644 --- a/sprites/s_node_dithering/s_node_dithering.yy +++ b/sprites/s_node_dithering/s_node_dithering.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_edge_detect/0f702a82-002f-475e-b977-8189ece26ed3.png b/sprites/s_node_edge_detect/0f702a82-002f-475e-b977-8189ece26ed3.png deleted file mode 100644 index cbdb7ae91..000000000 Binary files a/sprites/s_node_edge_detect/0f702a82-002f-475e-b977-8189ece26ed3.png and /dev/null differ diff --git a/sprites/s_node_edge_detect/e2487595-7220-4ac1-ba38-f8c45b307eaa.png b/sprites/s_node_edge_detect/e2487595-7220-4ac1-ba38-f8c45b307eaa.png new file mode 100644 index 000000000..34ddc903d Binary files /dev/null and b/sprites/s_node_edge_detect/e2487595-7220-4ac1-ba38-f8c45b307eaa.png differ diff --git a/sprites/s_node_edge_detect/layers/0f702a82-002f-475e-b977-8189ece26ed3/77f2dfec-b9c1-4936-9f73-4080987687ca.png b/sprites/s_node_edge_detect/layers/0f702a82-002f-475e-b977-8189ece26ed3/77f2dfec-b9c1-4936-9f73-4080987687ca.png deleted file mode 100644 index cbdb7ae91..000000000 Binary files a/sprites/s_node_edge_detect/layers/0f702a82-002f-475e-b977-8189ece26ed3/77f2dfec-b9c1-4936-9f73-4080987687ca.png and /dev/null differ diff --git a/sprites/s_node_edge_detect/layers/e2487595-7220-4ac1-ba38-f8c45b307eaa/c23425b8-4cdc-45ca-b97f-19e51c723ac9.png b/sprites/s_node_edge_detect/layers/e2487595-7220-4ac1-ba38-f8c45b307eaa/c23425b8-4cdc-45ca-b97f-19e51c723ac9.png new file mode 100644 index 000000000..34ddc903d Binary files /dev/null and b/sprites/s_node_edge_detect/layers/e2487595-7220-4ac1-ba38-f8c45b307eaa/c23425b8-4cdc-45ca-b97f-19e51c723ac9.png differ diff --git a/sprites/s_node_edge_detect/s_node_edge_detect.yy b/sprites/s_node_edge_detect/s_node_edge_detect.yy index ae91f1a45..f6f2e9817 100644 --- a/sprites/s_node_edge_detect/s_node_edge_detect.yy +++ b/sprites/s_node_edge_detect/s_node_edge_detect.yy @@ -10,10 +10,10 @@ "edgeFiltering": false, "collisionTolerance": 0, "swfPrecision": 2.525, - "bbox_left": 6, - "bbox_right": 58, - "bbox_top": 6, - "bbox_bottom": 53, + "bbox_left": 0, + "bbox_right": 63, + "bbox_top": 0, + "bbox_bottom": 63, "HTile": false, "VTile": false, "For3D": false, @@ -28,7 +28,7 @@ "gridX": 0, "gridY": 0, "frames": [ - {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"0f702a82-002f-475e-b977-8189ece26ed3",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"e2487595-7220-4ac1-ba38-f8c45b307eaa",}, ], "sequence": { "resourceType": "GMSequence", @@ -45,10 +45,10 @@ "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, "tracks": [ {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ - {"id":"02b60964-2c93-4ad3-94f6-80d127f9ad7b","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"0f702a82-002f-475e-b977-8189ece26ed3","path":"sprites/s_node_edge_detect/s_node_edge_detect.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"5b0f1d66-01eb-43be-bc03-06c80e2e441a","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"e2487595-7220-4ac1-ba38-f8c45b307eaa","path":"sprites/s_node_edge_detect/s_node_edge_detect.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "lockOrigin": false, "showBackdrop": true, "showBackdropImage": false, @@ -64,11 +64,11 @@ "eventStubScript": null, }, "layers": [ - {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"77f2dfec-b9c1-4936-9f73-4080987687ca","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"c23425b8-4cdc-45ca-b97f-19e51c723ac9","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_erode/s_node_erode.yy b/sprites/s_node_erode/s_node_erode.yy index ec20ab60e..6d726a2a7 100644 --- a/sprites/s_node_erode/s_node_erode.yy +++ b/sprites/s_node_erode/s_node_erode.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_export/s_node_export.yy b/sprites/s_node_export/s_node_export.yy index 0e6bbaa35..e1edf8337 100644 --- a/sprites/s_node_export/s_node_export.yy +++ b/sprites/s_node_export/s_node_export.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "render", + "path": "folders/nodes/icons/render.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_feedback/06c388a4-4f9d-45a8-bdf6-0f2d783ed160.png b/sprites/s_node_feedback/06c388a4-4f9d-45a8-bdf6-0f2d783ed160.png new file mode 100644 index 000000000..b903ae888 Binary files /dev/null and b/sprites/s_node_feedback/06c388a4-4f9d-45a8-bdf6-0f2d783ed160.png differ diff --git a/sprites/s_node_feedback/layers/06c388a4-4f9d-45a8-bdf6-0f2d783ed160/15f0790c-60ad-4cba-82e3-cc31f95b2a28.png b/sprites/s_node_feedback/layers/06c388a4-4f9d-45a8-bdf6-0f2d783ed160/15f0790c-60ad-4cba-82e3-cc31f95b2a28.png new file mode 100644 index 000000000..b903ae888 Binary files /dev/null and b/sprites/s_node_feedback/layers/06c388a4-4f9d-45a8-bdf6-0f2d783ed160/15f0790c-60ad-4cba-82e3-cc31f95b2a28.png differ diff --git a/sprites/s_node_feedback/s_node_feedback.yy b/sprites/s_node_feedback/s_node_feedback.yy new file mode 100644 index 000000000..337d8cf45 --- /dev/null +++ b/sprites/s_node_feedback/s_node_feedback.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_feedback", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 1, + "bbox_right": 62, + "bbox_top": 1, + "bbox_bottom": 62, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"06c388a4-4f9d-45a8-bdf6-0f2d783ed160",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_feedback", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"e8523d46-112c-4667-8b23-ea5f4dec790f","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"06c388a4-4f9d-45a8-bdf6-0f2d783ed160","path":"sprites/s_node_feedback/s_node_feedback.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"15f0790c-60ad-4cba-82e3-cc31f95b2a28","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "node", + "path": "folders/nodes/icons/node.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_feedback_input/ddcd50ea-51fe-44e2-a2c8-712792f89e44.png b/sprites/s_node_feedback_input/ddcd50ea-51fe-44e2-a2c8-712792f89e44.png new file mode 100644 index 000000000..577d1d642 Binary files /dev/null and b/sprites/s_node_feedback_input/ddcd50ea-51fe-44e2-a2c8-712792f89e44.png differ diff --git a/sprites/s_node_feedback_input/layers/ddcd50ea-51fe-44e2-a2c8-712792f89e44/660b3c9d-ca56-43c6-bea0-844517a29bda.png b/sprites/s_node_feedback_input/layers/ddcd50ea-51fe-44e2-a2c8-712792f89e44/660b3c9d-ca56-43c6-bea0-844517a29bda.png new file mode 100644 index 000000000..577d1d642 Binary files /dev/null and b/sprites/s_node_feedback_input/layers/ddcd50ea-51fe-44e2-a2c8-712792f89e44/660b3c9d-ca56-43c6-bea0-844517a29bda.png differ diff --git a/sprites/s_node_feedback_input/s_node_feedback_input.yy b/sprites/s_node_feedback_input/s_node_feedback_input.yy new file mode 100644 index 000000000..07907c309 --- /dev/null +++ b/sprites/s_node_feedback_input/s_node_feedback_input.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_feedback_input", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 0, + "bbox_right": 63, + "bbox_top": 0, + "bbox_bottom": 63, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"ddcd50ea-51fe-44e2-a2c8-712792f89e44",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_feedback_input", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"7e1d9211-37f1-4598-8363-49d9f09b9483","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"ddcd50ea-51fe-44e2-a2c8-712792f89e44","path":"sprites/s_node_feedback_input/s_node_feedback_input.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"660b3c9d-ca56-43c6-bea0-844517a29bda","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "node", + "path": "folders/nodes/icons/node.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_feedback_output/0b6dc59a-56f6-4f85-a98d-c22b9d25fcba.png b/sprites/s_node_feedback_output/0b6dc59a-56f6-4f85-a98d-c22b9d25fcba.png new file mode 100644 index 000000000..bd6992be9 Binary files /dev/null and b/sprites/s_node_feedback_output/0b6dc59a-56f6-4f85-a98d-c22b9d25fcba.png differ diff --git a/sprites/s_node_feedback_output/layers/0b6dc59a-56f6-4f85-a98d-c22b9d25fcba/0b858ca6-0a7e-4caf-ac59-0266da55c298.png b/sprites/s_node_feedback_output/layers/0b6dc59a-56f6-4f85-a98d-c22b9d25fcba/0b858ca6-0a7e-4caf-ac59-0266da55c298.png new file mode 100644 index 000000000..bd6992be9 Binary files /dev/null and b/sprites/s_node_feedback_output/layers/0b6dc59a-56f6-4f85-a98d-c22b9d25fcba/0b858ca6-0a7e-4caf-ac59-0266da55c298.png differ diff --git a/sprites/s_node_feedback_output/s_node_feedback_output.yy b/sprites/s_node_feedback_output/s_node_feedback_output.yy new file mode 100644 index 000000000..024c4c664 --- /dev/null +++ b/sprites/s_node_feedback_output/s_node_feedback_output.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_feedback_output", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 0, + "bbox_right": 63, + "bbox_top": 0, + "bbox_bottom": 63, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"0b6dc59a-56f6-4f85-a98d-c22b9d25fcba",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_feedback_output", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"181feff4-90b4-470e-86ce-edbef30cee7c","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"0b6dc59a-56f6-4f85-a98d-c22b9d25fcba","path":"sprites/s_node_feedback_output/s_node_feedback_output.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"0b858ca6-0a7e-4caf-ac59-0266da55c298","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "node", + "path": "folders/nodes/icons/node.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_frame/s_node_frame.yy b/sprites/s_node_frame/s_node_frame.yy index a364ac344..4a3194f1b 100644 --- a/sprites/s_node_frame/s_node_frame.yy +++ b/sprites/s_node_frame/s_node_frame.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "node", + "path": "folders/nodes/icons/node.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_glow/s_node_glow.yy b/sprites/s_node_glow/s_node_glow.yy index 31df8c52a..803155e9a 100644 --- a/sprites/s_node_glow/s_node_glow.yy +++ b/sprites/s_node_glow/s_node_glow.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_gradient/s_node_gradient.yy b/sprites/s_node_gradient/s_node_gradient.yy index 2e2d99148..52d3548f2 100644 --- a/sprites/s_node_gradient/s_node_gradient.yy +++ b/sprites/s_node_gradient/s_node_gradient.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "generator", + "path": "folders/nodes/icons/generator.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_gradient_4points/s_node_gradient_4points.yy b/sprites/s_node_gradient_4points/s_node_gradient_4points.yy index 2df23a7d2..218993afb 100644 --- a/sprites/s_node_gradient_4points/s_node_gradient_4points.yy +++ b/sprites/s_node_gradient_4points/s_node_gradient_4points.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "generator", + "path": "folders/nodes/icons/generator.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_gradient_out/s_node_gradient_out.yy b/sprites/s_node_gradient_out/s_node_gradient_out.yy index 783f8b91a..ac82b8bbe 100644 --- a/sprites/s_node_gradient_out/s_node_gradient_out.yy +++ b/sprites/s_node_gradient_out/s_node_gradient_out.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "color", + "path": "folders/nodes/icons/color.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_grey_alpha/s_node_grey_alpha.yy b/sprites/s_node_grey_alpha/s_node_grey_alpha.yy index 02e526cc6..eccc54e09 100644 --- a/sprites/s_node_grey_alpha/s_node_grey_alpha.yy +++ b/sprites/s_node_grey_alpha/s_node_grey_alpha.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_greyscale/s_node_greyscale.yy b/sprites/s_node_greyscale/s_node_greyscale.yy index 4f90d996e..6684eeb48 100644 --- a/sprites/s_node_greyscale/s_node_greyscale.yy +++ b/sprites/s_node_greyscale/s_node_greyscale.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_grid/s_node_grid.yy b/sprites/s_node_grid/s_node_grid.yy index a7f9498c6..f3354f6bb 100644 --- a/sprites/s_node_grid/s_node_grid.yy +++ b/sprites/s_node_grid/s_node_grid.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "generator", + "path": "folders/nodes/icons/generator.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_grid_hex/s_node_grid_hex.yy b/sprites/s_node_grid_hex/s_node_grid_hex.yy index bba39c072..105c9aae7 100644 --- a/sprites/s_node_grid_hex/s_node_grid_hex.yy +++ b/sprites/s_node_grid_hex/s_node_grid_hex.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "generator", + "path": "folders/nodes/icons/generator.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_grid_noise/s_node_grid_noise.yy b/sprites/s_node_grid_noise/s_node_grid_noise.yy index 678e0c988..e92b3d170 100644 --- a/sprites/s_node_grid_noise/s_node_grid_noise.yy +++ b/sprites/s_node_grid_noise/s_node_grid_noise.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "generator", + "path": "folders/nodes/icons/generator.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_grid_tri/s_node_grid_tri.yy b/sprites/s_node_grid_tri/s_node_grid_tri.yy index 8a444ab08..47f54d10a 100644 --- a/sprites/s_node_grid_tri/s_node_grid_tri.yy +++ b/sprites/s_node_grid_tri/s_node_grid_tri.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "generator", + "path": "folders/nodes/icons/generator.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_group/7ca55142-cc74-4e24-be7e-9346f403cc5c.png b/sprites/s_node_group/7ca55142-cc74-4e24-be7e-9346f403cc5c.png deleted file mode 100644 index 923d1cd25..000000000 Binary files a/sprites/s_node_group/7ca55142-cc74-4e24-be7e-9346f403cc5c.png and /dev/null differ diff --git a/sprites/s_node_group/ff12ed75-f025-4034-971c-78982eae3dc5.png b/sprites/s_node_group/ff12ed75-f025-4034-971c-78982eae3dc5.png new file mode 100644 index 000000000..c90fca086 Binary files /dev/null and b/sprites/s_node_group/ff12ed75-f025-4034-971c-78982eae3dc5.png differ diff --git a/sprites/s_node_group/layers/7ca55142-cc74-4e24-be7e-9346f403cc5c/fcb9eadf-f6b0-4082-a318-e8df1ca14edf.png b/sprites/s_node_group/layers/7ca55142-cc74-4e24-be7e-9346f403cc5c/fcb9eadf-f6b0-4082-a318-e8df1ca14edf.png deleted file mode 100644 index 923d1cd25..000000000 Binary files a/sprites/s_node_group/layers/7ca55142-cc74-4e24-be7e-9346f403cc5c/fcb9eadf-f6b0-4082-a318-e8df1ca14edf.png and /dev/null differ diff --git a/sprites/s_node_group/layers/ff12ed75-f025-4034-971c-78982eae3dc5/800686d9-dca2-4db1-a27a-77008f022f9c.png b/sprites/s_node_group/layers/ff12ed75-f025-4034-971c-78982eae3dc5/800686d9-dca2-4db1-a27a-77008f022f9c.png new file mode 100644 index 000000000..c90fca086 Binary files /dev/null and b/sprites/s_node_group/layers/ff12ed75-f025-4034-971c-78982eae3dc5/800686d9-dca2-4db1-a27a-77008f022f9c.png differ diff --git a/sprites/s_node_group/s_node_group.yy b/sprites/s_node_group/s_node_group.yy index e37efeb68..f05266980 100644 --- a/sprites/s_node_group/s_node_group.yy +++ b/sprites/s_node_group/s_node_group.yy @@ -10,10 +10,10 @@ "edgeFiltering": false, "collisionTolerance": 0, "swfPrecision": 2.525, - "bbox_left": 0, - "bbox_right": 63, - "bbox_top": 0, - "bbox_bottom": 63, + "bbox_left": 1, + "bbox_right": 62, + "bbox_top": 1, + "bbox_bottom": 62, "HTile": false, "VTile": false, "For3D": false, @@ -28,7 +28,7 @@ "gridX": 0, "gridY": 0, "frames": [ - {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"7ca55142-cc74-4e24-be7e-9346f403cc5c",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"ff12ed75-f025-4034-971c-78982eae3dc5",}, ], "sequence": { "resourceType": "GMSequence", @@ -45,10 +45,10 @@ "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, "tracks": [ {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ - {"id":"87a7f87a-8cb7-4633-a8d2-d0b93ecc6f50","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"7ca55142-cc74-4e24-be7e-9346f403cc5c","path":"sprites/s_node_group/s_node_group.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"d2627227-6457-4bb1-a0d2-84f4d7aef7d0","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"ff12ed75-f025-4034-971c-78982eae3dc5","path":"sprites/s_node_group/s_node_group.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "lockOrigin": false, "showBackdrop": true, "showBackdropImage": false, @@ -64,11 +64,11 @@ "eventStubScript": null, }, "layers": [ - {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"fcb9eadf-f6b0-4082-a318-e8df1ca14edf","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"800686d9-dca2-4db1-a27a-77008f022f9c","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "node", + "path": "folders/nodes/icons/node.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_group_input/971cb472-ccbc-4838-bf15-4a694664b91d.png b/sprites/s_node_group_input/971cb472-ccbc-4838-bf15-4a694664b91d.png new file mode 100644 index 000000000..1b6c23fd0 Binary files /dev/null and b/sprites/s_node_group_input/971cb472-ccbc-4838-bf15-4a694664b91d.png differ diff --git a/sprites/s_node_group_input/layers/971cb472-ccbc-4838-bf15-4a694664b91d/37c050ff-f2c3-463d-a0d4-0f0441d216f6.png b/sprites/s_node_group_input/layers/971cb472-ccbc-4838-bf15-4a694664b91d/37c050ff-f2c3-463d-a0d4-0f0441d216f6.png new file mode 100644 index 000000000..1b6c23fd0 Binary files /dev/null and b/sprites/s_node_group_input/layers/971cb472-ccbc-4838-bf15-4a694664b91d/37c050ff-f2c3-463d-a0d4-0f0441d216f6.png differ diff --git a/sprites/s_node_group_input/s_node_group_input.yy b/sprites/s_node_group_input/s_node_group_input.yy new file mode 100644 index 000000000..e35b996ac --- /dev/null +++ b/sprites/s_node_group_input/s_node_group_input.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_group_input", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 0, + "bbox_right": 63, + "bbox_top": 0, + "bbox_bottom": 63, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"971cb472-ccbc-4838-bf15-4a694664b91d",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_group_input", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"97eb258a-aa7c-4987-9606-9ee1c5248133","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"971cb472-ccbc-4838-bf15-4a694664b91d","path":"sprites/s_node_group_input/s_node_group_input.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"37c050ff-f2c3-463d-a0d4-0f0441d216f6","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "node", + "path": "folders/nodes/icons/node.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_group_output/9292d376-d1d5-4fa5-be48-08ab9bbfe131.png b/sprites/s_node_group_output/9292d376-d1d5-4fa5-be48-08ab9bbfe131.png new file mode 100644 index 000000000..a693ac449 Binary files /dev/null and b/sprites/s_node_group_output/9292d376-d1d5-4fa5-be48-08ab9bbfe131.png differ diff --git a/sprites/s_node_group_output/layers/9292d376-d1d5-4fa5-be48-08ab9bbfe131/1962122e-71e0-4510-adaa-15952bfe9b5c.png b/sprites/s_node_group_output/layers/9292d376-d1d5-4fa5-be48-08ab9bbfe131/1962122e-71e0-4510-adaa-15952bfe9b5c.png new file mode 100644 index 000000000..a693ac449 Binary files /dev/null and b/sprites/s_node_group_output/layers/9292d376-d1d5-4fa5-be48-08ab9bbfe131/1962122e-71e0-4510-adaa-15952bfe9b5c.png differ diff --git a/sprites/s_node_group_output/s_node_group_output.yy b/sprites/s_node_group_output/s_node_group_output.yy new file mode 100644 index 000000000..c2bef9b37 --- /dev/null +++ b/sprites/s_node_group_output/s_node_group_output.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_group_output", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 0, + "bbox_right": 63, + "bbox_top": 0, + "bbox_bottom": 63, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"9292d376-d1d5-4fa5-be48-08ab9bbfe131",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_group_output", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"6c1c7430-3675-4605-88b4-2299a8016e5a","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"9292d376-d1d5-4fa5-be48-08ab9bbfe131","path":"sprites/s_node_group_output/s_node_group_output.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"1962122e-71e0-4510-adaa-15952bfe9b5c","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "node", + "path": "folders/nodes/icons/node.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_image/s_node_image.yy b/sprites/s_node_image/s_node_image.yy index 3158ec494..7190a0045 100644 --- a/sprites/s_node_image/s_node_image.yy +++ b/sprites/s_node_image/s_node_image.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "input", + "path": "folders/nodes/icons/input.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_image_animation/s_node_image_animation.yy b/sprites/s_node_image_animation/s_node_image_animation.yy index 9308a4a15..563294d7a 100644 --- a/sprites/s_node_image_animation/s_node_image_animation.yy +++ b/sprites/s_node_image_animation/s_node_image_animation.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "input", + "path": "folders/nodes/icons/input.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_image_copy/s_node_image_copy.yy b/sprites/s_node_image_copy/s_node_image_copy.yy index 22fc49624..5e6623cac 100644 --- a/sprites/s_node_image_copy/s_node_image_copy.yy +++ b/sprites/s_node_image_copy/s_node_image_copy.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "input", + "path": "folders/nodes/icons/input.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_image_gif/s_node_image_gif.yy b/sprites/s_node_image_gif/s_node_image_gif.yy index 8d4baafcf..0132fb063 100644 --- a/sprites/s_node_image_gif/s_node_image_gif.yy +++ b/sprites/s_node_image_gif/s_node_image_gif.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "input", + "path": "folders/nodes/icons/input.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_image_sequence/s_node_image_sequence.yy b/sprites/s_node_image_sequence/s_node_image_sequence.yy index ee2fdb861..8d43d51c4 100644 --- a/sprites/s_node_image_sequence/s_node_image_sequence.yy +++ b/sprites/s_node_image_sequence/s_node_image_sequence.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "input", + "path": "folders/nodes/icons/input.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_image_sequence_to_anim/s_node_image_sequence_to_anim.yy b/sprites/s_node_image_sequence_to_anim/s_node_image_sequence_to_anim.yy index 41ca36b10..c55db9844 100644 --- a/sprites/s_node_image_sequence_to_anim/s_node_image_sequence_to_anim.yy +++ b/sprites/s_node_image_sequence_to_anim/s_node_image_sequence_to_anim.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "input", + "path": "folders/nodes/icons/input.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_image_sheet/s_node_image_sheet.yy b/sprites/s_node_image_sheet/s_node_image_sheet.yy index aa099c83b..87c5af03e 100644 --- a/sprites/s_node_image_sheet/s_node_image_sheet.yy +++ b/sprites/s_node_image_sheet/s_node_image_sheet.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "input", + "path": "folders/nodes/icons/input.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_input/s_node_input.yy b/sprites/s_node_input/s_node_input.yy index cdf63e342..e067a6c5a 100644 --- a/sprites/s_node_input/s_node_input.yy +++ b/sprites/s_node_input/s_node_input.yy @@ -48,7 +48,7 @@ {"id":"cc6d34bc-e3b7-4ac7-b75c-37b92e4f6b86","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"49c7d93a-48ad-412b-8a01-3e979d075ed7","path":"sprites/s_node_input/s_node_input.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "lockOrigin": false, "showBackdrop": true, "showBackdropImage": false, @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "node", + "path": "folders/nodes/icons/node.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_invert/s_node_invert.yy b/sprites/s_node_invert/s_node_invert.yy index 4c0554a63..621647ab6 100644 --- a/sprites/s_node_invert/s_node_invert.yy +++ b/sprites/s_node_invert/s_node_invert.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_iterator_index/8f00da3e-1175-429b-a1cb-d21caa827a6c.png b/sprites/s_node_iterator_index/8f00da3e-1175-429b-a1cb-d21caa827a6c.png deleted file mode 100644 index 77e5e3341..000000000 Binary files a/sprites/s_node_iterator_index/8f00da3e-1175-429b-a1cb-d21caa827a6c.png and /dev/null differ diff --git a/sprites/s_node_iterator_index/f4d6c106-c36e-4489-9255-30089cea881c.png b/sprites/s_node_iterator_index/f4d6c106-c36e-4489-9255-30089cea881c.png new file mode 100644 index 000000000..5e02102f7 Binary files /dev/null and b/sprites/s_node_iterator_index/f4d6c106-c36e-4489-9255-30089cea881c.png differ diff --git a/sprites/s_node_iterator_index/layers/8f00da3e-1175-429b-a1cb-d21caa827a6c/55a8aa0f-1caa-4380-8565-c348e408a7ef.png b/sprites/s_node_iterator_index/layers/8f00da3e-1175-429b-a1cb-d21caa827a6c/55a8aa0f-1caa-4380-8565-c348e408a7ef.png deleted file mode 100644 index 77e5e3341..000000000 Binary files a/sprites/s_node_iterator_index/layers/8f00da3e-1175-429b-a1cb-d21caa827a6c/55a8aa0f-1caa-4380-8565-c348e408a7ef.png and /dev/null differ diff --git a/sprites/s_node_iterator_index/layers/f4d6c106-c36e-4489-9255-30089cea881c/9f2cccc9-e4c1-40ac-b499-f67c45d63026.png b/sprites/s_node_iterator_index/layers/f4d6c106-c36e-4489-9255-30089cea881c/9f2cccc9-e4c1-40ac-b499-f67c45d63026.png new file mode 100644 index 000000000..5e02102f7 Binary files /dev/null and b/sprites/s_node_iterator_index/layers/f4d6c106-c36e-4489-9255-30089cea881c/9f2cccc9-e4c1-40ac-b499-f67c45d63026.png differ diff --git a/sprites/s_node_iterator_index/s_node_iterator_index.yy b/sprites/s_node_iterator_index/s_node_iterator_index.yy index be88c9aa0..901f645f7 100644 --- a/sprites/s_node_iterator_index/s_node_iterator_index.yy +++ b/sprites/s_node_iterator_index/s_node_iterator_index.yy @@ -10,10 +10,10 @@ "edgeFiltering": false, "collisionTolerance": 0, "swfPrecision": 2.525, - "bbox_left": 3, - "bbox_right": 63, - "bbox_top": 3, - "bbox_bottom": 60, + "bbox_left": 5, + "bbox_right": 59, + "bbox_top": 5, + "bbox_bottom": 58, "HTile": false, "VTile": false, "For3D": false, @@ -28,7 +28,7 @@ "gridX": 0, "gridY": 0, "frames": [ - {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"8f00da3e-1175-429b-a1cb-d21caa827a6c",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"f4d6c106-c36e-4489-9255-30089cea881c",}, ], "sequence": { "resourceType": "GMSequence", @@ -45,10 +45,10 @@ "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, "tracks": [ {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ - {"id":"a4ac91db-eff0-414d-a33d-3b684c6bb138","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"8f00da3e-1175-429b-a1cb-d21caa827a6c","path":"sprites/s_node_iterator_index/s_node_iterator_index.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"9a294183-a4c4-4908-8e35-b8c313637e22","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"f4d6c106-c36e-4489-9255-30089cea881c","path":"sprites/s_node_iterator_index/s_node_iterator_index.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "lockOrigin": false, "showBackdrop": true, "showBackdropImage": false, @@ -64,11 +64,11 @@ "eventStubScript": null, }, "layers": [ - {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"55a8aa0f-1caa-4380-8565-c348e408a7ef","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"9f2cccc9-e4c1-40ac-b499-f67c45d63026","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "node", + "path": "folders/nodes/icons/node.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_level/s_node_level.yy b/sprites/s_node_level/s_node_level.yy index aa81117d9..7a508156b 100644 --- a/sprites/s_node_level/s_node_level.yy +++ b/sprites/s_node_level/s_node_level.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_level_selector/s_node_level_selector.yy b/sprites/s_node_level_selector/s_node_level_selector.yy index b326059e7..abff1f1d1 100644 --- a/sprites/s_node_level_selector/s_node_level_selector.yy +++ b/sprites/s_node_level_selector/s_node_level_selector.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_line/s_node_line.yy b/sprites/s_node_line/s_node_line.yy index 9aa3c7c42..18e7a0925 100644 --- a/sprites/s_node_line/s_node_line.yy +++ b/sprites/s_node_line/s_node_line.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "generator", + "path": "folders/nodes/icons/generator.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_loop/127bb118-a2de-403b-956e-492c64a47fa2.png b/sprites/s_node_loop/127bb118-a2de-403b-956e-492c64a47fa2.png new file mode 100644 index 000000000..2146a15f8 Binary files /dev/null and b/sprites/s_node_loop/127bb118-a2de-403b-956e-492c64a47fa2.png differ diff --git a/sprites/s_node_loop/4cc33a9e-bd51-4eca-bba9-4811cbb5254e.png b/sprites/s_node_loop/4cc33a9e-bd51-4eca-bba9-4811cbb5254e.png deleted file mode 100644 index 5c9151e71..000000000 Binary files a/sprites/s_node_loop/4cc33a9e-bd51-4eca-bba9-4811cbb5254e.png and /dev/null differ diff --git a/sprites/s_node_loop/layers/127bb118-a2de-403b-956e-492c64a47fa2/0f93b2eb-0ca4-4a8b-88a9-bbe4198f168d.png b/sprites/s_node_loop/layers/127bb118-a2de-403b-956e-492c64a47fa2/0f93b2eb-0ca4-4a8b-88a9-bbe4198f168d.png new file mode 100644 index 000000000..2146a15f8 Binary files /dev/null and b/sprites/s_node_loop/layers/127bb118-a2de-403b-956e-492c64a47fa2/0f93b2eb-0ca4-4a8b-88a9-bbe4198f168d.png differ diff --git a/sprites/s_node_loop/layers/4cc33a9e-bd51-4eca-bba9-4811cbb5254e/b926f743-f315-4e71-819b-91de7d622b44.png b/sprites/s_node_loop/layers/4cc33a9e-bd51-4eca-bba9-4811cbb5254e/b926f743-f315-4e71-819b-91de7d622b44.png deleted file mode 100644 index 5c9151e71..000000000 Binary files a/sprites/s_node_loop/layers/4cc33a9e-bd51-4eca-bba9-4811cbb5254e/b926f743-f315-4e71-819b-91de7d622b44.png and /dev/null differ diff --git a/sprites/s_node_loop/s_node_loop.yy b/sprites/s_node_loop/s_node_loop.yy index abddee2d2..250d01c24 100644 --- a/sprites/s_node_loop/s_node_loop.yy +++ b/sprites/s_node_loop/s_node_loop.yy @@ -10,10 +10,10 @@ "edgeFiltering": false, "collisionTolerance": 0, "swfPrecision": 2.525, - "bbox_left": 0, - "bbox_right": 63, - "bbox_top": 0, - "bbox_bottom": 63, + "bbox_left": 1, + "bbox_right": 62, + "bbox_top": 1, + "bbox_bottom": 62, "HTile": false, "VTile": false, "For3D": false, @@ -28,7 +28,7 @@ "gridX": 0, "gridY": 0, "frames": [ - {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"4cc33a9e-bd51-4eca-bba9-4811cbb5254e",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"127bb118-a2de-403b-956e-492c64a47fa2",}, ], "sequence": { "resourceType": "GMSequence", @@ -45,10 +45,10 @@ "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, "tracks": [ {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ - {"id":"80632e75-f891-4065-af9d-421b866b6a69","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"4cc33a9e-bd51-4eca-bba9-4811cbb5254e","path":"sprites/s_node_loop/s_node_loop.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"9662601b-4e9e-4975-a037-354f3333dc64","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"127bb118-a2de-403b-956e-492c64a47fa2","path":"sprites/s_node_loop/s_node_loop.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "lockOrigin": false, "showBackdrop": true, "showBackdropImage": false, @@ -64,11 +64,11 @@ "eventStubScript": null, }, "layers": [ - {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"b926f743-f315-4e71-819b-91de7d622b44","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"0f93b2eb-0ca4-4a8b-88a9-bbe4198f168d","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "node", + "path": "folders/nodes/icons/node.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_loop_input/5e9a4bfd-5641-4a81-9c2c-73d458d5647c.png b/sprites/s_node_loop_input/5e9a4bfd-5641-4a81-9c2c-73d458d5647c.png new file mode 100644 index 000000000..f136bd73e Binary files /dev/null and b/sprites/s_node_loop_input/5e9a4bfd-5641-4a81-9c2c-73d458d5647c.png differ diff --git a/sprites/s_node_loop_input/layers/5e9a4bfd-5641-4a81-9c2c-73d458d5647c/18478794-0103-4e94-8b42-68d5014ecb1a.png b/sprites/s_node_loop_input/layers/5e9a4bfd-5641-4a81-9c2c-73d458d5647c/18478794-0103-4e94-8b42-68d5014ecb1a.png new file mode 100644 index 000000000..f136bd73e Binary files /dev/null and b/sprites/s_node_loop_input/layers/5e9a4bfd-5641-4a81-9c2c-73d458d5647c/18478794-0103-4e94-8b42-68d5014ecb1a.png differ diff --git a/sprites/s_node_loop_input/s_node_loop_input.yy b/sprites/s_node_loop_input/s_node_loop_input.yy new file mode 100644 index 000000000..2161c8714 --- /dev/null +++ b/sprites/s_node_loop_input/s_node_loop_input.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_loop_input", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 0, + "bbox_right": 63, + "bbox_top": 0, + "bbox_bottom": 63, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"5e9a4bfd-5641-4a81-9c2c-73d458d5647c",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_loop_input", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"b7323242-0983-4921-ac95-a63a76a9ce87","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"5e9a4bfd-5641-4a81-9c2c-73d458d5647c","path":"sprites/s_node_loop_input/s_node_loop_input.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"18478794-0103-4e94-8b42-68d5014ecb1a","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "node", + "path": "folders/nodes/icons/node.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_loop_output/e82461a8-9017-484a-ab4c-192fd846e012.png b/sprites/s_node_loop_output/e82461a8-9017-484a-ab4c-192fd846e012.png new file mode 100644 index 000000000..5e0969a8c Binary files /dev/null and b/sprites/s_node_loop_output/e82461a8-9017-484a-ab4c-192fd846e012.png differ diff --git a/sprites/s_node_loop_output/layers/e82461a8-9017-484a-ab4c-192fd846e012/81c5b09b-3a50-4675-bf9a-4ec28321c68e.png b/sprites/s_node_loop_output/layers/e82461a8-9017-484a-ab4c-192fd846e012/81c5b09b-3a50-4675-bf9a-4ec28321c68e.png new file mode 100644 index 000000000..5e0969a8c Binary files /dev/null and b/sprites/s_node_loop_output/layers/e82461a8-9017-484a-ab4c-192fd846e012/81c5b09b-3a50-4675-bf9a-4ec28321c68e.png differ diff --git a/sprites/s_node_loop_output/s_node_loop_output.yy b/sprites/s_node_loop_output/s_node_loop_output.yy new file mode 100644 index 000000000..5afe6d891 --- /dev/null +++ b/sprites/s_node_loop_output/s_node_loop_output.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_loop_output", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 0, + "bbox_right": 63, + "bbox_top": 0, + "bbox_bottom": 63, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"e82461a8-9017-484a-ab4c-192fd846e012",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_loop_output", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"89e923d8-1412-40e5-9a26-e339aa98fb87","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"e82461a8-9017-484a-ab4c-192fd846e012","path":"sprites/s_node_loop_output/s_node_loop_output.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"81c5b09b-3a50-4675-bf9a-4ec28321c68e","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "node", + "path": "folders/nodes/icons/node.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_math/s_node_math.yy b/sprites/s_node_math/s_node_math.yy index e2fb98d54..192206aa1 100644 --- a/sprites/s_node_math/s_node_math.yy +++ b/sprites/s_node_math/s_node_math.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "value", + "path": "folders/nodes/icons/value.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_mirror/s_node_mirror.yy b/sprites/s_node_mirror/s_node_mirror.yy index 720bb7a6d..6fd962ad4 100644 --- a/sprites/s_node_mirror/s_node_mirror.yy +++ b/sprites/s_node_mirror/s_node_mirror.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "transform", + "path": "folders/nodes/icons/transform.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_noise/s_node_noise.yy b/sprites/s_node_noise/s_node_noise.yy index 59046c7e1..23bf7fd01 100644 --- a/sprites/s_node_noise/s_node_noise.yy +++ b/sprites/s_node_noise/s_node_noise.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "generator", + "path": "folders/nodes/icons/generator.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_noise_aniso/s_node_noise_aniso.yy b/sprites/s_node_noise_aniso/s_node_noise_aniso.yy index 380063c01..7c767d98b 100644 --- a/sprites/s_node_noise_aniso/s_node_noise_aniso.yy +++ b/sprites/s_node_noise_aniso/s_node_noise_aniso.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "generator", + "path": "folders/nodes/icons/generator.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_noise_cell/s_node_noise_cell.yy b/sprites/s_node_noise_cell/s_node_noise_cell.yy index a028de55c..7c4faae88 100644 --- a/sprites/s_node_noise_cell/s_node_noise_cell.yy +++ b/sprites/s_node_noise_cell/s_node_noise_cell.yy @@ -48,7 +48,7 @@ {"id":"2d7f6225-284c-4b92-bdd4-361e3a87f76f","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"5c52dad2-2750-4275-812f-80ff03f3c9f1","path":"sprites/s_node_noise_cell/s_node_noise_cell.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "lockOrigin": false, "showBackdrop": true, "showBackdropImage": false, @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "generator", + "path": "folders/nodes/icons/generator.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_noise_perlin/s_node_noise_perlin.yy b/sprites/s_node_noise_perlin/s_node_noise_perlin.yy index b3f940ddb..9a885a21a 100644 --- a/sprites/s_node_noise_perlin/s_node_noise_perlin.yy +++ b/sprites/s_node_noise_perlin/s_node_noise_perlin.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "generator", + "path": "folders/nodes/icons/generator.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_normal/s_node_normal.yy b/sprites/s_node_normal/s_node_normal.yy index 6108b3e51..d13ccfc0b 100644 --- a/sprites/s_node_normal/s_node_normal.yy +++ b/sprites/s_node_normal/s_node_normal.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_normal_light/s_node_normal_light.yy b/sprites/s_node_normal_light/s_node_normal_light.yy index 2f9bb05fa..1a5e90705 100644 --- a/sprites/s_node_normal_light/s_node_normal_light.yy +++ b/sprites/s_node_normal_light/s_node_normal_light.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_number/s_node_number.yy b/sprites/s_node_number/s_node_number.yy index 7c864275b..74d9aa8e7 100644 --- a/sprites/s_node_number/s_node_number.yy +++ b/sprites/s_node_number/s_node_number.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "value", + "path": "folders/nodes/icons/value.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_output/s_node_output.yy b/sprites/s_node_output/s_node_output.yy index 8b58fe723..bd9ff2f9e 100644 --- a/sprites/s_node_output/s_node_output.yy +++ b/sprites/s_node_output/s_node_output.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "node", + "path": "folders/nodes/icons/node.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_padding/s_node_padding.yy b/sprites/s_node_padding/s_node_padding.yy index aa8aeecf9..690e57649 100644 --- a/sprites/s_node_padding/s_node_padding.yy +++ b/sprites/s_node_padding/s_node_padding.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "transform", + "path": "folders/nodes/icons/transform.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_palette/s_node_palette.yy b/sprites/s_node_palette/s_node_palette.yy index 3ac54a36c..5262ed779 100644 --- a/sprites/s_node_palette/s_node_palette.yy +++ b/sprites/s_node_palette/s_node_palette.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "color", + "path": "folders/nodes/icons/color.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_particle/s_node_particle.yy b/sprites/s_node_particle/s_node_particle.yy index 5dd2c2f89..fbd195a24 100644 --- a/sprites/s_node_particle/s_node_particle.yy +++ b/sprites/s_node_particle/s_node_particle.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "generator", + "path": "folders/nodes/icons/generator.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_particle_effector/s_node_particle_effector.yy b/sprites/s_node_particle_effector/s_node_particle_effector.yy index 4d1bdd01d..d6b6443d5 100644 --- a/sprites/s_node_particle_effector/s_node_particle_effector.yy +++ b/sprites/s_node_particle_effector/s_node_particle_effector.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "generator", + "path": "folders/nodes/icons/generator.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_path/s_node_path.yy b/sprites/s_node_path/s_node_path.yy index 6c1b0522a..afdc6c016 100644 --- a/sprites/s_node_path/s_node_path.yy +++ b/sprites/s_node_path/s_node_path.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "value", + "path": "folders/nodes/icons/value.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_pin/s_node_pin.yy b/sprites/s_node_pin/s_node_pin.yy index dc972cbe2..7a0ec806a 100644 --- a/sprites/s_node_pin/s_node_pin.yy +++ b/sprites/s_node_pin/s_node_pin.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "node", + "path": "folders/nodes/icons/node.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_pixel_cloud/s_node_pixel_cloud.yy b/sprites/s_node_pixel_cloud/s_node_pixel_cloud.yy index 61db7fb2d..724f41b7b 100644 --- a/sprites/s_node_pixel_cloud/s_node_pixel_cloud.yy +++ b/sprites/s_node_pixel_cloud/s_node_pixel_cloud.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_pixel_sort/fe8b9b6c-c28c-4439-8df1-4a2b55e9aca5.png b/sprites/s_node_pixel_sort/fe8b9b6c-c28c-4439-8df1-4a2b55e9aca5.png new file mode 100644 index 000000000..9ed7cd05b Binary files /dev/null and b/sprites/s_node_pixel_sort/fe8b9b6c-c28c-4439-8df1-4a2b55e9aca5.png differ diff --git a/sprites/s_node_pixel_sort/layers/fe8b9b6c-c28c-4439-8df1-4a2b55e9aca5/f1321af6-b4fb-4f14-8cdb-aa73b7add8da.png b/sprites/s_node_pixel_sort/layers/fe8b9b6c-c28c-4439-8df1-4a2b55e9aca5/f1321af6-b4fb-4f14-8cdb-aa73b7add8da.png new file mode 100644 index 000000000..9ed7cd05b Binary files /dev/null and b/sprites/s_node_pixel_sort/layers/fe8b9b6c-c28c-4439-8df1-4a2b55e9aca5/f1321af6-b4fb-4f14-8cdb-aa73b7add8da.png differ diff --git a/sprites/s_node_pixel_sort/s_node_pixel_sort.yy b/sprites/s_node_pixel_sort/s_node_pixel_sort.yy new file mode 100644 index 000000000..82a09fdf4 --- /dev/null +++ b/sprites/s_node_pixel_sort/s_node_pixel_sort.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_pixel_sort", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 0, + "bbox_right": 63, + "bbox_top": 0, + "bbox_bottom": 63, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"fe8b9b6c-c28c-4439-8df1-4a2b55e9aca5",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_pixel_sort", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"e5dc2620-2442-4591-b3f6-cf07e642abd2","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"fe8b9b6c-c28c-4439-8df1-4a2b55e9aca5","path":"sprites/s_node_pixel_sort/s_node_pixel_sort.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"f1321af6-b4fb-4f14-8cdb-aa73b7add8da","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "filter", + "path": "folders/nodes/icons/filter.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_polar/s_node_polar.yy b/sprites/s_node_polar/s_node_polar.yy index a6234adee..a2eab27b6 100644 --- a/sprites/s_node_polar/s_node_polar.yy +++ b/sprites/s_node_polar/s_node_polar.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "transform", + "path": "folders/nodes/icons/transform.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_posterize/s_node_posterize.yy b/sprites/s_node_posterize/s_node_posterize.yy index 30700bfa1..306539c85 100644 --- a/sprites/s_node_posterize/s_node_posterize.yy +++ b/sprites/s_node_posterize/s_node_posterize.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_sampler/s_node_sampler.yy b/sprites/s_node_sampler/s_node_sampler.yy index 7fa20d6a2..e8bd6c5b9 100644 --- a/sprites/s_node_sampler/s_node_sampler.yy +++ b/sprites/s_node_sampler/s_node_sampler.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "color", + "path": "folders/nodes/icons/color.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_scale/s_node_scale.yy b/sprites/s_node_scale/s_node_scale.yy index 1a94daf67..35a99360b 100644 --- a/sprites/s_node_scale/s_node_scale.yy +++ b/sprites/s_node_scale/s_node_scale.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "transform", + "path": "folders/nodes/icons/transform.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_scale_algo/s_node_scale_algo.yy b/sprites/s_node_scale_algo/s_node_scale_algo.yy index 9a6139a15..8c60f0947 100644 --- a/sprites/s_node_scale_algo/s_node_scale_algo.yy +++ b/sprites/s_node_scale_algo/s_node_scale_algo.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "transform", + "path": "folders/nodes/icons/transform.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_scatter/s_node_scatter.yy b/sprites/s_node_scatter/s_node_scatter.yy index 2559a4092..272c51876 100644 --- a/sprites/s_node_scatter/s_node_scatter.yy +++ b/sprites/s_node_scatter/s_node_scatter.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "generator", + "path": "folders/nodes/icons/generator.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_sepearte_shape/s_node_sepearte_shape.yy b/sprites/s_node_sepearte_shape/s_node_sepearte_shape.yy index f2ff99403..d255c6c54 100644 --- a/sprites/s_node_sepearte_shape/s_node_sepearte_shape.yy +++ b/sprites/s_node_sepearte_shape/s_node_sepearte_shape.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_shadow/s_node_shadow.yy b/sprites/s_node_shadow/s_node_shadow.yy index a8dcf9bd7..8aa70d1ed 100644 --- a/sprites/s_node_shadow/s_node_shadow.yy +++ b/sprites/s_node_shadow/s_node_shadow.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_shape/s_node_shape.yy b/sprites/s_node_shape/s_node_shape.yy index bd887fccb..6619f2bc1 100644 --- a/sprites/s_node_shape/s_node_shape.yy +++ b/sprites/s_node_shape/s_node_shape.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "generator", + "path": "folders/nodes/icons/generator.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_skew/686cec9c-50c7-4917-94dc-5f675336af7b.png b/sprites/s_node_skew/686cec9c-50c7-4917-94dc-5f675336af7b.png new file mode 100644 index 000000000..40a6ead18 Binary files /dev/null and b/sprites/s_node_skew/686cec9c-50c7-4917-94dc-5f675336af7b.png differ diff --git a/sprites/s_node_skew/layers/686cec9c-50c7-4917-94dc-5f675336af7b/abc3e824-be51-4e84-809e-f3f73a9b9c76.png b/sprites/s_node_skew/layers/686cec9c-50c7-4917-94dc-5f675336af7b/abc3e824-be51-4e84-809e-f3f73a9b9c76.png new file mode 100644 index 000000000..40a6ead18 Binary files /dev/null and b/sprites/s_node_skew/layers/686cec9c-50c7-4917-94dc-5f675336af7b/abc3e824-be51-4e84-809e-f3f73a9b9c76.png differ diff --git a/sprites/s_node_skew/s_node_skew.yy b/sprites/s_node_skew/s_node_skew.yy new file mode 100644 index 000000000..ad3d04c02 --- /dev/null +++ b/sprites/s_node_skew/s_node_skew.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_skew", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 0, + "bbox_right": 63, + "bbox_top": 0, + "bbox_bottom": 63, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"686cec9c-50c7-4917-94dc-5f675336af7b",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_skew", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"41c965bf-34d3-4716-a6b8-3f2eeac85385","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"686cec9c-50c7-4917-94dc-5f675336af7b","path":"sprites/s_node_skew/s_node_skew.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"abc3e824-be51-4e84-809e-f3f73a9b9c76","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "transform", + "path": "folders/nodes/icons/transform.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_solid/s_node_solid.yy b/sprites/s_node_solid/s_node_solid.yy index da23f8702..b2f814e1c 100644 --- a/sprites/s_node_solid/s_node_solid.yy +++ b/sprites/s_node_solid/s_node_solid.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "generator", + "path": "folders/nodes/icons/generator.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_sprite_sheet/s_node_sprite_sheet.yy b/sprites/s_node_sprite_sheet/s_node_sprite_sheet.yy index 7e8135b8a..54aca6358 100644 --- a/sprites/s_node_sprite_sheet/s_node_sprite_sheet.yy +++ b/sprites/s_node_sprite_sheet/s_node_sprite_sheet.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "render", + "path": "folders/nodes/icons/render.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_stack/s_node_stack.yy b/sprites/s_node_stack/s_node_stack.yy index c0cd51a9f..237b77221 100644 --- a/sprites/s_node_stack/s_node_stack.yy +++ b/sprites/s_node_stack/s_node_stack.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_statistic/s_node_statistic.yy b/sprites/s_node_statistic/s_node_statistic.yy index a19f7b569..f02fe9cfa 100644 --- a/sprites/s_node_statistic/s_node_statistic.yy +++ b/sprites/s_node_statistic/s_node_statistic.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "value", + "path": "folders/nodes/icons/value.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_stripe/s_node_stripe.yy b/sprites/s_node_stripe/s_node_stripe.yy index 023145181..f87f0646d 100644 --- a/sprites/s_node_stripe/s_node_stripe.yy +++ b/sprites/s_node_stripe/s_node_stripe.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "generator", + "path": "folders/nodes/icons/generator.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_text/c8392b51-d8c5-4a99-aca0-fcf2556c9f4f.png b/sprites/s_node_text/c8392b51-d8c5-4a99-aca0-fcf2556c9f4f.png deleted file mode 100644 index 8eb205da9..000000000 Binary files a/sprites/s_node_text/c8392b51-d8c5-4a99-aca0-fcf2556c9f4f.png and /dev/null differ diff --git a/sprites/s_node_text/fa7d3f98-13cd-46e4-ba50-496fea63c7c5.png b/sprites/s_node_text/fa7d3f98-13cd-46e4-ba50-496fea63c7c5.png new file mode 100644 index 000000000..59d03b5fa Binary files /dev/null and b/sprites/s_node_text/fa7d3f98-13cd-46e4-ba50-496fea63c7c5.png differ diff --git a/sprites/s_node_text/layers/c8392b51-d8c5-4a99-aca0-fcf2556c9f4f/5559da90-c45d-4c92-85a2-0557248f609b.png b/sprites/s_node_text/layers/c8392b51-d8c5-4a99-aca0-fcf2556c9f4f/5559da90-c45d-4c92-85a2-0557248f609b.png deleted file mode 100644 index 8eb205da9..000000000 Binary files a/sprites/s_node_text/layers/c8392b51-d8c5-4a99-aca0-fcf2556c9f4f/5559da90-c45d-4c92-85a2-0557248f609b.png and /dev/null differ diff --git a/sprites/s_node_text/layers/fa7d3f98-13cd-46e4-ba50-496fea63c7c5/c1474ac2-8ba0-40b1-917c-bf7223c2cdd0.png b/sprites/s_node_text/layers/fa7d3f98-13cd-46e4-ba50-496fea63c7c5/c1474ac2-8ba0-40b1-917c-bf7223c2cdd0.png new file mode 100644 index 000000000..59d03b5fa Binary files /dev/null and b/sprites/s_node_text/layers/fa7d3f98-13cd-46e4-ba50-496fea63c7c5/c1474ac2-8ba0-40b1-917c-bf7223c2cdd0.png differ diff --git a/sprites/s_node_text/s_node_text.yy b/sprites/s_node_text/s_node_text.yy index e841254a7..370a6ecff 100644 --- a/sprites/s_node_text/s_node_text.yy +++ b/sprites/s_node_text/s_node_text.yy @@ -28,7 +28,7 @@ "gridX": 0, "gridY": 0, "frames": [ - {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"c8392b51-d8c5-4a99-aca0-fcf2556c9f4f",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"fa7d3f98-13cd-46e4-ba50-496fea63c7c5",}, ], "sequence": { "resourceType": "GMSequence", @@ -45,10 +45,10 @@ "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, "tracks": [ {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ - {"id":"c4994f5d-977b-4064-b4cb-9f7ffd473689","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"c8392b51-d8c5-4a99-aca0-fcf2556c9f4f","path":"sprites/s_node_text/s_node_text.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"d3d24558-5f73-41db-a289-78c5b2c1e286","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"fa7d3f98-13cd-46e4-ba50-496fea63c7c5","path":"sprites/s_node_text/s_node_text.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "lockOrigin": false, "showBackdrop": true, "showBackdropImage": false, @@ -64,11 +64,11 @@ "eventStubScript": null, }, "layers": [ - {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"5559da90-c45d-4c92-85a2-0557248f609b","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"c1474ac2-8ba0-40b1-917c-bf7223c2cdd0","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "value", + "path": "folders/nodes/icons/value.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_text_render/dafd828c-5ed2-44af-9915-e616d1f69548.png b/sprites/s_node_text_render/dafd828c-5ed2-44af-9915-e616d1f69548.png new file mode 100644 index 000000000..c2d09fb76 Binary files /dev/null and b/sprites/s_node_text_render/dafd828c-5ed2-44af-9915-e616d1f69548.png differ diff --git a/sprites/s_node_text_render/layers/dafd828c-5ed2-44af-9915-e616d1f69548/1aaef20c-62ef-47b5-92db-4bac7d38b939.png b/sprites/s_node_text_render/layers/dafd828c-5ed2-44af-9915-e616d1f69548/1aaef20c-62ef-47b5-92db-4bac7d38b939.png new file mode 100644 index 000000000..c2d09fb76 Binary files /dev/null and b/sprites/s_node_text_render/layers/dafd828c-5ed2-44af-9915-e616d1f69548/1aaef20c-62ef-47b5-92db-4bac7d38b939.png differ diff --git a/sprites/s_node_text_render/s_node_text_render.yy b/sprites/s_node_text_render/s_node_text_render.yy new file mode 100644 index 000000000..18e082708 --- /dev/null +++ b/sprites/s_node_text_render/s_node_text_render.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_text_render", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 0, + "bbox_right": 63, + "bbox_top": 0, + "bbox_bottom": 63, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"dafd828c-5ed2-44af-9915-e616d1f69548",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_text_render", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"c1c9d32c-89f7-4676-8a65-176b932c0371","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"dafd828c-5ed2-44af-9915-e616d1f69548","path":"sprites/s_node_text_render/s_node_text_render.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"1aaef20c-62ef-47b5-92db-4bac7d38b939","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "generator", + "path": "folders/nodes/icons/generator.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_text_splice/9f968965-7f3b-4413-976b-2279d73a963c.png b/sprites/s_node_text_splice/9f968965-7f3b-4413-976b-2279d73a963c.png new file mode 100644 index 000000000..ef8a8ff55 Binary files /dev/null and b/sprites/s_node_text_splice/9f968965-7f3b-4413-976b-2279d73a963c.png differ diff --git a/sprites/s_node_text_splice/layers/9f968965-7f3b-4413-976b-2279d73a963c/da7178d5-66f4-45db-8032-12701bb6a1ef.png b/sprites/s_node_text_splice/layers/9f968965-7f3b-4413-976b-2279d73a963c/da7178d5-66f4-45db-8032-12701bb6a1ef.png new file mode 100644 index 000000000..ef8a8ff55 Binary files /dev/null and b/sprites/s_node_text_splice/layers/9f968965-7f3b-4413-976b-2279d73a963c/da7178d5-66f4-45db-8032-12701bb6a1ef.png differ diff --git a/sprites/s_node_text_splice/s_node_text_splice.yy b/sprites/s_node_text_splice/s_node_text_splice.yy new file mode 100644 index 000000000..8394ecdae --- /dev/null +++ b/sprites/s_node_text_splice/s_node_text_splice.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_text_splice", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 4, + "bbox_right": 59, + "bbox_top": 21, + "bbox_bottom": 44, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"9f968965-7f3b-4413-976b-2279d73a963c",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_text_splice", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"8c58b9ff-7d0a-4241-b2f1-edfcb8d7e749","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"9f968965-7f3b-4413-976b-2279d73a963c","path":"sprites/s_node_text_splice/s_node_text_splice.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"da7178d5-66f4-45db-8032-12701bb6a1ef","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "value", + "path": "folders/nodes/icons/value.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_texture_map/s_node_texture_map.yy b/sprites/s_node_texture_map/s_node_texture_map.yy index 07d3fae15..3c411823b 100644 --- a/sprites/s_node_texture_map/s_node_texture_map.yy +++ b/sprites/s_node_texture_map/s_node_texture_map.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_time_map/s_node_time_map.yy b/sprites/s_node_time_map/s_node_time_map.yy index 6eed8617b..421eb6514 100644 --- a/sprites/s_node_time_map/s_node_time_map.yy +++ b/sprites/s_node_time_map/s_node_time_map.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_timeline_preview/s_node_timeline_preview.yy b/sprites/s_node_timeline_preview/s_node_timeline_preview.yy index f2672f06c..d7cd21aaa 100644 --- a/sprites/s_node_timeline_preview/s_node_timeline_preview.yy +++ b/sprites/s_node_timeline_preview/s_node_timeline_preview.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "render", + "path": "folders/nodes/icons/render.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_trail/s_node_trail.yy b/sprites/s_node_trail/s_node_trail.yy index 3d7697a23..889815e1e 100644 --- a/sprites/s_node_trail/s_node_trail.yy +++ b/sprites/s_node_trail/s_node_trail.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_transform/s_node_transform.yy b/sprites/s_node_transform/s_node_transform.yy index 274b649b0..7c7e08a1f 100644 --- a/sprites/s_node_transform/s_node_transform.yy +++ b/sprites/s_node_transform/s_node_transform.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "transform", + "path": "folders/nodes/icons/transform.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_twirl/s_node_twirl.yy b/sprites/s_node_twirl/s_node_twirl.yy index 12e079923..b86f7d114 100644 --- a/sprites/s_node_twirl/s_node_twirl.yy +++ b/sprites/s_node_twirl/s_node_twirl.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "filter", + "path": "folders/nodes/icons/filter.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_unicode/s_node_unicode.yy b/sprites/s_node_unicode/s_node_unicode.yy index 7b8689ee7..e9891ec98 100644 --- a/sprites/s_node_unicode/s_node_unicode.yy +++ b/sprites/s_node_unicode/s_node_unicode.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "value", + "path": "folders/nodes/icons/value.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_vec2/s_node_vec2.yy b/sprites/s_node_vec2/s_node_vec2.yy index 9260caa1a..d86c50bbb 100644 --- a/sprites/s_node_vec2/s_node_vec2.yy +++ b/sprites/s_node_vec2/s_node_vec2.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "value", + "path": "folders/nodes/icons/value.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_vec3/s_node_vec3.yy b/sprites/s_node_vec3/s_node_vec3.yy index a4caae88b..e631bd031 100644 --- a/sprites/s_node_vec3/s_node_vec3.yy +++ b/sprites/s_node_vec3/s_node_vec3.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "value", + "path": "folders/nodes/icons/value.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_vec4/s_node_vec4.yy b/sprites/s_node_vec4/s_node_vec4.yy index 65ccc5cd7..dd828d904 100644 --- a/sprites/s_node_vec4/s_node_vec4.yy +++ b/sprites/s_node_vec4/s_node_vec4.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "value", + "path": "folders/nodes/icons/value.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_vec_split/s_node_vec_split.yy b/sprites/s_node_vec_split/s_node_vec_split.yy index 286737da4..700a063cd 100644 --- a/sprites/s_node_vec_split/s_node_vec_split.yy +++ b/sprites/s_node_vec_split/s_node_vec_split.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "value", + "path": "folders/nodes/icons/value.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_vfx/e4859eac-f331-4c65-be2f-261f6d02ac9c.png b/sprites/s_node_vfx/e4859eac-f331-4c65-be2f-261f6d02ac9c.png new file mode 100644 index 000000000..ce2ce58da Binary files /dev/null and b/sprites/s_node_vfx/e4859eac-f331-4c65-be2f-261f6d02ac9c.png differ diff --git a/sprites/s_node_vfx/f3b845f2-652d-40dc-b937-db0717dd9856.png b/sprites/s_node_vfx/f3b845f2-652d-40dc-b937-db0717dd9856.png deleted file mode 100644 index 6175f6f44..000000000 Binary files a/sprites/s_node_vfx/f3b845f2-652d-40dc-b937-db0717dd9856.png and /dev/null differ diff --git a/sprites/s_node_vfx/layers/e4859eac-f331-4c65-be2f-261f6d02ac9c/bc1bf205-9d43-4b46-91a8-4dad29968c85.png b/sprites/s_node_vfx/layers/e4859eac-f331-4c65-be2f-261f6d02ac9c/bc1bf205-9d43-4b46-91a8-4dad29968c85.png new file mode 100644 index 000000000..ce2ce58da Binary files /dev/null and b/sprites/s_node_vfx/layers/e4859eac-f331-4c65-be2f-261f6d02ac9c/bc1bf205-9d43-4b46-91a8-4dad29968c85.png differ diff --git a/sprites/s_node_vfx/layers/f3b845f2-652d-40dc-b937-db0717dd9856/31aa5be2-346b-47f1-8df5-efa8e2db6367.png b/sprites/s_node_vfx/layers/f3b845f2-652d-40dc-b937-db0717dd9856/31aa5be2-346b-47f1-8df5-efa8e2db6367.png deleted file mode 100644 index 6175f6f44..000000000 Binary files a/sprites/s_node_vfx/layers/f3b845f2-652d-40dc-b937-db0717dd9856/31aa5be2-346b-47f1-8df5-efa8e2db6367.png and /dev/null differ diff --git a/sprites/s_node_vfx/s_node_vfx.yy b/sprites/s_node_vfx/s_node_vfx.yy index 61dfc6b76..b18bde905 100644 --- a/sprites/s_node_vfx/s_node_vfx.yy +++ b/sprites/s_node_vfx/s_node_vfx.yy @@ -28,7 +28,7 @@ "gridX": 0, "gridY": 0, "frames": [ - {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"f3b845f2-652d-40dc-b937-db0717dd9856",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"e4859eac-f331-4c65-be2f-261f6d02ac9c",}, ], "sequence": { "resourceType": "GMSequence", @@ -45,7 +45,7 @@ "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, "tracks": [ {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ - {"id":"3f3469b4-a14c-44d2-86ba-2ec82f91c6ff","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"f3b845f2-652d-40dc-b937-db0717dd9856","path":"sprites/s_node_vfx/s_node_vfx.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"1ce5decd-3286-48c7-87c0-47bf99d0038d","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"e4859eac-f331-4c65-be2f-261f6d02ac9c","path":"sprites/s_node_vfx/s_node_vfx.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, ], "visibleRange": null, @@ -64,11 +64,11 @@ "eventStubScript": null, }, "layers": [ - {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"31aa5be2-346b-47f1-8df5-efa8e2db6367","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"bc1bf205-9d43-4b46-91a8-4dad29968c85","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "VFX", + "path": "folders/nodes/icons/VFX.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_vfx_accel/5ab210b1-e4de-4ec6-b382-96a9238908af.png b/sprites/s_node_vfx_accel/5ab210b1-e4de-4ec6-b382-96a9238908af.png new file mode 100644 index 000000000..df8b5ef87 Binary files /dev/null and b/sprites/s_node_vfx_accel/5ab210b1-e4de-4ec6-b382-96a9238908af.png differ diff --git a/sprites/s_node_vfx_accel/9fd274a7-436c-40d3-8a13-9e466e7b9e50.png b/sprites/s_node_vfx_accel/9fd274a7-436c-40d3-8a13-9e466e7b9e50.png deleted file mode 100644 index a0dcb012c..000000000 Binary files a/sprites/s_node_vfx_accel/9fd274a7-436c-40d3-8a13-9e466e7b9e50.png and /dev/null differ diff --git a/sprites/s_node_vfx_accel/layers/5ab210b1-e4de-4ec6-b382-96a9238908af/634580b9-3187-4a2d-958c-f331f1a07a6f.png b/sprites/s_node_vfx_accel/layers/5ab210b1-e4de-4ec6-b382-96a9238908af/634580b9-3187-4a2d-958c-f331f1a07a6f.png new file mode 100644 index 000000000..df8b5ef87 Binary files /dev/null and b/sprites/s_node_vfx_accel/layers/5ab210b1-e4de-4ec6-b382-96a9238908af/634580b9-3187-4a2d-958c-f331f1a07a6f.png differ diff --git a/sprites/s_node_vfx_accel/layers/9fd274a7-436c-40d3-8a13-9e466e7b9e50/c576db3e-8328-4358-b440-fa7ee3f8b023.png b/sprites/s_node_vfx_accel/layers/9fd274a7-436c-40d3-8a13-9e466e7b9e50/c576db3e-8328-4358-b440-fa7ee3f8b023.png deleted file mode 100644 index a0dcb012c..000000000 Binary files a/sprites/s_node_vfx_accel/layers/9fd274a7-436c-40d3-8a13-9e466e7b9e50/c576db3e-8328-4358-b440-fa7ee3f8b023.png and /dev/null differ diff --git a/sprites/s_node_vfx_accel/s_node_vfx_accel.yy b/sprites/s_node_vfx_accel/s_node_vfx_accel.yy index b30581838..0d1b2dc54 100644 --- a/sprites/s_node_vfx_accel/s_node_vfx_accel.yy +++ b/sprites/s_node_vfx_accel/s_node_vfx_accel.yy @@ -28,7 +28,7 @@ "gridX": 0, "gridY": 0, "frames": [ - {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"9fd274a7-436c-40d3-8a13-9e466e7b9e50",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"5ab210b1-e4de-4ec6-b382-96a9238908af",}, ], "sequence": { "resourceType": "GMSequence", @@ -45,7 +45,7 @@ "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, "tracks": [ {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ - {"id":"a6a68c31-3ff0-4263-a48b-60f40450b203","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"9fd274a7-436c-40d3-8a13-9e466e7b9e50","path":"sprites/s_node_vfx_accel/s_node_vfx_accel.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"c8ef53b5-5bc6-40ab-9591-6032dd3eff46","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"5ab210b1-e4de-4ec6-b382-96a9238908af","path":"sprites/s_node_vfx_accel/s_node_vfx_accel.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, ], "visibleRange": null, @@ -64,11 +64,11 @@ "eventStubScript": null, }, "layers": [ - {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"c576db3e-8328-4358-b440-fa7ee3f8b023","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"634580b9-3187-4a2d-958c-f331f1a07a6f","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "VFX", + "path": "folders/nodes/icons/VFX.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_vfx_attract/39f1843e-51a8-4577-8ba7-0bdf9890b5c0.png b/sprites/s_node_vfx_attract/39f1843e-51a8-4577-8ba7-0bdf9890b5c0.png deleted file mode 100644 index 1d70d4abc..000000000 Binary files a/sprites/s_node_vfx_attract/39f1843e-51a8-4577-8ba7-0bdf9890b5c0.png and /dev/null differ diff --git a/sprites/s_node_vfx_attract/bdb261d4-50a7-4068-8379-d83196e573d9.png b/sprites/s_node_vfx_attract/bdb261d4-50a7-4068-8379-d83196e573d9.png new file mode 100644 index 000000000..f9fe11b0b Binary files /dev/null and b/sprites/s_node_vfx_attract/bdb261d4-50a7-4068-8379-d83196e573d9.png differ diff --git a/sprites/s_node_vfx_attract/layers/39f1843e-51a8-4577-8ba7-0bdf9890b5c0/11818079-1d14-417f-8bdc-48a97187ef83.png b/sprites/s_node_vfx_attract/layers/39f1843e-51a8-4577-8ba7-0bdf9890b5c0/11818079-1d14-417f-8bdc-48a97187ef83.png deleted file mode 100644 index 1d70d4abc..000000000 Binary files a/sprites/s_node_vfx_attract/layers/39f1843e-51a8-4577-8ba7-0bdf9890b5c0/11818079-1d14-417f-8bdc-48a97187ef83.png and /dev/null differ diff --git a/sprites/s_node_vfx_attract/layers/bdb261d4-50a7-4068-8379-d83196e573d9/c45e68bc-58a0-4ace-a03f-0c4d944864bc.png b/sprites/s_node_vfx_attract/layers/bdb261d4-50a7-4068-8379-d83196e573d9/c45e68bc-58a0-4ace-a03f-0c4d944864bc.png new file mode 100644 index 000000000..f9fe11b0b Binary files /dev/null and b/sprites/s_node_vfx_attract/layers/bdb261d4-50a7-4068-8379-d83196e573d9/c45e68bc-58a0-4ace-a03f-0c4d944864bc.png differ diff --git a/sprites/s_node_vfx_attract/s_node_vfx_attract.yy b/sprites/s_node_vfx_attract/s_node_vfx_attract.yy index 0c9b0be33..776dbdeac 100644 --- a/sprites/s_node_vfx_attract/s_node_vfx_attract.yy +++ b/sprites/s_node_vfx_attract/s_node_vfx_attract.yy @@ -28,7 +28,7 @@ "gridX": 0, "gridY": 0, "frames": [ - {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"39f1843e-51a8-4577-8ba7-0bdf9890b5c0",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"bdb261d4-50a7-4068-8379-d83196e573d9",}, ], "sequence": { "resourceType": "GMSequence", @@ -45,7 +45,7 @@ "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, "tracks": [ {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ - {"id":"c25fa5f9-3fcc-409e-b73d-2dc107f8b4f5","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"39f1843e-51a8-4577-8ba7-0bdf9890b5c0","path":"sprites/s_node_vfx_attract/s_node_vfx_attract.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"62b8f0f7-af65-4e39-9b8b-ddbede302fe5","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"bdb261d4-50a7-4068-8379-d83196e573d9","path":"sprites/s_node_vfx_attract/s_node_vfx_attract.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, ], "visibleRange": null, @@ -64,11 +64,11 @@ "eventStubScript": null, }, "layers": [ - {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"11818079-1d14-417f-8bdc-48a97187ef83","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"c45e68bc-58a0-4ace-a03f-0c4d944864bc","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "VFX", + "path": "folders/nodes/icons/VFX.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_vfx_destroy/44012381-d674-472c-9711-c6ce75f61bd4.png b/sprites/s_node_vfx_destroy/44012381-d674-472c-9711-c6ce75f61bd4.png deleted file mode 100644 index d1d5d3bf3..000000000 Binary files a/sprites/s_node_vfx_destroy/44012381-d674-472c-9711-c6ce75f61bd4.png and /dev/null differ diff --git a/sprites/s_node_vfx_destroy/c2a65dc9-028c-49b0-99bf-f8ac73e411ff.png b/sprites/s_node_vfx_destroy/c2a65dc9-028c-49b0-99bf-f8ac73e411ff.png new file mode 100644 index 000000000..b6f69f354 Binary files /dev/null and b/sprites/s_node_vfx_destroy/c2a65dc9-028c-49b0-99bf-f8ac73e411ff.png differ diff --git a/sprites/s_node_vfx_destroy/layers/44012381-d674-472c-9711-c6ce75f61bd4/ebc61f29-d84b-4897-a75a-3f36ccdf01a3.png b/sprites/s_node_vfx_destroy/layers/44012381-d674-472c-9711-c6ce75f61bd4/ebc61f29-d84b-4897-a75a-3f36ccdf01a3.png deleted file mode 100644 index d1d5d3bf3..000000000 Binary files a/sprites/s_node_vfx_destroy/layers/44012381-d674-472c-9711-c6ce75f61bd4/ebc61f29-d84b-4897-a75a-3f36ccdf01a3.png and /dev/null differ diff --git a/sprites/s_node_vfx_destroy/layers/c2a65dc9-028c-49b0-99bf-f8ac73e411ff/2ebe407b-46e2-4822-8fef-5a6accad464a.png b/sprites/s_node_vfx_destroy/layers/c2a65dc9-028c-49b0-99bf-f8ac73e411ff/2ebe407b-46e2-4822-8fef-5a6accad464a.png new file mode 100644 index 000000000..b6f69f354 Binary files /dev/null and b/sprites/s_node_vfx_destroy/layers/c2a65dc9-028c-49b0-99bf-f8ac73e411ff/2ebe407b-46e2-4822-8fef-5a6accad464a.png differ diff --git a/sprites/s_node_vfx_destroy/s_node_vfx_destroy.yy b/sprites/s_node_vfx_destroy/s_node_vfx_destroy.yy index 0825ff491..5cba652a7 100644 --- a/sprites/s_node_vfx_destroy/s_node_vfx_destroy.yy +++ b/sprites/s_node_vfx_destroy/s_node_vfx_destroy.yy @@ -10,7 +10,7 @@ "edgeFiltering": false, "collisionTolerance": 0, "swfPrecision": 2.525, - "bbox_left": 11, + "bbox_left": 10, "bbox_right": 52, "bbox_top": 11, "bbox_bottom": 55, @@ -18,7 +18,7 @@ "VTile": false, "For3D": false, "DynamicTexturePage": false, - "width": 65, + "width": 64, "height": 64, "textureGroupId": { "name": "Default", @@ -28,7 +28,7 @@ "gridX": 0, "gridY": 0, "frames": [ - {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"44012381-d674-472c-9711-c6ce75f61bd4",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"c2a65dc9-028c-49b0-99bf-f8ac73e411ff",}, ], "sequence": { "resourceType": "GMSequence", @@ -45,7 +45,7 @@ "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, "tracks": [ {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ - {"id":"58e8ea9b-dc54-474a-9a98-f36a319c24ce","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"44012381-d674-472c-9711-c6ce75f61bd4","path":"sprites/s_node_vfx_destroy/s_node_vfx_destroy.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"c0bfa6e0-c115-4faa-9534-c29dc40e1e86","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"c2a65dc9-028c-49b0-99bf-f8ac73e411ff","path":"sprites/s_node_vfx_destroy/s_node_vfx_destroy.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, ], "visibleRange": null, @@ -64,11 +64,11 @@ "eventStubScript": null, }, "layers": [ - {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"ebc61f29-d84b-4897-a75a-3f36ccdf01a3","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"2ebe407b-46e2-4822-8fef-5a6accad464a","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "VFX", + "path": "folders/nodes/icons/VFX.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_vfx_input/740059c9-efab-4c51-abd6-24671b2ef261.png b/sprites/s_node_vfx_input/740059c9-efab-4c51-abd6-24671b2ef261.png new file mode 100644 index 000000000..ab55730b4 Binary files /dev/null and b/sprites/s_node_vfx_input/740059c9-efab-4c51-abd6-24671b2ef261.png differ diff --git a/sprites/s_node_vfx_input/layers/740059c9-efab-4c51-abd6-24671b2ef261/88a97671-8a65-4710-933b-895cc4edcfc3.png b/sprites/s_node_vfx_input/layers/740059c9-efab-4c51-abd6-24671b2ef261/88a97671-8a65-4710-933b-895cc4edcfc3.png new file mode 100644 index 000000000..ab55730b4 Binary files /dev/null and b/sprites/s_node_vfx_input/layers/740059c9-efab-4c51-abd6-24671b2ef261/88a97671-8a65-4710-933b-895cc4edcfc3.png differ diff --git a/sprites/s_node_vfx_input/s_node_vfx_input.yy b/sprites/s_node_vfx_input/s_node_vfx_input.yy new file mode 100644 index 000000000..b5f53088f --- /dev/null +++ b/sprites/s_node_vfx_input/s_node_vfx_input.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_vfx_input", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 0, + "bbox_right": 63, + "bbox_top": 0, + "bbox_bottom": 63, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"740059c9-efab-4c51-abd6-24671b2ef261",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_vfx_input", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"463740c6-68c0-42ad-82cc-612db0a34031","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"740059c9-efab-4c51-abd6-24671b2ef261","path":"sprites/s_node_vfx_input/s_node_vfx_input.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"88a97671-8a65-4710-933b-895cc4edcfc3","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "node", + "path": "folders/nodes/icons/node.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_vfx_output/8dd76cdf-dc48-4964-b5c7-f06d72fe9869.png b/sprites/s_node_vfx_output/8dd76cdf-dc48-4964-b5c7-f06d72fe9869.png new file mode 100644 index 000000000..f0f8ac593 Binary files /dev/null and b/sprites/s_node_vfx_output/8dd76cdf-dc48-4964-b5c7-f06d72fe9869.png differ diff --git a/sprites/s_node_vfx_output/layers/8dd76cdf-dc48-4964-b5c7-f06d72fe9869/be47dec9-0772-4b3b-8f54-6c1147bab005.png b/sprites/s_node_vfx_output/layers/8dd76cdf-dc48-4964-b5c7-f06d72fe9869/be47dec9-0772-4b3b-8f54-6c1147bab005.png new file mode 100644 index 000000000..f0f8ac593 Binary files /dev/null and b/sprites/s_node_vfx_output/layers/8dd76cdf-dc48-4964-b5c7-f06d72fe9869/be47dec9-0772-4b3b-8f54-6c1147bab005.png differ diff --git a/sprites/s_node_vfx_output/s_node_vfx_output.yy b/sprites/s_node_vfx_output/s_node_vfx_output.yy new file mode 100644 index 000000000..9b5e705c5 --- /dev/null +++ b/sprites/s_node_vfx_output/s_node_vfx_output.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_vfx_output", + "bboxMode": 0, + "collisionKind": 1, + "type": 0, + "origin": 4, + "preMultiplyAlpha": false, + "edgeFiltering": false, + "collisionTolerance": 0, + "swfPrecision": 2.525, + "bbox_left": 0, + "bbox_right": 63, + "bbox_top": 0, + "bbox_bottom": 63, + "HTile": false, + "VTile": false, + "For3D": false, + "DynamicTexturePage": false, + "width": 64, + "height": 64, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "swatchColours": null, + "gridX": 0, + "gridY": 0, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"8dd76cdf-dc48-4964-b5c7-f06d72fe9869",}, + ], + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_vfx_output", + "timeUnits": 1, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "autoRecord": true, + "volume": 1.0, + "length": 1.0, + "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ + {"id":"c39e1127-b59a-4faf-9e4a-0bcf78d88cee","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"8dd76cdf-dc48-4964-b5c7-f06d72fe9869","path":"sprites/s_node_vfx_output/s_node_vfx_output.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, + ], + "visibleRange": null, + "lockOrigin": false, + "showBackdrop": true, + "showBackdropImage": false, + "backdropImagePath": "", + "backdropImageOpacity": 0.5, + "backdropWidth": 1366, + "backdropHeight": 768, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "xorigin": 32, + "yorigin": 32, + "eventToFunction": {}, + "eventStubScript": null, + }, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"be47dec9-0772-4b3b-8f54-6c1147bab005","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + ], + "nineSlice": null, + "parent": { + "name": "node", + "path": "folders/nodes/icons/node.yy", + }, +} \ No newline at end of file diff --git a/sprites/s_node_vfx_render/a36c88ce-d937-4ffe-972a-29b1ea9ed525.png b/sprites/s_node_vfx_render/a36c88ce-d937-4ffe-972a-29b1ea9ed525.png deleted file mode 100644 index 07c3b2b51..000000000 Binary files a/sprites/s_node_vfx_render/a36c88ce-d937-4ffe-972a-29b1ea9ed525.png and /dev/null differ diff --git a/sprites/s_node_vfx_render/ab47ce91-ef0e-4f22-88f0-6a7e146602d9.png b/sprites/s_node_vfx_render/ab47ce91-ef0e-4f22-88f0-6a7e146602d9.png new file mode 100644 index 000000000..4ee37d512 Binary files /dev/null and b/sprites/s_node_vfx_render/ab47ce91-ef0e-4f22-88f0-6a7e146602d9.png differ diff --git a/sprites/s_node_vfx_render/layers/a36c88ce-d937-4ffe-972a-29b1ea9ed525/c08e90bf-b38f-48fa-81b4-cbe10ea801f2.png b/sprites/s_node_vfx_render/layers/a36c88ce-d937-4ffe-972a-29b1ea9ed525/c08e90bf-b38f-48fa-81b4-cbe10ea801f2.png deleted file mode 100644 index 07c3b2b51..000000000 Binary files a/sprites/s_node_vfx_render/layers/a36c88ce-d937-4ffe-972a-29b1ea9ed525/c08e90bf-b38f-48fa-81b4-cbe10ea801f2.png and /dev/null differ diff --git a/sprites/s_node_vfx_render/layers/ab47ce91-ef0e-4f22-88f0-6a7e146602d9/2aada27d-5ba3-43c1-aa5c-804583d9c9d4.png b/sprites/s_node_vfx_render/layers/ab47ce91-ef0e-4f22-88f0-6a7e146602d9/2aada27d-5ba3-43c1-aa5c-804583d9c9d4.png new file mode 100644 index 000000000..4ee37d512 Binary files /dev/null and b/sprites/s_node_vfx_render/layers/ab47ce91-ef0e-4f22-88f0-6a7e146602d9/2aada27d-5ba3-43c1-aa5c-804583d9c9d4.png differ diff --git a/sprites/s_node_vfx_render/s_node_vfx_render.yy b/sprites/s_node_vfx_render/s_node_vfx_render.yy index df48c1083..56914e182 100644 --- a/sprites/s_node_vfx_render/s_node_vfx_render.yy +++ b/sprites/s_node_vfx_render/s_node_vfx_render.yy @@ -28,7 +28,7 @@ "gridX": 0, "gridY": 0, "frames": [ - {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"a36c88ce-d937-4ffe-972a-29b1ea9ed525",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"ab47ce91-ef0e-4f22-88f0-6a7e146602d9",}, ], "sequence": { "resourceType": "GMSequence", @@ -45,7 +45,7 @@ "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, "tracks": [ {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ - {"id":"d1f2c2d3-05eb-4560-bc66-cc4c34915cd6","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"a36c88ce-d937-4ffe-972a-29b1ea9ed525","path":"sprites/s_node_vfx_render/s_node_vfx_render.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"a8416308-4523-4dc2-8b92-0d178d9765ea","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"ab47ce91-ef0e-4f22-88f0-6a7e146602d9","path":"sprites/s_node_vfx_render/s_node_vfx_render.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, ], "visibleRange": null, @@ -64,11 +64,11 @@ "eventStubScript": null, }, "layers": [ - {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"c08e90bf-b38f-48fa-81b4-cbe10ea801f2","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"2aada27d-5ba3-43c1-aa5c-804583d9c9d4","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "VFX", + "path": "folders/nodes/icons/VFX.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_vfx_repel/628f50c8-f033-45f4-8032-d1a5495fc412.png b/sprites/s_node_vfx_repel/628f50c8-f033-45f4-8032-d1a5495fc412.png deleted file mode 100644 index 8cc5c3147..000000000 Binary files a/sprites/s_node_vfx_repel/628f50c8-f033-45f4-8032-d1a5495fc412.png and /dev/null differ diff --git a/sprites/s_node_vfx_repel/dd2b03d7-f49f-4a1c-992d-56a4f6417d22.png b/sprites/s_node_vfx_repel/dd2b03d7-f49f-4a1c-992d-56a4f6417d22.png new file mode 100644 index 000000000..fdc2c7349 Binary files /dev/null and b/sprites/s_node_vfx_repel/dd2b03d7-f49f-4a1c-992d-56a4f6417d22.png differ diff --git a/sprites/s_node_vfx_repel/layers/628f50c8-f033-45f4-8032-d1a5495fc412/7cf398fa-21e1-4bd9-9b7a-a57652fc84ad.png b/sprites/s_node_vfx_repel/layers/628f50c8-f033-45f4-8032-d1a5495fc412/7cf398fa-21e1-4bd9-9b7a-a57652fc84ad.png deleted file mode 100644 index 8cc5c3147..000000000 Binary files a/sprites/s_node_vfx_repel/layers/628f50c8-f033-45f4-8032-d1a5495fc412/7cf398fa-21e1-4bd9-9b7a-a57652fc84ad.png and /dev/null differ diff --git a/sprites/s_node_vfx_repel/layers/dd2b03d7-f49f-4a1c-992d-56a4f6417d22/17bf89c0-7cbe-435b-8141-42fa9d61562b.png b/sprites/s_node_vfx_repel/layers/dd2b03d7-f49f-4a1c-992d-56a4f6417d22/17bf89c0-7cbe-435b-8141-42fa9d61562b.png new file mode 100644 index 000000000..fdc2c7349 Binary files /dev/null and b/sprites/s_node_vfx_repel/layers/dd2b03d7-f49f-4a1c-992d-56a4f6417d22/17bf89c0-7cbe-435b-8141-42fa9d61562b.png differ diff --git a/sprites/s_node_vfx_repel/s_node_vfx_repel.yy b/sprites/s_node_vfx_repel/s_node_vfx_repel.yy index 0e8a59cf4..4ce121ec2 100644 --- a/sprites/s_node_vfx_repel/s_node_vfx_repel.yy +++ b/sprites/s_node_vfx_repel/s_node_vfx_repel.yy @@ -28,7 +28,7 @@ "gridX": 0, "gridY": 0, "frames": [ - {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"628f50c8-f033-45f4-8032-d1a5495fc412",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"dd2b03d7-f49f-4a1c-992d-56a4f6417d22",}, ], "sequence": { "resourceType": "GMSequence", @@ -45,7 +45,7 @@ "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, "tracks": [ {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ - {"id":"8d19ee0b-7b71-47a0-acd6-c9ef1124191a","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"628f50c8-f033-45f4-8032-d1a5495fc412","path":"sprites/s_node_vfx_repel/s_node_vfx_repel.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"39fe381e-57b6-4f5f-ad4f-07069f358ac1","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"dd2b03d7-f49f-4a1c-992d-56a4f6417d22","path":"sprites/s_node_vfx_repel/s_node_vfx_repel.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, ], "visibleRange": null, @@ -64,11 +64,11 @@ "eventStubScript": null, }, "layers": [ - {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"7cf398fa-21e1-4bd9-9b7a-a57652fc84ad","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"17bf89c0-7cbe-435b-8141-42fa9d61562b","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "VFX", + "path": "folders/nodes/icons/VFX.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_vfx_spawn/614b2ce4-365f-421b-8095-fd97b441301e.png b/sprites/s_node_vfx_spawn/614b2ce4-365f-421b-8095-fd97b441301e.png deleted file mode 100644 index 034eb4538..000000000 Binary files a/sprites/s_node_vfx_spawn/614b2ce4-365f-421b-8095-fd97b441301e.png and /dev/null differ diff --git a/sprites/s_node_vfx_spawn/637f6f11-a9b0-4615-83c6-c35dd3cde441.png b/sprites/s_node_vfx_spawn/637f6f11-a9b0-4615-83c6-c35dd3cde441.png new file mode 100644 index 000000000..c472e0e57 Binary files /dev/null and b/sprites/s_node_vfx_spawn/637f6f11-a9b0-4615-83c6-c35dd3cde441.png differ diff --git a/sprites/s_node_vfx_spawn/layers/614b2ce4-365f-421b-8095-fd97b441301e/2dae1529-7365-41f7-bc42-a4bafdbec7d2.png b/sprites/s_node_vfx_spawn/layers/614b2ce4-365f-421b-8095-fd97b441301e/2dae1529-7365-41f7-bc42-a4bafdbec7d2.png deleted file mode 100644 index 034eb4538..000000000 Binary files a/sprites/s_node_vfx_spawn/layers/614b2ce4-365f-421b-8095-fd97b441301e/2dae1529-7365-41f7-bc42-a4bafdbec7d2.png and /dev/null differ diff --git a/sprites/s_node_vfx_spawn/layers/637f6f11-a9b0-4615-83c6-c35dd3cde441/2bd59be6-e747-42d1-80ee-cce507263f83.png b/sprites/s_node_vfx_spawn/layers/637f6f11-a9b0-4615-83c6-c35dd3cde441/2bd59be6-e747-42d1-80ee-cce507263f83.png new file mode 100644 index 000000000..c472e0e57 Binary files /dev/null and b/sprites/s_node_vfx_spawn/layers/637f6f11-a9b0-4615-83c6-c35dd3cde441/2bd59be6-e747-42d1-80ee-cce507263f83.png differ diff --git a/sprites/s_node_vfx_spawn/s_node_vfx_spawn.yy b/sprites/s_node_vfx_spawn/s_node_vfx_spawn.yy index 156b42008..642ff11fa 100644 --- a/sprites/s_node_vfx_spawn/s_node_vfx_spawn.yy +++ b/sprites/s_node_vfx_spawn/s_node_vfx_spawn.yy @@ -10,9 +10,9 @@ "edgeFiltering": false, "collisionTolerance": 0, "swfPrecision": 2.525, - "bbox_left": 14, + "bbox_left": 13, "bbox_right": 50, - "bbox_top": 4, + "bbox_top": 3, "bbox_bottom": 60, "HTile": false, "VTile": false, @@ -28,7 +28,7 @@ "gridX": 0, "gridY": 0, "frames": [ - {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"614b2ce4-365f-421b-8095-fd97b441301e",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"637f6f11-a9b0-4615-83c6-c35dd3cde441",}, ], "sequence": { "resourceType": "GMSequence", @@ -45,7 +45,7 @@ "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, "tracks": [ {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ - {"id":"530d12bb-cbaf-4a6f-9835-b81a269c1082","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"614b2ce4-365f-421b-8095-fd97b441301e","path":"sprites/s_node_vfx_spawn/s_node_vfx_spawn.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"84d61f51-fbf2-4030-84ec-8ae3cab86f86","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"637f6f11-a9b0-4615-83c6-c35dd3cde441","path":"sprites/s_node_vfx_spawn/s_node_vfx_spawn.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, ], "visibleRange": null, @@ -64,11 +64,11 @@ "eventStubScript": null, }, "layers": [ - {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"2dae1529-7365-41f7-bc42-a4bafdbec7d2","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"2bd59be6-e747-42d1-80ee-cce507263f83","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "VFX", + "path": "folders/nodes/icons/VFX.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_vfx_turb/3f1eb1ab-a311-4708-bcf6-9aa9e133a372.png b/sprites/s_node_vfx_turb/3f1eb1ab-a311-4708-bcf6-9aa9e133a372.png new file mode 100644 index 000000000..f913c837e Binary files /dev/null and b/sprites/s_node_vfx_turb/3f1eb1ab-a311-4708-bcf6-9aa9e133a372.png differ diff --git a/sprites/s_node_vfx_turb/551c12fc-ee5e-46b1-a349-cd6760cd64f0.png b/sprites/s_node_vfx_turb/551c12fc-ee5e-46b1-a349-cd6760cd64f0.png deleted file mode 100644 index 0b1d17d48..000000000 Binary files a/sprites/s_node_vfx_turb/551c12fc-ee5e-46b1-a349-cd6760cd64f0.png and /dev/null differ diff --git a/sprites/s_node_vfx_turb/layers/3f1eb1ab-a311-4708-bcf6-9aa9e133a372/ada6592f-949e-40d6-88e2-a2bddcc485a4.png b/sprites/s_node_vfx_turb/layers/3f1eb1ab-a311-4708-bcf6-9aa9e133a372/ada6592f-949e-40d6-88e2-a2bddcc485a4.png new file mode 100644 index 000000000..f913c837e Binary files /dev/null and b/sprites/s_node_vfx_turb/layers/3f1eb1ab-a311-4708-bcf6-9aa9e133a372/ada6592f-949e-40d6-88e2-a2bddcc485a4.png differ diff --git a/sprites/s_node_vfx_turb/layers/551c12fc-ee5e-46b1-a349-cd6760cd64f0/38ffbc13-493f-461f-b24c-e3e2251644d4.png b/sprites/s_node_vfx_turb/layers/551c12fc-ee5e-46b1-a349-cd6760cd64f0/38ffbc13-493f-461f-b24c-e3e2251644d4.png deleted file mode 100644 index 0b1d17d48..000000000 Binary files a/sprites/s_node_vfx_turb/layers/551c12fc-ee5e-46b1-a349-cd6760cd64f0/38ffbc13-493f-461f-b24c-e3e2251644d4.png and /dev/null differ diff --git a/sprites/s_node_vfx_turb/s_node_vfx_turb.yy b/sprites/s_node_vfx_turb/s_node_vfx_turb.yy index 43e3713da..08520eb99 100644 --- a/sprites/s_node_vfx_turb/s_node_vfx_turb.yy +++ b/sprites/s_node_vfx_turb/s_node_vfx_turb.yy @@ -28,7 +28,7 @@ "gridX": 0, "gridY": 0, "frames": [ - {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"551c12fc-ee5e-46b1-a349-cd6760cd64f0",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"3f1eb1ab-a311-4708-bcf6-9aa9e133a372",}, ], "sequence": { "resourceType": "GMSequence", @@ -45,7 +45,7 @@ "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, "tracks": [ {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ - {"id":"6ceadd97-7fb3-4ee0-96f0-0c6afe918565","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"551c12fc-ee5e-46b1-a349-cd6760cd64f0","path":"sprites/s_node_vfx_turb/s_node_vfx_turb.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"b4d1b435-fef7-4b35-85d9-120612ce2b88","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"3f1eb1ab-a311-4708-bcf6-9aa9e133a372","path":"sprites/s_node_vfx_turb/s_node_vfx_turb.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, ], "visibleRange": null, @@ -64,11 +64,11 @@ "eventStubScript": null, }, "layers": [ - {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"38ffbc13-493f-461f-b24c-e3e2251644d4","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"ada6592f-949e-40d6-88e2-a2bddcc485a4","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "VFX", + "path": "folders/nodes/icons/VFX.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_vfx_vortex/83ffba8f-dd2e-4feb-92fc-487cfb9f3b45.png b/sprites/s_node_vfx_vortex/83ffba8f-dd2e-4feb-92fc-487cfb9f3b45.png new file mode 100644 index 000000000..20f18b2bb Binary files /dev/null and b/sprites/s_node_vfx_vortex/83ffba8f-dd2e-4feb-92fc-487cfb9f3b45.png differ diff --git a/sprites/s_node_vfx_vortex/cada2b1a-96c9-48a1-8a0a-25dd1da45c0f.png b/sprites/s_node_vfx_vortex/cada2b1a-96c9-48a1-8a0a-25dd1da45c0f.png deleted file mode 100644 index ac0caea51..000000000 Binary files a/sprites/s_node_vfx_vortex/cada2b1a-96c9-48a1-8a0a-25dd1da45c0f.png and /dev/null differ diff --git a/sprites/s_node_vfx_vortex/layers/83ffba8f-dd2e-4feb-92fc-487cfb9f3b45/7a910668-8afc-4508-9c35-4b44ccd5478a.png b/sprites/s_node_vfx_vortex/layers/83ffba8f-dd2e-4feb-92fc-487cfb9f3b45/7a910668-8afc-4508-9c35-4b44ccd5478a.png new file mode 100644 index 000000000..20f18b2bb Binary files /dev/null and b/sprites/s_node_vfx_vortex/layers/83ffba8f-dd2e-4feb-92fc-487cfb9f3b45/7a910668-8afc-4508-9c35-4b44ccd5478a.png differ diff --git a/sprites/s_node_vfx_vortex/layers/cada2b1a-96c9-48a1-8a0a-25dd1da45c0f/ccde3f97-f951-47b5-8691-8666c369bac6.png b/sprites/s_node_vfx_vortex/layers/cada2b1a-96c9-48a1-8a0a-25dd1da45c0f/ccde3f97-f951-47b5-8691-8666c369bac6.png deleted file mode 100644 index ac0caea51..000000000 Binary files a/sprites/s_node_vfx_vortex/layers/cada2b1a-96c9-48a1-8a0a-25dd1da45c0f/ccde3f97-f951-47b5-8691-8666c369bac6.png and /dev/null differ diff --git a/sprites/s_node_vfx_vortex/s_node_vfx_vortex.yy b/sprites/s_node_vfx_vortex/s_node_vfx_vortex.yy index 54b6ce76a..097459df1 100644 --- a/sprites/s_node_vfx_vortex/s_node_vfx_vortex.yy +++ b/sprites/s_node_vfx_vortex/s_node_vfx_vortex.yy @@ -28,7 +28,7 @@ "gridX": 0, "gridY": 0, "frames": [ - {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"cada2b1a-96c9-48a1-8a0a-25dd1da45c0f",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"83ffba8f-dd2e-4feb-92fc-487cfb9f3b45",}, ], "sequence": { "resourceType": "GMSequence", @@ -45,7 +45,7 @@ "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, "tracks": [ {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ - {"id":"e424f436-cd0f-492d-933a-d709b5ce8ed6","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"cada2b1a-96c9-48a1-8a0a-25dd1da45c0f","path":"sprites/s_node_vfx_vortex/s_node_vfx_vortex.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"b879c2f9-2758-478e-b30b-349a2847a6a5","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"83ffba8f-dd2e-4feb-92fc-487cfb9f3b45","path":"sprites/s_node_vfx_vortex/s_node_vfx_vortex.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, ], "visibleRange": null, @@ -64,11 +64,11 @@ "eventStubScript": null, }, "layers": [ - {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"ccde3f97-f951-47b5-8691-8666c369bac6","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"7a910668-8afc-4508-9c35-4b44ccd5478a","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "VFX", + "path": "folders/nodes/icons/VFX.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_vfx_wind/37418650-4652-4d81-9692-a04c8aac0d9d.png b/sprites/s_node_vfx_wind/37418650-4652-4d81-9692-a04c8aac0d9d.png deleted file mode 100644 index 1d4332e62..000000000 Binary files a/sprites/s_node_vfx_wind/37418650-4652-4d81-9692-a04c8aac0d9d.png and /dev/null differ diff --git a/sprites/s_node_vfx_wind/8ff01a09-49f0-4958-aacb-b1be88c4eb83.png b/sprites/s_node_vfx_wind/8ff01a09-49f0-4958-aacb-b1be88c4eb83.png new file mode 100644 index 000000000..cbe4f4627 Binary files /dev/null and b/sprites/s_node_vfx_wind/8ff01a09-49f0-4958-aacb-b1be88c4eb83.png differ diff --git a/sprites/s_node_vfx_wind/layers/37418650-4652-4d81-9692-a04c8aac0d9d/1827712d-ce48-485f-b503-aa2826ed5ab7.png b/sprites/s_node_vfx_wind/layers/37418650-4652-4d81-9692-a04c8aac0d9d/1827712d-ce48-485f-b503-aa2826ed5ab7.png deleted file mode 100644 index 1d4332e62..000000000 Binary files a/sprites/s_node_vfx_wind/layers/37418650-4652-4d81-9692-a04c8aac0d9d/1827712d-ce48-485f-b503-aa2826ed5ab7.png and /dev/null differ diff --git a/sprites/s_node_vfx_wind/layers/8ff01a09-49f0-4958-aacb-b1be88c4eb83/fcbd5ee8-7d99-4b81-ad7b-468cbb94cc69.png b/sprites/s_node_vfx_wind/layers/8ff01a09-49f0-4958-aacb-b1be88c4eb83/fcbd5ee8-7d99-4b81-ad7b-468cbb94cc69.png new file mode 100644 index 000000000..cbe4f4627 Binary files /dev/null and b/sprites/s_node_vfx_wind/layers/8ff01a09-49f0-4958-aacb-b1be88c4eb83/fcbd5ee8-7d99-4b81-ad7b-468cbb94cc69.png differ diff --git a/sprites/s_node_vfx_wind/s_node_vfx_wind.yy b/sprites/s_node_vfx_wind/s_node_vfx_wind.yy index 8f584768d..249b93549 100644 --- a/sprites/s_node_vfx_wind/s_node_vfx_wind.yy +++ b/sprites/s_node_vfx_wind/s_node_vfx_wind.yy @@ -18,7 +18,7 @@ "VTile": false, "For3D": false, "DynamicTexturePage": false, - "width": 65, + "width": 64, "height": 64, "textureGroupId": { "name": "Default", @@ -28,7 +28,7 @@ "gridX": 0, "gridY": 0, "frames": [ - {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"37418650-4652-4d81-9692-a04c8aac0d9d",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"8ff01a09-49f0-4958-aacb-b1be88c4eb83",}, ], "sequence": { "resourceType": "GMSequence", @@ -45,7 +45,7 @@ "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore",}, "tracks": [ {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","spriteId":null,"keyframes":{"Keyframes":[ - {"id":"97fcfe95-badb-4bd8-9fd4-d36c8502e001","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"37418650-4652-4d81-9692-a04c8aac0d9d","path":"sprites/s_node_vfx_wind/s_node_vfx_wind.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, + {"id":"9dc12cbc-c34d-4c31-989d-bb61d11ea040","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"8ff01a09-49f0-4958-aacb-b1be88c4eb83","path":"sprites/s_node_vfx_wind/s_node_vfx_wind.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe",}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"modifiers":[],}, ], "visibleRange": null, @@ -64,11 +64,11 @@ "eventStubScript": null, }, "layers": [ - {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"1827712d-ce48-485f-b503-aa2826ed5ab7","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"fcbd5ee8-7d99-4b81-ad7b-468cbb94cc69","visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default",}, ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "VFX", + "path": "folders/nodes/icons/VFX.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_warp/s_node_warp.yy b/sprites/s_node_warp/s_node_warp.yy index c2328313a..512fb1136 100644 --- a/sprites/s_node_warp/s_node_warp.yy +++ b/sprites/s_node_warp/s_node_warp.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "transform", + "path": "folders/nodes/icons/transform.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_warp_mesh/s_node_warp_mesh.yy b/sprites/s_node_warp_mesh/s_node_warp_mesh.yy index 09ea0f91a..2143ba55c 100644 --- a/sprites/s_node_warp_mesh/s_node_warp_mesh.yy +++ b/sprites/s_node_warp_mesh/s_node_warp_mesh.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "transform", + "path": "folders/nodes/icons/transform.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_wiggler/s_node_wiggler.yy b/sprites/s_node_wiggler/s_node_wiggler.yy index aecfded3e..9b972e0a7 100644 --- a/sprites/s_node_wiggler/s_node_wiggler.yy +++ b/sprites/s_node_wiggler/s_node_wiggler.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "animation", + "path": "folders/nodes/icons/animation.yy", }, } \ No newline at end of file diff --git a/sprites/s_node_zigzag/s_node_zigzag.yy b/sprites/s_node_zigzag/s_node_zigzag.yy index ab19a803b..c4e453f02 100644 --- a/sprites/s_node_zigzag/s_node_zigzag.yy +++ b/sprites/s_node_zigzag/s_node_zigzag.yy @@ -68,7 +68,7 @@ ], "nineSlice": null, "parent": { - "name": "icons", - "path": "folders/nodes/icons.yy", + "name": "generator", + "path": "folders/nodes/icons/generator.yy", }, } \ No newline at end of file