This commit is contained in:
Tanasart 2024-03-14 20:35:19 +07:00
parent d0528c4c81
commit 15586cc767
312 changed files with 1593 additions and 1058 deletions

View file

@ -307,7 +307,6 @@
{"name":"node_region_fill","order":1,"path":"scripts/node_region_fill/node_region_fill.yy",},
{"name":"sh_mk_tile55_edge_r","order":7,"path":"shaders/sh_mk_tile55_edge_r/sh_mk_tile55_edge_r.yy",},
{"name":"sh_d3d_normal","order":18,"path":"shaders/sh_d3d_normal/sh_d3d_normal.yy",},
{"name":"s_node_text_file_read","order":13,"path":"sprites/s_node_text_file_read/s_node_text_file_read.yy",},
{"name":"s_node_text_trim","order":7,"path":"sprites/s_node_text_trim/s_node_text_trim.yy",},
{"name":"s_node_pb_fx_shading","order":3,"path":"sprites/s_node_pb_fx_shading/s_node_pb_fx_shading.yy",},
{"name":"sh_noise_grid_hex","order":2,"path":"shaders/sh_noise_grid_hex/sh_noise_grid_hex.yy",},
@ -322,6 +321,7 @@
{"name":"o_dialog_menubox","order":2,"path":"objects/o_dialog_menubox/o_dialog_menubox.yy",},
{"name":"s_node_blend","order":7,"path":"sprites/s_node_blend/s_node_blend.yy",},
{"name":"node_wrap_perspective","order":15,"path":"scripts/node_wrap_perspective/node_wrap_perspective.yy",},
{"name":"s_node_json_file_write","order":32,"path":"sprites/s_node_json_file_write/s_node_json_file_write.yy",},
{"name":"s_node_rigidSim_object_spawner","order":5,"path":"sprites/s_node_rigidSim_object_spawner/s_node_rigidSim_object_spawner.yy",},
{"name":"node_pb_draw_round_rectangle","order":4,"path":"scripts/node_pb_draw_round_rectangle/node_pb_draw_round_rectangle.yy",},
{"name":"draw_text_function","order":10,"path":"scripts/draw_text_function/draw_text_function.yy",},
@ -446,6 +446,7 @@
{"name":"FirebaseREST_asyncFunction_Firestore","order":4,"path":"scripts/FirebaseREST_asyncFunction_Firestore/FirebaseREST_asyncFunction_Firestore.yy",},
{"name":"sh_corner_erode","order":1,"path":"shaders/sh_corner_erode/sh_corner_erode.yy",},
{"name":"node_outline","order":11,"path":"scripts/node_outline/node_outline.yy",},
{"name":"s_node_byte_file_read","order":28,"path":"sprites/s_node_byte_file_read/s_node_byte_file_read.yy",},
{"name":"sh_mesh_generation","order":4,"path":"shaders/sh_mesh_generation/sh_mesh_generation.yy",},
{"name":"math_function","order":7,"path":"scripts/math_function/math_function.yy",},
{"name":"panel_preview_snap_setting","order":5,"path":"scripts/panel_preview_snap_setting/panel_preview_snap_setting.yy",},
@ -874,6 +875,7 @@
{"name":"sh_kuwahara","order":51,"path":"shaders/sh_kuwahara/sh_kuwahara.yy",},
{"name":"sh_grey_alpha","order":12,"path":"shaders/sh_grey_alpha/sh_grey_alpha.yy",},
{"name":"node_mk_cable","order":4,"path":"scripts/node_mk_cable/node_mk_cable.yy",},
{"name":"s_node_json_file_read","order":33,"path":"sprites/s_node_json_file_read/s_node_json_file_read.yy",},
{"name":"s_node_time_map","order":36,"path":"sprites/s_node_time_map/s_node_time_map.yy",},
{"name":"node_crop","order":7,"path":"scripts/node_crop/node_crop.yy",},
{"name":"s_biterator_tab_content","order":14,"path":"sprites/s_biterator_tab_content/s_biterator_tab_content.yy",},
@ -899,6 +901,7 @@
{"name":"node_VFX_repel","order":4,"path":"scripts/node_VFX_repel/node_VFX_repel.yy",},
{"name":"s_node_alpha_cut","order":3,"path":"sprites/s_node_alpha_cut/s_node_alpha_cut.yy",},
{"name":"sh_gamma_map","order":53,"path":"shaders/sh_gamma_map/sh_gamma_map.yy",},
{"name":"node_byte_file_write","order":21,"path":"scripts/node_byte_file_write/node_byte_file_write.yy",},
{"name":"node_iterator_length","order":4,"path":"scripts/node_iterator_length/node_iterator_length.yy",},
{"name":"node_VFX_attract","order":2,"path":"scripts/node_VFX_attract/node_VFX_attract.yy",},
{"name":"sh_d3d_ssao_blur","order":1,"path":"shaders/sh_d3d_ssao_blur/sh_d3d_ssao_blur.yy",},
@ -1058,7 +1061,6 @@
{"name":"dynaSurf_square_outline","order":3,"path":"scripts/dynaSurf_square_outline/dynaSurf_square_outline.yy",},
{"name":"node_3d_repeat","order":1,"path":"scripts/node_3d_repeat/node_3d_repeat.yy",},
{"name":"node_pb_fx_add","order":6,"path":"scripts/node_pb_fx_add/node_pb_fx_add.yy",},
{"name":"s_node_csv_file_write","order":8,"path":"sprites/s_node_csv_file_write/s_node_csv_file_write.yy",},
{"name":"s_node_csv_parse","order":15,"path":"sprites/s_node_csv_parse/s_node_csv_parse.yy",},
{"name":"sh_glow","order":19,"path":"shaders/sh_glow/sh_glow.yy",},
{"name":"sh_clean_shape","order":22,"path":"shaders/sh_clean_shape/sh_clean_shape.yy",},
@ -1104,7 +1106,6 @@
{"name":"sh_blend_overlay","order":15,"path":"shaders/sh_blend_overlay/sh_blend_overlay.yy",},
{"name":"node_sprite_stack","order":3,"path":"scripts/node_sprite_stack/node_sprite_stack.yy",},
{"name":"s_node_smokeSim_vortex","order":4,"path":"sprites/s_node_smokeSim_vortex/s_node_smokeSim_vortex.yy",},
{"name":"s_node_json_file_read","order":11,"path":"sprites/s_node_json_file_read/s_node_json_file_read.yy",},
{"name":"s_node_wavelet","order":34,"path":"sprites/s_node_wavelet/s_node_wavelet.yy",},
{"name":"s_workshop_badge_version","order":3,"path":"sprites/s_workshop_badge_version/s_workshop_badge_version.yy",},
{"name":"node_override_channel","order":2,"path":"scripts/node_override_channel/node_override_channel.yy",},
@ -1142,6 +1143,7 @@
{"name":"s_node_tunnel_in","order":21,"path":"sprites/s_node_tunnel_in/s_node_tunnel_in.yy",},
{"name":"s_node_pb_draw_trapezoid","order":10,"path":"sprites/s_node_pb_draw_trapezoid/s_node_pb_draw_trapezoid.yy",},
{"name":"sh_rd_render","order":2,"path":"shaders/sh_rd_render/sh_rd_render.yy",},
{"name":"s_node_csv_file_write","order":30,"path":"sprites/s_node_csv_file_write/s_node_csv_file_write.yy",},
{"name":"append_function","order":1,"path":"scripts/append_function/append_function.yy",},
{"name":"node_3dsurf","order":4,"path":"scripts/node_3dsurf/node_3dsurf.yy",},
{"name":"fd_rectangle_reset_target","order":17,"path":"scripts/fd_rectangle_reset_target/fd_rectangle_reset_target.yy",},
@ -1163,7 +1165,6 @@
{"name":"node_alpha_cutoff","order":10,"path":"scripts/node_alpha_cutoff/node_alpha_cutoff.yy",},
{"name":"sh_channel_R","order":4,"path":"shaders/sh_channel_R/sh_channel_R.yy",},
{"name":"draw_circle_functions","order":3,"path":"scripts/draw_circle_functions/draw_circle_functions.yy",},
{"name":"s_node_text_file_write","order":12,"path":"sprites/s_node_text_file_write/s_node_text_file_write.yy",},
{"name":"sliderRange","order":16,"path":"scripts/sliderRange/sliderRange.yy",},
{"name":"point_rect_overlap","order":2,"path":"scripts/point_rect_overlap/point_rect_overlap.yy",},
{"name":"s_node_bevel","order":6,"path":"sprites/s_node_bevel/s_node_bevel.yy",},
@ -1248,6 +1249,7 @@
{"name":"collection_data","order":9,"path":"scripts/collection_data/collection_data.yy",},
{"name":"s_node_flood_fill","order":24,"path":"sprites/s_node_flood_fill/s_node_flood_fill.yy",},
{"name":"json_compare","order":21,"path":"scripts/json_compare/json_compare.yy",},
{"name":"s_node_text_file_write","order":34,"path":"sprites/s_node_text_file_write/s_node_text_file_write.yy",},
{"name":"node_rigid_force_apply","order":4,"path":"scripts/node_rigid_force_apply/node_rigid_force_apply.yy",},
{"name":"checkboxActive","order":38,"path":"scripts/checkboxActive/checkboxActive.yy",},
{"name":"__node_shader","order":21,"path":"scripts/__node_shader/__node_shader.yy",},
@ -1259,6 +1261,7 @@
{"name":"s_node_array_get","order":3,"path":"sprites/s_node_array_get/s_node_array_get.yy",},
{"name":"d3d_bbox","order":8,"path":"scripts/d3d_bbox/d3d_bbox.yy",},
{"name":"s_node_mk_brownian","order":8,"path":"sprites/s_node_mk_brownian/s_node_mk_brownian.yy",},
{"name":"s_node_wav_file_write","order":29,"path":"sprites/s_node_wav_file_write/s_node_wav_file_write.yy",},
{"name":"Obj_FirebaseFirestore_Collection_Query_AscendingDescending","order":1,"path":"objects/Obj_FirebaseFirestore_Collection_Query_AscendingDescending/Obj_FirebaseFirestore_Collection_Query_AscendingDescending.yy",},
{"name":"o_dialog_save","order":12,"path":"objects/o_dialog_save/o_dialog_save.yy",},
{"name":"s_node_BW","order":10,"path":"sprites/s_node_BW/s_node_BW.yy",},
@ -1323,7 +1326,6 @@
{"name":"surfaceBox","order":22,"path":"scripts/surfaceBox/surfaceBox.yy",},
{"name":"s_node_array_composite","order":17,"path":"sprites/s_node_array_composite/s_node_array_composite.yy",},
{"name":"node_gradient_palette","order":11,"path":"scripts/node_gradient_palette/node_gradient_palette.yy",},
{"name":"s_node_csv_file_read","order":9,"path":"sprites/s_node_csv_file_read/s_node_csv_file_read.yy",},
{"name":"node_fluid_domain","order":1,"path":"scripts/node_fluid_domain/node_fluid_domain.yy",},
{"name":"Obj_FirebaseFirestore_Collection_Query_LessEqualThan","order":6,"path":"objects/Obj_FirebaseFirestore_Collection_Query_LessEqualThan/Obj_FirebaseFirestore_Collection_Query_LessEqualThan.yy",},
{"name":"s_node_repeat","order":23,"path":"sprites/s_node_repeat/s_node_repeat.yy",},
@ -1341,6 +1343,7 @@
{"name":"__node_shader_processor","order":23,"path":"scripts/__node_shader_processor/__node_shader_processor.yy",},
{"name":"Obj_FirebaseFirestore_Collection_Query_options_value","order":11,"path":"objects/Obj_FirebaseFirestore_Collection_Query_options_value/Obj_FirebaseFirestore_Collection_Query_options_value.yy",},
{"name":"__node_3d_mesh","order":1,"path":"scripts/__node_3d_mesh/__node_3d_mesh.yy",},
{"name":"s_node_csv_file_read","order":31,"path":"sprites/s_node_csv_file_read/s_node_csv_file_read.yy",},
{"name":"d3d_surface_extrude","order":7,"path":"scripts/d3d_surface_extrude/d3d_surface_extrude.yy",},
{"name":"node_mesh_to_path","order":3,"path":"scripts/node_mesh_to_path/node_mesh_to_path.yy",},
{"name":"sh_kuwahara_ani","order":52,"path":"shaders/sh_kuwahara_ani/sh_kuwahara_ani.yy",},
@ -1512,6 +1515,7 @@
{"name":"node_group_input","order":1,"path":"scripts/node_group_input/node_group_input.yy",},
{"name":"fd_rectangle_set_material_dissipation_type","order":4,"path":"scripts/fd_rectangle_set_material_dissipation_type/fd_rectangle_set_material_dissipation_type.yy",},
{"name":"s_node_gradient_shift","order":15,"path":"sprites/s_node_gradient_shift/s_node_gradient_shift.yy",},
{"name":"node_byte_file_read","order":22,"path":"scripts/node_byte_file_read/node_byte_file_read.yy",},
{"name":"node_blobify","order":10,"path":"scripts/node_blobify/node_blobify.yy",},
{"name":"node_cache_array","order":8,"path":"scripts/node_cache_array/node_cache_array.yy",},
{"name":"node_array_convolute","order":16,"path":"scripts/node_array_convolute/node_array_convolute.yy",},
@ -1526,6 +1530,7 @@
{"name":"node_image_sequence","order":1,"path":"scripts/node_image_sequence/node_image_sequence.yy",},
{"name":"node_text_file_read","order":6,"path":"scripts/node_text_file_read/node_text_file_read.yy",},
{"name":"node_note","order":17,"path":"scripts/node_note/node_note.yy",},
{"name":"s_node_text_file_read","order":26,"path":"sprites/s_node_text_file_read/s_node_text_file_read.yy",},
{"name":"node_pb_box_divide_grid","order":7,"path":"scripts/node_pb_box_divide_grid/node_pb_box_divide_grid.yy",},
{"name":"FirebaseREST_firestore_cursor","order":8,"path":"scripts/FirebaseREST_firestore_cursor/FirebaseREST_firestore_cursor.yy",},
{"name":"panel_preview_onion_setting","order":7,"path":"scripts/panel_preview_onion_setting/panel_preview_onion_setting.yy",},
@ -1644,7 +1649,7 @@
{"name":"directory_object","order":3,"path":"scripts/directory_object/directory_object.yy",},
{"name":"s_node_isosurf","order":2,"path":"sprites/s_node_isosurf/s_node_isosurf.yy",},
{"name":"node_pb_box_divide","order":5,"path":"scripts/node_pb_box_divide/node_pb_box_divide.yy",},
{"name":"FLIP","order":5,"path":"extensions/FLIP/FLIP.yy",},
{"name":"FLIP","order":17,"path":"extensions/FLIP/FLIP.yy",},
{"name":"node_websocket_sender","order":1,"path":"scripts/node_websocket_sender/node_websocket_sender.yy",},
{"name":"fd_rectangle_get_acceleration_b","order":1,"path":"scripts/fd_rectangle_get_acceleration_b/fd_rectangle_get_acceleration_b.yy",},
{"name":"surface_draw_functions","order":7,"path":"scripts/surface_draw_functions/surface_draw_functions.yy",},
@ -1712,13 +1717,14 @@
{"name":"s_biterator_tab_active","order":12,"path":"sprites/s_biterator_tab_active/s_biterator_tab_active.yy",},
{"name":"dynaSurf_3d","order":2,"path":"scripts/dynaSurf_3d/dynaSurf_3d.yy",},
{"name":"s_node_3d_extrude","order":2,"path":"sprites/s_node_3d_extrude/s_node_3d_extrude.yy",},
{"name":"YYFirebaseFirestore","order":2,"path":"extensions/YYFirebaseFirestore/YYFirebaseFirestore.yy",},
{"name":"YYFirebaseFirestore","order":3,"path":"extensions/YYFirebaseFirestore/YYFirebaseFirestore.yy",},
{"name":"buttonGradient","order":2,"path":"scripts/buttonGradient/buttonGradient.yy",},
{"name":"sh_draw_downsample","order":2,"path":"shaders/sh_draw_downsample/sh_draw_downsample.yy",},
{"name":"__view_get","order":1,"path":"scripts/__view_get/__view_get.yy",},
{"name":"export_portable","order":3,"path":"scripts/export_portable/export_portable.yy",},
{"name":"s_node_texture_map","order":35,"path":"sprites/s_node_texture_map/s_node_texture_map.yy",},
{"name":"fd_rectangle_create","order":7,"path":"scripts/fd_rectangle_create/fd_rectangle_create.yy",},
{"name":"s_node_byte_file_write","order":27,"path":"sprites/s_node_byte_file_write/s_node_byte_file_write.yy",},
{"name":"s_node_level_selector","order":26,"path":"sprites/s_node_level_selector/s_node_level_selector.yy",},
{"name":"s_node_herringbone_tile","order":39,"path":"sprites/s_node_herringbone_tile/s_node_herringbone_tile.yy",},
{"name":"node_vector_split","order":19,"path":"scripts/node_vector_split/node_vector_split.yy",},
@ -1838,7 +1844,6 @@
{"name":"s_node_group_thumbnail","order":34,"path":"sprites/s_node_group_thumbnail/s_node_group_thumbnail.yy",},
{"name":"__node_VFX_effector","order":8,"path":"scripts/__node_VFX_effector/__node_VFX_effector.yy",},
{"name":"node_path_shift","order":5,"path":"scripts/node_path_shift/node_path_shift.yy",},
{"name":"s_node_wav_file_write","order":17,"path":"sprites/s_node_wav_file_write/s_node_wav_file_write.yy",},
{"name":"s_node_3d_cylinder","order":1,"path":"sprites/s_node_3d_cylinder/s_node_3d_cylinder.yy",},
{"name":"sh_pb_brick","order":9,"path":"shaders/sh_pb_brick/sh_pb_brick.yy",},
{"name":"node_strand_break","order":9,"path":"scripts/node_strand_break/node_strand_break.yy",},
@ -1970,7 +1975,6 @@
{"name":"sh_solid","order":5,"path":"shaders/sh_solid/sh_solid.yy",},
{"name":"panel_animation_scaler","order":1,"path":"scripts/panel_animation_scaler/panel_animation_scaler.yy",},
{"name":"wav_file_object","order":2,"path":"scripts/wav_file_object/wav_file_object.yy",},
{"name":"s_node_json_file_write","order":10,"path":"sprites/s_node_json_file_write/s_node_json_file_write.yy",},
{"name":"node_pb_fx_intersect","order":5,"path":"scripts/node_pb_fx_intersect/node_pb_fx_intersect.yy",},
{"name":"fd_rectangle_get_material_time_step","order":13,"path":"scripts/fd_rectangle_get_material_time_step/fd_rectangle_get_material_time_step.yy",},
{"name":"node_vector3","order":17,"path":"scripts/node_vector3/node_vector3.yy",},

View file

@ -501,7 +501,6 @@
{"id":{"name":"sh_mk_tile55_edge_r","path":"shaders/sh_mk_tile55_edge_r/sh_mk_tile55_edge_r.yy",},},
{"id":{"name":"sh_d3d_normal","path":"shaders/sh_d3d_normal/sh_d3d_normal.yy",},},
{"id":{"name":"panel_data","path":"scripts/panel_data/panel_data.yy",},},
{"id":{"name":"s_node_text_file_read","path":"sprites/s_node_text_file_read/s_node_text_file_read.yy",},},
{"id":{"name":"s_node_text_trim","path":"sprites/s_node_text_trim/s_node_text_trim.yy",},},
{"id":{"name":"s_node_pb_fx_shading","path":"sprites/s_node_pb_fx_shading/s_node_pb_fx_shading.yy",},},
{"id":{"name":"sh_noise_grid_hex","path":"shaders/sh_noise_grid_hex/sh_noise_grid_hex.yy",},},
@ -516,6 +515,7 @@
{"id":{"name":"o_dialog_menubox","path":"objects/o_dialog_menubox/o_dialog_menubox.yy",},},
{"id":{"name":"s_node_blend","path":"sprites/s_node_blend/s_node_blend.yy",},},
{"id":{"name":"node_wrap_perspective","path":"scripts/node_wrap_perspective/node_wrap_perspective.yy",},},
{"id":{"name":"s_node_json_file_write","path":"sprites/s_node_json_file_write/s_node_json_file_write.yy",},},
{"id":{"name":"s_node_rigidSim_object_spawner","path":"sprites/s_node_rigidSim_object_spawner/s_node_rigidSim_object_spawner.yy",},},
{"id":{"name":"node_pb_draw_round_rectangle","path":"scripts/node_pb_draw_round_rectangle/node_pb_draw_round_rectangle.yy",},},
{"id":{"name":"draw_text_function","path":"scripts/draw_text_function/draw_text_function.yy",},},
@ -661,6 +661,7 @@
{"id":{"name":"sh_corner_erode","path":"shaders/sh_corner_erode/sh_corner_erode.yy",},},
{"id":{"name":"__init_view","path":"scripts/__init_view/__init_view.yy",},},
{"id":{"name":"node_outline","path":"scripts/node_outline/node_outline.yy",},},
{"id":{"name":"s_node_byte_file_read","path":"sprites/s_node_byte_file_read/s_node_byte_file_read.yy",},},
{"id":{"name":"sh_mesh_generation","path":"shaders/sh_mesh_generation/sh_mesh_generation.yy",},},
{"id":{"name":"math_function","path":"scripts/math_function/math_function.yy",},},
{"id":{"name":"panel_preview_snap_setting","path":"scripts/panel_preview_snap_setting/panel_preview_snap_setting.yy",},},
@ -1149,6 +1150,7 @@
{"id":{"name":"sh_grey_alpha","path":"shaders/sh_grey_alpha/sh_grey_alpha.yy",},},
{"id":{"name":"node_mk_cable","path":"scripts/node_mk_cable/node_mk_cable.yy",},},
{"id":{"name":"sh_normal","path":"shaders/sh_normal/sh_normal.yy",},},
{"id":{"name":"s_node_json_file_read","path":"sprites/s_node_json_file_read/s_node_json_file_read.yy",},},
{"id":{"name":"s_node_time_map","path":"sprites/s_node_time_map/s_node_time_map.yy",},},
{"id":{"name":"node_crop","path":"scripts/node_crop/node_crop.yy",},},
{"id":{"name":"s_biterator_tab_content","path":"sprites/s_biterator_tab_content/s_biterator_tab_content.yy",},},
@ -1176,6 +1178,7 @@
{"id":{"name":"node_VFX_repel","path":"scripts/node_VFX_repel/node_VFX_repel.yy",},},
{"id":{"name":"s_node_alpha_cut","path":"sprites/s_node_alpha_cut/s_node_alpha_cut.yy",},},
{"id":{"name":"sh_gamma_map","path":"shaders/sh_gamma_map/sh_gamma_map.yy",},},
{"id":{"name":"node_byte_file_write","path":"scripts/node_byte_file_write/node_byte_file_write.yy",},},
{"id":{"name":"node_iterator_length","path":"scripts/node_iterator_length/node_iterator_length.yy",},},
{"id":{"name":"node_VFX_attract","path":"scripts/node_VFX_attract/node_VFX_attract.yy",},},
{"id":{"name":"node_fluid_repulse","path":"scripts/node_fluid_repulse/node_fluid_repulse.yy",},},
@ -1355,7 +1358,6 @@
{"id":{"name":"dynaSurf_square_outline","path":"scripts/dynaSurf_square_outline/dynaSurf_square_outline.yy",},},
{"id":{"name":"node_3d_repeat","path":"scripts/node_3d_repeat/node_3d_repeat.yy",},},
{"id":{"name":"node_pb_fx_add","path":"scripts/node_pb_fx_add/node_pb_fx_add.yy",},},
{"id":{"name":"s_node_csv_file_write","path":"sprites/s_node_csv_file_write/s_node_csv_file_write.yy",},},
{"id":{"name":"node_credit","path":"sprites/node_credit/node_credit.yy",},},
{"id":{"name":"s_node_csv_parse","path":"sprites/s_node_csv_parse/s_node_csv_parse.yy",},},
{"id":{"name":"sh_glow","path":"shaders/sh_glow/sh_glow.yy",},},
@ -1410,7 +1412,6 @@
{"id":{"name":"sh_blend_overlay","path":"shaders/sh_blend_overlay/sh_blend_overlay.yy",},},
{"id":{"name":"node_sprite_stack","path":"scripts/node_sprite_stack/node_sprite_stack.yy",},},
{"id":{"name":"s_node_smokeSim_vortex","path":"sprites/s_node_smokeSim_vortex/s_node_smokeSim_vortex.yy",},},
{"id":{"name":"s_node_json_file_read","path":"sprites/s_node_json_file_read/s_node_json_file_read.yy",},},
{"id":{"name":"s_node_wavelet","path":"sprites/s_node_wavelet/s_node_wavelet.yy",},},
{"id":{"name":"s_workshop_badge_version","path":"sprites/s_workshop_badge_version/s_workshop_badge_version.yy",},},
{"id":{"name":"node_override_channel","path":"scripts/node_override_channel/node_override_channel.yy",},},
@ -1450,6 +1451,7 @@
{"id":{"name":"s_node_tunnel_in","path":"sprites/s_node_tunnel_in/s_node_tunnel_in.yy",},},
{"id":{"name":"s_node_pb_draw_trapezoid","path":"sprites/s_node_pb_draw_trapezoid/s_node_pb_draw_trapezoid.yy",},},
{"id":{"name":"sh_rd_render","path":"shaders/sh_rd_render/sh_rd_render.yy",},},
{"id":{"name":"s_node_csv_file_write","path":"sprites/s_node_csv_file_write/s_node_csv_file_write.yy",},},
{"id":{"name":"append_function","path":"scripts/append_function/append_function.yy",},},
{"id":{"name":"node_3dsurf","path":"scripts/node_3dsurf/node_3dsurf.yy",},},
{"id":{"name":"fd_rectangle_reset_target","path":"scripts/fd_rectangle_reset_target/fd_rectangle_reset_target.yy",},},
@ -1474,7 +1476,6 @@
{"id":{"name":"pack_best_fit","path":"scripts/pack_best_fit/pack_best_fit.yy",},},
{"id":{"name":"sh_channel_R","path":"shaders/sh_channel_R/sh_channel_R.yy",},},
{"id":{"name":"draw_circle_functions","path":"scripts/draw_circle_functions/draw_circle_functions.yy",},},
{"id":{"name":"s_node_text_file_write","path":"sprites/s_node_text_file_write/s_node_text_file_write.yy",},},
{"id":{"name":"sliderRange","path":"scripts/sliderRange/sliderRange.yy",},},
{"id":{"name":"point_rect_overlap","path":"scripts/point_rect_overlap/point_rect_overlap.yy",},},
{"id":{"name":"s_node_bevel","path":"sprites/s_node_bevel/s_node_bevel.yy",},},
@ -1567,6 +1568,7 @@
{"id":{"name":"s_node_flood_fill","path":"sprites/s_node_flood_fill/s_node_flood_fill.yy",},},
{"id":{"name":"node_iterate_each_inline","path":"scripts/node_iterate_each_inline/node_iterate_each_inline.yy",},},
{"id":{"name":"json_compare","path":"scripts/json_compare/json_compare.yy",},},
{"id":{"name":"s_node_text_file_write","path":"sprites/s_node_text_file_write/s_node_text_file_write.yy",},},
{"id":{"name":"node_rigid_force_apply","path":"scripts/node_rigid_force_apply/node_rigid_force_apply.yy",},},
{"id":{"name":"checkboxActive","path":"scripts/checkboxActive/checkboxActive.yy",},},
{"id":{"name":"__node_shader","path":"scripts/__node_shader/__node_shader.yy",},},
@ -1578,6 +1580,7 @@
{"id":{"name":"s_node_array_get","path":"sprites/s_node_array_get/s_node_array_get.yy",},},
{"id":{"name":"d3d_bbox","path":"scripts/d3d_bbox/d3d_bbox.yy",},},
{"id":{"name":"s_node_mk_brownian","path":"sprites/s_node_mk_brownian/s_node_mk_brownian.yy",},},
{"id":{"name":"s_node_wav_file_write","path":"sprites/s_node_wav_file_write/s_node_wav_file_write.yy",},},
{"id":{"name":"Obj_FirebaseFirestore_Collection_Query_AscendingDescending","path":"objects/Obj_FirebaseFirestore_Collection_Query_AscendingDescending/Obj_FirebaseFirestore_Collection_Query_AscendingDescending.yy",},},
{"id":{"name":"dynaSurf","path":"scripts/dynaSurf/dynaSurf.yy",},},
{"id":{"name":"o_dialog_save","path":"objects/o_dialog_save/o_dialog_save.yy",},},
@ -1652,7 +1655,6 @@
{"id":{"name":"surfaceBox","path":"scripts/surfaceBox/surfaceBox.yy",},},
{"id":{"name":"s_node_array_composite","path":"sprites/s_node_array_composite/s_node_array_composite.yy",},},
{"id":{"name":"node_gradient_palette","path":"scripts/node_gradient_palette/node_gradient_palette.yy",},},
{"id":{"name":"s_node_csv_file_read","path":"sprites/s_node_csv_file_read/s_node_csv_file_read.yy",},},
{"id":{"name":"node_fluid_domain","path":"scripts/node_fluid_domain/node_fluid_domain.yy",},},
{"id":{"name":"Obj_FirebaseFirestore_Collection_Query_LessEqualThan","path":"objects/Obj_FirebaseFirestore_Collection_Query_LessEqualThan/Obj_FirebaseFirestore_Collection_Query_LessEqualThan.yy",},},
{"id":{"name":"s_node_repeat","path":"sprites/s_node_repeat/s_node_repeat.yy",},},
@ -1671,6 +1673,7 @@
{"id":{"name":"__node_shader_processor","path":"scripts/__node_shader_processor/__node_shader_processor.yy",},},
{"id":{"name":"Obj_FirebaseFirestore_Collection_Query_options_value","path":"objects/Obj_FirebaseFirestore_Collection_Query_options_value/Obj_FirebaseFirestore_Collection_Query_options_value.yy",},},
{"id":{"name":"__node_3d_mesh","path":"scripts/__node_3d_mesh/__node_3d_mesh.yy",},},
{"id":{"name":"s_node_csv_file_read","path":"sprites/s_node_csv_file_read/s_node_csv_file_read.yy",},},
{"id":{"name":"Obj_FirebaseFirestore_Collection_Query","path":"objects/Obj_FirebaseFirestore_Collection_Query/Obj_FirebaseFirestore_Collection_Query.yy",},},
{"id":{"name":"d3d_surface_extrude","path":"scripts/d3d_surface_extrude/d3d_surface_extrude.yy",},},
{"id":{"name":"sh_mk_tile18_edge_b","path":"shaders/sh_mk_tile18_edge_b/sh_mk_tile18_edge_b.yy",},},
@ -1866,6 +1869,7 @@
{"id":{"name":"node_group_input","path":"scripts/node_group_input/node_group_input.yy",},},
{"id":{"name":"fd_rectangle_set_material_dissipation_type","path":"scripts/fd_rectangle_set_material_dissipation_type/fd_rectangle_set_material_dissipation_type.yy",},},
{"id":{"name":"s_node_gradient_shift","path":"sprites/s_node_gradient_shift/s_node_gradient_shift.yy",},},
{"id":{"name":"node_byte_file_read","path":"scripts/node_byte_file_read/node_byte_file_read.yy",},},
{"id":{"name":"node_blobify","path":"scripts/node_blobify/node_blobify.yy",},},
{"id":{"name":"node_cache_array","path":"scripts/node_cache_array/node_cache_array.yy",},},
{"id":{"name":"node_array_convolute","path":"scripts/node_array_convolute/node_array_convolute.yy",},},
@ -1881,6 +1885,7 @@
{"id":{"name":"node_text_file_read","path":"scripts/node_text_file_read/node_text_file_read.yy",},},
{"id":{"name":"node_note","path":"scripts/node_note/node_note.yy",},},
{"id":{"name":"s_menu_transparent","path":"sprites/s_menu_transparent/s_menu_transparent.yy",},},
{"id":{"name":"s_node_text_file_read","path":"sprites/s_node_text_file_read/s_node_text_file_read.yy",},},
{"id":{"name":"node_pb_box_divide_grid","path":"scripts/node_pb_box_divide_grid/node_pb_box_divide_grid.yy",},},
{"id":{"name":"FirebaseREST_firestore_cursor","path":"scripts/FirebaseREST_firestore_cursor/FirebaseREST_firestore_cursor.yy",},},
{"id":{"name":"draw_tooltip","path":"scripts/draw_tooltip/draw_tooltip.yy",},},
@ -2111,6 +2116,7 @@
{"id":{"name":"sh_sample","path":"shaders/sh_sample/sh_sample.yy",},},
{"id":{"name":"s_node_texture_map","path":"sprites/s_node_texture_map/s_node_texture_map.yy",},},
{"id":{"name":"fd_rectangle_create","path":"scripts/fd_rectangle_create/fd_rectangle_create.yy",},},
{"id":{"name":"s_node_byte_file_write","path":"sprites/s_node_byte_file_write/s_node_byte_file_write.yy",},},
{"id":{"name":"s_node_level_selector","path":"sprites/s_node_level_selector/s_node_level_selector.yy",},},
{"id":{"name":"s_node_herringbone_tile","path":"sprites/s_node_herringbone_tile/s_node_herringbone_tile.yy",},},
{"id":{"name":"node_vector_split","path":"scripts/node_vector_split/node_vector_split.yy",},},
@ -2248,7 +2254,6 @@
{"id":{"name":"__node_VFX_effector","path":"scripts/__node_VFX_effector/__node_VFX_effector.yy",},},
{"id":{"name":"sh_blur_gaussian","path":"shaders/sh_blur_gaussian/sh_blur_gaussian.yy",},},
{"id":{"name":"node_path_shift","path":"scripts/node_path_shift/node_path_shift.yy",},},
{"id":{"name":"s_node_wav_file_write","path":"sprites/s_node_wav_file_write/s_node_wav_file_write.yy",},},
{"id":{"name":"s_node_3d_cylinder","path":"sprites/s_node_3d_cylinder/s_node_3d_cylinder.yy",},},
{"id":{"name":"sh_pb_brick","path":"shaders/sh_pb_brick/sh_pb_brick.yy",},},
{"id":{"name":"node_strand_break","path":"scripts/node_strand_break/node_strand_break.yy",},},
@ -2399,7 +2404,6 @@
{"id":{"name":"sh_solid","path":"shaders/sh_solid/sh_solid.yy",},},
{"id":{"name":"panel_animation_scaler","path":"scripts/panel_animation_scaler/panel_animation_scaler.yy",},},
{"id":{"name":"wav_file_object","path":"scripts/wav_file_object/wav_file_object.yy",},},
{"id":{"name":"s_node_json_file_write","path":"sprites/s_node_json_file_write/s_node_json_file_write.yy",},},
{"id":{"name":"node_pb_fx_intersect","path":"scripts/node_pb_fx_intersect/node_pb_fx_intersect.yy",},},
{"id":{"name":"timer_function","path":"scripts/timer_function/timer_function.yy",},},
{"id":{"name":"fd_rectangle_get_material_time_step","path":"scripts/fd_rectangle_get_material_time_step/fd_rectangle_get_material_time_step.yy",},},

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

View file

@ -39,6 +39,8 @@
dialog_drag_mx = 0;
dialog_drag_my = 0;
passthrough = false;
function doDrag() {
if(!active) return;
@ -128,14 +130,22 @@
#endregion
#region focus
function point_in(mx, my) {
INLINE
var _r = dialog_resizable * 6;
var x0 = dialog_x - _r;
var x1 = dialog_x + dialog_w + _r;
var y0 = dialog_y - _r;
var y1 = dialog_y + dialog_h + _r;
return point_in_rectangle(mx, my, x0, y0, x1, y1);
}
function checkFocus() {
if(!active) return;
var x0 = dialog_x - dialog_resizable * 6;
var x1 = dialog_x + dialog_w + dialog_resizable * 6;
var y0 = dialog_y - dialog_resizable * 6;
var y1 = dialog_y + dialog_h + dialog_resizable * 6;
if(point_in_rectangle(mouse_mx, mouse_my, x0, y0, x1, y1)) {
if(point_in(mouse_mx, mouse_my)) {
if(depth < DIALOG_DEPTH_HOVER) {
DIALOG_DEPTH_HOVER = depth;
HOVER = self.id;
@ -169,42 +179,35 @@
dialog_x = round(clamp(dialog_x, 2, WIN_SW - dialog_w - 2));
dialog_y = round(clamp(dialog_y, 2, WIN_SH - dialog_h - 2));
}
function isTop() {
with(_p_dialog) if(depth < other.depth) return false;
return true;
}
function checkMouse() {
if(!active) return;
if(!DIALOG_CLICK) {
//printIf(mouse_press(mb_any), $"Check {object_get_name(object_index)} : Click");
return;
}
if(!active) return;
if(!destroy_on_click_out) return;
if(!DIALOG_CLICK) return;
with(_p_dialog) if(depth < other.depth) {
//printIf(mouse_press(mb_any), $"Check {object_get_name(object_index)} : Top");
return;
}
for( var i = 0, n = array_length(children); i < n; i++ )
if(instance_exists(children[i])) {
//printIf(mouse_press(mb_any), $"Check {object_get_name(object_index)} : Children");
return;
if(mouse_press(mb_any)) {
if(!checkClosable()) return;
if(!isTop()) return;
for( var i = 0, n = array_length(children); i < n; i++ )
if(instance_exists(children[i])) return;
if(!point_in(mouse_mx, mouse_my)) {
instance_destroy(self);
onDestroy();
DIALOG_CLICK = false;
}
var x0 = dialog_x - dialog_resizable * 6;
var x1 = dialog_x + dialog_w + dialog_resizable * 6;
var y0 = dialog_y - dialog_resizable * 6;
var y1 = dialog_y + dialog_h + dialog_resizable * 6;
if(destroy_on_click_out && mouse_press(mb_any) && !point_in_rectangle(mouse_mx, mouse_my, x0, y0, x1, y1)
&& checkClosable()) {
instance_destroy(self);
onDestroy();
DIALOG_CLICK = false;
}
}
function checkClosable() { return true; }
function onDestroy() {}
function onDestroy() { }
#endregion
#region children

View file

@ -7,4 +7,5 @@ ds_list_remove(DIALOGS, self);
if(parent) array_remove(parent.children, id);
MOUSE_BLOCK = true;
if(!passthrough)
MOUSE_BLOCK = true;

View file

@ -122,30 +122,17 @@ event_inherited();
return false;
} #endregion
#region ---- set page ----
function setPage(pageIndex) {
ADD_NODE_PAGE = min(pageIndex, ds_list_size(category) - 1);
node_list = pageIndex < 0? noone : category[| ADD_NODE_PAGE].list;
}
ADD_NODE_PAGE = 0;
setPage(NODE_PAGE_DEFAULT);
#endregion
function buildNode(_node, _param = {}) { #region
if(!_node) {
instance_destroy();
instance_destroy(o_dialog_menubox);
return;
}
instance_destroy();
instance_destroy(o_dialog_menubox);
if(!_node) return;
if(is_instanceof(_node, AddNodeItem)) {
_node.onClick({
node_called,
junction_hovering
});
instance_destroy(o_dialog_menubox);
instance_destroy();
return;
}
@ -154,11 +141,7 @@ event_inherited();
if(is_instanceof(_node, NodeObject)) {
_new_node = _node.build(node_target_x, node_target_y,, _param);
if(!_new_node) {
instance_destroy();
instance_destroy(o_dialog_menubox);
return;
}
if(!_new_node) return;
if(category == NODE_CATEGORY && _node.show_in_recent) {
array_remove(global.RECENT_NODES, _node.node);
@ -258,9 +241,6 @@ event_inherited();
}
}
}
instance_destroy();
instance_destroy(o_dialog_menubox);
} #endregion
catagory_pane = new scrollPane(category_width, dialog_h - ui(66), function(_y, _m) { #region
@ -273,13 +253,12 @@ event_inherited();
for(var i = start; i < ds_list_size(category); i++) {
var name = "";
var color = noone;
if(i == -2) name = "All";
else if(i == -1) name = "New";
else {
var cat = category[| i];
name = cat.name;
name = cat.name;
if(array_length(cat.filter)) {
if(!array_exists(cat.filter, instanceof(context))) {
@ -287,7 +266,6 @@ event_inherited();
setPage(NODE_PAGE_DEFAULT);
continue;
}
color = context.color;
draw_set_color(COLORS._main_text_accent);
}
}
@ -662,6 +640,22 @@ event_inherited();
}); #endregion
content_pane.always_scroll = true;
#region ---- set page ----
function setPage(pageIndex) {
ADD_NODE_PAGE = min(pageIndex, ds_list_size(category) - 1);
node_list = pageIndex < 0? noone : category[| ADD_NODE_PAGE].list;
}
if(PREFERENCES.add_node_remember) {
content_pane.scroll_y_raw = ADD_NODE_SCROLL;
content_pane.scroll_y_to = ADD_NODE_SCROLL;
} else
ADD_NODE_PAGE = 0;
setPage(ADD_NODE_PAGE);
#endregion
#endregion
#region resize

View file

@ -87,16 +87,5 @@ if !ready exit;
}
node_tooltip = noone;
#endregion
//#region dec
// if(node_called) {
// var jx = 0;
// var jy = dialog_y + ui(26);
// if(node_called.connect_type == JUNCTION_CONNECT.input)
// jx = dialog_x;
// else
// jx = dialog_x + dialog_w;
// }
//#endregion
ADD_NODE_SCROLL = content_pane.scroll_y_to;
#endregion

View file

@ -348,6 +348,12 @@ event_inherited();
ds_list_add(pref_appr, __txt("Graph"));
ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference(
__txtx("pref_add_node_remember", "Remember add node position"),
"add_node_remember",
new checkBox(function() { PREFERENCES.add_node_remember = !PREFERENCES.add_node_remember; })
));
ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference(
__txtx("pref_connection_type", "Connection type"),
"curve_connection_line",

View file

@ -486,7 +486,7 @@ enum CAMERA_PROJ {
drag_my = _my;
}
inputs[| global_pos].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny);
inputs[| global_pos].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
#endregion
}

View file

@ -119,7 +119,7 @@ function __Node_3D_Combine(_x, _y, _group = noone) : Node(_x, _y, _group) constr
refreshDynamicInput();
}
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
_3d_gizmo(active, _x, _y, _s, _mx, _my, _snx, _sny);
}

View file

@ -80,7 +80,7 @@ function __Node_3D_Displace(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
vertexObjects = [];
_3d_node_init(1, /*Transform*/ 4, 5, 1, 2, 3);
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
_3d_gizmo(active, _x, _y, _s, _mx, _my, _snx, _sny);
}

View file

@ -408,7 +408,7 @@ function __Node_3D_Extrude(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro
}
}
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
_3d_gizmo(active, _x, _y, _s, _mx, _my, _snx, _sny);
}

View file

@ -170,7 +170,7 @@ function __Node_3D_Obj(_x, _y, _group = noone) : Node(_x, _y, _group) constructo
}
do_reset_material = false;
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
_3d_gizmo(active, _x, _y, _s, _mx, _my, _snx, _sny);
}

View file

@ -1,7 +1,7 @@
function __Node_3D_Plane(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "3D Plane";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Render position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0.5, 0.5 ])
.setDisplay(VALUE_DISPLAY.vector)
@ -117,8 +117,8 @@ function __Node_3D_Plane(_x, _y, _group = noone) : Node_Processor(_x, _y, _group
vertexObjects[0] = pln;
}
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
if(inputs[| 1].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny))
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
if(inputs[| 1].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny))
active = false;
var _out = outputs[| 0].getValue();
if(!is_surface(_out) || !surface_exists(_out)) return;

View file

@ -44,9 +44,9 @@ function __Node_3D_Cone(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[| 14] = nodeValue("Sides", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 16);
inputs[| 15] = nodeValue("Textures base", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 15] = nodeValue("Textures base", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 16] = nodeValue("Textures side", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 16] = nodeValue("Textures side", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 17] = nodeValue("Scale view with dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true)
@ -124,7 +124,7 @@ function __Node_3D_Cone(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
}
generate_vb();
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
_3d_gizmo(active, _x, _y, _s, _mx, _my, _snx, _sny);
}

View file

@ -19,12 +19,12 @@ function __Node_3D_Cube(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[| 5] = nodeValue("Textures per face", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false);
inputs[| 6] = nodeValue("Textures 0", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0).setVisible(false);
inputs[| 7] = nodeValue("Textures 1", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0).setVisible(false);
inputs[| 8] = nodeValue("Textures 2", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0).setVisible(false);
inputs[| 9] = nodeValue("Textures 3", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0).setVisible(false);
inputs[| 10] = nodeValue("Textures 4", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0).setVisible(false);
inputs[| 11] = nodeValue("Textures 5", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0).setVisible(false);
inputs[| 6] = nodeValue("Textures 0", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone).setVisible(false);
inputs[| 7] = nodeValue("Textures 1", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone).setVisible(false);
inputs[| 8] = nodeValue("Textures 2", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone).setVisible(false);
inputs[| 9] = nodeValue("Textures 3", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone).setVisible(false);
inputs[| 10] = nodeValue("Textures 4", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone).setVisible(false);
inputs[| 11] = nodeValue("Textures 5", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone).setVisible(false);
inputs[| 12] = nodeValue("Object scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ])
.setDisplay(VALUE_DISPLAY.vector);
@ -82,7 +82,7 @@ function __Node_3D_Cube(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
_3d_node_init(1, /*Transform*/ 2, 4, 19, 18, 12);
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny, _panel) {
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny, _panel) {
_3d_gizmo(active, _x, _y, _s, _mx, _my, _snx, _sny);
}

View file

@ -19,9 +19,9 @@ function __Node_3D_Cylinder(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
inputs[| 5] = nodeValue("Render scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ])
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 6] = nodeValue("Textures top", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 7] = nodeValue("Textures bottom", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 8] = nodeValue("Textures side", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 6] = nodeValue("Textures top", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 7] = nodeValue("Textures bottom", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 8] = nodeValue("Textures side", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 9] = nodeValue("Object scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ])
.setDisplay(VALUE_DISPLAY.vector);
@ -137,7 +137,7 @@ function __Node_3D_Cylinder(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
}
generate_vb();
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
_3d_gizmo(active, _x, _y, _s, _mx, _my, _snx, _sny);
}

View file

@ -18,7 +18,7 @@ function __Node_3D_Sphere(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
inputs[| 4] = nodeValue("Render scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ])
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 5] = nodeValue("Textures", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 5] = nodeValue("Textures", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 6] = nodeValue("Object scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ])
.setDisplay(VALUE_DISPLAY.vector);
@ -139,7 +139,7 @@ function __Node_3D_Sphere(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
}
generate_vb();
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
_3d_gizmo(active, _x, _y, _s, _mx, _my, _snx, _sny);
}

View file

@ -146,7 +146,7 @@
// }
// do_reset_material = false;
// static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
// static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
// _3d_gizmo(active, _x, _y, _s, _mx, _my, _snx, _sny);
// }

View file

@ -89,7 +89,7 @@ function __Node_3D_Repeat(_x, _y, _group = noone) : Node(_x, _y, _group) constru
_3d_node_init(1, /*Transform*/ 4, 5, 1, 2, 3);
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
_3d_gizmo(active, _x, _y, _s, _mx, _my, _snx, _sny);
}

View file

@ -64,7 +64,7 @@ function __Node_3D_Transform(_x, _y, _group = noone) : Node_Processor(_x, _y, _g
_3d_node_init(1, /*Transform*/ 4, 5, 1, 2, 3);
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
_3d_gizmo(active, _x, _y, _s, _mx, _my, _snx, _sny);
}

View file

@ -64,8 +64,8 @@ function Node_VFX_effector(_x, _y, _group = noone) : Node(_x, _y, _group) constr
UPDATE_PART_FORWARD
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
inputs[| 1].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny);
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
inputs[| 1].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
var area = getInputData(1);
var cx = _x + area[0] * _s;

View file

@ -1,13 +1,13 @@
function Node_Process_Template(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "";
inputs[| 0] = nodeValue("", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
outputs[| 0] = nodeValue("", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, 0);
outputs[| 0] = nodeValue("", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone);
input_display_list = [ 0 ];
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {}
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {}
static step = function() {}

View file

@ -1,13 +1,13 @@
function Node_Template(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "";
inputs[| 0] = nodeValue("", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
outputs[| 0] = nodeValue("", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, 0);
outputs[| 0] = nodeValue("", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone);
input_display_list = [ 0 ];
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {}
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {}
static step = function() {}

View file

@ -2,7 +2,7 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
name = "Spawner";
update_on_frame = true;
inputs[| 0] = nodeValue("Particle sprite", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0 );
inputs[| 0] = nodeValue("Particle sprite", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone );
inputs[| 1] = nodeValue("Spawn delay", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4, "Frames delay between each particle spawn." )
.rejectArray();
@ -96,7 +96,7 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
inputs[| 29] = nodeValue("Directed from center", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false, "Make particle move away from the spawn center.")
.rejectArray();
inputs[| 30] = nodeValue("Distribution map", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0)
inputs[| 30] = nodeValue("Distribution map", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone)
.rejectArray()
inputs[| 31] = nodeValue("Atlas", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, [] )
@ -501,12 +501,12 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
onStep();
} #endregion
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
var _spr = getInputData(0);
if(is_array(_spr)) _spr = _spr[0];
var _flag = is_instanceof(_spr, SurfaceAtlas)? 0b0001 : 0b0011;
inputs[| 3].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny, _flag);
inputs[| 3].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny, _flag);
if(onDrawOverlay != -1)
onDrawOverlay(active, _x, _y, _s, _mx, _my);
} #endregion

View file

@ -65,7 +65,7 @@ function _Node_Strand_Affector(_x, _y, _group = noone) : Node(_x, _y, _group) co
["Shape", false], 1, 2, 3, 4, 5,
];
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
var _typ = getInputData(1);
var _pos = getInputData(2);
var _ran = getInputData(3);
@ -142,9 +142,9 @@ function _Node_Strand_Affector(_x, _y, _group = noone) : Node(_x, _y, _group) co
draw_line_dashed(px0, py0, px1, py1);
}
active &= inputs[| 2].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny);
active &= inputs[| 4].drawOverlay(active, px, py, _s, _mx, _my, _snx, _sny);
active &= inputs[| 3].drawOverlay(active, px, py, _s, _mx, _my, _snx, _sny, 0, 1, THEME.anchor_scale_hori);
active &= inputs[| 2].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
active &= inputs[| 4].drawOverlay(hover, active, px, py, _s, _mx, _my, _snx, _sny);
active &= inputs[| 3].drawOverlay(hover, active, px, py, _s, _mx, _my, _snx, _sny, 0, 1, THEME.anchor_scale_hori);
}
static update = function(frame = CURRENT_FRAME) {

View file

@ -286,4 +286,14 @@ function array_insert_before(arr, before, values) { #region
for( var i = 0, n = array_length(values); i < n; i++ )
array_insert(arr, _ind + i, values[i]);
} #endregion
#macro array_equals array_equals_overwrite
#macro __array_equals array_equals
function array_equals_overwrite(arr1, arr2) { #region
if(!is_array(arr1) && is_array(arr2)) return false;
if( is_array(arr1) && !is_array(arr2)) return false;
if(!is_array(arr1) && !is_array(arr2)) return arr1 == arr2;
return __array_equals(arr1, arr2)
} #endregion

View file

@ -49,11 +49,11 @@ function draw_surface_blend(background, foreground, blend = 0, alpha = 1, _pre_a
shader_reset();
}
function draw_surface_blend_ext(bg, fg, _x, _y, _sx = 1, _sy = 1, _rot = 0, _col = c_white, _alpha = 1, _blend = 0) {
function draw_surface_blend_ext(bg, fg, _x, _y, _sx = 1, _sy = 1, _rot = 0, _col = c_white, _alpha = 1, _blend = 0, _pre_alp = false) {
surface_set_shader(blend_temp_surface);
shader_set_interpolation(fg);
draw_surface_ext_safe(fg, _x, _y, _sx, _sy, _rot, _col, 1);
surface_reset_shader();
draw_surface_blend(bg, blend_temp_surface, _blend, _alpha, false);
draw_surface_blend(bg, blend_temp_surface, _blend, _alpha, _pre_alp);
}

View file

@ -59,6 +59,7 @@ function Action(_type, _object, _data, _trigger = 0) constructor {
break;
case ACTION_TYPE.list_insert :
if(!ds_exists(obj, ds_type_list)) return;
ds_list_delete(obj, data[1]);
break;
case ACTION_TYPE.list_modify :

View file

@ -28,10 +28,10 @@
globalvar VERSION, SAVE_VERSION, VERSION_STRING, BUILD_NUMBER, LATEST_VERSION;
LATEST_VERSION = 11600;
VERSION = 11661;
SAVE_VERSION = 11660;
VERSION_STRING = "1.16.6.1";
BUILD_NUMBER = 11661;
VERSION = 11670;
SAVE_VERSION = 11670;
VERSION_STRING = "1.16.7";
BUILD_NUMBER = 11670;
globalvar APPEND_MAP;
APPEND_MAP = ds_map_create();
@ -61,8 +61,10 @@
DIALOG_CLICK = true;
globalvar ADD_NODE_PAGE;
ADD_NODE_PAGE = 0;
globalvar ADD_NODE_PAGE, ADD_NODE_SCROLL;
ADD_NODE_PAGE = 0;
ADD_NODE_SCROLL = 0;
#endregion
#region macro

View file

@ -234,7 +234,8 @@ function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _foc
bx -= ui(28);
var ic_b = jun.expUse? c_white : COLORS._main_icon;
if(buttonInstant(THEME.button_hide, bx - ui(12), by - ui(12), ui(24), ui(24), _m, _focus, _hover, __txtx("panel_inspector_use_expression", "Use expression"), THEME.node_use_expression, jun.expUse, ic_b) == 2) {
jun.expUse = !jun.expUse;
jun.setUseExpression(!jun.expUse);
if(!jun.expUse) WIDGET_CURRENT = noone;
}

View file

@ -14,7 +14,7 @@ function Node_2D_light(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
uniform_band = shader_get_uniform(shader, "band");
uniform_attn = shader_get_uniform(shader, "atten");
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Light shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Point", s_node_2d_light_shape, 0),
@ -76,7 +76,7 @@ function Node_2D_light(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
attribute_surface_depth();
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
var _shape = getInputData(1);
switch(_shape) {
@ -85,14 +85,14 @@ function Node_2D_light(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
var px = _x + pos[0] * _s;
var py = _y + pos[1] * _s;
inputs[| 2].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny);
inputs[| 3].drawOverlay(active, px, py, _s, _mx, _my, _snx, _sny);
inputs[| 2].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
inputs[| 3].drawOverlay(hover, active, px, py, _s, _mx, _my, _snx, _sny);
break;
case LIGHT_SHAPE_2D.line :
case LIGHT_SHAPE_2D.line_asym :
case LIGHT_SHAPE_2D.spot :
inputs[| 6].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny);
inputs[| 7].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny);
inputs[| 6].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
inputs[| 7].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
break;
}
}

View file

@ -1,7 +1,7 @@
function Node_9Slice(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Nine Slice";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF)
.setDisplay(VALUE_DISPLAY.vector);
@ -33,7 +33,7 @@ function Node_9Slice(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
inputs[| 1].setValue( [ surface_get_width_safe(s), surface_get_height_safe(s) ] );
}
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
if(array_length(current_data) < 1) return;
var _dim = current_data[1];
@ -75,7 +75,7 @@ function Node_9Slice(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
}
}
if(inputs[| 1].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny))
if(inputs[| 1].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny))
return;
if(distance_to_line_infinite(_mx, _my, sp_r, -hh, sp_r, hh) < 12) {

View file

@ -50,7 +50,7 @@ function Node_FLIP_Apply_Force(_x, _y, _group = noone) : Node(_x, _y, _group) co
obstracle = new FLIP_Obstracle();
index = 0;
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
var _posit = getInputData(1);
var _rad = getInputData(2);
var _shp = getInputData(3);
@ -75,7 +75,7 @@ function Node_FLIP_Apply_Force(_x, _y, _group = noone) : Node(_x, _y, _group) co
if(_shp == 0) draw_circle(_px, _py, _r, true);
else if(_shp == 1) draw_rectangle(_px - _w, _py - _h, _px + _w, _py + _h, true);
if(inputs[| 1].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny)) active = false;
if(inputs[| 1].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny)) active = false;
} #endregion

View file

@ -31,7 +31,7 @@ function Node_FLIP_Apply_Velocity(_x, _y, _group = noone) : Node(_x, _y, _group)
outputs[| 0] = nodeValue("Domain", self, JUNCTION_CONNECT.output, VALUE_TYPE.fdomain, noone );
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
var _posit = getInputData(1);
var _rad = getInputData(2);
var _velo = getInputData(3);
@ -57,8 +57,8 @@ function Node_FLIP_Apply_Velocity(_x, _y, _group = noone) : Node(_x, _y, _group)
draw_line_width2(_px, _py, _vx, _vy, 6, 2);
draw_set_alpha(1);
if(inputs[| 1].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny)) active = false;
if(inputs[| 3].drawOverlay(active, _px, _py, _s, _mx, _my, _snx, _sny)) active = false;
if(inputs[| 1].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny)) active = false;
if(inputs[| 3].drawOverlay(hover, active, _px, _py, _s, _mx, _my, _snx, _sny)) active = false;
} #endregion

View file

@ -98,7 +98,7 @@ function Node_FLIP_Domain(_x, _y, _group = noone) : Node(_x, _y, _group) constru
static update = function(frame = CURRENT_FRAME) {
var _dim = getInputData(0);
var _siz = getInputData(1);
var _siz = getInputData(1); _siz = max(_siz, 1);
var _den = getInputData(2);
var _flp = getInputData(3);

View file

@ -49,7 +49,7 @@ function Node_FLIP_Spawner(_x, _y, _group = noone) : Node(_x, _y, _group) constr
spawn_amo = 0;
prev_position = [ 0, 0 ];
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
var _shp = getInputData(1);
var _posit = getInputData(2);
@ -71,7 +71,7 @@ function Node_FLIP_Spawner(_x, _y, _group = noone) : Node(_x, _y, _group) constr
draw_surface_ext(_surf, _px - _sw * _s / 2, _py - _sh * _s / 2, _s, _s, 0, c_white, 0.5);
}
if(inputs[| 2].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny)) active = false;
if(inputs[| 2].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny)) active = false;
} #endregion

View file

@ -22,8 +22,8 @@ function Node_FLIP_Wall(_x, _y, _group = noone) : Node(_x, _y, _group) construct
obstracle = new FLIP_Obstracle();
index = 0;
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
if(inputs[| 1].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny)) active = false;
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
if(inputs[| 1].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny)) active = false;
} #endregion
static update = function(frame = CURRENT_FRAME) { #region

View file

@ -1,7 +1,7 @@
function Node_FXAA(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "FXAA";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Active", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true);

View file

@ -19,7 +19,7 @@ function Node_VFX_Trail(_x, _y, _group = noone) : Node(_x, _y, _group) construct
outputs[| 0] = nodeValue("Path", self, JUNCTION_CONNECT.output, VALUE_TYPE.pathnode, self);
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
draw_set_color(COLORS._main_accent);
for( var i = 0, n = array_length(lines); i < n; i++ ) {

View file

@ -37,8 +37,8 @@ function Node_Active_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) const
temp_surface = [ surface_create(1, 1) ];
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
inputs[| 2].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny);
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
inputs[| 2].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
} #endregion
static step = function() { #region

View file

@ -1,12 +1,12 @@
function Node_Alpha_Cutoff(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Alpha Cutoff";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Minimum", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.2, "Any pixel with less alpha (more transparent) than this will be removed.")
.setDisplay(VALUE_DISPLAY.slider);
inputs[| 2] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 2] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 3] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -1,7 +1,7 @@
function Node_Alpha_Grey(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Alpha to Grey";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Active", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true);
active_index = 1;

View file

@ -14,7 +14,7 @@ function Node_Alpha_Hash(_x, _y, _group = noone) : Node_Processor(_x, _y, _group
15, 47, 7, 39, 13, 45, 5, 37,
63, 31, 55, 23, 61, 29, 53, 21];
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone);

View file

@ -17,7 +17,7 @@ function Node_Area(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
outputs[| 0] = nodeValue("Area", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, [ 0, 0, 0, 0, AREA_SHAPE.rectangle ])
.setDisplay(VALUE_DISPLAY.vector);
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
if(process_amount > 1) return;
var _pos = getInputData(0);
@ -38,8 +38,8 @@ function Node_Area(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
break;
}
inputs[| 0].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny);
inputs[| 1].drawOverlay(active, px, py, _s, _mx, _my, _snx, _sny);
inputs[| 0].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
inputs[| 1].drawOverlay(hover, active, px, py, _s, _mx, _my, _snx, _sny);
}
static processData = function(_output, _data, _output_index, _array_index = 0) {

View file

@ -188,7 +188,7 @@ function Node_Armature(_x, _y, _group = noone) : Node(_x, _y, _group) constructo
moving = false;
scaling = false;
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
var mx = (_mx - _x) / _s;
var my = (_my - _y) / _s;

View file

@ -387,7 +387,7 @@ function Node_Armature_Bind(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
var index = ds_list_size(inputs);
var _s = floor((index - input_fix_len) / data_length);
inputs[| index + 0] = nodeValue("Surface", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| index + 0] = nodeValue("Surface", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| index + 0].surface_index = index;
inputs[| index + 0].hover_effect = 0;
inputs[| index + 0].display_data.bone_id = "";
@ -490,7 +490,7 @@ function Node_Armature_Bind(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
ds_stack_destroy(_bst);
} #endregion
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
var dim = getInputData(0);
var _bind = getInputData(2);
@ -500,8 +500,8 @@ function Node_Armature_Bind(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
if(bone == noone) return;
bone.draw(attributes, false, _x + _dpos[0] * _s, _y + _dpos[1] * _s, _s * _dsca, _mx, _my, anchor_selecting);
inputs[| 3].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny);
//inputs[| 4].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny);
inputs[| 3].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
//inputs[| 4].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
var mx = (_mx - _x) / _s;
var my = (_my - _y) / _s;

View file

@ -30,7 +30,7 @@ function Node_Armature_Path(_x, _y, _group = noone) : Node(_x, _y, _group) const
})]);
#endregion
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
var _b = getInputData(0);
if(_b == noone) return;

View file

@ -108,7 +108,7 @@ function Node_Armature_Pose(_x, _y, _group = noone) : Node(_x, _y, _group) const
posing_mx = 0;
posing_my = 0;
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
var _b = outputs[| 0].getValue();
if(_b == noone) return;

View file

@ -31,7 +31,7 @@ function Node_Armature_Sample(_x, _y, _group = noone) : Node(_x, _y, _group) con
})]);
#endregion
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
var _b = getInputData(0);
if(_b == noone) return;

View file

@ -1,7 +1,7 @@
function Node_create_ASE_File_Read(_x, _y, _group = noone) { #region
var path = "";
if(!LOADING && !APPENDING && !CLONING) {
path = get_open_filename("aseprite|*.ase", "");
path = get_open_filename("Aseprite file (*.aseprite, *.ase)|*.aseprite;*.ase", "");
key_release();
if(path == "") return noone;
}
@ -160,9 +160,10 @@ function Node_ASE_File_Read(_x, _y, _group = noone) : Node(_x, _y, _group) const
["Tags", false], 2, tag_renderer,
];
attributes.file_checker = true;
attributes.layer_visible = [];
edit_time = 0;
attributes.file_checker = true;
array_push(attributeEditors, [ "File Watcher", function() { return attributes.file_checker; },
new checkBox(function() { attributes.file_checker = !attributes.file_checker; }) ]);
@ -171,7 +172,6 @@ function Node_ASE_File_Read(_x, _y, _group = noone) : Node(_x, _y, _group) const
tags = [];
_tag_delay = 0;
path_current = "";
edit_time = 0;
first_update = false;
@ -217,13 +217,12 @@ function Node_ASE_File_Read(_x, _y, _group = noone) : Node(_x, _y, _group) const
}
} #endregion
function updatePaths(path) { #region
path_current = path;
edit_time = file_get_modify_s(path_current);
path = try_get_path(path);
function updatePaths(path = path_current) { #region
if(path == -1) return false;
path_current = path;
edit_time = max(edit_time, file_get_modify_s(path_current));
var ext = string_lower(filename_ext(path));
var _name = string_replace(filename_name(path), filename_ext(path), "");
@ -301,27 +300,21 @@ function Node_ASE_File_Read(_x, _y, _group = noone) : Node(_x, _y, _group) const
insp1UpdateIcon = [ THEME.refresh, 1, COLORS._main_value_positive ];
static onInspector1Update = function() { #region
var path = getInputData(0);
if(path == "") return;
updatePaths(path);
updatePaths(path_get(getInputData(0)));
triggerRender();
} #endregion
static step = function() {
static step = function() { #region
if(attributes.file_checker && path_current != "") {
var _ms = file_get_modify_s(path_current);
if(_ms > edit_time) {
edit_time = _ms;
updatePaths(path_current);
update();
if(file_get_modify_s(path_current) > edit_time) {
updatePaths();
triggerRender();
}
}
}
} #endregion
static update = function(frame = CURRENT_FRAME) { #region
var path = getInputData(0);
var path = path_get(getInputData(0));
var current_tag = getInputData(2);
if(path_current != path) updatePaths(path);

View file

@ -1,7 +1,7 @@
function Node_Atlas(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Pixel Expand";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Active", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true);
active_index = 1;

View file

@ -4,9 +4,9 @@ function Node_Average(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
shader = sh_average;
uniform_dim = shader_get_uniform(shader, "dimension");
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 1] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 2] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -1,7 +1,7 @@
function Node_Bend(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Bend";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Active", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true);
active_index = 1;
@ -30,7 +30,7 @@ function Node_Bend(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
attribute_surface_depth();
attribute_interpolation();
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
draw_set_color(COLORS._main_accent);
//for( var i = 0, n = array_length(mesh); i < n; i++ ) {

View file

@ -1,7 +1,7 @@
function Node_Bevel(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Bevel";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Height", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4)
.setMappable(11);
@ -17,7 +17,7 @@ function Node_Bevel(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con
new scrollItem("Smooth", s_node_curve, 4),
new scrollItem("Circular", s_node_curve, 5), ]);
inputs[| 5] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 5] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 6] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);
@ -47,7 +47,7 @@ function Node_Bevel(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con
attribute_surface_depth();
attribute_oversample();
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
PROCESSOR_OVERLAY_CHECK
var _surf = current_data[0];
@ -56,7 +56,7 @@ function Node_Bevel(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con
var _pw = surface_get_width_safe(_surf) * _s / 2;
var _ph = surface_get_height_safe(_surf) * _s / 2;
inputs[| 2].drawOverlay(active, _x + _pw, _y + _ph, _s, _mx, _my, _snx, _sny);
inputs[| 2].drawOverlay(hover, active, _x + _pw, _y + _ph, _s, _mx, _my, _snx, _sny);
} #endregion
static step = function() { #region

View file

@ -8,12 +8,8 @@
function Node_create_Blend(_x, _y, _group = noone, _param = {}) {
var node = new Node_Blend(_x, _y, _group);
var query = struct_try_get(_param, "query", "");
var ind = -1;
switch(query) {
default : ind = array_find(global.node_blend_keys, query);
}
var ind = array_find(global.node_blend_keys, query);
if(ind >= 0) node.inputs[| 2].setValue(ind);
return node;
@ -34,7 +30,7 @@ function Node_Blend(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con
inputs[| 3] = nodeValue("Opacity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);
inputs[| 4] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 4] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 5] = nodeValue("Fill mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "None", "Stretch", "Tile" ]);
@ -84,7 +80,7 @@ function Node_Blend(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con
drag_mx = 0;
drag_my = 0;
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
var _surf = outputs[| 0].getValue();
if(is_array(_surf)) _surf = array_safe_get(_surf, preview_index);
if(is_struct(_surf)) return;

View file

@ -1,7 +1,7 @@
function Node_Blend_Edge(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Blend Edge";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Width", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.1)
.setDisplay(VALUE_DISPLAY.slider)

View file

@ -1,7 +1,7 @@
function Node_Blobify(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Blobify";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Active", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true);

View file

@ -1,7 +1,7 @@
function Node_Bloom(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Bloom";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 3, "Bloom blur radius.")
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 32, 1] });
@ -11,9 +11,9 @@ function Node_Bloom(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con
inputs[| 3] = nodeValue("Strength", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, .25, "Blend intensity.")
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0, 2, 0.01] });
inputs[| 4] = nodeValue("Bloom mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 4] = nodeValue("Bloom mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 5] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 5] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 6] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -1,7 +1,7 @@
function Node_Blur(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Blur";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 3)
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 32, 1] });
@ -12,7 +12,7 @@ function Node_Blur(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
inputs[| 4] = nodeValue("Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_black);
inputs[| 5] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 5] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 6] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -1,13 +1,13 @@
function Node_Blur_Bokeh(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Lens Blur";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Strength", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.2)
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 16, 0.01] })
.setMappable(8);
inputs[| 2] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 2] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 3] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -1,7 +1,7 @@
function Node_Blur_Contrast(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Contrast Blur";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 3)
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 32, 1] });
@ -9,7 +9,7 @@ function Node_Blur_Contrast(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
inputs[| 2] = nodeValue("Threshold", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.2, "Brightness different to be blur together.")
.setDisplay(VALUE_DISPLAY.slider);
inputs[| 3] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 3] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 4] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -1,7 +1,7 @@
function Node_Blur_Directional(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Directional Blur";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Strength", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.2)
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 0.5, 0.001] })
@ -11,7 +11,7 @@ function Node_Blur_Directional(_x, _y, _group = noone) : Node_Processor(_x, _y,
.setDisplay(VALUE_DISPLAY.rotation)
.setMappable(10);
inputs[| 3] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 3] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 4] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);
@ -42,7 +42,7 @@ function Node_Blur_Directional(_x, _y, _group = noone) : Node_Processor(_x, _y,
attribute_surface_depth();
attribute_oversample();
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
var _surf = outputs[| 0].getValue();
if(is_array(_surf)) {
if(array_length(_surf) == 0) return;
@ -52,7 +52,7 @@ function Node_Blur_Directional(_x, _y, _group = noone) : Node_Processor(_x, _y,
var ww = surface_get_width_safe(_surf);
var hh = surface_get_height_safe(_surf);
inputs[| 2].drawOverlay(active, _x + ww / 2 * _s, _y + hh / 2 * _s, _s, _mx, _my, _snx, _sny);
inputs[| 2].drawOverlay(hover, active, _x + ww / 2 * _s, _y + hh / 2 * _s, _s, _mx, _my, _snx, _sny);
} #endregion
static step = function() { #region

View file

@ -1,7 +1,7 @@
function Node_Blur_Radial(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Radial Blur";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Strength", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 45)
.setDisplay(VALUE_DISPLAY.rotation)
@ -14,7 +14,7 @@ function Node_Blur_Radial(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
inputs[| 3] = nodeValue("Oversample mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0, "How to deal with pixel outside the surface.\n - Empty: Use empty pixel\n - Clamp: Repeat edge pixel\n - Repeat: Repeat texture.")
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Empty", "Clamp", "Repeat" ]);
inputs[| 4] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 4] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 5] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);
@ -44,13 +44,13 @@ function Node_Blur_Radial(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
attribute_oversample();
attribute_interpolation();
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
var pos = getInputData(2);
var px = _x + pos[0] * _s;
var py = _y + pos[1] * _s;
inputs[| 1].drawOverlay(active, px, py, _s, _mx, _my, _snx, _sny);
inputs[| 2].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny);
inputs[| 1].drawOverlay(hover, active, px, py, _s, _mx, _my, _snx, _sny);
inputs[| 2].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
} #endregion
static step = function() { #region

View file

@ -6,7 +6,7 @@ function Node_Blur_Shape(_x, _y, _group = noone) : Node_Processor(_x, _y, _group
inputs[| 2] = nodeValue("Blur mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 3] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 3] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 4] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -1,20 +1,20 @@
function Node_Blur_Simple(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Non-Uniform Blur";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 3)
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 32, 1] });
inputs[| 2] = nodeValue("Oversample mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0, "How to deal with pixel outside the surface.\n - Empty: Use empty pixel\n - Clamp: Repeat edge pixel\n - Repeat: Repeat texture.")
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Empty", "Clamp", "Repeat" ]);
inputs[| 3] = nodeValue("Blur mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 3] = nodeValue("Blur mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 4] = nodeValue("Override color", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false, "Replace all color while keeping the alpha. Used to\nfix grey outline when bluring transparent pixel.");
inputs[| 5] = nodeValue("Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_black);
inputs[| 6] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 6] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 7] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -1,7 +1,7 @@
function Node_Blur_Slope(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Slope Blur";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Strength", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 4)
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 32, 1] })
@ -9,7 +9,7 @@ function Node_Blur_Slope(_x, _y, _group = noone) : Node_Processor(_x, _y, _group
inputs[| 2] = nodeValue("Slope Map", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 3] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 3] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 4] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -1,7 +1,7 @@
function Node_Blur_Zoom(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Zoom Blur";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Strength", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.2)
.setMappable(12);
@ -16,9 +16,9 @@ function Node_Blur_Zoom(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[| 4] = nodeValue("Zoom mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Start", "Middle", "End" ]);
inputs[| 5] = nodeValue("Blur mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 5] = nodeValue("Blur mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 6] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 6] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 7] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);
@ -47,13 +47,13 @@ function Node_Blur_Zoom(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
attribute_surface_depth();
attribute_oversample();
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
var pos = getInputData(2);
var px = _x + pos[0] * _s;
var py = _y + pos[1] * _s;
inputs[| 1].drawOverlay(active, px, py, _s, _mx, _my, _snx, _sny, 0, 64, THEME.anchor_scale_hori);
inputs[| 2].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny);
inputs[| 1].drawOverlay(hover, active, px, py, _s, _mx, _my, _snx, _sny, 0, 64, THEME.anchor_scale_hori);
inputs[| 2].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
} #endregion
static step = function() { #region

View file

@ -1,7 +1,7 @@
function Node_BW(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "BW";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Brightness", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0)
.setDisplay(VALUE_DISPLAY.slider, { range: [ -1, 1, 0.01] })
@ -11,7 +11,7 @@ function Node_BW(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constr
.setDisplay(VALUE_DISPLAY.slider, { range: [ -1, 4, 0.01] })
.setMappable(10);
inputs[| 3] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 3] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 4] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -0,0 +1,80 @@
function Node_Byte_File_Read(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Byte File In";
color = COLORS.node_blend_input;
w = 128;
inputs[| 0] = nodeValue("Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "")
.setDisplay(VALUE_DISPLAY.path_load, { filter: "any file|*" })
.rejectArray();
outputs[| 0] = nodeValue("Content", self, JUNCTION_CONNECT.output, VALUE_TYPE.buffer, noone);
outputs[| 1] = nodeValue("Path", self, JUNCTION_CONNECT.output, VALUE_TYPE.path, "")
.setVisible(true, true);
content = noone;
on_drop_file = function(path) { #region
path = path_get(path);
inputs[| 0].setValue(path);
if(updatePaths(path)) {
doUpdate();
return true;
}
return false;
} #endregion
path_current = "";
edit_time = 0;
attributes.file_checker = true;
array_push(attributeEditors, [ "File Watcher", function() { return attributes.file_checker; },
new checkBox(function() { attributes.file_checker = !attributes.file_checker; }) ]);
insp1UpdateTooltip = __txt("Refresh");
insp1UpdateIcon = [ THEME.refresh, 1, COLORS._main_value_positive ];
static onInspector1Update = function() { #region
updatePaths(path_get(getInputData(0)));
triggerRender();
} #endregion
function updatePaths(path = path_current) { #region
if(path == -1) return false;
path_current = path;
edit_time = max(edit_time, file_get_modify_s(path_current));
outputs[| 1].setValue(path_current);
content = buffer_load(path_current);
return true;
} #endregion
static step = function() { #region
if(attributes.file_checker && path_current != "") {
if(file_get_modify_s(path_current) > edit_time) {
updatePaths();
triggerRender();
}
}
} #endregion
static update = function(frame = CURRENT_FRAME) { #region
var path = path_get(getInputData(0));
if(path_current != path)
updatePaths(path);
outputs[| 0].setValue(content);
} #endregion
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) { #region
var bbox = drawGetBbox(xx, yy, _s);
var str = filename_name(getInputData(0));
draw_set_text(f_sdf, fa_center, fa_center, COLORS._main_text);
draw_text_bbox(bbox, str);
} #endregion
}

View file

@ -0,0 +1,11 @@
{
"resourceType": "GMScript",
"resourceVersion": "1.0",
"name": "node_byte_file_read",
"isCompatibility": false,
"isDnD": false,
"parent": {
"name": "IO",
"path": "folders/nodes/data/IO.yy",
},
}

View file

@ -0,0 +1,34 @@
function Node_Byte_File_Write(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Byte File Out";
color = COLORS.node_blend_input;
w = 128;
inputs[| 0] = nodeValue("Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "")
.setDisplay(VALUE_DISPLAY.path_save, { filter: "any file|*" })
.rejectArray();
inputs[| 1] = nodeValue("Content", self, JUNCTION_CONNECT.input, VALUE_TYPE.buffer, noone)
.setVisible(true, true);
static writeFile = function() {
var path = getInputData(0);
if(path == "") return;
var cont = getInputData(1);
if(cont == noone) return;
buffer_save(cont, path);
}
static update = function(frame = CURRENT_FRAME) { writeFile(); }
static onInspector1Update = function() { getInputs(); writeFile(); }
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
var bbox = drawGetBbox(xx, yy, _s);
var str = filename_name(getInputData(0));
draw_set_text(f_sdf, fa_center, fa_center, COLORS._main_text);
draw_text_bbox(bbox, str);
}
}

View file

@ -0,0 +1,11 @@
{
"resourceType": "GMScript",
"resourceVersion": "1.0",
"name": "node_byte_file_write",
"isCompatibility": false,
"isDnD": false,
"parent": {
"name": "IO",
"path": "folders/nodes/data/IO.yy",
},
}

View file

@ -2,9 +2,9 @@ function Node_Cache(_x, _y, _group = noone) : __Node_Cache(_x, _y, _group) const
name = "Cache";
use_cache = CACHE_USE.auto;
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
outputs[| 0] = nodeValue("Cache surface", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, 0);
outputs[| 0] = nodeValue("Cache surface", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone);
input_display_list = [
["Surfaces", true], 0,

View file

@ -2,7 +2,7 @@ function Node_Cache_Array(_x, _y, _group = noone) : __Node_Cache(_x, _y, _group)
name = "Cache Array";
use_cache = CACHE_USE.manual;
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Start frame", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, -1, "Frame index to start caching, set to -1 to start at the first frame.");

View file

@ -2,7 +2,7 @@ function Node_Camera(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
name = "Camera";
preview_alpha = 0.5;
inputs[| 0] = nodeValue("Background", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Background", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
onSurfaceSize = function() { return surface_get_dimension(getInputData(0)); };
inputs[| 1] = nodeValue("Focus area", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 0, 0, 16, 16, AREA_SHAPE.rectangle ])
@ -46,7 +46,7 @@ function Node_Camera(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
var index = ds_list_size(inputs);
var _s = floor((index - input_fix_len) / data_length);
inputs[| index + 0] = nodeValue($"Element {_s}", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| index + 0] = nodeValue($"Element {_s}", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| index + 1] = nodeValue($"Parallax {_s}", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ] )
.setDisplay(VALUE_DISPLAY.vector)
@ -103,7 +103,7 @@ function Node_Camera(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
static getPreviewValues = function() { return getInputData(0); }
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
if(array_length(current_data) == 0) return;
var _out = outputs[| 0].getValue();
@ -114,7 +114,7 @@ function Node_Camera(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
var _cam_y = _y + (_area[1] - _area[3] * _zoom) * _s;
draw_surface_ext_safe(_out, _cam_x, _cam_y, _s * _zoom, _s * _zoom);
inputs[| 1].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny);
inputs[| 1].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
draw_set_color(COLORS._main_accent);
var x0 = _cam_x;

View file

@ -708,7 +708,7 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
draw_set_alpha(1);
} #endregion
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
if(instance_exists(o_dialog_color_picker)) return;
mouse_cur_x = round((_mx - _x) / _s - 0.5);

View file

@ -50,8 +50,8 @@ function Node_Cellular(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
attribute_surface_depth();
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
inputs[| 1].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny);
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
inputs[| 1].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
}
static step = function() { #region

View file

@ -38,13 +38,13 @@ function Node_Checker(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
attribute_surface_depth();
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
var pos = getInputData(3);
var px = _x + pos[0] * _s;
var py = _y + pos[1] * _s;
inputs[| 3].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny);
inputs[| 2].drawOverlay(active, px, py, _s, _mx, _my, _snx, _sny);
inputs[| 3].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
inputs[| 2].drawOverlay(hover, active, px, py, _s, _mx, _my, _snx, _sny);
}
static step = function() { #region

View file

@ -1,7 +1,7 @@
function Node_Chromatic_Aberration(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Chromatic Aberration";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Center", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0.5, 0.5 ])
.setDisplay(VALUE_DISPLAY.vector)
@ -30,12 +30,12 @@ function Node_Chromatic_Aberration(_x, _y, _group = noone) : Node_Processor(_x,
attribute_surface_depth();
attribute_interpolation();
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
var pos = getInputData(1);
var px = _x + pos[0] * _s;
var py = _y + pos[1] * _s;
inputs[| 1].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny);
inputs[| 1].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
} #endregion
static step = function() { #region

View file

@ -262,7 +262,7 @@ function Node_Collection(_x, _y, _group = noone) : Node(_x, _y, _group) construc
h = max(min_h, preH, _hi, _ho);
} #endregion
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
if(!draw_input_overlay) return;
for(var i = custom_input_index; i < ds_list_size(inputs); i++) {
@ -270,7 +270,7 @@ function Node_Collection(_x, _y, _group = noone) : Node(_x, _y, _group) construc
var _show = _in.from.getInputData(6);
if(!_show) continue;
var _hov = _in.drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny);
var _hov = _in.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
if(_hov != undefined) active &= !_hov;
}
} #endregion

View file

@ -1,7 +1,7 @@
function Node_Color_adjust(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Color Adjust";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Brightness", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0)
.setDisplay(VALUE_DISPLAY.slider, { range: [ -1, 1, 0.01 ] })
@ -29,7 +29,7 @@ function Node_Color_adjust(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro
.setDisplay(VALUE_DISPLAY.slider)
.setMappable(23);
inputs[| 8] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 8] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 9] = nodeValue("Alpha", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider)

View file

@ -1,7 +1,7 @@
function Node_Color_Remove(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Remove Color";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Colors", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, DEF_PALETTE )
.setDisplay(VALUE_DISPLAY.palette);
@ -10,7 +10,7 @@ function Node_Color_Remove(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro
.setDisplay(VALUE_DISPLAY.slider)
.setMappable(10);
inputs[| 3] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 3] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 4] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -1,7 +1,7 @@
function Node_Color_replace(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Replace Palette";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Palette from", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, DEF_PALETTE, "Color to be replaced.")
.setDisplay(VALUE_DISPLAY.palette);
@ -17,7 +17,7 @@ function Node_Color_replace(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
inputs[| 6] = nodeValue("Hard replace", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true, "Completely override pixel with new color instead of blending between it.");
inputs[| 7] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 7] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 8] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -1,7 +1,7 @@
function Node_Colorize(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Colorize";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Gradient", self, JUNCTION_CONNECT.input, VALUE_TYPE.gradient, new gradientObject([ c_black, c_white ]) )
.setMappable(11);
@ -10,7 +10,7 @@ function Node_Colorize(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
.setDisplay(VALUE_DISPLAY.slider, { range: [ -1, 1, .01 ] })
.setMappable(10);
inputs[| 3] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 3] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 4] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);
@ -44,8 +44,8 @@ function Node_Colorize(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
attribute_surface_depth();
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
inputs[| 12].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny, surface_get_dimension(getSingleValue(0)));
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
inputs[| 12].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny, surface_get_dimension(getSingleValue(0)));
} #endregion
static step = function() { #region

View file

@ -1,7 +1,7 @@
function Node_Colors_Replace(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Replace Colors";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Palette from", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, [])
.setDisplay(VALUE_DISPLAY.palette);
@ -12,7 +12,7 @@ function Node_Colors_Replace(_x, _y, _group = noone) : Node_Processor(_x, _y, _g
inputs[| 3] = nodeValue("Threshold", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.1)
.setDisplay(VALUE_DISPLAY.slider);
inputs[| 4] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 4] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 5] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -6,9 +6,9 @@ function Node_Combine_HSV(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
uniform_s = shader_get_sampler_index(shader, "samS");
uniform_v = shader_get_sampler_index(shader, "samV");
inputs[| 0] = nodeValue("Hue", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 1] = nodeValue("Saturation", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 2] = nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Hue", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Saturation", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 2] = nodeValue("Value", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone);

View file

@ -26,10 +26,9 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
attribute_surface_depth();
attribute_interpolation();
setIsDynamicInput(4);
attributes.layer_visible = [];
attributes.layer_selectable = [];
properties_expand = [];
hold_visibility = true;
hold_select = true;
@ -39,18 +38,24 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
var amo = (ds_list_size(inputs) - input_fix_len) / data_length - 1;
if(array_length(current_data) != ds_list_size(inputs)) return 0;
var lh = 32;
var _h = 8 + max(1, amo) * (lh + 4) + 8;
var lh = 28;
var eh = 36;
properties_expand = array_verify(properties_expand, amo);
var _h = 4;
for(var i = 0; i < amo; i++)
_h += lh + 4 + properties_expand[i] * eh;
layer_renderer.h = _h;
draw_sprite_stretched_ext(THEME.ui_panel_bg, 1, _x, _y, _w, _h, COLORS.node_composite_bg_blend, 1);
var _vis = attributes.layer_visible;
var _sel = attributes.layer_selectable;
var ly = _y + 8;
var ssh = lh - 6;
var ly = _y + 4;
var ssh = lh - 4;
var hoverIndex = noone;
draw_set_color(COLORS.node_composite_separator);
draw_line(_x + 16, ly, _x + _w - 16, ly);
var _cy = ly;
layer_remove = -1;
for(var i = 0; i < amo; i++) {
@ -60,7 +65,41 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
var _pos = current_data[index + 1];
var _bx = _x + _w - 24;
var _cy = ly + i * (lh + 4);
var aa = (ind != layer_dragging || layer_dragging == noone)? 1 : 0.5;
var vis = _vis[ind];
var sel = _sel[ind];
var _exp = properties_expand[i];
var _lh = lh + 4 + _exp * eh;
if(_exp) { #region extended
var _px = _x + 4;
var _py = _cy + lh + 4;
var _pw = _w - 8;
var _ph = eh - 4;
var _pww = (_pw - 8) / 2 - 8;
var _pwh = _ph - 8;
draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, _px, _py, _pw, _ph, COLORS.node_composite_bg_blend, 1);
var jun = inputs[| index + 4];
var bl_wid = jun.editWidget;
var _param = new widgetParam(_px + 4, _py + 4, _pww, _pwh, jun.showValue(), jun.display_data, _m, layer_renderer.rx, layer_renderer.ry);
bl_wid.setFocusHover(_focus, _hover);
bl_wid.font = f_p2;
bl_wid.drawParam(_param);
bl_wid.font = f_p0;
var jun = inputs[| index + 5];
var bl_wid = jun.editWidget;
var _param = new widgetParam(_px + 4 + _pww + 8, _py + 4, _pww, _pwh, jun.showValue(), jun.display_data, _m, layer_renderer.rx, layer_renderer.ry);
bl_wid.setFocusHover(_focus, _hover);
bl_wid.drawParam(_param);
} #endregion
if(point_in_circle(_m[0], _m[1], _bx, _cy + lh / 2, 16)) {
draw_sprite_ui_uniform(THEME.icon_delete, 3, _bx, _cy + lh / 2, 1, COLORS._main_value_negative);
@ -72,15 +111,7 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
if(!is_surface(_surf)) continue;
var aa = (ind != layer_dragging || layer_dragging == noone)? 1 : 0.5;
var vis = _vis[ind];
var sel = _sel[ind];
var hover = point_in_rectangle(_m[0], _m[1], _x, _cy, _x + _w, _cy + lh);
draw_set_color(COLORS.node_composite_separator);
draw_line(_x + 16, _cy + lh + 2, _x + _w - 16, _cy + lh + 2);
var _bx = _x + 24 * 2 + 8;
var _bx = _x + 16 + 24;
if(point_in_circle(_m[0], _m[1], _bx, _cy + lh / 2, 12)) {
draw_sprite_ui_uniform(THEME.junc_visible, vis, _bx, _cy + lh / 2, 1, c_white);
@ -94,7 +125,7 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
} else
draw_sprite_ui_uniform(THEME.junc_visible, vis, _bx, _cy + lh / 2, 1, COLORS._main_icon, 0.5 + 0.5 * vis);
_bx += 24 + 8;
_bx += 12 + 1 + 12;
if(point_in_circle(_m[0], _m[1], _bx, _cy + lh / 2, 12)) {
draw_sprite_ui_uniform(THEME.cursor_select, sel, _bx, _cy + lh / 2, 1, c_white);
@ -106,21 +137,21 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
} else
draw_sprite_ui_uniform(THEME.cursor_select, sel, _bx, _cy + lh / 2, 1, COLORS._main_icon, 0.5 + 0.5 * sel);
draw_set_color(COLORS.node_composite_bg);
var _sx0 = _bx + 24;
var hover = point_in_rectangle(_m[0], _m[1], _bx + 12 + 6, _cy, _x + _w - 48, _cy + lh - 1);
var _sx0 = _bx + 12 + 6;
var _sx1 = _sx0 + ssh;
var _sy0 = _cy + 3;
var _sy1 = _sy0 + ssh;
draw_rectangle(_sx0, _sy0, _sx1, _sy1, true);
var _ssw = surface_get_width_safe(_surf);
var _ssh = surface_get_height_safe(_surf);
var _sss = min(ssh / _ssw, ssh / _ssh);
draw_surface_ext_safe(_surf, _sx0, _sy0, _sss, _sss, 0, c_white, 1);
draw_set_text(f_p1, fa_left, fa_center, hover? COLORS._main_text : COLORS._main_text);
draw_set_text(f_p1, fa_left, fa_center, hover? COLORS._main_text_accent : COLORS._main_text);
draw_set_alpha(aa);
draw_text(_sx1 + 12, _cy + lh / 2, inputs[| index].name);
draw_text(_sx1 + 12, _cy + lh / 2 + 2, inputs[| index].name);
draw_set_alpha(1);
if(_hover && point_in_rectangle(_m[0], _m[1], _x, _cy, _x + _w, _cy + lh)) {
@ -134,16 +165,23 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
}
}
if(layer_dragging == noone || layer_dragging == ind) {
var _bx = _x + 24;
if(point_in_circle(_m[0], _m[1], _bx, _cy + lh / 2, 16)) {
draw_sprite_ui_uniform(THEME.hamburger_s, 3, _bx, _cy + lh / 2, 1, c_white);
var _bx = _x + 8 + 8;
var cc = COLORS._main_icon;
if(point_in_rectangle(_m[0], _m[1], _bx - 8, _cy + 4, _bx + 8, _cy + lh - 4)) {
cc = c_white;
if(mouse_press(mb_left, _focus))
layer_dragging = ind;
} else
draw_sprite_ui_uniform(THEME.hamburger_s, 3, _bx, _cy + lh / 2, 1, COLORS._main_icon);
if(mouse_press(mb_left, _focus))
properties_expand[i] = !properties_expand[i];
}
draw_sprite_ui_uniform(THEME.arrow, _exp? 3 : 0, _bx, _cy + lh / 2 + _exp * 2, 1, cc);
if(hover && layer_dragging == noone || layer_dragging == ind) {
if(mouse_press(mb_left, _focus))
layer_dragging = ind;
}
_cy += _lh;
}
if(layer_dragging != noone && mouse_release(mb_left)) {
@ -184,10 +222,13 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
["Layers", false], layer_renderer,
["Surfaces", true],
];
input_display_list_len = array_length(input_display_list);
setIsDynamicInput(6);
function deleteLayer(index) { #region
var idx = input_fix_len + index * data_length;
for( var i = 0; i < data_length; i++ ) {
ds_list_delete(inputs, idx);
array_remove(input_display_list, idx + i);
@ -207,36 +248,37 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
var index = ds_list_size(inputs);
var _s = floor((index - input_fix_len) / data_length);
inputs[| index + 0] = nodeValue(_s? ("Surface " + string(_s)) : "Background", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| index + 0].surface_index = index;
inputs[| index + 0] = nodeValue(_s? ($"Surface {_s}") : "Background", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| index + 0].hover_effect = 0;
inputs[| index + 1] = nodeValue("Position " + string(_s), self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] )
inputs[| index + 1] = nodeValue($"Position {_s}", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] )
.setDisplay(VALUE_DISPLAY.vector)
.setUnitRef(function(index) { return [ overlay_w, overlay_h ]; });
inputs[| index + 1].surface_index = index;
inputs[| index + 2] = nodeValue("Rotation " + string(_s), self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 )
inputs[| index + 2] = nodeValue($"Rotation {_s}", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 )
.setDisplay(VALUE_DISPLAY.rotation);
inputs[| index + 2].surface_index = index;
inputs[| index + 3] = nodeValue("Scale " + string(_s), self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ] )
inputs[| index + 3] = nodeValue($"Scale {_s}", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ] )
.setDisplay(VALUE_DISPLAY.vector);
inputs[| index + 3].surface_index = index;
array_push(input_display_list, index + 0);
array_push(input_display_list, index + 1);
array_push(input_display_list, index + 2);
array_push(input_display_list, index + 3);
inputs[| index + 4] = nodeValue($"Blend {_s}", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, BLEND_TYPES );
inputs[| index + 5] = nodeValue($"Opacity {_s}", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);
for( var i = 0; i < data_length; i++ ) {
array_push(input_display_list, index + i);
inputs[| index + i].surface_index = index;
}
while(_s >= array_length(attributes.layer_visible))
array_push(attributes.layer_visible, true);
while(_s >= array_length(attributes.layer_selectable))
array_push(attributes.layer_selectable, true);
} #endregion
if(!LOADING && !APPENDING) createNewInput();
//function getInput() { return inputs[| ds_list_size(inputs) - data_length]; }
} if(!LOADING && !APPENDING) createNewInput(); #endregion
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone);
@ -248,11 +290,11 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
surf_dragging = -1;
input_dragging = -1;
drag_type = 0;
dragging_sx = 0;
dragging_sy = 0;
dragging_mx = 0;
dragging_my = 0;
drag_type = 0;
dragging_sx = 0;
dragging_sy = 0;
dragging_mx = 0;
dragging_my = 0;
rot_anc_x = 0;
rot_anc_y = 0;
@ -264,11 +306,11 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
surface_selecting = noone;
static getInputAmount = function() { #region
return input_fix_len + (ds_list_size(inputs) - input_fix_len) / data_length;
} #endregion
static getInputAmount = function() { INLINE return input_fix_len + (ds_list_size(inputs) - input_fix_len) / data_length; }
static getInputIndex = function(index) { #region
INLINE
if(index < input_fix_len) return index;
return input_fix_len + (index - input_fix_len) * data_length;
} #endregion
@ -458,7 +500,7 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
createNewInput();
} #endregion
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
var pad = getInputData(0);
var ww = overlay_w;
var hh = overlay_h;
@ -740,56 +782,64 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
if(_output_index == 1) return atlas_data;
if(_output_index == 0 && _array_index == 0) atlas_data = [];
if(array_length(_data) < 4) return _outSurf;
if(array_length(_data) <= input_fix_len) return _outSurf;
var _pad = _data[0];
var _dim_type = _data[1];
var _dim = _data[2];
var base = _data[3];
var cDep = attrDepth();
var ww = 0, hh = 0;
switch(_dim_type) {
case COMPOSE_OUTPUT_SCALING.first :
ww = surface_get_width_safe(base);
hh = surface_get_height_safe(base);
break;
case COMPOSE_OUTPUT_SCALING.largest :
for(var i = input_fix_len; i < array_length(_data) - data_length; i += data_length) {
var _s = _data[i];
ww = max(ww, surface_get_width_safe(_s));
hh = max(hh, surface_get_height_safe(_s));
}
break;
case COMPOSE_OUTPUT_SCALING.constant :
ww = _dim[0];
hh = _dim[1];
break;
}
ww += _pad[0] + _pad[2];
hh += _pad[1] + _pad[3];
#region dimension
var ww = 0, hh = 0;
overlay_w = ww;
overlay_h = hh;
switch(_dim_type) {
case COMPOSE_OUTPUT_SCALING.first :
ww = surface_get_width_safe(base);
hh = surface_get_height_safe(base);
break;
case COMPOSE_OUTPUT_SCALING.largest :
for(var i = input_fix_len; i < array_length(_data) - data_length; i += data_length) {
var _s = _data[i];
ww = max(ww, surface_get_width_safe(_s));
hh = max(hh, surface_get_height_safe(_s));
}
break;
case COMPOSE_OUTPUT_SCALING.constant :
ww = _dim[0];
hh = _dim[1];
break;
}
ww += _pad[0] + _pad[2];
hh += _pad[1] + _pad[3];
overlay_w = ww;
overlay_h = hh;
#endregion
for(var i = 0; i < 3; i++) {
temp_surface[i] = surface_verify(temp_surface[i], ww, hh, cDep);
surface_clear(temp_surface[i]);
}
var res_index = 0, bg = 0;
var imageAmo = (ds_list_size(inputs) - input_fix_len) / data_length;
var _vis = attributes.layer_visible;
var _bg = 0;
var res_index = 0;
var imageAmo = (ds_list_size(inputs) - input_fix_len) / data_length;
var _vis = attributes.layer_visible;
var bg = 0;
var _bg = 0;
blend_temp_surface = temp_surface[2];
for(var i = 0; i < imageAmo; i++) {
var vis = _vis[i];
if(!vis) continue;
var startDataIndex = input_fix_len + i * data_length;
var _s = _data[startDataIndex + 0];
var _pos = _data[startDataIndex + 1];
var _rot = _data[startDataIndex + 2];
var _sca = _data[startDataIndex + 3];
var _ind = input_fix_len + i * data_length;
var _s = _data[_ind + 0];
var _pos = _data[_ind + 1];
var _rot = _data[_ind + 2];
var _sca = _data[_ind + 3];
var _bld = _data[_ind + 4];
var _alp = _data[_ind + 5];
if(!_s || is_array(_s)) continue;
@ -806,8 +856,7 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
array_push(atlas_data, new SurfaceAtlas(_s, _d0[0], _d0[1], _rot, _sca[0], _sca[1]));
surface_set_shader(temp_surface[_bg], sh_sample, true, BLEND.over);
blend_temp_surface = temp_surface[2];
draw_surface_blend_ext(temp_surface[!_bg], _s, _d0[0], _d0[1], _sca[0], _sca[1], _rot);
draw_surface_blend_ext(temp_surface[!_bg], _s, _d0[0], _d0[1], _sca[0], _sca[1], _rot, c_white, _alp, _bld, true);
surface_reset_shader();
_bg = !_bg;

View file

@ -1,7 +1,7 @@
function Node_Convolution(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Convolution";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Kernel", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, array_create(9))
.setDisplay(VALUE_DISPLAY.matrix, { size: 3 });
@ -9,7 +9,7 @@ function Node_Convolution(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
inputs[| 2] = nodeValue("Oversample mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0, "How to deal with pixel outside the surface.\n - Empty: Use empty pixel\n - Clamp: Repeat edge pixel\n - Repeat: Repeat texture.")
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Empty", "Clamp", "Repeat" ]);
inputs[| 3] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 3] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 4] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -1,12 +1,12 @@
function Node_Corner(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Round corner";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 2)
.setDisplay(VALUE_DISPLAY.slider, { range: [2, 16, 1] });
inputs[| 2] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 2] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 3] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -2,7 +2,7 @@ function Node_Crop(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
name = "Crop";
preview_alpha = 0.5;
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Crop", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 0, 0, 0, 0 ])
.setDisplay(VALUE_DISPLAY.padding)
@ -28,7 +28,7 @@ function Node_Crop(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
static getPreviewValues = function() { return getInputData(0); }
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny, params) { #region
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny, params) { #region
var _inSurf = getSingleValue(0);
var _spRaw = getSingleValue(1);
var _splice;

View file

@ -1,7 +1,7 @@
function Node_Crop_Content(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Crop Content";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Active", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true);

View file

@ -41,9 +41,14 @@ function Node_CSV_File_Read(_x, _y, _group = noone) : Node(_x, _y, _group) const
outputs[| 1] = nodeValue("Path", self, JUNCTION_CONNECT.output, VALUE_TYPE.path, "")
.setVisible(true, true);
content = "";
content = "";
path_current = "";
edit_time = 0;
attributes.file_checker = true;
array_push(attributeEditors, [ "File Watcher", function() { return attributes.file_checker; },
new checkBox(function() { attributes.file_checker = !attributes.file_checker; }) ]);
first_update = false;
on_drop_file = function(path) { #region
@ -55,8 +60,8 @@ function Node_CSV_File_Read(_x, _y, _group = noone) : Node(_x, _y, _group) const
return false;
} #endregion
function updatePaths(path) { #region
path = try_get_path(path);
function updatePaths(path = path_current) { #region
path = path_get(path);
if(path == -1) return false;
var ext = string_lower(filename_ext(path));
@ -84,8 +89,10 @@ function Node_CSV_File_Read(_x, _y, _group = noone) : Node(_x, _y, _group) const
if(path_current == "")
first_update = true;
path_current = path;
edit_time = max(edit_time, file_get_modify_s(path_current));
return true;
} #endregion
@ -93,15 +100,21 @@ function Node_CSV_File_Read(_x, _y, _group = noone) : Node(_x, _y, _group) const
insp1UpdateIcon = [ THEME.refresh, 1, COLORS._main_value_positive ];
static onInspector1Update = function() { #region
var path = getInputData(0);
if(path == "") return;
updatePaths(path);
update();
updatePaths(path_get(getInputData(0)));
triggerRender();
} #endregion
static step = function() { #region
if(attributes.file_checker && path_current != "") {
if(file_get_modify_s(path_current) > edit_time) {
updatePaths();
triggerRender();
}
}
} #endregion
static update = function(frame = CURRENT_FRAME) { #region
var path = getInputData(0);
if(path == "") return;
var path = path_get(getInputData(0));
if(path_current != path) updatePaths(path);
outputs[| 0].setValue(content);

View file

@ -1,7 +1,7 @@
function Node_Curve(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Curve";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Brightness", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_01);
@ -11,7 +11,7 @@ function Node_Curve(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con
inputs[| 4] = nodeValue("Blue", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_01);
inputs[| 5] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 5] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 6] = nodeValue("Mix", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
.setDisplay(VALUE_DISPLAY.slider);

View file

@ -1017,14 +1017,14 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
static drawJunctions = function(_x, _y, _mx, _my, _s) { #region
if(!active) return;
var hover = noone;
var amo = input_display_list == -1? ds_list_size(inputs) : array_length(input_display_list);
var jun;
var amo = input_display_list == -1? ds_list_size(inputs) : array_length(input_display_list);
gpu_set_texfilter(true);
for(var i = 0; i < amo; i++) {
var ind = getInputJunctionIndex(i);
if(ind == noone) continue;
jun = ds_list_get(inputs, ind, noone);
var jun = ds_list_get(inputs, ind, noone);
if(jun == noone || is_undefined(jun)) continue;
if(jun.drawJunction(_s, _mx, _my))
@ -1032,17 +1032,21 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
}
for(var i = 0; i < ds_list_size(outputs); i++) {
jun = outputs[| i];
var jun = outputs[| i];
if(jun.drawJunction(_s, _mx, _my))
hover = jun;
}
if(hasInspector1Update() && inspectInput1.drawJunction(_s, _mx, _my))
hover = inspectInput1;
if(hasInspector1Update()) {
if(inspectInput1.drawJunction(_s, _mx, _my))
hover = inspectInput1;
}
if(hasInspector2Update() && inspectInput2.drawJunction(_s, _mx, _my))
hover = inspectInput2;
if(hasInspector2Update()) {
if(inspectInput2.drawJunction(_s, _mx, _my))
hover = inspectInput2;
}
if(attributes.show_update_trigger) {
if(updatedInTrigger.drawJunction(_s, _mx, _my)) hover = updatedInTrigger;
@ -1408,9 +1412,9 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
if(display_parameter.highlight) drawBranch();
} #endregion
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {}
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {}
static drawPreviewToolOverlay = function(active, _mx, _my, _panel) { return false; }
static drawPreviewToolOverlay = function(hover, active, _mx, _my, _panel) { return false; }
static drawAnimationTimeline = function(_w, _h, _s) {}

View file

@ -1,7 +1,7 @@
function Node_De_Corner(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "De-Corner";
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Active", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true);
active_index = 1;

Some files were not shown because too many files have changed in this diff Show more