change node list to use array

This commit is contained in:
Tanasart 2025-01-10 09:04:53 +07:00
parent 8b8de372ce
commit 0ee9e83822
26 changed files with 684 additions and 408 deletions

View file

@ -68,6 +68,7 @@
{"name":"components","order":3,"path":"folders/main/components.yy",},
{"name":"misc","order":338,"path":"folders/misc.yy",},
{"name":"animation_curve","order":1,"path":"folders/misc/animation_curve.yy",},
{"name":"debugging","order":2,"path":"folders/misc/debugging.yy",},
{"name":"nodes","order":330,"path":"folders/nodes.yy",},
{"name":"data","order":1,"path":"folders/nodes/data.yy",},
{"name":"2d_effects","order":2,"path":"folders/nodes/data/3D/2d_effects.yy",},
@ -145,6 +146,7 @@
{"name":"for","order":2,"path":"folders/nodes/data/iterate/for.yy",},
{"name":"lua","order":9,"path":"folders/nodes/data/lua.yy",},
{"name":"misc","order":19,"path":"folders/nodes/data/misc.yy",},
{"name":"custom","order":2,"path":"folders/nodes/data/misc/custom.yy",},
{"name":"tunnel","order":1,"path":"folders/nodes/data/misc/tunnel.yy",},
{"name":"MKFX","order":10,"path":"folders/nodes/data/MKFX.yy",},
{"name":"Flag","order":10,"path":"folders/nodes/data/MKFX/Flag.yy",},
@ -404,7 +406,6 @@
{"name":"__node_3d_transform","order":8,"path":"scripts/__node_3d_transform/__node_3d_transform.yy",},
{"name":"__node_3d","order":10,"path":"scripts/__node_3d/__node_3d.yy",},
{"name":"__node_controller","order":14,"path":"scripts/__node_controller/__node_controller.yy",},
{"name":"__node_custom","order":14,"path":"scripts/__node_custom/__node_custom.yy",},
{"name":"__node_iterator_inline","order":7,"path":"scripts/__node_iterator_inline/__node_iterator_inline.yy",},
{"name":"__node_iterator","order":6,"path":"scripts/__node_iterator/__node_iterator.yy",},
{"name":"__node_module_test","order":25,"path":"scripts/__node_module_test/__node_module_test.yy",},
@ -693,11 +694,11 @@
{"name":"node_ambient_occlusion","order":5,"path":"scripts/node_ambient_occlusion/node_ambient_occlusion.yy",},
{"name":"node_anim_curve","order":1,"path":"scripts/node_anim_curve/node_anim_curve.yy",},
{"name":"node_anim_priority","order":2,"path":"scripts/node_anim_priority/node_anim_priority.yy",},
{"name":"node_animation_control","order":11,"path":"scripts/node_animation_control/node_animation_control.yy",},
{"name":"node_application_in","order":20,"path":"scripts/node_application_in/node_application_in.yy",},
{"name":"node_application_out","order":19,"path":"scripts/node_application_out/node_application_out.yy",},
{"name":"node_animation_control","order":13,"path":"scripts/node_animation_control/node_animation_control.yy",},
{"name":"node_application_in","order":21,"path":"scripts/node_application_in/node_application_in.yy",},
{"name":"node_application_out","order":20,"path":"scripts/node_application_out/node_application_out.yy",},
{"name":"node_area","order":15,"path":"scripts/node_area/node_area.yy",},
{"name":"node_argument","order":24,"path":"scripts/node_argument/node_argument.yy",},
{"name":"node_argument","order":25,"path":"scripts/node_argument/node_argument.yy",},
{"name":"node_armature_bind","order":10,"path":"scripts/node_armature_bind/node_armature_bind.yy",},
{"name":"node_armature_mesh_rig","order":14,"path":"scripts/node_armature_mesh_rig/node_armature_mesh_rig.yy",},
{"name":"node_armature_path","order":12,"path":"scripts/node_armature_path/node_armature_path.yy",},
@ -727,7 +728,7 @@
{"name":"node_array","order":5,"path":"scripts/node_array/node_array.yy",},
{"name":"node_ase_layer","order":1,"path":"scripts/node_ase_layer/node_ase_layer.yy",},
{"name":"node_ase_tag","order":2,"path":"scripts/node_ase_tag/node_ase_tag.yy",},
{"name":"node_assert","order":30,"path":"scripts/node_assert/node_assert.yy",},
{"name":"node_assert","order":31,"path":"scripts/node_assert/node_assert.yy",},
{"name":"node_atlas_get","order":1,"path":"scripts/node_atlas_get/node_atlas_get.yy",},
{"name":"node_atlas_set","order":2,"path":"scripts/node_atlas_set/node_atlas_set.yy",},
{"name":"node_atlas_to_struct","order":3,"path":"scripts/node_atlas_to_struct/node_atlas_to_struct.yy",},
@ -740,25 +741,25 @@
{"name":"node_blend","order":1,"path":"scripts/node_blend/node_blend.yy",},
{"name":"node_blobify","order":2,"path":"scripts/node_blobify/node_blobify.yy",},
{"name":"node_bloom","order":4,"path":"scripts/node_bloom/node_bloom.yy",},
{"name":"node_blur_bokeh","order":6,"path":"scripts/node_blur_bokeh/node_blur_bokeh.yy",},
{"name":"node_blur_box","order":10,"path":"scripts/node_blur_box/node_blur_box.yy",},
{"name":"node_blur_contrast","order":8,"path":"scripts/node_blur_contrast/node_blur_contrast.yy",},
{"name":"node_blur_directional","order":12,"path":"scripts/node_blur_directional/node_blur_directional.yy",},
{"name":"node_blur_path","order":28,"path":"scripts/node_blur_path/node_blur_path.yy",},
{"name":"node_blur_radial","order":14,"path":"scripts/node_blur_radial/node_blur_radial.yy",},
{"name":"node_blur_shape","order":16,"path":"scripts/node_blur_shape/node_blur_shape.yy",},
{"name":"node_blur_simple","order":18,"path":"scripts/node_blur_simple/node_blur_simple.yy",},
{"name":"node_blur_slope","order":20,"path":"scripts/node_blur_slope/node_blur_slope.yy",},
{"name":"node_blur_zoom","order":22,"path":"scripts/node_blur_zoom/node_blur_zoom.yy",},
{"name":"node_blur_bokeh","order":7,"path":"scripts/node_blur_bokeh/node_blur_bokeh.yy",},
{"name":"node_blur_box","order":11,"path":"scripts/node_blur_box/node_blur_box.yy",},
{"name":"node_blur_contrast","order":9,"path":"scripts/node_blur_contrast/node_blur_contrast.yy",},
{"name":"node_blur_directional","order":13,"path":"scripts/node_blur_directional/node_blur_directional.yy",},
{"name":"node_blur_path","order":29,"path":"scripts/node_blur_path/node_blur_path.yy",},
{"name":"node_blur_radial","order":15,"path":"scripts/node_blur_radial/node_blur_radial.yy",},
{"name":"node_blur_shape","order":17,"path":"scripts/node_blur_shape/node_blur_shape.yy",},
{"name":"node_blur_simple","order":19,"path":"scripts/node_blur_simple/node_blur_simple.yy",},
{"name":"node_blur_slope","order":21,"path":"scripts/node_blur_slope/node_blur_slope.yy",},
{"name":"node_blur_zoom","order":23,"path":"scripts/node_blur_zoom/node_blur_zoom.yy",},
{"name":"node_blur","order":4,"path":"scripts/node_blur/node_blur.yy",},
{"name":"node_boolean","order":17,"path":"scripts/node_boolean/node_boolean.yy",},
{"name":"node_box_pattern","order":22,"path":"scripts/node_box_pattern/node_box_pattern.yy",},
{"name":"node_brush_linear","order":45,"path":"scripts/node_brush_linear/node_brush_linear.yy",},
{"name":"node_byte_file_read","order":16,"path":"scripts/node_byte_file_read/node_byte_file_read.yy",},
{"name":"node_byte_file_write","order":15,"path":"scripts/node_byte_file_write/node_byte_file_write.yy",},
{"name":"node_cache_array","order":8,"path":"scripts/node_cache_array/node_cache_array.yy",},
{"name":"node_cache_base","order":18,"path":"scripts/node_cache_base/node_cache_base.yy",},
{"name":"node_cache","order":9,"path":"scripts/node_cache/node_cache.yy",},
{"name":"node_cache_array","order":10,"path":"scripts/node_cache_array/node_cache_array.yy",},
{"name":"node_cache_base","order":19,"path":"scripts/node_cache_base/node_cache_base.yy",},
{"name":"node_cache","order":11,"path":"scripts/node_cache/node_cache.yy",},
{"name":"node_camera","order":2,"path":"scripts/node_camera/node_camera.yy",},
{"name":"node_canvas_group","order":5,"path":"scripts/node_canvas_group/node_canvas_group.yy",},
{"name":"node_canvas","order":4,"path":"scripts/node_canvas/node_canvas.yy",},
@ -780,7 +781,7 @@
{"name":"node_combine_hsv","order":2,"path":"scripts/node_combine_hsv/node_combine_hsv.yy",},
{"name":"node_compare","order":16,"path":"scripts/node_compare/node_compare.yy",},
{"name":"node_composite","order":3,"path":"scripts/node_composite/node_composite.yy",},
{"name":"node_condition","order":2,"path":"scripts/node_condition/node_condition.yy",},
{"name":"node_condition","order":4,"path":"scripts/node_condition/node_condition.yy",},
{"name":"node_connection_path","order":1,"path":"scripts/node_connection_path/node_connection_path.yy",},
{"name":"node_convolution","order":8,"path":"scripts/node_convolution/node_convolution.yy",},
{"name":"node_corner","order":10,"path":"scripts/node_corner/node_corner.yy",},
@ -798,11 +799,11 @@
{"name":"node_diffuse","order":7,"path":"scripts/node_diffuse/node_diffuse.yy",},
{"name":"node_directory_search","order":17,"path":"scripts/node_directory_search/node_directory_search.yy",},
{"name":"node_displace","order":2,"path":"scripts/node_displace/node_displace.yy",},
{"name":"node_display_image","order":6,"path":"scripts/node_display_image/node_display_image.yy",},
{"name":"node_display_text","order":5,"path":"scripts/node_display_text/node_display_text.yy",},
{"name":"node_display_image","order":8,"path":"scripts/node_display_image/node_display_image.yy",},
{"name":"node_display_text","order":7,"path":"scripts/node_display_text/node_display_text.yy",},
{"name":"node_dither_diffuse","order":14,"path":"scripts/node_dither_diffuse/node_dither_diffuse.yy",},
{"name":"node_dither","order":12,"path":"scripts/node_dither/node_dither.yy",},
{"name":"node_dll","order":26,"path":"scripts/node_dll/node_dll.yy",},
{"name":"node_dll","order":27,"path":"scripts/node_dll/node_dll.yy",},
{"name":"node_dust","order":6,"path":"scripts/node_dust/node_dust.yy",},
{"name":"node_dynasurf_in","order":4,"path":"scripts/node_dynasurf_in/node_dynasurf_in.yy",},
{"name":"node_dynasurf_out_height","order":3,"path":"scripts/node_dynasurf_out_height/node_dynasurf_out_height.yy",},
@ -840,9 +841,9 @@
{"name":"node_fn_wave_table","order":1,"path":"scripts/node_fn_wave_table/node_fn_wave_table.yy",},
{"name":"node_fn","order":2,"path":"scripts/node_fn/node_fn.yy",},
{"name":"node_fold_noise","order":32,"path":"scripts/node_fold_noise/node_fold_noise.yy",},
{"name":"node_frame","order":3,"path":"scripts/node_frame/node_frame.yy",},
{"name":"node_frame","order":5,"path":"scripts/node_frame/node_frame.yy",},
{"name":"node_functions","order":2,"path":"scripts/node_functions/node_functions.yy",},
{"name":"node_FXAA","order":24,"path":"scripts/node_FXAA/node_FXAA.yy",},
{"name":"node_FXAA","order":25,"path":"scripts/node_FXAA/node_FXAA.yy",},
{"name":"node_gabor_noise","order":26,"path":"scripts/node_gabor_noise/node_gabor_noise.yy",},
{"name":"node_gamma_map","order":32,"path":"scripts/node_gamma_map/node_gamma_map.yy",},
{"name":"node_global","order":3,"path":"scripts/node_global/node_global.yy",},
@ -856,7 +857,7 @@
{"name":"node_gradient_sample","order":16,"path":"scripts/node_gradient_sample/node_gradient_sample.yy",},
{"name":"node_gradient_shift","order":10,"path":"scripts/node_gradient_shift/node_gradient_shift.yy",},
{"name":"node_grain","order":40,"path":"scripts/node_grain/node_grain.yy",},
{"name":"node_graph_preview","order":22,"path":"scripts/node_graph_preview/node_graph_preview.yy",},
{"name":"node_graph_preview","order":23,"path":"scripts/node_graph_preview/node_graph_preview.yy",},
{"name":"node_grey_alpha","order":8,"path":"scripts/node_grey_alpha/node_grey_alpha.yy",},
{"name":"node_greyscale","order":14,"path":"scripts/node_greyscale/node_greyscale.yy",},
{"name":"node_grid_hex","order":4,"path":"scripts/node_grid_hex/node_grid_hex.yy",},
@ -870,11 +871,11 @@
{"name":"node_group_thumbnail","order":3,"path":"scripts/node_group_thumbnail/node_group_thumbnail.yy",},
{"name":"node_guide","order":9,"path":"scripts/node_guide/node_guide.yy",},
{"name":"node_herringbone_tile","order":14,"path":"scripts/node_herringbone_tile/node_herringbone_tile.yy",},
{"name":"node_high_pass","order":30,"path":"scripts/node_high_pass/node_high_pass.yy",},
{"name":"node_hlsl","order":13,"path":"scripts/node_hlsl/node_hlsl.yy",},
{"name":"node_high_pass","order":31,"path":"scripts/node_high_pass/node_high_pass.yy",},
{"name":"node_hlsl","order":15,"path":"scripts/node_hlsl/node_hlsl.yy",},
{"name":"node_honey_noise","order":44,"path":"scripts/node_honey_noise/node_honey_noise.yy",},
{"name":"node_hsv_channel","order":4,"path":"scripts/node_hsv_channel/node_hsv_channel.yy",},
{"name":"node_http_request","order":27,"path":"scripts/node_http_request/node_http_request.yy",},
{"name":"node_http_request","order":28,"path":"scripts/node_http_request/node_http_request.yy",},
{"name":"node_image_gif","order":1,"path":"scripts/node_image_gif/node_image_gif.yy",},
{"name":"node_image_grid","order":4,"path":"scripts/node_image_grid/node_image_grid.yy",},
{"name":"node_image_sequence","order":2,"path":"scripts/node_image_sequence/node_image_sequence.yy",},
@ -941,7 +942,7 @@
{"name":"node_mk_sparkle","order":20,"path":"scripts/node_mk_sparkle/node_mk_sparkle.yy",},
{"name":"node_mk_subpixel","order":23,"path":"scripts/node_mk_subpixel/node_mk_subpixel.yy",},
{"name":"node_mk_tile","order":11,"path":"scripts/node_mk_tile/node_mk_tile.yy",},
{"name":"node_monitor_capture","order":21,"path":"scripts/node_monitor_capture/node_monitor_capture.yy",},
{"name":"node_monitor_capture","order":22,"path":"scripts/node_monitor_capture/node_monitor_capture.yy",},
{"name":"node_morph_surface","order":10,"path":"scripts/node_morph_surface/node_morph_surface.yy",},
{"name":"node_move_point","order":9,"path":"scripts/node_move_point/node_move_point.yy",},
{"name":"node_noise_aniso","order":2,"path":"scripts/node_noise_aniso/node_noise_aniso.yy",},
@ -956,10 +957,10 @@
{"name":"node_normal_light","order":2,"path":"scripts/node_normal_light/node_normal_light.yy",},
{"name":"node_normal","order":1,"path":"scripts/node_normal/node_normal.yy",},
{"name":"node_normalize","order":36,"path":"scripts/node_normalize/node_normalize.yy",},
{"name":"node_note","order":17,"path":"scripts/node_note/node_note.yy",},
{"name":"node_note","order":18,"path":"scripts/node_note/node_note.yy",},
{"name":"node_number","order":1,"path":"scripts/node_number/node_number.yy",},
{"name":"node_offset","order":27,"path":"scripts/node_offset/node_offset.yy",},
{"name":"node_onion_skin","order":12,"path":"scripts/node_onion_skin/node_onion_skin.yy",},
{"name":"node_onion_skin","order":14,"path":"scripts/node_onion_skin/node_onion_skin.yy",},
{"name":"node_outline","order":22,"path":"scripts/node_outline/node_outline.yy",},
{"name":"node_override_channel","order":4,"path":"scripts/node_override_channel/node_override_channel.yy",},
{"name":"node_pack_sprites","order":4,"path":"scripts/node_pack_sprites/node_pack_sprites.yy",},
@ -1036,7 +1037,7 @@
{"name":"node_perlin_extra","order":24,"path":"scripts/node_perlin_extra/node_perlin_extra.yy",},
{"name":"node_perlin_smear","order":22,"path":"scripts/node_perlin_smear/node_perlin_smear.yy",},
{"name":"node_perlin","order":18,"path":"scripts/node_perlin/node_perlin.yy",},
{"name":"node_pin","order":4,"path":"scripts/node_pin/node_pin.yy",},
{"name":"node_pin","order":6,"path":"scripts/node_pin/node_pin.yy",},
{"name":"node_pixel_builder","order":5,"path":"scripts/node_pixel_builder/node_pixel_builder.yy",},
{"name":"node_pixel_cloud","order":39,"path":"scripts/node_pixel_cloud/node_pixel_cloud.yy",},
{"name":"node_pixel_math","order":51,"path":"scripts/node_pixel_math/node_pixel_math.yy",},
@ -1046,9 +1047,9 @@
{"name":"node_point_in_area","order":1,"path":"scripts/node_point_in_area/node_point_in_area.yy",},
{"name":"node_polar","order":8,"path":"scripts/node_polar/node_polar.yy",},
{"name":"node_posterize","order":24,"path":"scripts/node_posterize/node_posterize.yy",},
{"name":"node_print","order":10,"path":"scripts/node_print/node_print.yy",},
{"name":"node_print","order":12,"path":"scripts/node_print/node_print.yy",},
{"name":"node_processor","order":6,"path":"scripts/node_processor/node_processor.yy",},
{"name":"node_project_data","order":23,"path":"scripts/node_project_data/node_project_data.yy",},
{"name":"node_project_data","order":24,"path":"scripts/node_project_data/node_project_data.yy",},
{"name":"node_pytagorean_tile","order":12,"path":"scripts/node_pytagorean_tile/node_pytagorean_tile.yy",},
{"name":"node_quasicrystal","order":18,"path":"scripts/node_quasicrystal/node_quasicrystal.yy",},
{"name":"node_random_shape","order":10,"path":"scripts/node_random_shape/node_random_shape.yy",},
@ -1061,7 +1062,7 @@
{"name":"node_registry","order":10,"path":"scripts/node_registry/node_registry.yy",},
{"name":"node_repeat_texture","order":20,"path":"scripts/node_repeat_texture/node_repeat_texture.yy",},
{"name":"node_repeat","order":12,"path":"scripts/node_repeat/node_repeat.yy",},
{"name":"node_revert","order":29,"path":"scripts/node_revert/node_revert.yy",},
{"name":"node_revert","order":30,"path":"scripts/node_revert/node_revert.yy",},
{"name":"node_rgb_channel","order":2,"path":"scripts/node_rgb_channel/node_rgb_channel.yy",},
{"name":"node_rigid_activate","order":1,"path":"scripts/node_rigid_activate/node_rigid_activate.yy",},
{"name":"node_rigid_force_apply","order":2,"path":"scripts/node_rigid_force_apply/node_rigid_force_apply.yy",},
@ -1094,12 +1095,12 @@
{"name":"node_shape_polygon","order":9,"path":"scripts/node_shape_polygon/node_shape_polygon.yy",},
{"name":"node_shape","order":12,"path":"scripts/node_shape/node_shape.yy",},
{"name":"node_shard_noise","order":28,"path":"scripts/node_shard_noise/node_shard_noise.yy",},
{"name":"node_shell","order":15,"path":"scripts/node_shell/node_shell.yy",},
{"name":"node_shell","order":16,"path":"scripts/node_shell/node_shell.yy",},
{"name":"node_shuffle","order":53,"path":"scripts/node_shuffle/node_shuffle.yy",},
{"name":"node_skew","order":15,"path":"scripts/node_skew/node_skew.yy",},
{"name":"node_sky","order":22,"path":"scripts/node_sky/node_sky.yy",},
{"name":"node_slideshow","order":28,"path":"scripts/node_slideshow/node_slideshow.yy",},
{"name":"node_smear","order":26,"path":"scripts/node_smear/node_smear.yy",},
{"name":"node_slideshow","order":29,"path":"scripts/node_slideshow/node_slideshow.yy",},
{"name":"node_smear","order":27,"path":"scripts/node_smear/node_smear.yy",},
{"name":"node_smoke_add_collider","order":7,"path":"scripts/node_smoke_add_collider/node_smoke_add_collider.yy",},
{"name":"node_smoke_add","order":5,"path":"scripts/node_smoke_add/node_smoke_add.yy",},
{"name":"node_smoke_apply_velocity","order":6,"path":"scripts/node_smoke_apply_velocity/node_smoke_apply_velocity.yy",},
@ -1147,8 +1148,8 @@
{"name":"node_surface_replace","order":14,"path":"scripts/node_surface_replace/node_surface_replace.yy",},
{"name":"node_surface_to_color","order":1,"path":"scripts/node_surface_to_color/node_surface_to_color.yy",},
{"name":"node_svg","order":6,"path":"scripts/node_svg/node_svg.yy",},
{"name":"node_switch","order":7,"path":"scripts/node_switch/node_switch.yy",},
{"name":"node_terminal_trigger","order":25,"path":"scripts/node_terminal_trigger/node_terminal_trigger.yy",},
{"name":"node_switch","order":9,"path":"scripts/node_switch/node_switch.yy",},
{"name":"node_terminal_trigger","order":26,"path":"scripts/node_terminal_trigger/node_terminal_trigger.yy",},
{"name":"node_text_file_read","order":4,"path":"scripts/node_text_file_read/node_text_file_read.yy",},
{"name":"node_text_file_write","order":8,"path":"scripts/node_text_file_write/node_text_file_write.yy",},
{"name":"node_text","order":14,"path":"scripts/node_text/node_text.yy",},
@ -1254,7 +1255,7 @@
{"name":"node_wav_file_write","order":12,"path":"scripts/node_wav_file_write/node_wav_file_write.yy",},
{"name":"node_wavelet_noise","order":30,"path":"scripts/node_wavelet_noise/node_wavelet_noise.yy",},
{"name":"node_websocket_sender","order":1,"path":"scripts/node_websocket_sender/node_websocket_sender.yy",},
{"name":"node_widget_test","order":16,"path":"scripts/node_widget_test/node_widget_test.yy",},
{"name":"node_widget_test","order":17,"path":"scripts/node_widget_test/node_widget_test.yy",},
{"name":"node_wrap_area","order":14,"path":"scripts/node_wrap_area/node_wrap_area.yy",},
{"name":"node_wrap_perspective","order":23,"path":"scripts/node_wrap_perspective/node_wrap_perspective.yy",},
{"name":"node_xml_file_read","order":18,"path":"scripts/node_xml_file_read/node_xml_file_read.yy",},
@ -1469,18 +1470,18 @@
{"name":"sh_blobify","order":3,"path":"shaders/sh_blobify/sh_blobify.yy",},
{"name":"sh_bloom_pass","order":5,"path":"shaders/sh_bloom_pass/sh_bloom_pass.yy",},
{"name":"sh_blur_alpha","order":5,"path":"shaders/sh_blur_alpha/sh_blur_alpha.yy",},
{"name":"sh_blur_bokeh","order":7,"path":"shaders/sh_blur_bokeh/sh_blur_bokeh.yy",},
{"name":"sh_blur_box_contrast","order":9,"path":"shaders/sh_blur_box_contrast/sh_blur_box_contrast.yy",},
{"name":"sh_blur_box","order":11,"path":"shaders/sh_blur_box/sh_blur_box.yy",},
{"name":"sh_blur_directional","order":13,"path":"shaders/sh_blur_directional/sh_blur_directional.yy",},
{"name":"sh_blur_bokeh","order":8,"path":"shaders/sh_blur_bokeh/sh_blur_bokeh.yy",},
{"name":"sh_blur_box_contrast","order":10,"path":"shaders/sh_blur_box_contrast/sh_blur_box_contrast.yy",},
{"name":"sh_blur_box","order":12,"path":"shaders/sh_blur_box/sh_blur_box.yy",},
{"name":"sh_blur_directional","order":14,"path":"shaders/sh_blur_directional/sh_blur_directional.yy",},
{"name":"sh_blur_final","order":6,"path":"shaders/sh_blur_final/sh_blur_final.yy",},
{"name":"sh_blur_gaussian","order":5,"path":"shaders/sh_blur_gaussian/sh_blur_gaussian.yy",},
{"name":"sh_blur_path","order":29,"path":"shaders/sh_blur_path/sh_blur_path.yy",},
{"name":"sh_blur_radial","order":15,"path":"shaders/sh_blur_radial/sh_blur_radial.yy",},
{"name":"sh_blur_shape","order":17,"path":"shaders/sh_blur_shape/sh_blur_shape.yy",},
{"name":"sh_blur_simple","order":19,"path":"shaders/sh_blur_simple/sh_blur_simple.yy",},
{"name":"sh_blur_slope","order":21,"path":"shaders/sh_blur_slope/sh_blur_slope.yy",},
{"name":"sh_blur_zoom","order":23,"path":"shaders/sh_blur_zoom/sh_blur_zoom.yy",},
{"name":"sh_blur_gaussian","order":6,"path":"shaders/sh_blur_gaussian/sh_blur_gaussian.yy",},
{"name":"sh_blur_path","order":30,"path":"shaders/sh_blur_path/sh_blur_path.yy",},
{"name":"sh_blur_radial","order":16,"path":"shaders/sh_blur_radial/sh_blur_radial.yy",},
{"name":"sh_blur_shape","order":18,"path":"shaders/sh_blur_shape/sh_blur_shape.yy",},
{"name":"sh_blur_simple","order":20,"path":"shaders/sh_blur_simple/sh_blur_simple.yy",},
{"name":"sh_blur_slope","order":22,"path":"shaders/sh_blur_slope/sh_blur_slope.yy",},
{"name":"sh_blur_zoom","order":24,"path":"shaders/sh_blur_zoom/sh_blur_zoom.yy",},
{"name":"sh_box_pattern","order":23,"path":"shaders/sh_box_pattern/sh_box_pattern.yy",},
{"name":"sh_brush_linear","order":46,"path":"shaders/sh_brush_linear/sh_brush_linear.yy",},
{"name":"sh_brush_outline","order":7,"path":"shaders/sh_brush_outline/sh_brush_outline.yy",},
@ -1597,7 +1598,7 @@
{"name":"sh_freeform_fill_cleanup","order":6,"path":"shaders/sh_freeform_fill_cleanup/sh_freeform_fill_cleanup.yy",},
{"name":"sh_freeform_fill_pass1","order":7,"path":"shaders/sh_freeform_fill_pass1/sh_freeform_fill_pass1.yy",},
{"name":"sh_freeform_fill_pass2","order":8,"path":"shaders/sh_freeform_fill_pass2/sh_freeform_fill_pass2.yy",},
{"name":"sh_FXAA","order":25,"path":"shaders/sh_FXAA/sh_FXAA.yy",},
{"name":"sh_FXAA","order":26,"path":"shaders/sh_FXAA/sh_FXAA.yy",},
{"name":"sh_gamma_map","order":33,"path":"shaders/sh_gamma_map/sh_gamma_map.yy",},
{"name":"sh_get_max_downsampled","order":1,"path":"shaders/sh_get_max_downsampled/sh_get_max_downsampled.yy",},
{"name":"sh_get_min_downsampled","order":2,"path":"shaders/sh_get_min_downsampled/sh_get_min_downsampled.yy",},
@ -1614,7 +1615,7 @@
{"name":"sh_grid_tri","order":7,"path":"shaders/sh_grid_tri/sh_grid_tri.yy",},
{"name":"sh_grid","order":3,"path":"shaders/sh_grid/sh_grid.yy",},
{"name":"sh_herringbone_tile","order":15,"path":"shaders/sh_herringbone_tile/sh_herringbone_tile.yy",},
{"name":"sh_high_pass","order":31,"path":"shaders/sh_high_pass/sh_high_pass.yy",},
{"name":"sh_high_pass","order":32,"path":"shaders/sh_high_pass/sh_high_pass.yy",},
{"name":"sh_image_trace","order":18,"path":"shaders/sh_image_trace/sh_image_trace.yy",},
{"name":"sh_interlaced","order":50,"path":"shaders/sh_interlaced/sh_interlaced.yy",},
{"name":"sh_interpret_number","order":9,"path":"shaders/sh_interpret_number/sh_interpret_number.yy",},
@ -1753,7 +1754,7 @@
{"name":"sh_sky_hosek","order":2,"path":"shaders/sh_sky_hosek/sh_sky_hosek.yy",},
{"name":"sh_sky_scattering","order":1,"path":"shaders/sh_sky_scattering/sh_sky_scattering.yy",},
{"name":"sh_slice_spritesheet_empty_scan","order":4,"path":"shaders/sh_slice_spritesheet_empty_scan/sh_slice_spritesheet_empty_scan.yy",},
{"name":"sh_smear","order":27,"path":"shaders/sh_smear/sh_smear.yy",},
{"name":"sh_smear","order":28,"path":"shaders/sh_smear/sh_smear.yy",},
{"name":"sh_solid","order":18,"path":"shaders/sh_solid/sh_solid.yy",},
{"name":"sh_spherize","order":13,"path":"shaders/sh_spherize/sh_spherize.yy",},
{"name":"sh_stripe","order":9,"path":"shaders/sh_stripe/sh_stripe.yy",},
@ -1761,6 +1762,7 @@
{"name":"sh_surface_replace_fast_replace","order":3,"path":"shaders/sh_surface_replace_fast_replace/sh_surface_replace_fast_replace.yy",},
{"name":"sh_surface_replace_replace","order":1,"path":"shaders/sh_surface_replace_replace/sh_surface_replace_replace.yy",},
{"name":"sh_svg_fill","order":1,"path":"shaders/sh_svg_fill/sh_svg_fill.yy",},
{"name":"sh_test_blur","order":1,"path":"shaders/sh_test_blur/sh_test_blur.yy",},
{"name":"sh_texture_atlas","order":2,"path":"shaders/sh_texture_atlas/sh_texture_atlas.yy",},
{"name":"sh_texture_remap","order":5,"path":"shaders/sh_texture_remap/sh_texture_remap.yy",},
{"name":"sh_texture_repeat","order":21,"path":"shaders/sh_texture_repeat/sh_texture_repeat.yy",},

View file

@ -108,6 +108,7 @@
{"$GMFolder":"","%Name":"components","folderPath":"folders/main/components.yy","name":"components","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"misc","folderPath":"folders/misc.yy","name":"misc","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"animation_curve","folderPath":"folders/misc/animation_curve.yy","name":"animation_curve","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"debugging","folderPath":"folders/misc/debugging.yy","name":"debugging","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"fx","folderPath":"folders/misc/fx.yy","name":"fx","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"nodes","folderPath":"folders/nodes.yy","name":"nodes","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"__base__","folderPath":"folders/nodes/__base__.yy","name":"__base__","resourceType":"GMFolder","resourceVersion":"2.0",},
@ -202,6 +203,7 @@
{"$GMFolder":"","%Name":"for","folderPath":"folders/nodes/data/iterate/for.yy","name":"for","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"lua","folderPath":"folders/nodes/data/lua.yy","name":"lua","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"misc","folderPath":"folders/nodes/data/misc.yy","name":"misc","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"custom","folderPath":"folders/nodes/data/misc/custom.yy","name":"custom","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"lovify","folderPath":"folders/nodes/data/misc/lovify.yy","name":"lovify","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"spr","folderPath":"folders/nodes/data/misc/lovify/spr.yy","name":"spr","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"tunnel","folderPath":"folders/nodes/data/misc/tunnel.yy","name":"tunnel","resourceType":"GMFolder","resourceVersion":"2.0",},
@ -370,6 +372,18 @@
{"$GMIncludedFile":"","%Name":"words.json","CopyToMask":-1,"filePath":"datafiles/data/locale/sample locale","name":"words.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"words.json","CopyToMask":-1,"filePath":"datafiles/data/Locale/sample locale","name":"words.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"Actions.zip","CopyToMask":-1,"filePath":"datafiles/data/Nodes","name":"Actions.zip","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"Armature Build.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Armature Build.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"Armature Build.png","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Armature Build.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"Create Tilemap.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Create Tilemap.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"Create Tilemap.png","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Create Tilemap.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"Follow Path.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Follow Path.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"Follow Path.png","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Follow Path.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"Iso cube.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Iso cube.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"Iso cube.png","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Iso cube.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"Line from Path.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Line from Path.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"Line from Path.png","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Line from Path.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"Pixel iso cube.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Pixel iso cube.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"Pixel iso cube.png","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Pixel iso cube.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"automate.ipynb","CopyToMask":-1,"filePath":"datafiles/data/Nodes","name":"automate.ipynb","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"display_data.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes","name":"display_data.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"Internal.zip","CopyToMask":-1,"filePath":"datafiles/data/Nodes","name":"Internal.zip","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
@ -874,7 +888,6 @@
{"id":{"name":"__node_3d_transform","path":"scripts/__node_3d_transform/__node_3d_transform.yy",},},
{"id":{"name":"__node_3d","path":"scripts/__node_3d/__node_3d.yy",},},
{"id":{"name":"__node_controller","path":"scripts/__node_controller/__node_controller.yy",},},
{"id":{"name":"__node_custom","path":"scripts/__node_custom/__node_custom.yy",},},
{"id":{"name":"__node_iterator_inline","path":"scripts/__node_iterator_inline/__node_iterator_inline.yy",},},
{"id":{"name":"__node_iterator","path":"scripts/__node_iterator/__node_iterator.yy",},},
{"id":{"name":"__node_module_test","path":"scripts/__node_module_test/__node_module_test.yy",},},
@ -1326,6 +1339,7 @@
{"id":{"name":"node_csv_file_write","path":"scripts/node_csv_file_write/node_csv_file_write.yy",},},
{"id":{"name":"node_curve_hsv","path":"scripts/node_curve_hsv/node_curve_hsv.yy",},},
{"id":{"name":"node_curve","path":"scripts/node_curve/node_curve.yy",},},
{"id":{"name":"node_custom_shader","path":"scripts/node_custom_shader/node_custom_shader.yy",},},
{"id":{"name":"node_data","path":"scripts/node_data/node_data.yy",},},
{"id":{"name":"node_de_corner","path":"scripts/node_de_corner/node_de_corner.yy",},},
{"id":{"name":"node_de_stray","path":"scripts/node_de_stray/node_de_stray.yy",},},
@ -1720,6 +1734,7 @@
{"id":{"name":"node_svg","path":"scripts/node_svg/node_svg.yy",},},
{"id":{"name":"node_switch","path":"scripts/node_switch/node_switch.yy",},},
{"id":{"name":"node_terminal_trigger","path":"scripts/node_terminal_trigger/node_terminal_trigger.yy",},},
{"id":{"name":"node_test_blur","path":"scripts/node_test_blur/node_test_blur.yy",},},
{"id":{"name":"node_text_file_read","path":"scripts/node_text_file_read/node_text_file_read.yy",},},
{"id":{"name":"node_text_file_write","path":"scripts/node_text_file_write/node_text_file_write.yy",},},
{"id":{"name":"node_text","path":"scripts/node_text/node_text.yy",},},
@ -2427,6 +2442,7 @@
{"id":{"name":"sh_surface_replace_replace","path":"shaders/sh_surface_replace_replace/sh_surface_replace_replace.yy",},},
{"id":{"name":"sh_svg_curve_quad","path":"shaders/sh_svg_curve_quad/sh_svg_curve_quad.yy",},},
{"id":{"name":"sh_svg_fill","path":"shaders/sh_svg_fill/sh_svg_fill.yy",},},
{"id":{"name":"sh_test_blur","path":"shaders/sh_test_blur/sh_test_blur.yy",},},
{"id":{"name":"sh_texture_atlas","path":"shaders/sh_texture_atlas/sh_texture_atlas.yy",},},
{"id":{"name":"sh_texture_remap","path":"shaders/sh_texture_remap/sh_texture_remap.yy",},},
{"id":{"name":"sh_texture_repeat","path":"shaders/sh_texture_repeat/sh_texture_repeat.yy",},},

View file

@ -17,6 +17,7 @@
},
{
"name": "Loop",
"iname": "Iterate",
"nodes": [
{ "label": "Groups" },
"Node_Iterate",
@ -35,6 +36,7 @@
},
{
"name": "Loop",
"iname": "Iterate_Inline",
"nodes": [
{ "label": "Loops" },
"Node_Iterator_Index",
@ -45,6 +47,7 @@
},
{
"name": "Loop",
"iname": "Iterate_Each",
"nodes": [
{ "label": "Groups" },
"Node_Group_Input",
@ -60,6 +63,7 @@
},
{
"name": "Loop",
"iname": "Iterate_Each_Inline",
"nodes": [
{ "label": "Loops" },
"Node_Iterator_Index",
@ -70,6 +74,7 @@
},
{
"name": "Filter",
"iname": "Iterate_Filter",
"nodes": [
{ "label": "Groups" },
"Node_Group_Input",
@ -85,6 +90,7 @@
},
{
"name": "Filter",
"iname": "Iterate_Filter_Inline",
"nodes": [
{ "label": "Loops" },
"Node_Iterator_Index",
@ -916,6 +922,7 @@
"pb": [
{
"name": "Group",
"iname": "pb_Group",
"nodes": [
"Node_Group_Input",
"Node_Group_Output"
@ -923,6 +930,7 @@
},
{
"name": "Draw",
"iname": "pb_Draw",
"nodes": [
{ "label": "Fill" },
"Node_PB_Draw_Fill",
@ -941,6 +949,7 @@
},
{
"name": "Box",
"iname": "pb_Box",
"nodes": [
{ "label": "Layer" },
"Node_PB_Layer",
@ -957,6 +966,7 @@
},
{
"name": "Effects",
"iname": "pb_Effects",
"nodes": [
{ "label": "Effect" },
"Node_PB_Fx_Outline",
@ -980,6 +990,7 @@
},
{
"name": "Array",
"iname": "pb_Array",
"nodes": [
"Node_Array",
"Node_Array_Get",
@ -992,6 +1003,7 @@
"pcx": [
{
"name": "Variable",
"iname": "pcx_Variable",
"nodes": [
"Node_PCX_var",
"Node_PCX_fn_var"
@ -999,6 +1011,7 @@
},
{
"name": "Functions",
"iname": "pcx_Functions",
"nodes": [
"Node_PCX_Equation",
@ -1017,6 +1030,7 @@
},
{
"name": "Flow Control",
"iname": "pcx_Flow_Control",
"nodes": [
"Node_PCX_Condition"
]

View file

@ -15,8 +15,8 @@ event_inherited();
junction_called = noone;
node_list = ds_list_create();
node_selecting = 0;
node_list = [];
node_selecting = 0;
node_focusing = -1;
node_show_connectable = false;
@ -61,17 +61,18 @@ event_inherited();
]);
#region ---- category ----
category = NODE_CATEGORY;
switch(instanceof(context)) {
case "Node_Pixel_Builder" : category = NODE_PB_CATEGORY; break;
case "Node_DynaSurf" : category = NODE_PCX_CATEGORY; break;
default : category = NODE_CATEGORY;
}
draw_set_font(f_p0);
var maxLen = 0;
for(var i = 0; i < ds_list_size(category); i++) {
var cat = category[| i];
for(var i = 0; i < array_length(category); i++) {
var cat = category[i];
if(array_length(cat.filter) && !array_exists(cat.filter, instanceof(context)))
continue;
@ -116,24 +117,24 @@ event_inherited();
}
function setPage(pageIndex) {
ADD_NODE_PAGE = min(pageIndex, ds_list_size(category) - 1);
ADD_NODE_PAGE = min(pageIndex, array_length(category) - 1);
subgroups = [];
subgroup_index = 0;
ds_list_clear(node_list);
node_list = [];
if(ADD_NODE_PAGE == -2) {
for(var i = 0; i < ds_list_size(category); i++) {
var cat = category[| i];
for(var i = 0; i < array_length(category); i++) {
var cat = category[i];
if(array_length(cat.filter) && !array_exists(cat.filter, instanceof(context)))
continue;
for( var j = 0; j < ds_list_size(cat.list); j++ )
ds_list_add(node_list, cat.list[| j]);
for( var j = 0; j < array_length(cat.list); j++ )
array_push(node_list, cat.list[j]);
}
} else if(ADD_NODE_PAGE == -1) {
for( var i = 0, n = ds_list_size(NEW_NODES); i < n; i++ )
ds_list_add(node_list, NEW_NODES[| i]);
for( var i = 0, n = array_length(NEW_NODES); i < n; i++ )
array_push(node_list, NEW_NODES[i]);
} else if(ADD_NODE_PAGE == NODE_PAGE_DEFAULT && category == NODE_CATEGORY) { // page 0 global context
var sug = [];
@ -148,16 +149,16 @@ event_inherited();
array_append(sug, nodeReleatedQuery("context", instanceof(context)));
if(!array_empty(sug)) {
ds_list_add(node_list, "Related");
array_push(node_list, "Related");
for( var i = 0, n = array_length(sug); i < n; i++ ) {
var k = array_safe_get_fast(sug, i);
if(k == 0) continue;
if(struct_has(ALL_NODES, k))
ds_list_add(node_list, ALL_NODES[$ k]);
array_push(node_list, ALL_NODES[$ k]);
}
}
ds_list_add(node_list, "Favourites");
array_push(node_list, "Favourites");
var _favs = struct_get_names(global.FAV_NODES);
for( var i = 0, n = array_length(_favs); i < n; i++ ) {
var _nodeIndex = _favs[i];
@ -165,10 +166,10 @@ event_inherited();
var _node = ALL_NODES[$ _nodeIndex];
if(_node.show_in_recent)
ds_list_add(node_list, _node);
array_push(node_list, _node);
}
ds_list_add(node_list, "Recents");
array_push(node_list, "Recents");
if(is_array(global.RECENT_NODES))
for( var i = 0, n = array_length(global.RECENT_NODES); i < n; i++ ) {
var _nodeIndex = global.RECENT_NODES[i];
@ -176,16 +177,16 @@ event_inherited();
var _node = ALL_NODES[$ _nodeIndex];
if(_node.show_in_recent)
ds_list_add(node_list, _node);
array_push(node_list, _node);
}
} else {
var _l = category[| ADD_NODE_PAGE].list;
for( var i = 0, n = ds_list_size(_l); i < n; i++ )
ds_list_add(node_list, _l[| i]);
var _l = category[ADD_NODE_PAGE].list;
for( var i = 0, n = array_length(_l); i < n; i++ )
array_push(node_list, _l[i]);
}
for( var i = 0, n = ds_list_size(node_list); i < n; i++ ) {
var _node = node_list[| i];
for( var i = 0, n = array_length(node_list); i < n; i++ ) {
var _node = node_list[i];
if(!is_string(_node)) continue;
if(string_starts_with(_node, "/")) continue;
@ -338,13 +339,13 @@ event_inherited();
var start = category == NODE_CATEGORY? -2 : 0;
for(var i = start; i < ds_list_size(category); i++) {
for(var i = start; i < array_length(category); i++) {
var name = "";
if(i == -2) name = "All";
else if(i == -1) name = "New";
else {
var cat = category[| i];
var cat = category[i];
name = cat.name;
if(array_length(cat.filter)) {
@ -463,12 +464,11 @@ event_inherited();
var _hover = sHOVER && content_pane.hover;
var _focus = sFOCUS && content_pane.active;
var _list = ds_list_create();
var _list = [];
var ww = content_pane.surface_w;
var hh = 0;
if(node_list == noone) {
ds_list_destroy(_list);
setPage(NODE_PAGE_DEFAULT);
return 0;
}
@ -476,24 +476,24 @@ event_inherited();
var _subg_cur = -1;
subgroups_size = array_create(array_length(subgroups), 0);
for( var i = 0, n = ds_list_size(node_list); i < n; i++ ) {
var _n = node_list[| i];
for( var i = 0, n = array_length(node_list); i < n; i++ ) {
var _n = node_list[i];
if(!checkValid(_n)) continue;
if(PREFERENCES.dialog_add_node_grouping != 2 || array_empty(subgroups)) {
ds_list_add(_list, _n);
array_push(_list, _n);
continue;
}
if(is_string(_n) && !string_starts_with(_n, "/"))
_subg_cur++
else if(_subg_cur == subgroup_index)
ds_list_add(_list, _n);
array_push(_list, _n);
if(is(_n, NodeObject) && _subg_cur >= 0) subgroups_size[_subg_cur]++;
}
var node_count = ds_list_size(_list);
var node_count = array_length(_list);
var group_labels = [];
var _hoverContent = _hover;
var _lbh = PREFERENCES.dialog_add_node_grouping == 1? ui(24) : ui(16);
@ -515,7 +515,7 @@ event_inherited();
grid_width = round(ww - grid_space) / col - grid_space;
for(var index = 0; index < node_count; index++) {
var _node = _list[| index];
var _node = _list[index];
if(is_undefined(_node)) continue;
if(is_instanceof(_node, NodeObject)) {
if(_node.patreon && !IS_PATREON) continue;
@ -540,7 +540,7 @@ event_inherited();
yy += _lbh + ui(4);
while(index + 1 < node_count) {
var _s = _list[| index + 1];
var _s = _list[index + 1];
if(is_string(_s) && (!string_starts_with(_s, "/") || PREFERENCES.dialog_add_node_grouping == 2)) break;
index++;
@ -699,7 +699,7 @@ event_inherited();
hh += list_height;
for(var i = 0; i < node_count; i++) {
var _node = _list[| i];
var _node = _list[i];
if(is_undefined(_node)) continue;
if(is_instanceof(_node, NodeObject)) {
if(_node.patreon && !IS_PATREON) continue;
@ -722,7 +722,7 @@ event_inherited();
yy += _lbh;
while(i + 1 < node_count) {
var _s = _list[| i + 1];
var _s = _list[i + 1];
if(is_string(_s) && (!string_starts_with(_s, "/") || PREFERENCES.dialog_add_node_grouping == 2)) break;
i++;
@ -864,7 +864,6 @@ event_inherited();
}
}
ds_list_destroy(_list);
if(mouse_release(mb_left)) left_free = true;
return hh;
@ -899,8 +898,8 @@ event_inherited();
#endregion
#region search
search_string = "";
search_list = ds_list_create();
search_string = "";
search_list = [];
KEYBOARD_RESET
tb_search = new textBox(TEXTBOX_INPUT.text, function(str) /*=>*/ { search_string = string(str); searchNodes(); })
@ -909,15 +908,15 @@ event_inherited();
WIDGET_CURRENT = tb_search;
function searchNodes() {
ds_list_clear(search_list);
search_list = [];
var pr_list = ds_priority_create();
var search_lower = string_lower(search_string);
var search_split = string_split(search_lower, " ", true);
var search_map = ds_map_create();
for(var i = 0; i < ds_list_size(category); i++) {
var cat = category[| i];
for(var i = 0; i < array_length(category); i++) {
var cat = category[i];
if(!struct_has(cat, "list"))
continue;
@ -926,14 +925,14 @@ event_inherited();
continue;
var _content = cat.list;
for(var j = 0; j < ds_list_size(_content); j++) {
var _node = _content[| j];
for(var j = 0; j < array_length(_content); j++) {
var _node = _content[j];
if(is_string(_node)) continue;
if(ds_map_exists(search_map, _node)) continue;
var match = string_partial_match_res(string_lower(_node.getName()), search_lower, search_split);
if(is_instanceof(_node, NodeObject)) {
if(_node.deprecated) continue;
if(match[0] > -9000 && struct_exists(global.FAV_NODES, _node.nodeName))
@ -961,7 +960,7 @@ event_inherited();
searchCollection(pr_list, search_string, false);
repeat(ds_priority_size(pr_list))
ds_list_add(search_list, ds_priority_delete_max(pr_list));
array_push(search_list, ds_priority_delete_max(pr_list));
ds_priority_destroy(pr_list);
}
@ -970,7 +969,7 @@ event_inherited();
draw_clear_alpha(c_white, 0);
var equation = string_char_at(search_string, 0) == "=";
var amo = ds_list_size(search_list);
var amo = array_length(search_list);
var hh = 0;
var _hover = sHOVER && search_pane.hover;
@ -1008,7 +1007,7 @@ event_inherited();
hh += (grid_space + grid_size) * 2;
for(var i = 0; i < amo; i++) {
var s_res = search_list[| i];
var s_res = search_list[i];
var _node = noone;
var _param = {};
var _query = "";
@ -1154,7 +1153,7 @@ event_inherited();
var ind = 0;
for(var i = 0; i < amo; i++) {
var s_res = search_list[| i];
var s_res = search_list[i];
var yy = sy + list_height * ind;
var _node = noone;
var _param = {};

View file

@ -1,5 +1,4 @@
/// @description
event_inherited();
ds_list_destroy(node_list);
WIDGET_CURRENT = noone;

View file

@ -1,219 +0,0 @@
function Node_create_Custom(_x, _y, _group = noone, _param = {}) {
if(!struct_has(_param, "path")) return noone;
var node = new Node_Custom(_x, _y, _group);
if(!node.setPath(_param.path)) return noone;
return node;
}
function Node_create_Custom_path(_x, _y, path) {
if(!file_exists_empty(path)) return noone;
var node = new Node_Custom(_x, _y, PANEL_GRAPH.getCurrentContext());
if(!node.setPath(path)) return noone;
return node;
}
function Node_Custom(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Custom";
path = "";
info = {};
shader = {
vs: noone,
fs: noone,
};
input_index_map = ds_map_create();
output_index_map = ds_map_create();
surface_in_index = 0;
surface_out_index = 0;
static setPath = function(_path) {
var _info = _path + "/info.json";
if(!file_exists_empty(_info)) return false;
info = json_load_struct(_info);
path = _path;
name = info.name;
setDisplayName(name);
shader.vs = d3d11_shader_compile_vs($"{path}/{info.shader_vs}", "main", "vs_4_0");
if(!d3d11_shader_exists(shader.vs)) noti_warning(d3d11_get_error_string());
shader.fs = d3d11_shader_compile_ps($"{path}/{info.shader_fs}", "main", "ps_4_0");
if(!d3d11_shader_exists(shader.fs)) noti_warning(d3d11_get_error_string());
inputs = [];
outputs = [];
for( var i = 0, n = array_length(info.inputs); i < n; i++ ) {
var _input = info.inputs[i];
newInput(i, nodeValue(_input.name, self, CONNECT_TYPE.input, value_type_from_string(_input.type), _input.value))
.setVisible(_input.show_in_inspector, _input.show_in_graph);
input_index_map[? _input.name] = i;
for( var j = 0, m = array_length(_input.flags); j < m; j++ ) {
switch(_input.flags[j]) {
case "SURFACE_IN" : surface_in_index = i; break;
}
}
}
for( var i = 0, n = array_length(info.outputs); i < n; i++ ) {
var _output = info.outputs[i];
newOutput(i, nodeValue_Output(_output.name, self, value_type_from_string(_output.type), _output.value))
.setVisible(_output.show_in_graph);
output_index_map[? _output.name] = i;
for( var j = 0, m = array_length(_output.flags); j < m; j++ ) {
switch(_output.flags[j]) {
case "SURFACE_OUT" : surface_out_index = i; break;
}
}
}
}
static processData = function(_output, _data, _output_index, _array_index = 0) { #region
if(!d3d11_shader_exists(shader.vs)) return noone;
if(!d3d11_shader_exists(shader.fs)) return noone;
var _surf = _data[surface_in_index];
_output = surface_verify(_output, surface_get_width_safe(_surf), surface_get_height_safe(_surf));
surface_set_target(_output);
DRAW_CLEAR
d3d11_shader_override_vs(shader.vs);
d3d11_shader_override_ps(shader.fs);
var uTypes = array_create(8, 0);
var sampler_slot = 1;
d3d11_cbuffer_begin();
var _buffer = buffer_create(1, buffer_grow, 1);
var _cbSize = 0;
for( var i = 0, n = array_length(info.uniforms); i < n; i++ ) {
var _u = info.uniforms[i];
var _index = input_index_map[? _u.input_name];
var _uname = _u.name;
var _utype = _u.type;
var _value = _data[_index];
switch(_utype) {
case 1 :
d3d11_cbuffer_add_int(1);
_cbSize++;
buffer_write(_buffer, buffer_s32, _value);
break;
case 0 :
d3d11_cbuffer_add_float(1);
_cbSize++;
buffer_write(_buffer, buffer_f32, _value);
break;
case 2 :
case 3 :
case 4 :
case 5 :
case 6 :
if(is_array(_value)) {
d3d11_cbuffer_add_float(array_length(_value));
_cbSize += array_length(_value);
for( var j = 0, m = array_length(_value); j < m; j++ )
buffer_write(_buffer, buffer_f32, _value[j]);
}
break;
case 8 :
var _clr = colToVec4(_value);
d3d11_cbuffer_add_float(4);
_cbSize += 4;
for( var j = 0, m = 4; j < m; j++ )
buffer_write(_buffer, buffer_f32, _clr[i]);
break;
case 7 :
if(is_surface(_value))
d3d11_texture_set_stage_ps(sampler_slot, surface_get_texture(_value));
sampler_slot++;
break;
}
}
d3d11_cbuffer_add_float(4 - _cbSize % 4);
var cbuff = d3d11_cbuffer_end();
d3d11_cbuffer_update(cbuff, _buffer);
buffer_delete(_buffer);
d3d11_shader_set_cbuffer_ps(10, cbuff);
matrix_set(matrix_world, matrix_build(0, 0, 0, 0, 0, 0,
surface_get_width_safe(_surf), surface_get_height_safe(_surf), 1));
vertex_submit(global.HLSL_VB_PLANE, pr_trianglestrip, surface_get_texture(_surf));
matrix_set(matrix_world, matrix_build_identity());
d3d11_shader_override_vs(-1);
d3d11_shader_override_ps(-1);
surface_reset_target();
return _output;
} #endregion
}
function __initNodeCustom(list) { #region
var root = DIRECTORY + "Nodes";
directory_verify(root);
root += "/Custom";
directory_verify(root);
var f = file_find_first(root + "/*", fa_directory);
while (f != "") {
var _dir_raw = $"{root}/{f}";
f = file_find_next();
if(!directory_exists(_dir_raw)) continue;
var _dir = _dir_raw + "/";
var _info = json_load_struct(_dir + "info.json");
if(_info == noone) continue;
var _spr = sprite_add_center(_dir + _info.icon);
var _n = new NodeObject(_info.name, _spr, Node_Custom, _info.tooltip).setBuild(Node_create_Custom).setParam({ path: _dir });
var _tol = _dir + _info.tooltip_spr;
if(file_exists_empty(_tol)) _n.tooltip_spr = sprite_add(_tol, 0, false, false, 0, 0);
ds_list_add(list, _n);
if(_info.category != noone) {
var _cat = _info.location[0];
var _grp = _info.location[1];
var _ins = true;
for( var i = 0, n = ds_list_size(NODE_CATEGORY); i < n; i++ ) {
if(NODE_CATEGORY[| i].name != _cat) continue;
var _list = NODE_CATEGORY[| i].list;
var j = 0;
for( var m = ds_list_size(_list); j < m; j++ )
if(_list[| j] == _grp) break;
ds_list_insert(_list, j + 1, _n);
_ins = false;
break;
}
if(_ins) {
ds_list_add(_list, _grp);
ds_list_add(_list, _n);
}
}
}
file_find_close();
} #endregion

View file

@ -202,8 +202,9 @@ function array_insert_unique(arr, ind, val) {
function array_append(arr, arr0) {
INLINE
if(!is_array(arr)) return arr;
if(!is_array(arr0)) { array_push(arr, arr0); return arr; }
if(is_undefined(arr0)) return arr;
if(!is_array(arr)) return arr;
if(!is_array(arr0)) { array_push(arr, arr0); return arr; }
for( var i = 0, n = array_length(arr0); i < n; i++ )
array_push(arr, arr0[i]);

View file

@ -43,7 +43,7 @@
LATEST_VERSION = 1_18_00_0;
VERSION = 1_18_06_2;
SAVE_VERSION = 1_18_05_0;
VERSION_STRING = MAC? "1.18.003m" : "1.18.7.005";
VERSION_STRING = MAC? "1.18.003m" : "1.18.7.006";
BUILD_NUMBER = 1_18_06_5;
PREF_VERSION = 1_17_1;

View file

@ -134,8 +134,7 @@ function __initNodeActions() {
var root = $"{DIRECTORY}Nodes/Actions";
directory_verify(root);
ds_list_clear(NODE_ACTION_LIST);
ds_list_add(NODE_ACTION_LIST, new NodeAction_create());
NODE_ACTION_LIST = [ new NodeAction_create() ];
var f = file_find_first(root + "/*", 0), _f;
@ -146,27 +145,14 @@ function __initNodeActions() {
if(filename_ext(_f) != ".json") continue;
var _c = new NodeAction().deserialize($"{root}/{_f}");
ds_list_add(NODE_ACTION_LIST, _c);
array_push(NODE_ACTION_LIST, _c);
if(_c.location == noone) continue;
var _cat = array_safe_get(_c.location, 0, "");
var _grp = array_safe_get(_c.location, 1, "");
for( var i = 0, n = ds_list_size(NODE_CATEGORY); i < n; i++ ) {
var _category = NODE_CATEGORY[| i];
if(_category.name != _cat) continue;
var _list = _category.list;
var j = 0;
if(_grp != "")
for( var m = ds_list_size(_list); j < m; j++ )
if(_list[| j] == _grp) break;
ds_list_insert(_list, j + 1, _c);
break;
}
}
file_find_close();
}

View file

@ -0,0 +1,205 @@
#region shader cache
globalvar SHADER_CACHE;
SHADER_CACHE = {};
function shader_compile_vs(file) {
if(struct_has(SHADER_CACHE, file)) return SHADER_CACHE[$ file];
var _sh = d3d11_shader_compile_vs(file, "main", "vs_4_0");
SHADER_CACHE[$ file] = _sh;
return _sh;
}
function shader_compile_ps(file) {
if(struct_has(SHADER_CACHE, file)) return SHADER_CACHE[$ file];
var _sh = d3d11_shader_compile_ps(file, "main", "ps_4_0");
SHADER_CACHE[$ file] = _sh;
return _sh;
}
#endregion
function Node_Custom_Shader(_x, _y, _group = noone, _param = {}) : Node_Processor(_x, _y, _group) constructor {
itype = _param[$ "iname"] ?? noone;
shader_vs = noone;
shader_fs = noone;
sourceDir = _param[$ "sourceDir"] ?? "";
dataPath = _param[$ "data"] ?? "";
uniforms = [];
surface_in_index = 0;
var _infoPath = sourceDir + "/" + dataPath;
if(file_exists_empty(_infoPath)) {
var info = json_load_struct(_infoPath);
var _dir = sourceDir;
shader_vs = shader_compile_vs($"{_dir}/{info.shader_vs}");
if(!d3d11_shader_exists(shader_vs)) noti_warning(d3d11_get_error_string());
shader_fs = shader_compile_ps($"{_dir}/{info.shader_fs}");
if(!d3d11_shader_exists(shader_fs)) noti_warning(d3d11_get_error_string());
inputs = [];
outputs = [];
for( var i = 0, n = array_length(info.inputs); i < n; i++ ) {
var _input = info.inputs[i];
var _name = _input.name;
var _type = _input.type;
var _valu = _input.value;
var _showIns = _input[$ "show_in_inspector"] ?? true;
var _showGra = _input[$ "show_in_graph"] ?? false;
var _flag = _input[$ "flag"];
var _unif = _input[$ "uniform"];
var _n = noone;
switch(_type) {
case "surface" : _n = nodeValue(_name, self, CONNECT_TYPE.input, VALUE_TYPE.surface, _valu); break;
case "float" : _n = nodeValue(_name, self, CONNECT_TYPE.input, VALUE_TYPE.float, _valu); break;
case "int" : _n = nodeValue(_name, self, CONNECT_TYPE.input, VALUE_TYPE.integer, _valu); break;
case "color" : _n = nodeValue(_name, self, CONNECT_TYPE.input, VALUE_TYPE.color, _valu); break;
}
if(_flag == "SURFACE_IN") {
_showGra = true;
surface_in_index = i;
}
newInput(i, _n).setVisible(_showIns, _showGra);
if(_unif != undefined) {
array_push(uniforms, {
uniform: _unif,
type: _type,
index: i
});
}
}
for( var i = 0, n = array_length(info.outputs); i < n; i++ ) {
var _output = info.outputs[i];
var _name = _output.name;
var _type = _output.type;
var _valu = _output.value;
var _showGra = _output[$ "show_in_graph"] ?? false;
var _flag = _output[$ "flag"];
newOutput(i, nodeValue_Output(_name, self, value_type_from_string(_type), _valu)).setVisible(_showGra);
}
if(struct_has(info, "input_display")) input_display_list = info.input_display;
if(struct_has(info, "output_display")) output_display_list = info.output_display;
}
static processData = function(_output, _data, _output_index, _array_index = 0) {
if(!d3d11_shader_exists(shader_vs)) return noone;
if(!d3d11_shader_exists(shader_fs)) return noone;
var _surf = _data[surface_in_index];
_output = surface_verify(_output, surface_get_width_safe(_surf), surface_get_height_safe(_surf));
surface_set_target(_output);
DRAW_CLEAR
d3d11_shader_override_vs(shader_vs);
d3d11_shader_override_ps(shader_fs);
d3d11_cbuffer_begin();
var _buffer = buffer_create(1, buffer_grow, 1);
var _sample = 1;
var _cbSize = 0;
for( var i = 0, n = array_length(uniforms); i < n; i++ ) {
var _unif = uniforms[i];
var _index = _unif.index;
var _utype = _unif.type;
var _value = _data[_index];
switch(_utype) {
case "float" : // u_float
d3d11_cbuffer_add_float(1);
_cbSize++;
buffer_write(_buffer, buffer_f32, _value);
break;
case "int" : // u_int
d3d11_cbuffer_add_int(1);
_cbSize++;
buffer_write(_buffer, buffer_s32, _value);
break;
case "vec2" : // u_vec2
case "vec3" : // u_vec3
case "vec4" : // u_vec4
case "mat3" : // u_mat3
case "mat4" : // u_mat4
if(is_array(_value)) {
d3d11_cbuffer_add_float(array_length(_value));
_cbSize += array_length(_value);
for( var j = 0, m = array_length(_value); j < m; j++ )
buffer_write(_buffer, buffer_f32, _value[j]);
}
break;
case "surface" : // u_sampler2D
if(is_surface(_value))
d3d11_texture_set_stage_ps(_sample, surface_get_texture(_value));
_sample++;
break;
case "color" : // u_vec4 color
var _clr = colToVec4(_value);
d3d11_cbuffer_add_float(4);
_cbSize += 4;
for( var j = 0, m = 4; j < m; j++ )
buffer_write(_buffer, buffer_f32, _clr[i]);
break;
}
}
d3d11_cbuffer_add_float(4 - _cbSize % 4);
var cbuff = d3d11_cbuffer_end();
d3d11_cbuffer_update(cbuff, _buffer);
buffer_delete(_buffer);
d3d11_shader_set_cbuffer_ps(10, cbuff);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
d3d11_cbuffer_begin();
var _buffer = buffer_create(1, buffer_grow, 1);
var _cbSize = 0;
buffer_write(_buffer, buffer_f32, surface_get_width_safe(_surf));
buffer_write(_buffer, buffer_f32, surface_get_height_safe(_surf));
d3d11_cbuffer_add_float(2); _cbSize += 2;
d3d11_cbuffer_add_float(4 - _cbSize % 4);
var cbuff = d3d11_cbuffer_end();
d3d11_cbuffer_update(cbuff, _buffer);
buffer_delete(_buffer);
d3d11_shader_set_cbuffer_ps(4, cbuff);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
matrix_set(matrix_world, matrix_build(0, 0, 0, 0, 0, 0, surface_get_width_safe(_surf), surface_get_height_safe(_surf), 1));
vertex_submit(global.HLSL_VB_PLANE, pr_trianglestrip, surface_get_texture(_surf));
matrix_set(matrix_world, matrix_build_identity());
d3d11_shader_override_vs(-1);
d3d11_shader_override_ps(-1);
surface_reset_target();
return _output;
}
}

View file

@ -0,0 +1,13 @@
{
"$GMScript":"v1",
"%Name":"node_custom_shader",
"isCompatibility":false,
"isDnD":false,
"name":"node_custom_shader",
"parent":{
"name":"custom",
"path":"folders/nodes/data/misc/custom.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",
}

View file

@ -24,9 +24,11 @@
function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
#region ---- main & active ----
project = PROJECT;
itype = noone;
active = true;
renderActive = true;
@ -2409,7 +2411,7 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
_map.iname = internalName;
_map.x = x;
_map.y = y;
_map.type = instanceof(self);
_map.type = itype == noone? instanceof(self) : itype;
if(isTool) _map.tool = isTool;
if(group != noone) _map.group = group.node_id;

View file

@ -325,9 +325,7 @@ void main(in VertexShaderOutput _input, out PixelShaderOutput output) {
var _arg_valu = _data[i + 2];
if(_arg_name == "") continue;
var _uni = shader_get_uniform(shader.fs, _arg_name);
switch(_arg_type) {
case 0 : // u_float
d3d11_cbuffer_add_float(1);

View file

@ -1,16 +1,19 @@
#region globalvar
globalvar ALL_NODES, NODE_CATEGORY, NODE_PB_CATEGORY, NODE_PCX_CATEGORY;
globalvar SUPPORTER_NODES, NEW_NODES;
globalvar CUSTOM_NODES, CUSTOM_NODES_POSITION;
globalvar NODE_PAGE_DEFAULT;
globalvar NODE_ACTION_LIST;
CUSTOM_NODES_POSITION = {};
ALL_NODES = {};
NODE_CATEGORY = ds_list_create();
NODE_PB_CATEGORY = ds_list_create();
NODE_PCX_CATEGORY = ds_list_create();
SUPPORTER_NODES = ds_list_create();
NEW_NODES = ds_list_create();
NODE_CATEGORY = [];
NODE_PB_CATEGORY = [];
NODE_PCX_CATEGORY = [];
SUPPORTER_NODES = [];
NEW_NODES = [];
CUSTOM_NODES = [];
global.__currPage = "";
global.__currNewPage = "";
@ -45,6 +48,7 @@ function NodeObject(_name, _spr, _node, _tooltip = "") constructor {
spr = _spr;
node = _node;
icon = noone;
nodekey = "";
nodeName = script_get_name(node);
createFn = noone;
@ -63,7 +67,7 @@ function NodeObject(_name, _spr, _node, _tooltip = "") constructor {
show_in_global = true;
patreon = array_exists(global.PATREON_NODES, node);
if(patreon) ds_list_add(SUPPORTER_NODES, self);
if(patreon) array_push(SUPPORTER_NODES, self);
testable = true;
@ -110,11 +114,11 @@ function NodeObject(_name, _spr, _node, _tooltip = "") constructor {
if(new_node) {
if(global.__currPage != global.__currNewPage) {
ds_list_add(NEW_NODES, global.__currPage);
array_push(NEW_NODES, global.__currPage);
global.__currNewPage = global.__currPage;
}
ds_list_add(NEW_NODES, self);
array_push(NEW_NODES, self);
}
return self;
}
@ -171,8 +175,15 @@ function NodeObject(_name, _spr, _node, _tooltip = "") constructor {
static build = function(_x = 0, _y = 0, _group = PANEL_GRAPH.getCurrentContext(), _param = {}) {
INLINE
if(createParam != noone) struct_append(_param, createParam);
var _node = createFn == noone? new node(_x, _y, _group, _param) : createFn(_x, _y, _group, _param);
if(createParam != noone) {
struct_append(_param, createParam);
_param.sourceDir = sourceDir;
_param.iname = nodekey;
}
var _node = createFn == noone? new node(_x, _y, _group, _param) : createFn(_x, _y, _group, _param);
_node.name = name;
return _node;
}
@ -343,6 +354,19 @@ function NodeObject(_name, _spr, _node, _tooltip = "") constructor {
if(struct_has(_data, "pxc_version"))
setVersion(_data.pxc_version);
if(struct_has(_data, "params"))
setParam(_data.params);
if(struct_has(_data, "position")) {
for( var i = 0, n = array_length(_data.position); i < n; i++ ) {
var pos = _data.position[i];
if(struct_has(CUSTOM_NODES_POSITION, pos))
array_push(CUSTOM_NODES_POSITION[$ pos], self);
else
CUSTOM_NODES_POSITION[$ pos] = [ self ];
}
}
return self;
}
}
@ -361,9 +385,9 @@ function nodeBuild(_name, _x, _y, _group = PANEL_GRAPH.getCurrentContext()) {
return _bnode;
}
function addNodeCatagory( name, list, filter = [], color = noone) { ds_list_add(NODE_CATEGORY, { name, list, filter, color }); global.__currPage = name; }
function addNodePBCatagory( name, list, filter = []) { ds_list_add(NODE_PB_CATEGORY, { name, list, filter }); }
function addNodePCXCatagory( name, list, filter = []) { ds_list_add(NODE_PCX_CATEGORY, { name, list, filter }); }
function addNodeCatagory( name, list, filter = [], color = noone) { array_push(NODE_CATEGORY, { name, list, filter, color }); global.__currPage = name; }
function addNodePBCatagory( name, list, filter = []) { array_push(NODE_PB_CATEGORY, { name, list, filter }); }
function addNodePCXCatagory( name, list, filter = []) { array_push(NODE_PCX_CATEGORY, { name, list, filter }); }
////- Nodes
@ -397,6 +421,7 @@ function __read_node_folder(dir) {
var _base = _data[$ "baseNode"];
var _inme = _data[$ "iname"] ?? _base;
var _spr = _data[$ "spr"];
var _custom = _data[$ "custom"] ?? false;
if(is_undefined(_base)) {
print($"NODE ERROR: baseNode not found in {_info}.");
@ -416,40 +441,51 @@ function __read_node_folder(dir) {
var _node = asset_get_index(_base);
var _n = new NodeObject(_name, _spr, _node);
_n.nodekey = _inme;
_n.deserialize(_data, dir);
ALL_NODES[$ _inme] = _n;
if(_custom) array_push(CUSTOM_NODES, _n);
return _n;
}
function __read_node_display(_list, _addCat) {
for( var i = 0, n = array_length(_list); i < n; i++ ) {
var _dl = _list[i];
var _name = _dl.name;
var _iname = _dl[$ "iname"] ?? _name;
var _filter = _dl[$ "context"] ?? [];
var _color = noone;
var _kname = _iname;
if(struct_has(_dl, "color")) _color = COLORS[$ _dl.color];
var _l = ds_list_create();
var _nodes = _dl.nodes;
var _l = [];
var _head = "";
var _lab = "";
_addCat(_name, _l, _filter, _color);
var _nodes = _dl.nodes;
for( var j = 0, m = array_length(_nodes); j < m; j++ ) {
var _n = _nodes[j];
if(is_string(_n)) {
if(struct_has(ALL_NODES, _n))
ds_list_add(_l, ALL_NODES[$ _n]);
continue;
}
if(is_struct(_n)) {
if(struct_has(_n, "label"))
ds_list_add(_l, _n.label);
if(is_string(_n) && struct_has(ALL_NODES, _n)) array_push(_l, ALL_NODES[$ _n]);
if(is_struct(_n) && struct_has(_n, "label")) {
var _k = _kname; if(_head != "") _k += "/" + _head; if(_lab != "") _k += "/" + _lab;
array_append(_l, CUSTOM_NODES_POSITION[$ _k]);
if(!string_starts_with(_n.label, "/")) _head = _n.label;
else _lab = string_trim_start(_n.label, ["/"]);
array_push(_l, _n.label);
}
}
var _k = _kname; if(_head != "") _k += "/" + _head; if(_lab != "") _k += "/" + _lab;
array_append(_l, CUSTOM_NODES_POSITION[$ _k]);
}
}
@ -459,6 +495,7 @@ function __initNodes() {
global.__startPage = 0;
global.FAV_NODES = {};
CUSTOM_NODES_POSITION = {};
NODE_PAGE_DEFAULT = 0;
ADD_NODE_PAGE = 0;
@ -468,7 +505,7 @@ function __initNodes() {
if(check_version($"{DIRECTORY}Nodes/version"))
zip_unzip("data/Nodes/Internal.zip", $"{DIRECTORY}Nodes");
__read_node_directory($"{DIRECTORY}Nodes/Internal");
__read_node_directory($"{DIRECTORY}Nodes");
if(IS_CMD) return;
@ -481,11 +518,11 @@ function __initNodes() {
var _data = json_load_struct(_relTo);
__read_node_display(_data.list, addNodeCatagory);
NODE_ACTION_LIST = ds_list_create();
addNodeCatagory("Action", NODE_ACTION_LIST);
__initNodeActions();
addNodeCatagory("Action", NODE_ACTION_LIST);
if(IS_PATREON) addNodeCatagory("Extra", SUPPORTER_NODES);
if(!array_empty(CUSTOM_NODES)) addNodeCatagory("Custom", CUSTOM_NODES);
__read_node_display(_data.pb, addNodePBCatagory);
__read_node_display(_data.pcx, addNodePCXCatagory);
@ -507,15 +544,15 @@ function __initNodes() {
function __generateNodeData() {
var _dir = "D:/Project/MakhamDev/LTS-PixelComposer/PixelComposer/datafiles/data/Nodes/Internal"
for( var i = 0, n = ds_list_size(NODE_CATEGORY); i < n; i++ ) {
var _cat = NODE_CATEGORY[| i];
for( var i = 0, n = array_length(NODE_CATEGORY); i < n; i++ ) {
var _cat = NODE_CATEGORY[i];
var _lnme = _cat.name;
var _list = _cat.list;
directory_verify($"{_dir}/{_lnme}");
for( var j = 0, m = ds_list_size(_list); j < m; j++ ) {
var _node = _list[| j];
for( var j = 0, m = array_length(_list); j < m; j++ ) {
var _node = _list[j];
if(!is(_node, NodeObject)) continue;
var _nme = _node.nodeName;
@ -527,15 +564,15 @@ function __generateNodeData() {
}
}
for( var i = 0, n = ds_list_size(NODE_PB_CATEGORY); i < n; i++ ) {
var _cat = NODE_PB_CATEGORY[| i];
for( var i = 0, n = array_length(NODE_PB_CATEGORY); i < n; i++ ) {
var _cat = NODE_PB_CATEGORY[i];
var _lnme = _cat.name;
var _list = _cat.list;
directory_verify($"{_dir}/{_lnme}");
for( var j = 0, m = ds_list_size(_list); j < m; j++ ) {
var _node = _list[| j];
for( var j = 0, m = array_length(_list); j < m; j++ ) {
var _node = _list[j];
if(!is(_node, NodeObject)) continue;
var _nme = _node.nodeName;
@ -547,15 +584,15 @@ function __generateNodeData() {
}
}
for( var i = 0, n = ds_list_size(NODE_PCX_CATEGORY); i < n; i++ ) {
var _cat = NODE_PCX_CATEGORY[| i];
for( var i = 0, n = array_length(NODE_PCX_CATEGORY); i < n; i++ ) {
var _cat = NODE_PCX_CATEGORY[i];
var _lnme = _cat.name;
var _list = _cat.list;
directory_verify($"{_dir}/{_lnme}");
for( var j = 0, m = ds_list_size(_list); j < m; j++ ) {
var _node = _list[| j];
for( var j = 0, m = array_length(_list); j < m; j++ ) {
var _node = _list[j];
if(!is(_node, NodeObject)) continue;
var _nme = _node.nodeName;

View file

@ -0,0 +1,12 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "process",
"path": "folders/nodes/data/process.yy",
},
"resourceVersion": "1.0",
"name": "node_color_adjustment",
"tags": [],
"resourceType": "GMScript",
}

View file

@ -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",
}

View file

@ -0,0 +1,12 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "process",
"path": "folders/nodes/data/process.yy",
},
"resourceVersion": "1.0",
"name": "node_glow",
"tags": [],
"resourceType": "GMScript",
}

View file

@ -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",
}

View file

@ -0,0 +1,127 @@
// function Node_Blur(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
// name = "Blur";
// newInput(0, nodeValue_Surface("Surface in", self));
// newInput(1, nodeValue_Int("Size", self, 3))
// .setValidator(VV_min(0))
// .setUnitRef((index) => getDimension(index));
// newInput(2, nodeValue_Enum_Scroll("Oversample mode", self, 0, [ "Empty", "Clamp", "Repeat" ]))
// .setTooltip("How to deal with pixel outside the surface.\n - Empty: Use empty pixel\n - Clamp: Repeat edge pixel\n - Repeat: Repeat texture.");
// newInput(3, nodeValue_Bool("Override color", self, false, "Replace all color while keeping the alpha. Used to\nfix grey outline when bluring transparent pixel."));
// newInput(4, nodeValue_Color("Color", self, cola(c_black)));
// newInput(5, nodeValue_Surface("Mask", self));
// newInput(6, nodeValue_Float("Mix", self, 1))
// .setDisplay(VALUE_DISPLAY.slider);
// newInput(7, nodeValue_Bool("Active", self, true));
// active_index = 7;
// newInput(8, nodeValue_Toggle("Channel", self, 0b1111, { data: array_create(4, THEME.inspector_channel) }));
// __init_mask_modifier(5); // inputs 9, 10
// newInput(11, nodeValue_Bool("Gamma Correction", self, false));
// newInput(12, nodeValue_Float("Aspect Ratio", self, 1))
// .setDisplay(VALUE_DISPLAY.slider);
// newInput(13, nodeValue_Rotation("Direction", self, 0));
// newOutput(0, nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone));
// input_display_list = [ 7, 8,
// ["Surfaces", true], 0, 5, 6, 9, 10,
// ["Blur", false], 1, 3, 4, 11,
// ["Directional", true], 12, 13,
// ];
// temp_surface = [ 0, 0 ];
// attribute_surface_depth();
// attribute_oversample();
// surface_blur_init();
// static step = function() {
// __step_mask_modifier();
// }
// static processData = function(_outSurf, _data, _output_index, _array_index) {
// var _surf = _data[0];
// var _size = min(128, _data[1]);
// var _clamp = getAttribute("oversample");
// var _isovr = _data[3];
// var _mask = _data[5];
// var _mix = _data[6];
// var _overc = _isovr? _data[4] : noone;
// var _gam = _data[11];
// var _aspc = _data[12];
// var _dirr = _data[13];
// inputs[4].setVisible(_isovr);
// if(!is_surface(_surf)) return _outSurf;
// var format = surface_get_format(_surf);
// var _sw = surface_get_width_safe(_surf);
// var _sh = surface_get_height_safe(_surf);
// for(var i = 0; i < 2; i++)
// temp_surface[i] = surface_verify(temp_surface[i], _sw, _sh, format);
// BLEND_OVERRIDE
// gpu_set_tex_filter(true);
// surface_set_target(temp_surface[0]);
// draw_clear_alpha(c_white, false);
// shader_set(sh_blur_gaussian);
// shader_set_f("dimension", [ _sw, _sh ]);
// shader_set_f("weight", __gaussian_get_kernel(_size));
// shader_set_i("sampleMode", _clamp);
// shader_set_i("size", _size);
// shader_set_i("horizontal", 1);
// shader_set_i("gamma", _gam);
// shader_set_i("overrideColor", _overc != noone);
// shader_set_f("overColor", colToVec4(_overc));
// shader_set_f("angle", degtorad(_dirr));
// draw_surface_safe(_surf);
// shader_reset();
// surface_reset_target();
// surface_set_target(temp_surface[1]);
// draw_clear_alpha(c_white, false);
// var _size_v = round(_size * _aspc);
// shader_set(sh_blur_gaussian);
// shader_set_f("weight", __gaussian_get_kernel(_size_v));
// shader_set_i("size", _size_v);
// shader_set_i("horizontal", 0);
// draw_surface_safe(temp_surface[0]);
// shader_reset();
// surface_reset_target();
// gpu_set_tex_filter(false);
// surface_set_target(_outSurf);
// draw_clear_alpha(_isovr? _overc : 0, 0);
// draw_surface_safe(temp_surface[1]);
// surface_reset_target();
// BLEND_NORMAL
// __process_mask_modifier(_data);
// _outSurf = mask_apply(_data[0], _outSurf, _mask, _mix);
// _outSurf = channel_apply(_data[0], _outSurf, _data[8]);
// return _outSurf;
// }
// }

View file

@ -1,12 +1,12 @@
{
"$GMScript":"v1",
"%Name":"__node_custom",
"%Name":"node_test_blur",
"isCompatibility":false,
"isDnD":false,
"name":"__node_custom",
"name":"node_test_blur",
"parent":{
"name":"misc",
"path":"folders/nodes/data/misc.yy",
"name":"debugging",
"path":"folders/misc/debugging.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",

View file

@ -232,20 +232,20 @@ function Panel_Collection() : PanelContent() constructor {
var pr_list = ds_priority_create();
var search_map = ds_map_create();
for(var i = 0; i < ds_list_size(NODE_CATEGORY); i++) {
var cat = NODE_CATEGORY[| i];
for(var i = 0; i < array_length(NODE_CATEGORY); i++) {
var cat = NODE_CATEGORY[i];
if(!struct_has(cat, "list")) continue;
if(!array_empty(cat.filter)) continue;
var _content = cat.list;
for(var j = 0; j < ds_list_size(_content); j++) {
var _node = _content[| j];
for(var j = 0; j < array_length(_content); j++) {
var _node = _content[j];
if(is_string(_node)) continue;
if(ds_map_exists(search_map, _node)) continue;
if(!is_instanceof(_node, NodeObject)) continue;
if(_node.patreon && !IS_PATREON) continue;
if(_node.patreon && !IS_PATREON) continue;
if(_node.deprecated) continue;
var match = string_partial_match(string_lower(_node.getName()), search_lower);
@ -566,12 +566,11 @@ function Panel_Collection() : PanelContent() constructor {
var _hov = pHOVER && nodeListPane.hover;
var _foc = pFOCUS;
for (var i = 0, n = ds_list_size(NODE_CATEGORY); i < n; i++) {
var _cat = NODE_CATEGORY[| i];
for (var i = 0, n = array_length(NODE_CATEGORY); i < n; i++) {
var _cat = NODE_CATEGORY[i];
var _nam = _cat.name;
var _fil = _cat.filter;
if(!array_empty(_fil)) continue;
if(!array_empty(_fil)) continue;
var _y0 = _y;
var _y1 = _y + _hg;
@ -596,8 +595,8 @@ function Panel_Collection() : PanelContent() constructor {
nodecontentPane = new scrollPane(content_w - ui(8), content_h - ui(4), function(_y, _m) {
draw_clear_alpha(COLORS.panel_bg_clear_inner, 1);
var hh = ui(0);
var _cat = NODE_CATEGORY[| nodeListPane_page];
var _list = _cat.list;
var _cat = NODE_CATEGORY[nodeListPane_page];
var _list;
if(searching) {
_list = search_list;
@ -615,7 +614,15 @@ function Panel_Collection() : PanelContent() constructor {
ds_list_add(node_temp_list, _node);
}
_list = node_temp_list;
}
} else {
ds_list_clear(node_temp_list);
for( var i = 0, n = array_length(_cat.list); i < n; i++ )
ds_list_add(node_temp_list, _cat.list[i]);
_list = nodeTempList;
}
var grid_width = PREFERENCES.collection_label? max(ui(40), round(grid_size * 1.25)) : grid_size;
var node_count = ds_list_size(_list);

View file

@ -0,0 +1,10 @@
//
// Simple passthrough fragment shader
//
varying vec2 v_vTexcoord;
varying vec4 v_vColour;
void main()
{
gl_FragColor = v_vColour * texture2D( gm_BaseTexture, v_vTexcoord );
}

View file

@ -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;
}

View file

@ -0,0 +1,12 @@
{
"$GMShader":"",
"%Name":"sh_test_blur",
"name":"sh_test_blur",
"parent":{
"name":"debugging",
"path":"folders/misc/debugging.yy",
},
"resourceType":"GMShader",
"resourceVersion":"2.0",
"type":1,
}