Scroll icons

This commit is contained in:
Tanasart 2024-01-28 15:53:41 +07:00
parent 46e52ed5d4
commit f5d24598ae
216 changed files with 2157 additions and 386 deletions

View file

@ -256,6 +256,7 @@
{"name":"bs","order":4,"path":"folders/sprites/bs.yy",}, {"name":"bs","order":4,"path":"folders/sprites/bs.yy",},
{"name":"gameframe","order":2,"path":"folders/sprites/gameframe.yy",}, {"name":"gameframe","order":2,"path":"folders/sprites/gameframe.yy",},
{"name":"misc","order":3,"path":"folders/sprites/misc.yy",}, {"name":"misc","order":3,"path":"folders/sprites/misc.yy",},
{"name":"nodes","order":5,"path":"folders/sprites/nodes.yy",},
{"name":"VCT","order":12,"path":"folders/VCT.yy",}, {"name":"VCT","order":12,"path":"folders/VCT.yy",},
{"name":"biterator","order":2,"path":"folders/VCT/biterator.yy",}, {"name":"biterator","order":2,"path":"folders/VCT/biterator.yy",},
{"name":"widget","order":3,"path":"folders/VCT/widget.yy",}, {"name":"widget","order":3,"path":"folders/VCT/widget.yy",},
@ -293,6 +294,7 @@
{"name":"node_hlsl","order":13,"path":"scripts/node_hlsl/node_hlsl.yy",}, {"name":"node_hlsl","order":13,"path":"scripts/node_hlsl/node_hlsl.yy",},
{"name":"sh_dither","order":15,"path":"shaders/sh_dither/sh_dither.yy",}, {"name":"sh_dither","order":15,"path":"shaders/sh_dither/sh_dither.yy",},
{"name":"__vec2","order":7,"path":"scripts/__vec2/__vec2.yy",}, {"name":"__vec2","order":7,"path":"scripts/__vec2/__vec2.yy",},
{"name":"s_node_shadow_type","order":1,"path":"sprites/s_node_shadow_type/s_node_shadow_type.yy",},
{"name":"node_region_fill","order":1,"path":"scripts/node_region_fill/node_region_fill.yy",}, {"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_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":"sh_d3d_normal","order":18,"path":"shaders/sh_d3d_normal/sh_d3d_normal.yy",},
@ -338,8 +340,10 @@
{"name":"Obj_FirebaseFirestore_Document_Read","order":5,"path":"objects/Obj_FirebaseFirestore_Document_Read/Obj_FirebaseFirestore_Document_Read.yy",}, {"name":"Obj_FirebaseFirestore_Document_Read","order":5,"path":"objects/Obj_FirebaseFirestore_Document_Read/Obj_FirebaseFirestore_Document_Read.yy",},
{"name":"node_dither","order":6,"path":"scripts/node_dither/node_dither.yy",}, {"name":"node_dither","order":6,"path":"scripts/node_dither/node_dither.yy",},
{"name":"sh_perlin_smear","order":5,"path":"shaders/sh_perlin_smear/sh_perlin_smear.yy",}, {"name":"sh_perlin_smear","order":5,"path":"shaders/sh_perlin_smear/sh_perlin_smear.yy",},
{"name":"s_node_logic","order":3,"path":"sprites/s_node_logic/s_node_logic.yy",},
{"name":"node_array_remove","order":4,"path":"scripts/node_array_remove/node_array_remove.yy",}, {"name":"node_array_remove","order":4,"path":"scripts/node_array_remove/node_array_remove.yy",},
{"name":"node_path_blend","order":2,"path":"scripts/node_path_blend/node_path_blend.yy",}, {"name":"node_path_blend","order":2,"path":"scripts/node_path_blend/node_path_blend.yy",},
{"name":"s_node_gradient_type","order":8,"path":"sprites/s_node_gradient_type/s_node_gradient_type.yy",},
{"name":"rotator_Rotator","order":3,"path":"objects/rotator_Rotator/rotator_Rotator.yy",}, {"name":"rotator_Rotator","order":3,"path":"objects/rotator_Rotator/rotator_Rotator.yy",},
{"name":"node_switch","order":5,"path":"scripts/node_switch/node_switch.yy",}, {"name":"node_switch","order":5,"path":"scripts/node_switch/node_switch.yy",},
{"name":"sh_corner","order":11,"path":"shaders/sh_corner/sh_corner.yy",}, {"name":"sh_corner","order":11,"path":"shaders/sh_corner/sh_corner.yy",},
@ -374,6 +378,7 @@
{"name":"s_node_spout","order":23,"path":"sprites/s_node_spout/s_node_spout.yy",}, {"name":"s_node_spout","order":23,"path":"sprites/s_node_spout/s_node_spout.yy",},
{"name":"sh_fd_visualize_velocity_glsl","order":19,"path":"shaders/sh_fd_visualize_velocity_glsl/sh_fd_visualize_velocity_glsl.yy",}, {"name":"sh_fd_visualize_velocity_glsl","order":19,"path":"shaders/sh_fd_visualize_velocity_glsl/sh_fd_visualize_velocity_glsl.yy",},
{"name":"node_3d_mesh_terrain","order":9,"path":"scripts/node_3d_mesh_terrain/node_3d_mesh_terrain.yy",}, {"name":"node_3d_mesh_terrain","order":9,"path":"scripts/node_3d_mesh_terrain/node_3d_mesh_terrain.yy",},
{"name":"s_node_condition_type","order":9,"path":"sprites/s_node_condition_type/s_node_condition_type.yy",},
{"name":"fd_rectangle_set_material_time_step","order":8,"path":"scripts/fd_rectangle_set_material_time_step/fd_rectangle_set_material_time_step.yy",}, {"name":"fd_rectangle_set_material_time_step","order":8,"path":"scripts/fd_rectangle_set_material_time_step/fd_rectangle_set_material_time_step.yy",},
{"name":"Obj_FirebaseREST_Listener_On_Firestore","order":1,"path":"objects/Obj_FirebaseREST_Listener_On_Firestore/Obj_FirebaseREST_Listener_On_Firestore.yy",}, {"name":"Obj_FirebaseREST_Listener_On_Firestore","order":1,"path":"objects/Obj_FirebaseREST_Listener_On_Firestore/Obj_FirebaseREST_Listener_On_Firestore.yy",},
{"name":"credit_badge_popular","order":2,"path":"sprites/credit_badge_popular/credit_badge_popular.yy",}, {"name":"credit_badge_popular","order":2,"path":"sprites/credit_badge_popular/credit_badge_popular.yy",},
@ -382,14 +387,17 @@
{"name":"s_node_sepearte_shape","order":35,"path":"sprites/s_node_sepearte_shape/s_node_sepearte_shape.yy",}, {"name":"s_node_sepearte_shape","order":35,"path":"sprites/s_node_sepearte_shape/s_node_sepearte_shape.yy",},
{"name":"s_node_websocket_send","order":21,"path":"sprites/s_node_websocket_send/s_node_websocket_send.yy",}, {"name":"s_node_websocket_send","order":21,"path":"sprites/s_node_websocket_send/s_node_websocket_send.yy",},
{"name":"s_node_text_join","order":5,"path":"sprites/s_node_text_join/s_node_text_join.yy",}, {"name":"s_node_text_join","order":5,"path":"sprites/s_node_text_join/s_node_text_join.yy",},
{"name":"s_node_3d_affector_shape","order":13,"path":"sprites/s_node_3d_affector_shape/s_node_3d_affector_shape.yy",},
{"name":"s_node_polar","order":5,"path":"sprites/s_node_polar/s_node_polar.yy",}, {"name":"s_node_polar","order":5,"path":"sprites/s_node_polar/s_node_polar.yy",},
{"name":"complex_function","order":15,"path":"scripts/complex_function/complex_function.yy",}, {"name":"complex_function","order":15,"path":"scripts/complex_function/complex_function.yy",},
{"name":"draw_set_blend_mode_ext","order":2,"path":"scripts/draw_set_blend_mode_ext/draw_set_blend_mode_ext.yy",}, {"name":"draw_set_blend_mode_ext","order":2,"path":"scripts/draw_set_blend_mode_ext/draw_set_blend_mode_ext.yy",},
{"name":"s_node_shape_misc","order":6,"path":"sprites/s_node_shape_misc/s_node_shape_misc.yy",},
{"name":"s_node_json_parse","order":2,"path":"sprites/s_node_json_parse/s_node_json_parse.yy",}, {"name":"s_node_json_parse","order":2,"path":"sprites/s_node_json_parse/s_node_json_parse.yy",},
{"name":"s_node_noise_simplex","order":20,"path":"sprites/s_node_noise_simplex/s_node_noise_simplex.yy",}, {"name":"s_node_noise_simplex","order":20,"path":"sprites/s_node_noise_simplex/s_node_noise_simplex.yy",},
{"name":"s_node_armature_sample","order":18,"path":"sprites/s_node_armature_sample/s_node_armature_sample.yy",}, {"name":"s_node_armature_sample","order":18,"path":"sprites/s_node_armature_sample/s_node_armature_sample.yy",},
{"name":"sh_draw_color","order":8,"path":"shaders/sh_draw_color/sh_draw_color.yy",}, {"name":"sh_draw_color","order":8,"path":"shaders/sh_draw_color/sh_draw_color.yy",},
{"name":"d3d_scene","order":2,"path":"scripts/d3d_scene/d3d_scene.yy",}, {"name":"d3d_scene","order":2,"path":"scripts/d3d_scene/d3d_scene.yy",},
{"name":"sh_draw_tile","order":15,"path":"shaders/sh_draw_tile/sh_draw_tile.yy",},
{"name":"sh_channel_R2A","order":13,"path":"shaders/sh_channel_R2A/sh_channel_R2A.yy",}, {"name":"sh_channel_R2A","order":13,"path":"shaders/sh_channel_R2A/sh_channel_R2A.yy",},
{"name":"__node_module","order":14,"path":"scripts/__node_module/__node_module.yy",}, {"name":"__node_module","order":14,"path":"scripts/__node_module/__node_module.yy",},
{"name":"s_node_array_find","order":2,"path":"sprites/s_node_array_find/s_node_array_find.yy",}, {"name":"s_node_array_find","order":2,"path":"sprites/s_node_array_find/s_node_array_find.yy",},
@ -533,6 +541,7 @@
{"name":"sh_d3d_default","order":11,"path":"shaders/sh_d3d_default/sh_d3d_default.yy",}, {"name":"sh_d3d_default","order":11,"path":"shaders/sh_d3d_default/sh_d3d_default.yy",},
{"name":"node_stagger","order":4,"path":"scripts/node_stagger/node_stagger.yy",}, {"name":"node_stagger","order":4,"path":"scripts/node_stagger/node_stagger.yy",},
{"name":"s_node_gabor","order":32,"path":"sprites/s_node_gabor/s_node_gabor.yy",}, {"name":"s_node_gabor","order":32,"path":"sprites/s_node_gabor/s_node_gabor.yy",},
{"name":"s_node_axis_type","order":17,"path":"sprites/s_node_axis_type/s_node_axis_type.yy",},
{"name":"s_node_dithering","order":21,"path":"sprites/s_node_dithering/s_node_dithering.yy",}, {"name":"s_node_dithering","order":21,"path":"sprites/s_node_dithering/s_node_dithering.yy",},
{"name":"node_3d_mesh_extrude","order":8,"path":"scripts/node_3d_mesh_extrude/node_3d_mesh_extrude.yy",}, {"name":"node_3d_mesh_extrude","order":8,"path":"scripts/node_3d_mesh_extrude/node_3d_mesh_extrude.yy",},
{"name":"sh_find_boundary_stretch_x","order":1,"path":"shaders/sh_find_boundary_stretch_x/sh_find_boundary_stretch_x.yy",}, {"name":"sh_find_boundary_stretch_x","order":1,"path":"shaders/sh_find_boundary_stretch_x/sh_find_boundary_stretch_x.yy",},
@ -653,6 +662,7 @@
{"name":"sh_draw_texture","order":6,"path":"shaders/sh_draw_texture/sh_draw_texture.yy",}, {"name":"sh_draw_texture","order":6,"path":"shaders/sh_draw_texture/sh_draw_texture.yy",},
{"name":"d3d_terrain","order":8,"path":"scripts/d3d_terrain/d3d_terrain.yy",}, {"name":"d3d_terrain","order":8,"path":"scripts/d3d_terrain/d3d_terrain.yy",},
{"name":"fd_rectangle_get_pressure_width","order":18,"path":"scripts/fd_rectangle_get_pressure_width/fd_rectangle_get_pressure_width.yy",}, {"name":"fd_rectangle_get_pressure_width","order":18,"path":"scripts/fd_rectangle_get_pressure_width/fd_rectangle_get_pressure_width.yy",},
{"name":"s_node_mk_rain_type","order":7,"path":"sprites/s_node_mk_rain_type/s_node_mk_rain_type.yy",},
{"name":"node_mk_flag","order":5,"path":"scripts/node_mk_flag/node_mk_flag.yy",}, {"name":"node_mk_flag","order":5,"path":"scripts/node_mk_flag/node_mk_flag.yy",},
{"name":"sh_blur_slope","order":10,"path":"shaders/sh_blur_slope/sh_blur_slope.yy",}, {"name":"sh_blur_slope","order":10,"path":"shaders/sh_blur_slope/sh_blur_slope.yy",},
{"name":"sh_blend_normal","order":1,"path":"shaders/sh_blend_normal/sh_blend_normal.yy",}, {"name":"sh_blend_normal","order":1,"path":"shaders/sh_blend_normal/sh_blend_normal.yy",},
@ -753,6 +763,7 @@
{"name":"node_string_regex_replace","order":9,"path":"scripts/node_string_regex_replace/node_string_regex_replace.yy",}, {"name":"node_string_regex_replace","order":9,"path":"scripts/node_string_regex_replace/node_string_regex_replace.yy",},
{"name":"s_node_particle","order":12,"path":"sprites/s_node_particle/s_node_particle.yy",}, {"name":"s_node_particle","order":12,"path":"sprites/s_node_particle/s_node_particle.yy",},
{"name":"node_random_shape","order":16,"path":"scripts/node_random_shape/node_random_shape.yy",}, {"name":"node_random_shape","order":16,"path":"scripts/node_random_shape/node_random_shape.yy",},
{"name":"s_node_flip_render","order":11,"path":"sprites/s_node_flip_render/s_node_flip_render.yy",},
{"name":"s_node_random","order":3,"path":"sprites/s_node_random/s_node_random.yy",}, {"name":"s_node_random","order":3,"path":"sprites/s_node_random/s_node_random.yy",},
{"name":"sh_3d_extrude_filler","order":8,"path":"shaders/sh_3d_extrude_filler/sh_3d_extrude_filler.yy",}, {"name":"sh_3d_extrude_filler","order":8,"path":"shaders/sh_3d_extrude_filler/sh_3d_extrude_filler.yy",},
{"name":"quarternionBox","order":8,"path":"scripts/quarternionBox/quarternionBox.yy",}, {"name":"quarternionBox","order":8,"path":"scripts/quarternionBox/quarternionBox.yy",},
@ -813,6 +824,7 @@
{"name":"fd_rectangle_get_pressure_height","order":16,"path":"scripts/fd_rectangle_get_pressure_height/fd_rectangle_get_pressure_height.yy",}, {"name":"fd_rectangle_get_pressure_height","order":16,"path":"scripts/fd_rectangle_get_pressure_height/fd_rectangle_get_pressure_height.yy",},
{"name":"hyperbolic_function","order":16,"path":"scripts/hyperbolic_function/hyperbolic_function.yy",}, {"name":"hyperbolic_function","order":16,"path":"scripts/hyperbolic_function/hyperbolic_function.yy",},
{"name":"node_tile","order":4,"path":"scripts/node_tile/node_tile.yy",}, {"name":"node_tile","order":4,"path":"scripts/node_tile/node_tile.yy",},
{"name":"s_node_2d_light_shape","order":14,"path":"sprites/s_node_2d_light_shape/s_node_2d_light_shape.yy",},
{"name":"sh_rsh_rotate","order":1,"path":"shaders/sh_rsh_rotate/sh_rsh_rotate.yy",}, {"name":"sh_rsh_rotate","order":1,"path":"shaders/sh_rsh_rotate/sh_rsh_rotate.yy",},
{"name":"FirebaseFirestoreMainFunctions","order":1,"path":"scripts/FirebaseFirestoreMainFunctions/FirebaseFirestoreMainFunctions.yy",}, {"name":"FirebaseFirestoreMainFunctions","order":1,"path":"scripts/FirebaseFirestoreMainFunctions/FirebaseFirestoreMainFunctions.yy",},
{"name":"sh_spherize","order":11,"path":"shaders/sh_spherize/sh_spherize.yy",}, {"name":"sh_spherize","order":11,"path":"shaders/sh_spherize/sh_spherize.yy",},
@ -972,6 +984,7 @@
{"name":"obj_fd_rectangle","order":1,"path":"objects/obj_fd_rectangle/obj_fd_rectangle.yy",}, {"name":"obj_fd_rectangle","order":1,"path":"objects/obj_fd_rectangle/obj_fd_rectangle.yy",},
{"name":"node_noise_simplex","order":7,"path":"scripts/node_noise_simplex/node_noise_simplex.yy",}, {"name":"node_noise_simplex","order":7,"path":"scripts/node_noise_simplex/node_noise_simplex.yy",},
{"name":"sh_fd_visualize_velocity_divergence_glsl","order":18,"path":"shaders/sh_fd_visualize_velocity_divergence_glsl/sh_fd_visualize_velocity_divergence_glsl.yy",}, {"name":"sh_fd_visualize_velocity_divergence_glsl","order":18,"path":"shaders/sh_fd_visualize_velocity_divergence_glsl/sh_fd_visualize_velocity_divergence_glsl.yy",},
{"name":"s_node_trigger_cond","order":12,"path":"sprites/s_node_trigger_cond/s_node_trigger_cond.yy",},
{"name":"ds_list","order":1,"path":"scripts/ds_list/ds_list.yy",}, {"name":"ds_list","order":1,"path":"scripts/ds_list/ds_list.yy",},
{"name":"node_path_builder","order":9,"path":"scripts/node_path_builder/node_path_builder.yy",}, {"name":"node_path_builder","order":9,"path":"scripts/node_path_builder/node_path_builder.yy",},
{"name":"o_dialog_gradient","order":1,"path":"objects/o_dialog_gradient/o_dialog_gradient.yy",}, {"name":"o_dialog_gradient","order":1,"path":"objects/o_dialog_gradient/o_dialog_gradient.yy",},
@ -1229,6 +1242,7 @@
{"name":"s_node_feedback","order":3,"path":"sprites/s_node_feedback/s_node_feedback.yy",}, {"name":"s_node_feedback","order":3,"path":"sprites/s_node_feedback/s_node_feedback.yy",},
{"name":"getGradientData","order":1,"path":"scripts/getGradientData/getGradientData.yy",}, {"name":"getGradientData","order":1,"path":"scripts/getGradientData/getGradientData.yy",},
{"name":"s_node_pb_box_inset","order":22,"path":"sprites/s_node_pb_box_inset/s_node_pb_box_inset.yy",}, {"name":"s_node_pb_box_inset","order":22,"path":"sprites/s_node_pb_box_inset/s_node_pb_box_inset.yy",},
{"name":"s_node_camera_repeat","order":19,"path":"sprites/s_node_camera_repeat/s_node_camera_repeat.yy",},
{"name":"node_glow","order":10,"path":"scripts/node_glow/node_glow.yy",}, {"name":"node_glow","order":10,"path":"scripts/node_glow/node_glow.yy",},
{"name":"sh_blend_min","order":9,"path":"shaders/sh_blend_min/sh_blend_min.yy",}, {"name":"sh_blend_min","order":9,"path":"shaders/sh_blend_min/sh_blend_min.yy",},
{"name":"d3d_gizmo_circle_z","order":4,"path":"scripts/d3d_gizmo_circle_z/d3d_gizmo_circle_z.yy",}, {"name":"d3d_gizmo_circle_z","order":4,"path":"scripts/d3d_gizmo_circle_z/d3d_gizmo_circle_z.yy",},
@ -1337,6 +1351,7 @@
{"name":"sh_blend_add_alpha_adj","order":2,"path":"shaders/sh_blend_add_alpha_adj/sh_blend_add_alpha_adj.yy",}, {"name":"sh_blend_add_alpha_adj","order":2,"path":"shaders/sh_blend_add_alpha_adj/sh_blend_add_alpha_adj.yy",},
{"name":"preview_overlay_area","order":3,"path":"scripts/preview_overlay_area/preview_overlay_area.yy",}, {"name":"preview_overlay_area","order":3,"path":"scripts/preview_overlay_area/preview_overlay_area.yy",},
{"name":"sh_perlin_extra","order":9,"path":"shaders/sh_perlin_extra/sh_perlin_extra.yy",}, {"name":"sh_perlin_extra","order":9,"path":"shaders/sh_perlin_extra/sh_perlin_extra.yy",},
{"name":"s_node_plot_linear_type","order":10,"path":"sprites/s_node_plot_linear_type/s_node_plot_linear_type.yy",},
{"name":"node_text","order":4,"path":"scripts/node_text/node_text.yy",}, {"name":"node_text","order":4,"path":"scripts/node_text/node_text.yy",},
{"name":"panel_collection","order":3,"path":"scripts/panel_collection/panel_collection.yy",}, {"name":"panel_collection","order":3,"path":"scripts/panel_collection/panel_collection.yy",},
{"name":"node_delay","order":5,"path":"scripts/node_delay/node_delay.yy",}, {"name":"node_delay","order":5,"path":"scripts/node_delay/node_delay.yy",},
@ -1517,6 +1532,7 @@
{"name":"s_node_blur_contrast","order":1,"path":"sprites/s_node_blur_contrast/s_node_blur_contrast.yy",}, {"name":"s_node_blur_contrast","order":1,"path":"sprites/s_node_blur_contrast/s_node_blur_contrast.yy",},
{"name":"fd_y","order":5,"path":"scripts/fd_y/fd_y.yy",}, {"name":"fd_y","order":5,"path":"scripts/fd_y/fd_y.yy",},
{"name":"node_string_regex_search","order":8,"path":"scripts/node_string_regex_search/node_string_regex_search.yy",}, {"name":"node_string_regex_search","order":8,"path":"scripts/node_string_regex_search/node_string_regex_search.yy",},
{"name":"s_node_repeat_axis","order":16,"path":"sprites/s_node_repeat_axis/s_node_repeat_axis.yy",},
{"name":"s_node_text_render","order":17,"path":"sprites/s_node_text_render/s_node_text_render.yy",}, {"name":"s_node_text_render","order":17,"path":"sprites/s_node_text_render/s_node_text_render.yy",},
{"name":"__init_global","order":8,"path":"scripts/__init_global/__init_global.yy",}, {"name":"__init_global","order":8,"path":"scripts/__init_global/__init_global.yy",},
{"name":"sh_trail_filler_pass2","order":32,"path":"shaders/sh_trail_filler_pass2/sh_trail_filler_pass2.yy",}, {"name":"sh_trail_filler_pass2","order":32,"path":"shaders/sh_trail_filler_pass2/sh_trail_filler_pass2.yy",},
@ -1525,6 +1541,7 @@
{"name":"node_caustic","order":23,"path":"scripts/node_caustic/node_caustic.yy",}, {"name":"node_caustic","order":23,"path":"scripts/node_caustic/node_caustic.yy",},
{"name":"s_node_regex_search","order":11,"path":"sprites/s_node_regex_search/s_node_regex_search.yy",}, {"name":"s_node_regex_search","order":11,"path":"sprites/s_node_regex_search/s_node_regex_search.yy",},
{"name":"s_node_color_from_rgb","order":5,"path":"sprites/s_node_color_from_rgb/s_node_color_from_rgb.yy",}, {"name":"s_node_color_from_rgb","order":5,"path":"sprites/s_node_color_from_rgb/s_node_color_from_rgb.yy",},
{"name":"s_node_mk_grid_flip","order":18,"path":"sprites/s_node_mk_grid_flip/s_node_mk_grid_flip.yy",},
{"name":"s_node_separate_file_path","order":14,"path":"sprites/s_node_separate_file_path/s_node_separate_file_path.yy",}, {"name":"s_node_separate_file_path","order":14,"path":"sprites/s_node_separate_file_path/s_node_separate_file_path.yy",},
{"name":"node_scale_algo","order":12,"path":"scripts/node_scale_algo/node_scale_algo.yy",}, {"name":"node_scale_algo","order":12,"path":"scripts/node_scale_algo/node_scale_algo.yy",},
{"name":"s_node_image_replace","order":55,"path":"sprites/s_node_image_replace/s_node_image_replace.yy",}, {"name":"s_node_image_replace","order":55,"path":"sprites/s_node_image_replace/s_node_image_replace.yy",},
@ -1535,6 +1552,7 @@
{"name":"string_cut","order":2,"path":"scripts/string_cut/string_cut.yy",}, {"name":"string_cut","order":2,"path":"scripts/string_cut/string_cut.yy",},
{"name":"__node_3d_prim_cylinder","order":2,"path":"scripts/__node_3d_prim_cylinder/__node_3d_prim_cylinder.yy",}, {"name":"__node_3d_prim_cylinder","order":2,"path":"scripts/__node_3d_prim_cylinder/__node_3d_prim_cylinder.yy",},
{"name":"node_iterator_sort_inline_output","order":2,"path":"scripts/node_iterator_sort_inline_output/node_iterator_sort_inline_output.yy",}, {"name":"node_iterator_sort_inline_output","order":2,"path":"scripts/node_iterator_sort_inline_output/node_iterator_sort_inline_output.yy",},
{"name":"s_node_curve","order":20,"path":"sprites/s_node_curve/s_node_curve.yy",},
{"name":"Obj_FirebaseFirestore_Collection_Query_options","order":10,"path":"objects/Obj_FirebaseFirestore_Collection_Query_options/Obj_FirebaseFirestore_Collection_Query_options.yy",}, {"name":"Obj_FirebaseFirestore_Collection_Query_options","order":10,"path":"objects/Obj_FirebaseFirestore_Collection_Query_options/Obj_FirebaseFirestore_Collection_Query_options.yy",},
{"name":"stack_functions","order":7,"path":"scripts/stack_functions/stack_functions.yy",}, {"name":"stack_functions","order":7,"path":"scripts/stack_functions/stack_functions.yy",},
{"name":"panel_nodes","order":2,"path":"scripts/panel_nodes/panel_nodes.yy",}, {"name":"panel_nodes","order":2,"path":"scripts/panel_nodes/panel_nodes.yy",},
@ -1829,6 +1847,7 @@
{"name":"__3d_particle","order":1,"path":"scripts/__3d_particle/__3d_particle.yy",}, {"name":"__3d_particle","order":1,"path":"scripts/__3d_particle/__3d_particle.yy",},
{"name":"sh_pb_shade","order":3,"path":"shaders/sh_pb_shade/sh_pb_shade.yy",}, {"name":"sh_pb_shade","order":3,"path":"shaders/sh_pb_shade/sh_pb_shade.yy",},
{"name":"s_node_morph_surface","order":56,"path":"sprites/s_node_morph_surface/s_node_morph_surface.yy",}, {"name":"s_node_morph_surface","order":56,"path":"sprites/s_node_morph_surface/s_node_morph_surface.yy",},
{"name":"s_node_mesh_type","order":15,"path":"sprites/s_node_mesh_type/s_node_mesh_type.yy",},
{"name":"fd_rectangle_get_velocity_dissipation_type","order":20,"path":"scripts/fd_rectangle_get_velocity_dissipation_type/fd_rectangle_get_velocity_dissipation_type.yy",}, {"name":"fd_rectangle_get_velocity_dissipation_type","order":20,"path":"scripts/fd_rectangle_get_velocity_dissipation_type/fd_rectangle_get_velocity_dissipation_type.yy",},
{"name":"s_node_3d_transform","order":4,"path":"sprites/s_node_3d_transform/s_node_3d_transform.yy",}, {"name":"s_node_3d_transform","order":4,"path":"sprites/s_node_3d_transform/s_node_3d_transform.yy",},
{"name":"node_pb_box_split","order":2,"path":"scripts/node_pb_box_split/node_pb_box_split.yy",}, {"name":"node_pb_box_split","order":2,"path":"scripts/node_pb_box_split/node_pb_box_split.yy",},
@ -1893,6 +1912,7 @@
{"name":"node_group_thumbnail","order":3,"path":"scripts/node_group_thumbnail/node_group_thumbnail.yy",}, {"name":"node_group_thumbnail","order":3,"path":"scripts/node_group_thumbnail/node_group_thumbnail.yy",},
{"name":"VCT","order":1,"path":"scripts/VCT/VCT.yy",}, {"name":"VCT","order":1,"path":"scripts/VCT/VCT.yy",},
{"name":"node_alpha_to_grey","order":3,"path":"scripts/node_alpha_to_grey/node_alpha_to_grey.yy",}, {"name":"node_alpha_to_grey","order":3,"path":"scripts/node_alpha_to_grey/node_alpha_to_grey.yy",},
{"name":"s_node_alignment","order":4,"path":"sprites/s_node_alignment/s_node_alignment.yy",},
{"name":"shell_functions","order":20,"path":"scripts/shell_functions/shell_functions.yy",}, {"name":"shell_functions","order":20,"path":"scripts/shell_functions/shell_functions.yy",},
{"name":"node_strand_collision","order":8,"path":"scripts/node_strand_collision/node_strand_collision.yy",}, {"name":"node_strand_collision","order":8,"path":"scripts/node_strand_collision/node_strand_collision.yy",},
{"name":"s_node_atlas_get","order":2,"path":"sprites/s_node_atlas_get/s_node_atlas_get.yy",}, {"name":"s_node_atlas_get","order":2,"path":"sprites/s_node_atlas_get/s_node_atlas_get.yy",},

View file

@ -289,6 +289,7 @@
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"bs","folderPath":"folders/sprites/bs.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"bs","folderPath":"folders/sprites/bs.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"gameframe","folderPath":"folders/sprites/gameframe.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"gameframe","folderPath":"folders/sprites/gameframe.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"misc","folderPath":"folders/sprites/misc.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"misc","folderPath":"folders/sprites/misc.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"nodes","folderPath":"folders/sprites/nodes.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"texture","folderPath":"folders/sprites/texture.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"texture","folderPath":"folders/sprites/texture.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"Steamworks","folderPath":"folders/Steamworks.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"Steamworks","folderPath":"folders/Steamworks.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"UGC","folderPath":"folders/Steamworks/UGC.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"UGC","folderPath":"folders/Steamworks/UGC.yy",},
@ -486,6 +487,7 @@
{"id":{"name":"sh_dither","path":"shaders/sh_dither/sh_dither.yy",},}, {"id":{"name":"sh_dither","path":"shaders/sh_dither/sh_dither.yy",},},
{"id":{"name":"__vec2","path":"scripts/__vec2/__vec2.yy",},}, {"id":{"name":"__vec2","path":"scripts/__vec2/__vec2.yy",},},
{"id":{"name":"control_function","path":"scripts/control_function/control_function.yy",},}, {"id":{"name":"control_function","path":"scripts/control_function/control_function.yy",},},
{"id":{"name":"s_node_shadow_type","path":"sprites/s_node_shadow_type/s_node_shadow_type.yy",},},
{"id":{"name":"node_region_fill","path":"scripts/node_region_fill/node_region_fill.yy",},}, {"id":{"name":"node_region_fill","path":"scripts/node_region_fill/node_region_fill.yy",},},
{"id":{"name":"sh_mk_tile55_edge_r","path":"shaders/sh_mk_tile55_edge_r/sh_mk_tile55_edge_r.yy",},}, {"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":"sh_d3d_normal","path":"shaders/sh_d3d_normal/sh_d3d_normal.yy",},},
@ -538,9 +540,11 @@
{"id":{"name":"Obj_FirebaseFirestore_Document_Read","path":"objects/Obj_FirebaseFirestore_Document_Read/Obj_FirebaseFirestore_Document_Read.yy",},}, {"id":{"name":"Obj_FirebaseFirestore_Document_Read","path":"objects/Obj_FirebaseFirestore_Document_Read/Obj_FirebaseFirestore_Document_Read.yy",},},
{"id":{"name":"node_dither","path":"scripts/node_dither/node_dither.yy",},}, {"id":{"name":"node_dither","path":"scripts/node_dither/node_dither.yy",},},
{"id":{"name":"sh_perlin_smear","path":"shaders/sh_perlin_smear/sh_perlin_smear.yy",},}, {"id":{"name":"sh_perlin_smear","path":"shaders/sh_perlin_smear/sh_perlin_smear.yy",},},
{"id":{"name":"s_node_logic","path":"sprites/s_node_logic/s_node_logic.yy",},},
{"id":{"name":"node_iterate_filter","path":"scripts/node_iterate_filter/node_iterate_filter.yy",},}, {"id":{"name":"node_iterate_filter","path":"scripts/node_iterate_filter/node_iterate_filter.yy",},},
{"id":{"name":"node_array_remove","path":"scripts/node_array_remove/node_array_remove.yy",},}, {"id":{"name":"node_array_remove","path":"scripts/node_array_remove/node_array_remove.yy",},},
{"id":{"name":"node_path_blend","path":"scripts/node_path_blend/node_path_blend.yy",},}, {"id":{"name":"node_path_blend","path":"scripts/node_path_blend/node_path_blend.yy",},},
{"id":{"name":"s_node_gradient_type","path":"sprites/s_node_gradient_type/s_node_gradient_type.yy",},},
{"id":{"name":"rotator_Rotator","path":"objects/rotator_Rotator/rotator_Rotator.yy",},}, {"id":{"name":"rotator_Rotator","path":"objects/rotator_Rotator/rotator_Rotator.yy",},},
{"id":{"name":"node_switch","path":"scripts/node_switch/node_switch.yy",},}, {"id":{"name":"node_switch","path":"scripts/node_switch/node_switch.yy",},},
{"id":{"name":"sh_corner","path":"shaders/sh_corner/sh_corner.yy",},}, {"id":{"name":"sh_corner","path":"shaders/sh_corner/sh_corner.yy",},},
@ -578,6 +582,7 @@
{"id":{"name":"sh_fd_visualize_velocity_glsl","path":"shaders/sh_fd_visualize_velocity_glsl/sh_fd_visualize_velocity_glsl.yy",},}, {"id":{"name":"sh_fd_visualize_velocity_glsl","path":"shaders/sh_fd_visualize_velocity_glsl/sh_fd_visualize_velocity_glsl.yy",},},
{"id":{"name":"FirebaseFirestore_operationFromSymbol","path":"scripts/FirebaseFirestore_operationFromSymbol/FirebaseFirestore_operationFromSymbol.yy",},}, {"id":{"name":"FirebaseFirestore_operationFromSymbol","path":"scripts/FirebaseFirestore_operationFromSymbol/FirebaseFirestore_operationFromSymbol.yy",},},
{"id":{"name":"node_3d_mesh_terrain","path":"scripts/node_3d_mesh_terrain/node_3d_mesh_terrain.yy",},}, {"id":{"name":"node_3d_mesh_terrain","path":"scripts/node_3d_mesh_terrain/node_3d_mesh_terrain.yy",},},
{"id":{"name":"s_node_condition_type","path":"sprites/s_node_condition_type/s_node_condition_type.yy",},},
{"id":{"name":"fd_rectangle_set_material_time_step","path":"scripts/fd_rectangle_set_material_time_step/fd_rectangle_set_material_time_step.yy",},}, {"id":{"name":"fd_rectangle_set_material_time_step","path":"scripts/fd_rectangle_set_material_time_step/fd_rectangle_set_material_time_step.yy",},},
{"id":{"name":"Obj_FirebaseREST_Listener_On_Firestore","path":"objects/Obj_FirebaseREST_Listener_On_Firestore/Obj_FirebaseREST_Listener_On_Firestore.yy",},}, {"id":{"name":"Obj_FirebaseREST_Listener_On_Firestore","path":"objects/Obj_FirebaseREST_Listener_On_Firestore/Obj_FirebaseREST_Listener_On_Firestore.yy",},},
{"id":{"name":"credit_badge_popular","path":"sprites/credit_badge_popular/credit_badge_popular.yy",},}, {"id":{"name":"credit_badge_popular","path":"sprites/credit_badge_popular/credit_badge_popular.yy",},},
@ -587,15 +592,18 @@
{"id":{"name":"s_node_sepearte_shape","path":"sprites/s_node_sepearte_shape/s_node_sepearte_shape.yy",},}, {"id":{"name":"s_node_sepearte_shape","path":"sprites/s_node_sepearte_shape/s_node_sepearte_shape.yy",},},
{"id":{"name":"s_node_websocket_send","path":"sprites/s_node_websocket_send/s_node_websocket_send.yy",},}, {"id":{"name":"s_node_websocket_send","path":"sprites/s_node_websocket_send/s_node_websocket_send.yy",},},
{"id":{"name":"s_node_text_join","path":"sprites/s_node_text_join/s_node_text_join.yy",},}, {"id":{"name":"s_node_text_join","path":"sprites/s_node_text_join/s_node_text_join.yy",},},
{"id":{"name":"s_node_3d_affector_shape","path":"sprites/s_node_3d_affector_shape/s_node_3d_affector_shape.yy",},},
{"id":{"name":"s_node_polar","path":"sprites/s_node_polar/s_node_polar.yy",},}, {"id":{"name":"s_node_polar","path":"sprites/s_node_polar/s_node_polar.yy",},},
{"id":{"name":"complex_function","path":"scripts/complex_function/complex_function.yy",},}, {"id":{"name":"complex_function","path":"scripts/complex_function/complex_function.yy",},},
{"id":{"name":"draw_set_blend_mode_ext","path":"scripts/draw_set_blend_mode_ext/draw_set_blend_mode_ext.yy",},}, {"id":{"name":"draw_set_blend_mode_ext","path":"scripts/draw_set_blend_mode_ext/draw_set_blend_mode_ext.yy",},},
{"id":{"name":"s_node_shape_misc","path":"sprites/s_node_shape_misc/s_node_shape_misc.yy",},},
{"id":{"name":"s_flare_type","path":"sprites/s_flare_type/s_flare_type.yy",},}, {"id":{"name":"s_flare_type","path":"sprites/s_flare_type/s_flare_type.yy",},},
{"id":{"name":"s_node_json_parse","path":"sprites/s_node_json_parse/s_node_json_parse.yy",},}, {"id":{"name":"s_node_json_parse","path":"sprites/s_node_json_parse/s_node_json_parse.yy",},},
{"id":{"name":"s_node_noise_simplex","path":"sprites/s_node_noise_simplex/s_node_noise_simplex.yy",},}, {"id":{"name":"s_node_noise_simplex","path":"sprites/s_node_noise_simplex/s_node_noise_simplex.yy",},},
{"id":{"name":"s_node_armature_sample","path":"sprites/s_node_armature_sample/s_node_armature_sample.yy",},}, {"id":{"name":"s_node_armature_sample","path":"sprites/s_node_armature_sample/s_node_armature_sample.yy",},},
{"id":{"name":"sh_draw_color","path":"shaders/sh_draw_color/sh_draw_color.yy",},}, {"id":{"name":"sh_draw_color","path":"shaders/sh_draw_color/sh_draw_color.yy",},},
{"id":{"name":"d3d_scene","path":"scripts/d3d_scene/d3d_scene.yy",},}, {"id":{"name":"d3d_scene","path":"scripts/d3d_scene/d3d_scene.yy",},},
{"id":{"name":"sh_draw_tile","path":"shaders/sh_draw_tile/sh_draw_tile.yy",},},
{"id":{"name":"sh_channel_R2A","path":"shaders/sh_channel_R2A/sh_channel_R2A.yy",},}, {"id":{"name":"sh_channel_R2A","path":"shaders/sh_channel_R2A/sh_channel_R2A.yy",},},
{"id":{"name":"__node_module","path":"scripts/__node_module/__node_module.yy",},}, {"id":{"name":"__node_module","path":"scripts/__node_module/__node_module.yy",},},
{"id":{"name":"s_node_array_find","path":"sprites/s_node_array_find/s_node_array_find.yy",},}, {"id":{"name":"s_node_array_find","path":"sprites/s_node_array_find/s_node_array_find.yy",},},
@ -758,6 +766,7 @@
{"id":{"name":"sh_d3d_default","path":"shaders/sh_d3d_default/sh_d3d_default.yy",},}, {"id":{"name":"sh_d3d_default","path":"shaders/sh_d3d_default/sh_d3d_default.yy",},},
{"id":{"name":"node_stagger","path":"scripts/node_stagger/node_stagger.yy",},}, {"id":{"name":"node_stagger","path":"scripts/node_stagger/node_stagger.yy",},},
{"id":{"name":"s_node_gabor","path":"sprites/s_node_gabor/s_node_gabor.yy",},}, {"id":{"name":"s_node_gabor","path":"sprites/s_node_gabor/s_node_gabor.yy",},},
{"id":{"name":"s_node_axis_type","path":"sprites/s_node_axis_type/s_node_axis_type.yy",},},
{"id":{"name":"s_node_dithering","path":"sprites/s_node_dithering/s_node_dithering.yy",},}, {"id":{"name":"s_node_dithering","path":"sprites/s_node_dithering/s_node_dithering.yy",},},
{"id":{"name":"node_3d_mesh_extrude","path":"scripts/node_3d_mesh_extrude/node_3d_mesh_extrude.yy",},}, {"id":{"name":"node_3d_mesh_extrude","path":"scripts/node_3d_mesh_extrude/node_3d_mesh_extrude.yy",},},
{"id":{"name":"sh_find_boundary_stretch_x","path":"shaders/sh_find_boundary_stretch_x/sh_find_boundary_stretch_x.yy",},}, {"id":{"name":"sh_find_boundary_stretch_x","path":"shaders/sh_find_boundary_stretch_x/sh_find_boundary_stretch_x.yy",},},
@ -895,6 +904,7 @@
{"id":{"name":"sh_draw_texture","path":"shaders/sh_draw_texture/sh_draw_texture.yy",},}, {"id":{"name":"sh_draw_texture","path":"shaders/sh_draw_texture/sh_draw_texture.yy",},},
{"id":{"name":"d3d_terrain","path":"scripts/d3d_terrain/d3d_terrain.yy",},}, {"id":{"name":"d3d_terrain","path":"scripts/d3d_terrain/d3d_terrain.yy",},},
{"id":{"name":"fd_rectangle_get_pressure_width","path":"scripts/fd_rectangle_get_pressure_width/fd_rectangle_get_pressure_width.yy",},}, {"id":{"name":"fd_rectangle_get_pressure_width","path":"scripts/fd_rectangle_get_pressure_width/fd_rectangle_get_pressure_width.yy",},},
{"id":{"name":"s_node_mk_rain_type","path":"sprites/s_node_mk_rain_type/s_node_mk_rain_type.yy",},},
{"id":{"name":"node_mk_flag","path":"scripts/node_mk_flag/node_mk_flag.yy",},}, {"id":{"name":"node_mk_flag","path":"scripts/node_mk_flag/node_mk_flag.yy",},},
{"id":{"name":"sh_blur_slope","path":"shaders/sh_blur_slope/sh_blur_slope.yy",},}, {"id":{"name":"sh_blur_slope","path":"shaders/sh_blur_slope/sh_blur_slope.yy",},},
{"id":{"name":"s_node_strandSim_render","path":"sprites/s_node_strandSim_render/s_node_strandSim_render.yy",},}, {"id":{"name":"s_node_strandSim_render","path":"sprites/s_node_strandSim_render/s_node_strandSim_render.yy",},},
@ -1010,6 +1020,7 @@
{"id":{"name":"node_string_regex_replace","path":"scripts/node_string_regex_replace/node_string_regex_replace.yy",},}, {"id":{"name":"node_string_regex_replace","path":"scripts/node_string_regex_replace/node_string_regex_replace.yy",},},
{"id":{"name":"s_node_particle","path":"sprites/s_node_particle/s_node_particle.yy",},}, {"id":{"name":"s_node_particle","path":"sprites/s_node_particle/s_node_particle.yy",},},
{"id":{"name":"node_random_shape","path":"scripts/node_random_shape/node_random_shape.yy",},}, {"id":{"name":"node_random_shape","path":"scripts/node_random_shape/node_random_shape.yy",},},
{"id":{"name":"s_node_flip_render","path":"sprites/s_node_flip_render/s_node_flip_render.yy",},},
{"id":{"name":"sh_flood_fill_thres","path":"shaders/sh_flood_fill_thres/sh_flood_fill_thres.yy",},}, {"id":{"name":"sh_flood_fill_thres","path":"shaders/sh_flood_fill_thres/sh_flood_fill_thres.yy",},},
{"id":{"name":"s_node_random","path":"sprites/s_node_random/s_node_random.yy",},}, {"id":{"name":"s_node_random","path":"sprites/s_node_random/s_node_random.yy",},},
{"id":{"name":"sh_3d_extrude_filler","path":"shaders/sh_3d_extrude_filler/sh_3d_extrude_filler.yy",},}, {"id":{"name":"sh_3d_extrude_filler","path":"shaders/sh_3d_extrude_filler/sh_3d_extrude_filler.yy",},},
@ -1081,6 +1092,7 @@
{"id":{"name":"hyperbolic_function","path":"scripts/hyperbolic_function/hyperbolic_function.yy",},}, {"id":{"name":"hyperbolic_function","path":"scripts/hyperbolic_function/hyperbolic_function.yy",},},
{"id":{"name":"s_node_fluidSim_repulse","path":"sprites/s_node_fluidSim_repulse/s_node_fluidSim_repulse.yy",},}, {"id":{"name":"s_node_fluidSim_repulse","path":"sprites/s_node_fluidSim_repulse/s_node_fluidSim_repulse.yy",},},
{"id":{"name":"node_tile","path":"scripts/node_tile/node_tile.yy",},}, {"id":{"name":"node_tile","path":"scripts/node_tile/node_tile.yy",},},
{"id":{"name":"s_node_2d_light_shape","path":"sprites/s_node_2d_light_shape/s_node_2d_light_shape.yy",},},
{"id":{"name":"sh_rsh_rotate","path":"shaders/sh_rsh_rotate/sh_rsh_rotate.yy",},}, {"id":{"name":"sh_rsh_rotate","path":"shaders/sh_rsh_rotate/sh_rsh_rotate.yy",},},
{"id":{"name":"FirebaseFirestoreMainFunctions","path":"scripts/FirebaseFirestoreMainFunctions/FirebaseFirestoreMainFunctions.yy",},}, {"id":{"name":"FirebaseFirestoreMainFunctions","path":"scripts/FirebaseFirestoreMainFunctions/FirebaseFirestoreMainFunctions.yy",},},
{"id":{"name":"node_mk_sparkle","path":"scripts/node_mk_sparkle/node_mk_sparkle.yy",},}, {"id":{"name":"node_mk_sparkle","path":"scripts/node_mk_sparkle/node_mk_sparkle.yy",},},
@ -1264,6 +1276,7 @@
{"id":{"name":"obj_fd_rectangle","path":"objects/obj_fd_rectangle/obj_fd_rectangle.yy",},}, {"id":{"name":"obj_fd_rectangle","path":"objects/obj_fd_rectangle/obj_fd_rectangle.yy",},},
{"id":{"name":"node_noise_simplex","path":"scripts/node_noise_simplex/node_noise_simplex.yy",},}, {"id":{"name":"node_noise_simplex","path":"scripts/node_noise_simplex/node_noise_simplex.yy",},},
{"id":{"name":"sh_fd_visualize_velocity_divergence_glsl","path":"shaders/sh_fd_visualize_velocity_divergence_glsl/sh_fd_visualize_velocity_divergence_glsl.yy",},}, {"id":{"name":"sh_fd_visualize_velocity_divergence_glsl","path":"shaders/sh_fd_visualize_velocity_divergence_glsl/sh_fd_visualize_velocity_divergence_glsl.yy",},},
{"id":{"name":"s_node_trigger_cond","path":"sprites/s_node_trigger_cond/s_node_trigger_cond.yy",},},
{"id":{"name":"ds_list","path":"scripts/ds_list/ds_list.yy",},}, {"id":{"name":"ds_list","path":"scripts/ds_list/ds_list.yy",},},
{"id":{"name":"node_path_builder","path":"scripts/node_path_builder/node_path_builder.yy",},}, {"id":{"name":"node_path_builder","path":"scripts/node_path_builder/node_path_builder.yy",},},
{"id":{"name":"o_dialog_gradient","path":"objects/o_dialog_gradient/o_dialog_gradient.yy",},}, {"id":{"name":"o_dialog_gradient","path":"objects/o_dialog_gradient/o_dialog_gradient.yy",},},
@ -1317,6 +1330,7 @@
{"id":{"name":"_draw_defines","path":"scripts/_draw_defines/_draw_defines.yy",},}, {"id":{"name":"_draw_defines","path":"scripts/_draw_defines/_draw_defines.yy",},},
{"id":{"name":"sh_color_replace","path":"shaders/sh_color_replace/sh_color_replace.yy",},}, {"id":{"name":"sh_color_replace","path":"shaders/sh_color_replace/sh_color_replace.yy",},},
{"id":{"name":"s_node_3d_meterial","path":"sprites/s_node_3d_meterial/s_node_3d_meterial.yy",},}, {"id":{"name":"s_node_3d_meterial","path":"sprites/s_node_3d_meterial/s_node_3d_meterial.yy",},},
{"id":{"name":"s_node_shape_type","path":"sprites/s_node_shape_type/s_node_shape_type.yy",},},
{"id":{"name":"__surface","path":"scripts/__surface/__surface.yy",},}, {"id":{"name":"__surface","path":"scripts/__surface/__surface.yy",},},
{"id":{"name":"clipboard","path":"extensions/clipboard/clipboard.yy",},}, {"id":{"name":"clipboard","path":"extensions/clipboard/clipboard.yy",},},
{"id":{"name":"gameframe","path":"scripts/gameframe/gameframe.yy",},}, {"id":{"name":"gameframe","path":"scripts/gameframe/gameframe.yy",},},
@ -1549,6 +1563,7 @@
{"id":{"name":"getGradientData","path":"scripts/getGradientData/getGradientData.yy",},}, {"id":{"name":"getGradientData","path":"scripts/getGradientData/getGradientData.yy",},},
{"id":{"name":"s_node_character","path":"sprites/s_node_character/s_node_character.yy",},}, {"id":{"name":"s_node_character","path":"sprites/s_node_character/s_node_character.yy",},},
{"id":{"name":"s_node_pb_box_inset","path":"sprites/s_node_pb_box_inset/s_node_pb_box_inset.yy",},}, {"id":{"name":"s_node_pb_box_inset","path":"sprites/s_node_pb_box_inset/s_node_pb_box_inset.yy",},},
{"id":{"name":"s_node_camera_repeat","path":"sprites/s_node_camera_repeat/s_node_camera_repeat.yy",},},
{"id":{"name":"node_glow","path":"scripts/node_glow/node_glow.yy",},}, {"id":{"name":"node_glow","path":"scripts/node_glow/node_glow.yy",},},
{"id":{"name":"sh_blend_min","path":"shaders/sh_blend_min/sh_blend_min.yy",},}, {"id":{"name":"sh_blend_min","path":"shaders/sh_blend_min/sh_blend_min.yy",},},
{"id":{"name":"d3d_gizmo_circle_z","path":"scripts/d3d_gizmo_circle_z/d3d_gizmo_circle_z.yy",},}, {"id":{"name":"d3d_gizmo_circle_z","path":"scripts/d3d_gizmo_circle_z/d3d_gizmo_circle_z.yy",},},
@ -1671,6 +1686,7 @@
{"id":{"name":"sh_blend_add_alpha_adj","path":"shaders/sh_blend_add_alpha_adj/sh_blend_add_alpha_adj.yy",},}, {"id":{"name":"sh_blend_add_alpha_adj","path":"shaders/sh_blend_add_alpha_adj/sh_blend_add_alpha_adj.yy",},},
{"id":{"name":"preview_overlay_area","path":"scripts/preview_overlay_area/preview_overlay_area.yy",},}, {"id":{"name":"preview_overlay_area","path":"scripts/preview_overlay_area/preview_overlay_area.yy",},},
{"id":{"name":"sh_perlin_extra","path":"shaders/sh_perlin_extra/sh_perlin_extra.yy",},}, {"id":{"name":"sh_perlin_extra","path":"shaders/sh_perlin_extra/sh_perlin_extra.yy",},},
{"id":{"name":"s_node_plot_linear_type","path":"sprites/s_node_plot_linear_type/s_node_plot_linear_type.yy",},},
{"id":{"name":"node_text","path":"scripts/node_text/node_text.yy",},}, {"id":{"name":"node_text","path":"scripts/node_text/node_text.yy",},},
{"id":{"name":"panel_collection","path":"scripts/panel_collection/panel_collection.yy",},}, {"id":{"name":"panel_collection","path":"scripts/panel_collection/panel_collection.yy",},},
{"id":{"name":"contextMenu_controller","path":"scripts/contextMenu_controller/contextMenu_controller.yy",},}, {"id":{"name":"contextMenu_controller","path":"scripts/contextMenu_controller/contextMenu_controller.yy",},},
@ -1885,6 +1901,7 @@
{"id":{"name":"s_node_blur_contrast","path":"sprites/s_node_blur_contrast/s_node_blur_contrast.yy",},}, {"id":{"name":"s_node_blur_contrast","path":"sprites/s_node_blur_contrast/s_node_blur_contrast.yy",},},
{"id":{"name":"fd_y","path":"scripts/fd_y/fd_y.yy",},}, {"id":{"name":"fd_y","path":"scripts/fd_y/fd_y.yy",},},
{"id":{"name":"node_string_regex_search","path":"scripts/node_string_regex_search/node_string_regex_search.yy",},}, {"id":{"name":"node_string_regex_search","path":"scripts/node_string_regex_search/node_string_regex_search.yy",},},
{"id":{"name":"s_node_repeat_axis","path":"sprites/s_node_repeat_axis/s_node_repeat_axis.yy",},},
{"id":{"name":"s_node_text_render","path":"sprites/s_node_text_render/s_node_text_render.yy",},}, {"id":{"name":"s_node_text_render","path":"sprites/s_node_text_render/s_node_text_render.yy",},},
{"id":{"name":"__init_global","path":"scripts/__init_global/__init_global.yy",},}, {"id":{"name":"__init_global","path":"scripts/__init_global/__init_global.yy",},},
{"id":{"name":"sh_trail_filler_pass2","path":"shaders/sh_trail_filler_pass2/sh_trail_filler_pass2.yy",},}, {"id":{"name":"sh_trail_filler_pass2","path":"shaders/sh_trail_filler_pass2/sh_trail_filler_pass2.yy",},},
@ -1894,6 +1911,7 @@
{"id":{"name":"node_caustic","path":"scripts/node_caustic/node_caustic.yy",},}, {"id":{"name":"node_caustic","path":"scripts/node_caustic/node_caustic.yy",},},
{"id":{"name":"s_node_regex_search","path":"sprites/s_node_regex_search/s_node_regex_search.yy",},}, {"id":{"name":"s_node_regex_search","path":"sprites/s_node_regex_search/s_node_regex_search.yy",},},
{"id":{"name":"s_node_color_from_rgb","path":"sprites/s_node_color_from_rgb/s_node_color_from_rgb.yy",},}, {"id":{"name":"s_node_color_from_rgb","path":"sprites/s_node_color_from_rgb/s_node_color_from_rgb.yy",},},
{"id":{"name":"s_node_mk_grid_flip","path":"sprites/s_node_mk_grid_flip/s_node_mk_grid_flip.yy",},},
{"id":{"name":"s_node_separate_file_path","path":"sprites/s_node_separate_file_path/s_node_separate_file_path.yy",},}, {"id":{"name":"s_node_separate_file_path","path":"sprites/s_node_separate_file_path/s_node_separate_file_path.yy",},},
{"id":{"name":"node_scale_algo","path":"scripts/node_scale_algo/node_scale_algo.yy",},}, {"id":{"name":"node_scale_algo","path":"scripts/node_scale_algo/node_scale_algo.yy",},},
{"id":{"name":"s_node_image_replace","path":"sprites/s_node_image_replace/s_node_image_replace.yy",},}, {"id":{"name":"s_node_image_replace","path":"sprites/s_node_image_replace/s_node_image_replace.yy",},},
@ -1905,6 +1923,7 @@
{"id":{"name":"string_cut","path":"scripts/string_cut/string_cut.yy",},}, {"id":{"name":"string_cut","path":"scripts/string_cut/string_cut.yy",},},
{"id":{"name":"__node_3d_prim_cylinder","path":"scripts/__node_3d_prim_cylinder/__node_3d_prim_cylinder.yy",},}, {"id":{"name":"__node_3d_prim_cylinder","path":"scripts/__node_3d_prim_cylinder/__node_3d_prim_cylinder.yy",},},
{"id":{"name":"node_iterator_sort_inline_output","path":"scripts/node_iterator_sort_inline_output/node_iterator_sort_inline_output.yy",},}, {"id":{"name":"node_iterator_sort_inline_output","path":"scripts/node_iterator_sort_inline_output/node_iterator_sort_inline_output.yy",},},
{"id":{"name":"s_node_curve","path":"sprites/s_node_curve/s_node_curve.yy",},},
{"id":{"name":"Obj_FirebaseFirestore_Collection_Query_options","path":"objects/Obj_FirebaseFirestore_Collection_Query_options/Obj_FirebaseFirestore_Collection_Query_options.yy",},}, {"id":{"name":"Obj_FirebaseFirestore_Collection_Query_options","path":"objects/Obj_FirebaseFirestore_Collection_Query_options/Obj_FirebaseFirestore_Collection_Query_options.yy",},},
{"id":{"name":"stack_functions","path":"scripts/stack_functions/stack_functions.yy",},}, {"id":{"name":"stack_functions","path":"scripts/stack_functions/stack_functions.yy",},},
{"id":{"name":"panel_nodes","path":"scripts/panel_nodes/panel_nodes.yy",},}, {"id":{"name":"panel_nodes","path":"scripts/panel_nodes/panel_nodes.yy",},},
@ -2244,6 +2263,7 @@
{"id":{"name":"sh_pb_shade","path":"shaders/sh_pb_shade/sh_pb_shade.yy",},}, {"id":{"name":"sh_pb_shade","path":"shaders/sh_pb_shade/sh_pb_shade.yy",},},
{"id":{"name":"ds_map","path":"scripts/ds_map/ds_map.yy",},}, {"id":{"name":"ds_map","path":"scripts/ds_map/ds_map.yy",},},
{"id":{"name":"s_node_morph_surface","path":"sprites/s_node_morph_surface/s_node_morph_surface.yy",},}, {"id":{"name":"s_node_morph_surface","path":"sprites/s_node_morph_surface/s_node_morph_surface.yy",},},
{"id":{"name":"s_node_mesh_type","path":"sprites/s_node_mesh_type/s_node_mesh_type.yy",},},
{"id":{"name":"fd_rectangle_get_velocity_dissipation_type","path":"scripts/fd_rectangle_get_velocity_dissipation_type/fd_rectangle_get_velocity_dissipation_type.yy",},}, {"id":{"name":"fd_rectangle_get_velocity_dissipation_type","path":"scripts/fd_rectangle_get_velocity_dissipation_type/fd_rectangle_get_velocity_dissipation_type.yy",},},
{"id":{"name":"s_node_3d_transform","path":"sprites/s_node_3d_transform/s_node_3d_transform.yy",},}, {"id":{"name":"s_node_3d_transform","path":"sprites/s_node_3d_transform/s_node_3d_transform.yy",},},
{"id":{"name":"node_pb_box_split","path":"scripts/node_pb_box_split/node_pb_box_split.yy",},}, {"id":{"name":"node_pb_box_split","path":"scripts/node_pb_box_split/node_pb_box_split.yy",},},
@ -2319,6 +2339,7 @@
{"id":{"name":"node_group_thumbnail","path":"scripts/node_group_thumbnail/node_group_thumbnail.yy",},}, {"id":{"name":"node_group_thumbnail","path":"scripts/node_group_thumbnail/node_group_thumbnail.yy",},},
{"id":{"name":"VCT","path":"scripts/VCT/VCT.yy",},}, {"id":{"name":"VCT","path":"scripts/VCT/VCT.yy",},},
{"id":{"name":"node_alpha_to_grey","path":"scripts/node_alpha_to_grey/node_alpha_to_grey.yy",},}, {"id":{"name":"node_alpha_to_grey","path":"scripts/node_alpha_to_grey/node_alpha_to_grey.yy",},},
{"id":{"name":"s_node_alignment","path":"sprites/s_node_alignment/s_node_alignment.yy",},},
{"id":{"name":"shell_functions","path":"scripts/shell_functions/shell_functions.yy",},}, {"id":{"name":"shell_functions","path":"scripts/shell_functions/shell_functions.yy",},},
{"id":{"name":"node_strand_collision","path":"scripts/node_strand_collision/node_strand_collision.yy",},}, {"id":{"name":"node_strand_collision","path":"scripts/node_strand_collision/node_strand_collision.yy",},},
{"id":{"name":"s_node_atlas_get","path":"sprites/s_node_atlas_get/s_node_atlas_get.yy",},}, {"id":{"name":"s_node_atlas_get","path":"sprites/s_node_atlas_get/s_node_atlas_get.yy",},},

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

@ -475,15 +475,13 @@ event_inherited();
if(directory_exists(_path)) { if(directory_exists(_path)) {
var _metaPath = _path + "/meta.json"; var _metaPath = _path + "/meta.json";
if(!file_exists_empty(_metaPath)) { if(!file_exists_empty(_metaPath)) {
var _item = new scrollItem(f, THEME.circle); var _item = new scrollItem(f, THEME.circle, 0, COLORS._main_accent);
_item.spr_blend = COLORS._main_accent;
_item.tooltip = "Theme made for earlier version."; _item.tooltip = "Theme made for earlier version.";
array_push(themes, _item); array_push(themes, _item);
} else { } else {
var _meta = json_load_struct(_metaPath); var _meta = json_load_struct(_metaPath);
var _item = new scrollItem(_meta.name, _meta.version >= VERSION? noone : THEME.circle); var _item = new scrollItem(_meta.name, _meta.version >= VERSION? noone : THEME.circle, 0, COLORS._main_accent);
_item.data = f; _item.data = f;
_item.spr_blend = COLORS._main_accent;
if(_meta.version < VERSION) if(_meta.version < VERSION)
_item.tooltip = "Theme made for earlier version."; _item.tooltip = "Theme made for earlier version.";

View file

@ -114,7 +114,7 @@ event_inherited();
if(align == fa_center) draw_text_cut(_dw / 2, _ly + hght / 2, txt, _dw); if(align == fa_center) draw_text_cut(_dw / 2, _ly + hght / 2, txt, _dw);
else if(align == fa_left) draw_text_cut(ui(8) + _spr * hght, _ly + hght / 2, txt, _dw); else if(align == fa_left) draw_text_cut(ui(8) + _spr * hght, _ly + hght / 2, txt, _dw);
if(_spr) draw_sprite_ext(_val.spr, 0, ui(8) + hght / 2, _ly + hght / 2, 1, 1, 0, _val.spr_blend, 1); if(_spr) draw_sprite_ext(_val.spr, _val.spr_ind, ui(8) + hght / 2, _ly + hght / 2, 1, 1, 0, _val.spr_blend, 1);
_ly += hght; _ly += hght;
_h += hght; _h += hght;

View file

@ -11,6 +11,7 @@ enum PUPPET_CONTROL {
enum PUPPET_FORCE_MODE { enum PUPPET_FORCE_MODE {
move, move,
wind, wind,
puppet,
} }
function controlPointBox(_onModify) : widget() constructor { function controlPointBox(_onModify) : widget() constructor {
@ -93,6 +94,7 @@ function controlPointBox(_onModify) : widget() constructor {
switch(_mode) { switch(_mode) {
case PUPPET_FORCE_MODE.move: case PUPPET_FORCE_MODE.move:
case PUPPET_FORCE_MODE.puppet:
draw_set_text(f_p0, fa_left, fa_center, COLORS._main_text); draw_set_text(f_p0, fa_left, fa_center, COLORS._main_text);
draw_text(_x, yy + ui(17), "fx"); draw_text(_x, yy + ui(17), "fx");
draw_text(_x + _w / 2 + ui(10), yy + ui(17), "fy"); draw_text(_x + _w / 2 + ui(10), yy + ui(17), "fy");
@ -100,10 +102,12 @@ function controlPointBox(_onModify) : widget() constructor {
tbFy.draw(_x + _w / 2 + lw, yy, w, TEXTBOX_HEIGHT, _fy, _m); tbFy.draw(_x + _w / 2 + lw, yy, w, TEXTBOX_HEIGHT, _fy, _m);
yy += TEXTBOX_HEIGHT + ui(8); yy += TEXTBOX_HEIGHT + ui(8);
if(_mode == PUPPET_FORCE_MODE.move) {
draw_set_text(f_p0, fa_left, fa_center, COLORS._main_text); draw_set_text(f_p0, fa_left, fa_center, COLORS._main_text);
draw_text(_x, yy + ui(17), __txt("radius")); draw_text(_x, yy + ui(17), __txt("radius"));
sW.draw(_x + lw, yy, _w - lw, TEXTBOX_HEIGHT, _wid, _m); sW.draw(_x + lw, yy, _w - lw, TEXTBOX_HEIGHT, _wid, _m);
yy += TEXTBOX_HEIGHT + ui(8); yy += TEXTBOX_HEIGHT + ui(8);
}
break; break;
case PUPPET_FORCE_MODE.wind: case PUPPET_FORCE_MODE.wind:
draw_set_text(f_p0, fa_left, fa_center, COLORS._main_text); draw_set_text(f_p0, fa_left, fa_center, COLORS._main_text);

View file

@ -1,4 +1,4 @@
function dialogCall(_dia, _x = noone, _y = noone, param = {}, create = false) { function dialogCall(_dia, _x = noone, _y = noone, param = {}, create = false) { #region
if(_x == noone) _x = WIN_SW / 2; if(_x == noone) _x = WIN_SW / 2;
if(_y == noone) _y = WIN_SH / 2; if(_y == noone) _y = WIN_SH / 2;
@ -16,9 +16,9 @@ function dialogCall(_dia, _x = noone, _y = noone, param = {}, create = false) {
setFocus(dia.id, "Dialog"); setFocus(dia.id, "Dialog");
return dia; return dia;
} } #endregion
function dialogPanelCall(_panel, _x = noone, _y = noone, params = {}) { function dialogPanelCall(_panel, _x = noone, _y = noone, params = {}) { #region
if(_x == noone) _x = WIN_SW / 2; if(_x == noone) _x = WIN_SW / 2;
if(_y == noone) _y = WIN_SH / 2; if(_y == noone) _y = WIN_SH / 2;
@ -34,4 +34,14 @@ function dialogPanelCall(_panel, _x = noone, _y = noone, params = {}) {
setFocus(dia.id, "Dialog"); setFocus(dia.id, "Dialog");
return dia; return dia;
} } #endregion
function colorSelectorCall(defColor, onApply) { #region
var dialog = dialogCall(o_dialog_color_selector);
dialog.setDefault(defColor);
dialog.selector.onApply = onApply;
dialog.onApply = onApply;
return dialog;
} #endregion

View file

@ -27,7 +27,7 @@ function dynaSurf_iso() : dynaSurf() constructor {
static drawTile = function(_x = 0, _y = 0, _xs = 1, _ys = 1, _col = c_white, _alp = 1) { static drawTile = function(_x = 0, _y = 0, _xs = 1, _ys = 1, _col = c_white, _alp = 1) {
var _surf = surfaces[0]; var _surf = surfaces[0];
draw_surface_tiled_ext_safe(_surf, _x, _y, _xs, _ys, _col, _alp); draw_surface_tiled_ext_safe(_surf, _x, _y, _xs, _ys, 0, _col, _alp);
} }
static drawPart = function(_l, _t, _w, _h, _x, _y, _xs = 1, _ys = 1, _rot = 0, _col = c_white, _alp = 1) { static drawPart = function(_l, _t, _w, _h, _x, _y, _xs = 1, _ys = 1, _rot = 0, _col = c_white, _alp = 1) {

View file

@ -25,9 +25,9 @@
globalvar VERSION, SAVE_VERSION, VERSION_STRING, BUILD_NUMBER, LATEST_VERSION; globalvar VERSION, SAVE_VERSION, VERSION_STRING, BUILD_NUMBER, LATEST_VERSION;
LATEST_VERSION = 11600; LATEST_VERSION = 11600;
VERSION = 11641; VERSION = 11642;
SAVE_VERSION = 11641; SAVE_VERSION = 11642;
VERSION_STRING = "1.16.4.1"; VERSION_STRING = "1.16.4.2";
BUILD_NUMBER = 11640; BUILD_NUMBER = 11640;
globalvar APPEND_MAP; globalvar APPEND_MAP;

View file

@ -17,7 +17,10 @@ function Node_2D_light(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
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, 0);
inputs[| 1] = nodeValue("Light shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 1] = nodeValue("Light shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Point", "Line", "Line asymmetric", "Spot" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Point", s_node_2d_light_shape, 0),
new scrollItem("Line", s_node_2d_light_shape, 1),
new scrollItem("Line asymmetric", s_node_2d_light_shape, 2),
new scrollItem("Spot", s_node_2d_light_shape, 3), ]);
inputs[| 2] = nodeValue("Center", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 16, 16 ]) inputs[| 2] = nodeValue("Center", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 16, 16 ])
.setDisplay(VALUE_DISPLAY.vector) .setDisplay(VALUE_DISPLAY.vector)
@ -30,10 +33,10 @@ function Node_2D_light(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[| 5] = nodeValue("Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white); inputs[| 5] = nodeValue("Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white);
inputs[| 6] = nodeValue("Start", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 16, 16]) inputs[| 6] = nodeValue("Start", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 16, 16 ])
.setDisplay(VALUE_DISPLAY.vector); .setDisplay(VALUE_DISPLAY.vector);
inputs[| 7] = nodeValue("Finish", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 32, 16]) inputs[| 7] = nodeValue("Finish", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 32, 16 ])
.setDisplay(VALUE_DISPLAY.vector); .setDisplay(VALUE_DISPLAY.vector);
inputs[| 8] = nodeValue("Sweep", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 15) inputs[| 8] = nodeValue("Sweep", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 15)
@ -46,7 +49,9 @@ function Node_2D_light(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 16, 1] }); .setDisplay(VALUE_DISPLAY.slider, { range: [0, 16, 1] });
inputs[| 11] = nodeValue("Attenuation", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0, "Control how light fade out over distance.") inputs[| 11] = nodeValue("Attenuation", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0, "Control how light fade out over distance.")
.setDisplay(VALUE_DISPLAY.enum_scroll, ["Quadratic", "Invert quadratic", "Linear"]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Quadratic", s_node_curve, 0),
new scrollItem("Invert quadratic", s_node_curve, 1),
new scrollItem("Linear", s_node_curve, 2), ]);
inputs[| 12] = nodeValue("Radial banding", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 12] = nodeValue("Radial banding", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 16, 1] }); .setDisplay(VALUE_DISPLAY.slider, { range: [0, 16, 1] });

View file

@ -20,7 +20,8 @@ function Node_3D_Point_Affector(_x, _y, _group = noone) : Node_3D_Object(_x, _y,
inputs[| in_d3d + 4] = nodeValue("Falloff curve", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_01); inputs[| in_d3d + 4] = nodeValue("Falloff curve", self, JUNCTION_CONNECT.input, VALUE_TYPE.curve, CURVE_DEF_01);
inputs[| in_d3d + 5] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| in_d3d + 5] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Sphere", "Plane" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Sphere", s_node_3d_affector_shape, 0),
new scrollItem("Plane", s_node_3d_affector_shape, 1), ]);
outputs[| 0] = nodeValue("Output", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, [ 0, 0, 0 ]) outputs[| 0] = nodeValue("Output", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, [ 0, 0, 0 ])
.setDisplay(VALUE_DISPLAY.vector); .setDisplay(VALUE_DISPLAY.vector);

View file

@ -33,7 +33,7 @@ function Node_FLIP_Apply_Force(_x, _y, _group = noone) : Node(_x, _y, _group) co
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 0.1] }); .setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 0.1] });
inputs[| 3] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) inputs[| 3] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 )
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Circle", "Rectangle" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Circle", s_node_shape_type, 1), new scrollItem("Rectangle", s_node_shape_type, 0), ]);
inputs[| 4] = nodeValue("Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 4, 4 ] ) inputs[| 4] = nodeValue("Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 4, 4 ] )
.setDisplay(VALUE_DISPLAY.vector); .setDisplay(VALUE_DISPLAY.vector);

View file

@ -20,7 +20,7 @@ function Node_FLIP_Apply_Velocity(_x, _y, _group = noone) : Node(_x, _y, _group)
.setDisplay(VALUE_DISPLAY.vector); .setDisplay(VALUE_DISPLAY.vector);
inputs[| 4] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) inputs[| 4] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 )
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Circle", "Rectangle" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Circle", s_node_shape_type, 1), new scrollItem("Rectangle", s_node_shape_type, 0), ]);
inputs[| 5] = nodeValue("Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 4, 4 ] ) inputs[| 5] = nodeValue("Size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 4, 4 ] )
.setDisplay(VALUE_DISPLAY.vector); .setDisplay(VALUE_DISPLAY.vector);

View file

@ -20,7 +20,8 @@ function Node_FLIP_Render(_x, _y, _group = noone) : Node(_x, _y, _group) constru
inputs[| 5] = nodeValue("Fluid particle", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone); inputs[| 5] = nodeValue("Fluid particle", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 6] = nodeValue("Render type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 6] = nodeValue("Render type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Particle", "Line" ] ); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Particle", s_node_flip_render, 0),
new scrollItem("Line", s_node_flip_render, 1), ] );
inputs[| 7] = nodeValue("Threshold", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); inputs[| 7] = nodeValue("Threshold", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true);

View file

@ -2,8 +2,11 @@ function Node_PCX_fn_Math(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) con
name = "Math"; name = "Math";
inputs[| 0] = nodeValue("Operator", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 0] = nodeValue("Operator", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Add", "Subtract", "Multiply", "Divide", "Power", "Modulo", "Absolute", -1, "Round", "Floor", "Ceil", .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Add", "Subtract", "Multiply", "Divide", "Power", "Modulo", "Absolute", -1,
-1, "Sin", "Cos", "Tan", "Arcsin", "Arccos", "Arctan", -1, "Min", "Max", "Clamp", -1, "Lerp" ]); "Round", "Floor", "Ceil", -1,
"Sin", "Cos", "Tan", "Arcsin", "Arccos", "Arctan", -1,
"Min", "Max", "Clamp", -1,
"Lerp" ]);
inputs[| 1] = nodeValue("x", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone); inputs[| 1] = nodeValue("x", self, JUNCTION_CONNECT.input, VALUE_TYPE.PCXnode, noone);

View file

@ -12,7 +12,7 @@ function Node_Area(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
.setVisible(true, true); .setVisible(true, true);
inputs[| 2] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, AREA_SHAPE.rectangle ) inputs[| 2] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, AREA_SHAPE.rectangle )
.setDisplay(VALUE_DISPLAY.enum_scroll, ["Rectangle", "Elipse"]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Rectangle", s_node_shape_type, 0), new scrollItem("Elipse", s_node_shape_type, 1) ]);
outputs[| 0] = nodeValue("Area", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, [ 0, 0, 0, 0, AREA_SHAPE.rectangle ]) outputs[| 0] = nodeValue("Area", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, [ 0, 0, 0, 0, AREA_SHAPE.rectangle ])
.setDisplay(VALUE_DISPLAY.vector); .setDisplay(VALUE_DISPLAY.vector);

View file

@ -13,7 +13,9 @@ function Node_Bevel(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con
.setDisplay(VALUE_DISPLAY.vector); .setDisplay(VALUE_DISPLAY.vector);
inputs[| 4] = nodeValue("Slope", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 4] = nodeValue("Slope", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Linear", "Smooth", "Circular" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Linear", s_node_curve, 2),
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, 0);

View file

@ -12,7 +12,10 @@ function Node_Camera(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
.setDisplay(VALUE_DISPLAY.slider, { range: [ 0.01, 4, 0.01 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ 0.01, 4, 0.01 ] });
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.") 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", "Repeat", "Repeat X", "Repeat Y" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Empty ", s_node_camera_repeat, 0),
new scrollItem("Repeat ", s_node_camera_repeat, 1),
new scrollItem("Repeat X", s_node_camera_repeat, 2),
new scrollItem("Repeat Y", s_node_camera_repeat, 3), ]);
inputs[| 4] = nodeValue("Fix background", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); inputs[| 4] = nodeValue("Fix background", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false);
@ -50,7 +53,10 @@ function Node_Camera(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co
.setUnitRef(function(index) { return getDimension(index); }); .setUnitRef(function(index) { return getDimension(index); });
inputs[| index + 2] = nodeValue($"Oversample {_s}", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| index + 2] = nodeValue($"Oversample {_s}", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Empty", "Repeat", "Repeat X", "Repeat Y" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Empty ", s_node_camera_repeat, 0),
new scrollItem("Repeat ", s_node_camera_repeat, 1),
new scrollItem("Repeat X", s_node_camera_repeat, 2),
new scrollItem("Repeat Y", s_node_camera_repeat, 3), ]);
array_append(input_display_list, [ index + 0, index + 1, index + 2 ]); array_append(input_display_list, [ index + 0, index + 1, index + 2 ]);
} if(!LOADING && !APPENDING) createNewInput(); #endregion } if(!LOADING && !APPENDING) createNewInput(); #endregion

View file

@ -282,12 +282,8 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
drawColor(tool_attribute.color, _cx, yy, _cw, _cw); drawColor(tool_attribute.color, _cx, yy, _cw, _cw);
draw_sprite_stretched_ext(THEME.palette_selecting, 0, _cx - _pd, yy - _pd, _cw + _pd * 2, _cw + _pd * 2, c_white, 1); draw_sprite_stretched_ext(THEME.palette_selecting, 0, _cx - _pd, yy - _pd, _cw + _pd * 2, _cw + _pd * 2, c_white, 1);
if(point_in_rectangle(_mx, _my, _cx, yy, _cx + _cw, yy + _ch) && mouse_press(mb_left, focus)) { if(point_in_rectangle(_mx, _my, _cx, yy, _cx + _cw, yy + _ch) && mouse_press(mb_left, focus))
var dialog = dialogCall(o_dialog_color_selector); colorSelectorCall(tool_attribute.color, setToolColor);
dialog.selector.onApply = setToolColor;
dialog.onApply = setToolColor;
dialog.setDefault(tool_attribute.color);
}
yy += _cw + ui(8); yy += _cw + ui(8);
hh += _cw + ui(8); hh += _cw + ui(8);

View file

@ -29,7 +29,12 @@ function Node_Compare(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
w = 96; w = 96;
inputs[| 0] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 0] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Equal", "Not equal", "Greater", "Greater or equal", "Lesser", "Lesser or equal" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Equal", s_node_condition_type, 0),
new scrollItem("Not equal", s_node_condition_type, 1),
new scrollItem("Greater ", s_node_condition_type, 4),
new scrollItem("Greater or equal", s_node_condition_type, 5),
new scrollItem("Lesser", s_node_condition_type, 2),
new scrollItem("Lesser or equal", s_node_condition_type, 3), ]);
inputs[| 1] = nodeValue("a", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0) inputs[| 1] = nodeValue("a", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0)
.setVisible(true, true); .setVisible(true, true);

View file

@ -7,7 +7,12 @@ function Node_Condition(_x, _y, _group = noone) : Node(_x, _y, _group) construct
.setVisible(true, true); .setVisible(true, true);
inputs[| 1] = nodeValue("Condition", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) inputs[| 1] = nodeValue("Condition", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 )
.setDisplay(VALUE_DISPLAY.enum_scroll, ["Equal", "Not equal", "Less", "Less or equal", "Greater", "Greater or equal"]) .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Equal", s_node_condition_type, 0),
new scrollItem("Not equal", s_node_condition_type, 1),
new scrollItem("Less ", s_node_condition_type, 2),
new scrollItem("Less or equal ", s_node_condition_type, 3),
new scrollItem("Greater ", s_node_condition_type, 4),
new scrollItem("Greater or equal", s_node_condition_type, 5), ])
.rejectArray(); .rejectArray();
inputs[| 2] = nodeValue("Compare to", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 ) inputs[| 2] = nodeValue("Compare to", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 )

View file

@ -8,7 +8,9 @@ function Node_Gradient(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
.setMappable(15); .setMappable(15);
inputs[| 2] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 2] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Linear", "Circular", "Radial" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Linear", s_node_gradient_type, 0),
new scrollItem("Circular", s_node_gradient_type, 1),
new scrollItem("Radial", s_node_gradient_type, 2) ]);
inputs[| 3] = nodeValue("Angle", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 3] = nodeValue("Angle", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.rotation) .setDisplay(VALUE_DISPLAY.rotation)

View file

@ -2,7 +2,8 @@ function Node_Image_Grid(_x, _y, _group = noone) : Node(_x, _y, _group) construc
name = "Image Grid"; name = "Image Grid";
inputs[| 0] = nodeValue("Main Axis", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 0] = nodeValue("Main Axis", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Horizontal", "Vertical" ]) .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Horizontal", s_node_alignment, 0),
new scrollItem("Vertical", s_node_alignment, 1) ])
.rejectArray(); .rejectArray();
inputs[| 1] = nodeValue("Column", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4) inputs[| 1] = nodeValue("Column", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4)

View file

@ -25,7 +25,8 @@ function Node_Image_Sheet(_x, _y, _group = noone) : Node(_x, _y, _group) constru
inputs[| 8] = nodeValue("Animation speed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1); inputs[| 8] = nodeValue("Animation speed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1);
inputs[| 9] = nodeValue("Orientation", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 9] = nodeValue("Orientation", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Horizontal", "Vertical"]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Horizontal", s_node_alignment, 0),
new scrollItem("Vertical", s_node_alignment, 1), ]);
inputs[| 10] = nodeValue("Auto fill", self, JUNCTION_CONNECT.input, VALUE_TYPE.trigger, 0, "Automatically set amount based on sprite size.") inputs[| 10] = nodeValue("Auto fill", self, JUNCTION_CONNECT.input, VALUE_TYPE.trigger, 0, "Automatically set amount based on sprite size.")
.setDisplay(VALUE_DISPLAY.button, { name: "Auto fill", onClick: function() { #region .setDisplay(VALUE_DISPLAY.button, { name: "Auto fill", onClick: function() { #region

View file

@ -2,7 +2,9 @@ function Node_Stack(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Stack"; name = "Stack";
inputs[| 0] = nodeValue("Axis", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 0] = nodeValue("Axis", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Horizontal", "Vertical", "On top" ]) .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Horizontal", s_node_alignment, 0),
new scrollItem("Vertical", s_node_alignment, 1),
new scrollItem("On top", s_node_alignment, 3), ])
.rejectArray(); .rejectArray();
inputs[| 1] = nodeValue("Align", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1) inputs[| 1] = nodeValue("Align", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1)

View file

@ -13,7 +13,9 @@ function Node_Local_Analyze(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Empty", "Clamp", "Repeat" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Empty", "Clamp", "Repeat" ]);
inputs[| 4] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 4] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Square", "Circle", "Diamond" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Square", s_node_shape, 0),
new scrollItem("Circle", s_node_shape, 1),
new scrollItem("Diamond", s_node_shape_misc, 0) ]);
inputs[| 5] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); inputs[| 5] = nodeValue("Mask", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);

View file

@ -31,8 +31,12 @@ function Node_Logic(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
w = 96; w = 96;
inputs[| 0] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 0] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("And" , s_node_logic, 0),
/* 0 - 9*/ "And", "Or", "Not", "Nand", "Nor", "Xor" ]) new scrollItem("Or" , s_node_logic, 1),
new scrollItem("Not" , s_node_logic, 2),
new scrollItem("Nand", s_node_logic, 3),
new scrollItem("Nor" , s_node_logic, 4),
new scrollItem("Xor" , s_node_logic, 5), ])
.rejectArray(); .rejectArray();
inputs[| 1] = nodeValue("a", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false) inputs[| 1] = nodeValue("a", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false)

View file

@ -61,7 +61,7 @@ function Node_MK_Fall(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
.setDisplay(VALUE_DISPLAY.range, { linked : true }); .setDisplay(VALUE_DISPLAY.range, { linked : true });
inputs[| 22] = nodeValue("Render Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 22] = nodeValue("Render Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Leaf", "Circle" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Leaf", s_node_shape_type, 7), new scrollItem("Circle", s_node_shape_type, 1) ]);
inputs[| 23] = nodeValue("Twist Radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.7) inputs[| 23] = nodeValue("Twist Radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.7)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);

View file

@ -28,7 +28,9 @@ function Node_MK_GridFlip(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
.setDisplay(VALUE_DISPLAY.slider, { range: [ -1, 1, 0.01 ] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ -1, 1, 0.01 ] });
inputs[| 10] = nodeValue("Flip limit", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 10] = nodeValue("Flip limit", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "None", "90", "180" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("None", s_node_mk_grid_flip, 0),
new scrollItem("90", s_node_mk_grid_flip, 1),
new scrollItem("180", s_node_mk_grid_flip, 2), ]);
input_display_list = [ new Inspector_Sprite(s_MKFX), 3, 1, input_display_list = [ new Inspector_Sprite(s_MKFX), 3, 1,
["Surface", true], 0, 4, ["Surface", true], 0, 4,

View file

@ -26,7 +26,9 @@ function Node_MK_Rain(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
inputs[| 8] = nodeValue("Seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, irandom_range(100_000, 999_999)); inputs[| 8] = nodeValue("Seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, irandom_range(100_000, 999_999));
inputs[| 9] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 9] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Rain", "Snow", "Texture" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Rain", s_node_mk_rain_type, 0),
new scrollItem("Snow", s_node_mk_rain_type, 1),
new scrollItem("Texture", s_node_mk_rain_type, 2) ]);
inputs[| 10] = nodeValue("Snow size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 3, 4 ]) inputs[| 10] = nodeValue("Snow size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 3, 4 ])
.setDisplay(VALUE_DISPLAY.vector_range); .setDisplay(VALUE_DISPLAY.vector_range);

View file

@ -7,7 +7,8 @@ function Node_Path_Plot(_x, _y, _group = noone) : Node(_x, _y, _group) construct
.setDisplay(VALUE_DISPLAY.vector); .setDisplay(VALUE_DISPLAY.vector);
inputs[| 1] = nodeValue("Coordinate", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 1] = nodeValue("Coordinate", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Cartesian", "Polar" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Cartesian", s_node_axis_type, 0),
new scrollItem("Polar", s_node_axis_type, 1), ]);
eq_type_car = [ "x function", "y function", "parametric" ]; eq_type_car = [ "x function", "y function", "parametric" ];
eq_type_pol = [ "r function", "O function", "parametric" ]; eq_type_pol = [ "r function", "O function", "parametric" ];

View file

@ -2,7 +2,8 @@ function Node_PB_Draw_Trapezoid(_x, _y, _group = noone) : Node_PB_Draw(_x, _y, _
name = "Trapezoid"; name = "Trapezoid";
inputs[| 3] = nodeValue("Axis", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) inputs[| 3] = nodeValue("Axis", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 )
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Horizontal", "Vertical" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Horizontal", s_node_alignment, 0),
new scrollItem("Vertical", s_node_alignment, 1), ]);
inputs[| 4] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 ) inputs[| 4] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 )
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Symmetric", "Independent" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Symmetric", "Independent" ]);

View file

@ -30,7 +30,8 @@ function Node_Plot_Linear(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
.setDisplay(VALUE_DISPLAY.rotation); .setDisplay(VALUE_DISPLAY.rotation);
inputs[| 11] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 11] = nodeValue("Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Bar chart", "Graph" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Bar chart", s_node_plot_linear_type, 0),
new scrollItem("Graph", s_node_plot_linear_type, 1), ]);
inputs[| 12] = nodeValue("Value Offset", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0); inputs[| 12] = nodeValue("Value Offset", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0);

View file

@ -23,7 +23,9 @@ function Node_Polar(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con
__init_mask_modifier(1); // inputs 7, 8, __init_mask_modifier(1); // inputs 7, 8,
inputs[| 9] = nodeValue("Radius mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 9] = nodeValue("Radius mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Linear", "Inverse Square", "Logarithm" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Linear", s_node_curve, 2),
new scrollItem("Inverse Square", s_node_curve, 1),
new scrollItem("Logarithm", s_node_curve, 3), ]);
inputs[| 10] = nodeValue("Swap", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false) inputs[| 10] = nodeValue("Swap", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false)

View file

@ -473,7 +473,7 @@ function __initNodes() {
addNodeObject(transform, "Crop", s_node_crop, "Node_Crop", [1, Node_Crop],, "Crop out image to create smaller ones."); addNodeObject(transform, "Crop", s_node_crop, "Node_Crop", [1, Node_Crop],, "Crop out image to create smaller ones.");
addNodeObject(transform, "Crop Content", s_node_crop_content, "Node_Crop_Content", [1, Node_Crop_Content],, "Crop out empty pixel pixel from the image."); addNodeObject(transform, "Crop Content", s_node_crop_content, "Node_Crop_Content", [1, Node_Crop_Content],, "Crop out empty pixel pixel from the image.");
addNodeObject(transform, "Warp", s_node_warp, "Node_Warp", [1, Node_Warp], ["wrap"], "Warp image by freely moving the corners."); addNodeObject(transform, "Warp", s_node_warp, "Node_Warp", [1, Node_Warp], ["wrap"], "Warp image by freely moving the corners.");
addNodeObject(transform, "Skew", s_node_skew, "Node_Skew", [1, Node_Skew],, "Skew image horizontally, or vertically."); addNodeObject(transform, "Skew", s_node_skew, "Node_Skew", [1, Node_Skew], ["shear"], "Skew image horizontally, or vertically.");
addNodeObject(transform, "Mesh Warp", s_node_warp_mesh, "Node_Mesh_Warp", [1, Node_Mesh_Warp], ["mesh wrap"], "Wrap image by converting it to mesh, and using control points."); addNodeObject(transform, "Mesh Warp", s_node_warp_mesh, "Node_Mesh_Warp", [1, Node_Mesh_Warp], ["mesh wrap"], "Wrap image by converting it to mesh, and using control points.");
addNodeObject(transform, "Polar", s_node_polar, "Node_Polar", [1, Node_Polar],, "Convert image to polar coordinate."); addNodeObject(transform, "Polar", s_node_polar, "Node_Polar", [1, Node_Polar],, "Convert image to polar coordinate.");
addNodeObject(transform, "Area Warp", s_node_padding, "Node_Wrap_Area", [1, Node_Wrap_Area],, "Wrap image to fit area value (x, y, w, h)."); addNodeObject(transform, "Area Warp", s_node_padding, "Node_Wrap_Area", [1, Node_Wrap_Area],, "Wrap image to fit area value (x, y, w, h).");

View file

@ -25,7 +25,9 @@ function Node_Render_Sprite_Sheet(_x, _y, _group = noone) : Node(_x, _y, _group)
.rejectArray(); .rejectArray();
inputs[| 3] = nodeValue("Packing type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 3] = nodeValue("Packing type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Horizontal", "Vertical", "Grid" ]) .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Horizontal", s_node_alignment, 0),
new scrollItem("Vertical", s_node_alignment, 1),
new scrollItem("Grid", s_node_alignment, 2), ])
.rejectArray(); .rejectArray();
inputs[| 4] = nodeValue("Grid column", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4) inputs[| 4] = nodeValue("Grid column", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4)

View file

@ -9,7 +9,9 @@ function Node_Repeat(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
inputs[| 2] = nodeValue("Amount", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 2); inputs[| 2] = nodeValue("Amount", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 2);
inputs[| 3] = nodeValue("Pattern", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 3] = nodeValue("Pattern", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Linear", "Grid", "Circular" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Linear", s_node_repeat_axis, 0),
new scrollItem("Grid", s_node_repeat_axis, 1),
new scrollItem("Circular", s_node_repeat_axis, 2), ]);
inputs[| 4] = nodeValue("Repeat position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [DEF_SURF_W / 2, 0]) inputs[| 4] = nodeValue("Repeat position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [DEF_SURF_W / 2, 0])
.setDisplay(VALUE_DISPLAY.vector) .setDisplay(VALUE_DISPLAY.vector)

View file

@ -31,7 +31,7 @@ function Node_Rigid_Object(_x, _y, _group = noone) : Node(_x, _y, _group) constr
.setAnimable(false); .setAnimable(false);
inputs[| 5] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 5] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Box", "Circle", "Custom" ]) .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Box", s_node_shape_type, 0), new scrollItem("Circle", s_node_shape_type, 1), new scrollItem("Custom", s_node_shape_misc, 1) ])
.rejectArray() .rejectArray()
.setAnimable(false); .setAnimable(false);

View file

@ -28,7 +28,8 @@ function Node_Shadow_Cast(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 1] }); .setDisplay(VALUE_DISPLAY.slider, { range: [1, 16, 1] });
inputs[| 5] = nodeValue("Light type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 5] = nodeValue("Light type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, ["Point", "Sun"]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Point", s_node_shadow_type, 0),
new scrollItem("Sun", s_node_shadow_type, 1) ]);
inputs[| 6] = nodeValue("Ambient color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_grey); inputs[| 6] = nodeValue("Ambient color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_grey);
@ -50,7 +51,9 @@ function Node_Shadow_Cast(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 16, 1] }); .setDisplay(VALUE_DISPLAY.slider, { range: [0, 16, 1] });
inputs[| 14] = nodeValue("Attenuation", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0, "Control how light fade out over distance.") inputs[| 14] = nodeValue("Attenuation", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0, "Control how light fade out over distance.")
.setDisplay(VALUE_DISPLAY.enum_scroll, ["Quadratic", "Invert quadratic", "Linear"]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Quadratic", s_node_curve, 0),
new scrollItem("Invert quadratic", s_node_curve, 1),
new scrollItem("Linear", s_node_curve, 2), ]);
inputs[| 15] = nodeValue("Ambient occlusion", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 15] = nodeValue("Ambient occlusion", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.slider, { range: [0, 16, 1] }); .setDisplay(VALUE_DISPLAY.slider, { range: [0, 16, 1] });

View file

@ -8,8 +8,12 @@ function Node_Shape(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con
inputs[| 1] = nodeValue("Background", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); inputs[| 1] = nodeValue("Background", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false);
var _types = [ "Rectangle", "Ellipse", "Regular polygon", "Star", "Arc", "Teardrop", "Cross", "Leaf", "Crescent", "Donut" ];
for( var i = 0, n = array_length(_types); i < n; i++ )
_types[i] = new scrollItem(_types[i], s_node_shape_type, i);
inputs[| 2] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 2] = nodeValue("Shape", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Rectangle", "Ellipse", "Regular polygon", "Star", "Arc", "Teardrop", "Cross", "Leaf", "Crescent", "Donut" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, _types);
onSurfaceSize = function() { return getInputData(0, DEF_SURF); }; onSurfaceSize = function() { return getInputData(0, DEF_SURF); };
inputs[| 3] = nodeValue("Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ DEF_SURF_W / 2, DEF_SURF_H / 2, DEF_SURF_W / 2, DEF_SURF_H / 2, AREA_SHAPE.rectangle ]) inputs[| 3] = nodeValue("Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ DEF_SURF_W / 2, DEF_SURF_H / 2, DEF_SURF_W / 2, DEF_SURF_H / 2, AREA_SHAPE.rectangle ])

View file

@ -248,42 +248,6 @@ function Node_Transform(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
pos = point_rotate(pos[0], pos[1], pos[0] + anc[0], pos[1] + anc[1], rot); pos = point_rotate(pos[0], pos[1], pos[0] + anc[0], pos[1] + anc[1], rot);
if(mode == 1) { #region
var _w = _ww * sqrt(2);
var _h = _hh * sqrt(2);
var _px = (_w - _ww) / 2;
var _py = (_h - _hh) / 2;
var _s = surface_create_valid(_w, _h, cDep);
surface_set_target(_s);
DRAW_CLEAR
BLEND_OVERRIDE
if(is_surface(ins)) {
var draw_x, draw_y;
draw_x = _px + pos[0];
draw_y = _py + pos[1];
if(pos_exact) {
draw_x = round(draw_x);
draw_y = round(draw_y);
}
draw_surface_tiled_ext_safe(ins, draw_x, draw_y, sca[0], sca[1], c_white, 1);
}
BLEND_NORMAL
surface_reset_target();
var _cc = point_rotate(-_px, -_py, _ww / 2, _hh / 2, rot);
surface_set_shader(_outSurf);
shader_set_interpolation(_s);
draw_surface_ext_safe(_s, _cc[0], _cc[1], 1, 1, rot, c_white, 1);
surface_reset_shader();
surface_free(_s);
#endregion
} else { #region
var draw_x, draw_y; var draw_x, draw_y;
draw_x = pos[0]; draw_x = pos[0];
draw_y = pos[1]; draw_y = pos[1];
@ -293,6 +257,15 @@ function Node_Transform(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
draw_y = round(draw_y); draw_y = round(draw_y);
} }
if(mode == 1) { #region // Tile
surface_set_shader(_outSurf);
shader_set_interpolation(ins);
draw_surface_tiled_ext_safe(ins, draw_x, draw_y, sca[0], sca[1], rot, c_white, 1);
surface_reset_shader();
#endregion
} else { #region // Normal or wrap
surface_set_shader(_outSurf); surface_set_shader(_outSurf);
shader_set_interpolation(ins); shader_set_interpolation(ins);

View file

@ -8,7 +8,10 @@ function Node_Trigger_Bool(_x, _y, _group = noone) : Node(_x, _y, _group) constr
inputs[| 0] = nodeValue("Boolean", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); inputs[| 0] = nodeValue("Boolean", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false);
inputs[| 1] = nodeValue("Trigger condition", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 1] = nodeValue("Trigger condition", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "True frame", "False to True", "True to False", "Value changed" ]); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("True frame", s_node_trigger_cond, 0),
new scrollItem("False to True", s_node_trigger_cond, 1),
new scrollItem("True to False", s_node_trigger_cond, 2),
new scrollItem("Value changed", s_node_trigger_cond, 3), ]);
outputs[| 0] = nodeValue("Trigger", self, JUNCTION_CONNECT.output, VALUE_TYPE.trigger, false); outputs[| 0] = nodeValue("Trigger", self, JUNCTION_CONNECT.output, VALUE_TYPE.trigger, false);

View file

@ -4,12 +4,196 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
attributes.mesh_bound = []; attributes.mesh_bound = [];
points = []; points = [];
data = { data = { points : [], tris : [], links : [], controls: [] };
points : [],
tris : [], function _Point(node, index, _x, _y) constructor { #region
links : [] self.index = index;
self.node = node;
x = _x;
y = _y;
xp = x;
yp = y;
node.points[index] = self;
ndx = 0;
ndy = 0;
sx = x;
sy = y;
pin = false;
controlWeights = [];
static reset = function(data) {
INLINE
x = sx;
y = sy;
xp = x;
yp = y;
var dist = 0;
for( var i = 0, n = array_length(data.controls); i < n; i++ ) {
var d = point_distance(x, y, data.controls[i][PUPPET_CONTROL.cx], data.controls[i][PUPPET_CONTROL.cy]);
controlWeights[i] = 1 / d;
dist += 1 / d;
} }
for( var i = 0, n = array_length(controlWeights); i < n; i++ )
controlWeights[i] /= dist;
}
static draw = function(_x, _y, _s) {
INLINE
if(pin) {
draw_set_color(COLORS._main_accent);
draw_circle_prec(_x + x * _s, _y + y * _s, 3, false);
} else {
draw_set_color(COLORS.node_overlay_gizmo_inactive);
draw_circle_prec(_x + x * _s, _y + y * _s, 2, false);
}
}
u = 0;
v = 0;
static mapTexture = function(ww, hh) {
INLINE
u = x / ww;
v = y / hh;
}
static move = function(dx, dy) {
INLINE
if(pin) return;
x += dx;
y += dy;
}
static planMove = function(dx, dy) {
INLINE
if(pin) return;
ndx += dx;
ndy += dy;
}
static stepMove = function(rat) {
INLINE
if(pin) return;
move(ndx * rat, ndy * rat);
}
static clearMove = function(rat) {
INLINE
if(pin) return;
ndx = 0;
ndy = 0;
}
static setPin = function(pin) {
INLINE
self.pin = pin;
}
static equal = function(point) {
INLINE
return x == point.x && y == point.y;
}
} #endregion
function _Link(_p0, _p1, _k = 1) constructor { #region
p0 = _p0;
p1 = _p1;
k = _k;
len = point_distance(p0.x, p0.y, p1.x, p1.y);
static resolve = function(strength = 1) {
INLINE
var _len = point_distance(p0.x, p0.y, p1.x, p1.y);
var _dir = point_direction(p0.x, p0.y, p1.x, p1.y);
var _slen = lerp(_len, len, strength);
var f = k * (_len - _slen);
var dx = lengthdir_x(f, _dir);
var dy = lengthdir_y(f, _dir);
p0.move( dx / 2, dy / 2);
p1.move(-dx / 2, -dy / 2);
}
static draw = function(_x, _y, _s) {
INLINE
draw_set_color(c_red);
draw_line(_x + p0.x * _s, _y + p0.y * _s, _x + p1.x * _s, _y + p1.y * _s);
}
} #endregion
function _Triangle(_p0, _p1, _p2) constructor { #region
p0 = _p0;
p1 = _p1;
p2 = _p2;
static reset = function(data) {
INLINE
p0.reset(data);
p1.reset(data);
p2.reset(data);
}
static initSurface = function(surf) {
INLINE
p0.mapTexture(surface_get_width_safe(surf), surface_get_height_safe(surf));
p1.mapTexture(surface_get_width_safe(surf), surface_get_height_safe(surf));
p2.mapTexture(surface_get_width_safe(surf), surface_get_height_safe(surf));
}
static drawSurface = function(surf) {
INLINE
draw_set_color(c_white);
draw_set_alpha(1);
draw_primitive_begin_texture(pr_trianglelist, surface_get_texture(surf));
draw_vertex_texture(p0.x, p0.y, p0.u, p0.v);
draw_vertex_texture(p1.x, p1.y, p1.u, p1.v);
draw_vertex_texture(p2.x, p2.y, p2.u, p2.v);
draw_primitive_end();
}
static drawPoints = function(_x, _y, _s) {
INLINE
p0.draw(_x, _y, _s);
p1.draw(_x, _y, _s);
p2.draw(_x, _y, _s);
}
static contain = function(p) {
INLINE
return p == p0 || p == p1 || p == p2;
}
} #endregion
is_convex = true; is_convex = true;
hover = -1; hover = -1;
anchor_dragging = -1; anchor_dragging = -1;
@ -27,7 +211,7 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
.setDisplay(VALUE_DISPLAY.slider); .setDisplay(VALUE_DISPLAY.slider);
inputs[| 3] = nodeValue("Mesh", self, JUNCTION_CONNECT.input, VALUE_TYPE.trigger, 0) inputs[| 3] = nodeValue("Mesh", self, JUNCTION_CONNECT.input, VALUE_TYPE.trigger, 0)
.setDisplay(VALUE_DISPLAY.button, { name: "Generate", onClick: function() { setTriangle(); doUpdate(); } }); .setDisplay(VALUE_DISPLAY.button, { name: "Generate", onClick: function() { Mesh_setTriangle(); doUpdate(); } });
inputs[| 4] = nodeValue("Diagonal Link", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false, "Include diagonal link to prevent drastic grid deformation."); inputs[| 4] = nodeValue("Diagonal Link", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false, "Include diagonal link to prevent drastic grid deformation.");
@ -40,7 +224,8 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
inputs[| 7] = nodeValue("Full Mesh", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); inputs[| 7] = nodeValue("Full Mesh", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false);
inputs[| 8] = nodeValue("Mesh Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 8] = nodeValue("Mesh Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Grid", "Custom" ] ); .setDisplay(VALUE_DISPLAY.enum_scroll, [ new scrollItem("Grid", s_node_mesh_type, 0),
new scrollItem("Custom", s_node_mesh_type, 1), ] );
inputs[| 9] = nodeValue("Seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, irandom_range(100000, 999999)); inputs[| 9] = nodeValue("Seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, irandom_range(100000, 999999));
@ -70,6 +255,7 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
input_display_index = array_length(input_display_list); input_display_index = array_length(input_display_list);
#region ============ attributes & tools ============
array_push(attributeEditors, "Warp"); array_push(attributeEditors, "Warp");
attributes.iteration = 4; attributes.iteration = 4;
@ -92,18 +278,19 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
new NodeTool( "Mesh edit", THEME.mesh_tool_edit ), new NodeTool( "Mesh edit", THEME.mesh_tool_edit ),
new NodeTool( "Anchor remove", THEME.mesh_tool_delete ), new NodeTool( "Anchor remove", THEME.mesh_tool_delete ),
]; ];
#endregion
insp1UpdateTooltip = "Generate"; insp1UpdateTooltip = "Generate";
insp1UpdateIcon = [ THEME.refresh, 1, COLORS._main_value_positive ]; insp1UpdateIcon = [ THEME.refresh, 1, COLORS._main_value_positive ];
static onInspector1Update = function() { #region static onInspector1Update = function() { #region
setTriangle(); Mesh_setTriangle();
} #endregion } #endregion
static onValueFromUpdate = function(index) { #region static onValueFromUpdate = function(index) { #region
if(LOADING || APPENDING) return; if(LOADING || APPENDING) return;
if(index == 0 && array_empty(data.tris)) if(index == 0 && array_empty(data.tris))
setTriangle(); Mesh_setTriangle();
} #endregion } #endregion
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
@ -169,7 +356,7 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
attributes.mesh_bound[anchor_dragging][0] = dx; attributes.mesh_bound[anchor_dragging][0] = dx;
attributes.mesh_bound[anchor_dragging][1] = dy; attributes.mesh_bound[anchor_dragging][1] = dy;
setTriangle(); Mesh_setTriangle();
if(mouse_release(mb_left)) if(mouse_release(mb_left))
anchor_dragging = -1; anchor_dragging = -1;
@ -186,7 +373,7 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
} else if(isUsingTool("Anchor remove")) { } else if(isUsingTool("Anchor remove")) {
if(array_length(mesh) > 3) { if(array_length(mesh) > 3) {
array_delete(mesh, hover, 1); array_delete(mesh, hover, 1);
setTriangle(); Mesh_setTriangle();
} }
} }
} else if(isUsingTool("Mesh edit")) { } else if(isUsingTool("Mesh edit")) {
@ -260,152 +447,25 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
} }
} #endregion } #endregion
function _Point(node, index, _x, _y) constructor { #region ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
self.index = index;
self.node = node;
x = _x;
y = _y;
xp = x;
yp = y;
node.points[index] = self; static step = function() { #region
var _type = getInputData(8);
ndx = 0; inputs[| 2].setVisible(_type == 0);
ndy = 0; inputs[| 4].setVisible(_type == 0);
inputs[| 7].setVisible(_type == 0);
sx = x; if(_type == 0) tools = tools_edit;
sy = y; else if (_type == 1) tools = tools_mesh;
pin = false;
static reset = function() {
x = sx;
y = sy;
xp = x;
yp = y;
}
static draw = function(_x, _y, _s) {
if(pin) {
draw_set_color(COLORS._main_accent);
draw_circle_prec(_x + x * _s, _y + y * _s, 3, false);
} else {
draw_set_color(COLORS.node_overlay_gizmo_inactive);
draw_circle_prec(_x + x * _s, _y + y * _s, 2, false);
}
}
u = 0;
v = 0;
static mapTexture = function(ww, hh) {
u = x / ww;
v = y / hh;
}
static move = function(dx, dy) {
if(pin) return;
x += dx;
y += dy;
}
static planMove = function(dx, dy) {
if(pin) return;
ndx += dx;
ndy += dy;
}
static stepMove = function(rat) {
if(pin) return;
move(ndx * rat, ndy * rat);
}
static clearMove = function(rat) {
if(pin) return;
ndx = 0;
ndy = 0;
}
static setPin = function(pin) {
self.pin = pin;
}
static equal = function(point) {
return x == point.x && y == point.y;
}
} #endregion } #endregion
function link(_p0, _p1) constructor { #region static reset = function() { #region
p0 = _p0; for(var i = 0; i < array_length(data.tris); i++)
p1 = _p1; data.tris[i].reset(data);
k = 1;
len = point_distance(p0.x, p0.y, p1.x, p1.y);
static resolve = function(strength = 1) {
var _len = point_distance(p0.x, p0.y, p1.x, p1.y);
var _dir = point_direction(p0.x, p0.y, p1.x, p1.y);
var _slen = lerp(_len, len, strength);
var f = k * (_len - _slen);
var dx = lengthdir_x(f, _dir);
var dy = lengthdir_y(f, _dir);
p0.move( dx / 2, dy / 2);
p1.move(-dx / 2, -dy / 2);
}
static draw = function(_x, _y, _s) {
draw_set_color(c_red);
draw_line(_x + p0.x * _s, _y + p0.y * _s, _x + p1.x * _s, _y + p1.y * _s);
}
} #endregion } #endregion
function _Triangle(_p0, _p1, _p2) constructor { #region static Mesh_regularTri = function(surf) { #region
p0 = _p0;
p1 = _p1;
p2 = _p2;
static reset = function() {
p0.reset();
p1.reset();
p2.reset();
}
static initSurface = function(surf) {
p0.mapTexture(surface_get_width_safe(surf), surface_get_height_safe(surf));
p1.mapTexture(surface_get_width_safe(surf), surface_get_height_safe(surf));
p2.mapTexture(surface_get_width_safe(surf), surface_get_height_safe(surf));
}
static drawSurface = function(surf) {
draw_set_color(c_white);
draw_set_alpha(1);
draw_primitive_begin_texture(pr_trianglelist, surface_get_texture(surf));
draw_vertex_texture(p0.x, p0.y, p0.u, p0.v);
draw_vertex_texture(p1.x, p1.y, p1.u, p1.v);
draw_vertex_texture(p2.x, p2.y, p2.u, p2.v);
draw_primitive_end();
}
static drawPoints = function(_x, _y, _s) {
//draw_set_color(c_white);
//draw_triangle(_x + p0.x * _s, _y + p0.y * _s, _x + p1.x * _s, _y + p1.y * _s, _x + p2.x * _s, _y + p2.y * _s, false)
p0.draw(_x, _y, _s);
p1.draw(_x, _y, _s);
p2.draw(_x, _y, _s);
}
static contain = function(p) {
return p == p0 || p == p1 || p == p2;
}
} #endregion
static regularTri = function(surf) { #region
if(is_array(surf)) surf = array_safe_get(surf, 0); if(is_array(surf)) surf = array_safe_get(surf, 0);
if(!is_surface(surf)) return; if(!is_surface(surf)) return;
@ -423,7 +483,7 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
var gh = hh / sample; var gh = hh / sample;
var cont = noone; var cont = noone;
if(!fullmh) { if(!fullmh) { #region alpha filter
cont = surface_create_valid(ww, hh); cont = surface_create_valid(ww, hh);
surface_set_target(cont); surface_set_target(cont);
@ -436,19 +496,17 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
draw_surface_safe(surf, 0, 0); draw_surface_safe(surf, 0, 0);
shader_reset(); shader_reset();
surface_reset_target(); surface_reset_target();
} } #endregion
var _sam = sample + 1; var _sam = sample + 1;
points = [];
data.points = array_create(_sam * _sam); data.points = array_create(_sam * _sam);
data.tris = [];
data.links = [];
var ind = 0; var ind = 0;
for(var i = 0; i < _sam; i++) for(var i = 0; i < _sam; i++)
for(var j = 0; j < _sam; j++) { for(var j = 0; j < _sam; j++) { #region mesh
var fill = false; var fill = false;
if(fullmh) { if(fullmh) {
fill = true; fill = true;
} else { } else {
@ -468,46 +526,44 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
fill |= surface_get_pixel(cont, _j + 1, _i + 1); fill |= surface_get_pixel(cont, _j + 1, _i + 1);
} }
if(fill) { if(!fill) continue;
data.points[i * _sam + j] = new _Point(self, ind++, min(j * gw, ww), min(i * gh, hh));
var px = min(j * gw, ww);
var py = min(i * gh, hh);
data.points[i * _sam + j] = new _Point(self, ind++, px, py);
if(i == 0) continue; if(i == 0) continue;
if(j && data.points[(i - 1) * _sam + j] != 0 && data.points[i * _sam + j - 1] != 0) if(j && data.points[(i - 1) * _sam + j] != 0 && data.points[i * _sam + j - 1] != 0)
array_push(data.tris, new _Triangle(data.points[(i - 1) * _sam + j], data.points[i * _sam + j - 1], data.points[i * _sam + j])); array_push(data.tris, new _Triangle(data.points[(i - 1) * _sam + j], data.points[i * _sam + j - 1], data.points[i * _sam + j]));
if(j < sample && data.points[(i - 1) * _sam + j] != 0 && data.points[(i - 1) * _sam + j + 1] != 0) if(j < sample && data.points[(i - 1) * _sam + j] != 0 && data.points[(i - 1) * _sam + j + 1] != 0)
array_push(data.tris, new _Triangle(data.points[(i - 1) * _sam + j], data.points[(i - 1) * _sam + j + 1], data.points[i * _sam + j])); array_push(data.tris, new _Triangle(data.points[(i - 1) * _sam + j], data.points[(i - 1) * _sam + j + 1], data.points[i * _sam + j]));
} else } #endregion
data.points[i * _sam + j] = 0;
}
for(var i = 0; i < _sam; i++) for(var i = 0; i < _sam; i++)
for(var j = 0; j < _sam; j++) { for(var j = 0; j < _sam; j++) { #region diagonal
if(data.points[i * _sam + j] == 0) continue; var p0 = i && j? data.points[ (i - 1) * _sam + j - 1 ] : 0;
var p1 = i? data.points[ (i - 1) * _sam + j ] : 0;
var p2 = j? data.points[ (i ) * _sam + j - 1 ] : 0;
var p3 = data.points[ (i ) * _sam + j ];
if(i && data.points[(i - 1) * _sam + j] != 0) if(p3 && p1) array_push(data.links, new _Link(p3, p1));
array_push(data.links, new link(data.points[i * _sam + j], data.points[(i - 1) * _sam + j])); if(p3 && p2) array_push(data.links, new _Link(p3, p2));
if(j && data.points[i * _sam + j - 1] != 0)
array_push(data.links, new link(data.points[i * _sam + j], data.points[i * _sam + j - 1]));
if(diagon) { var d0 = p0 && p3;
if(i && j && data.points[(i - 1) * _sam + j - 1] != 0) { var d1 = p1 && p2;
var l = new link(data.points[i * _sam + j], data.points[(i - 1) * _sam + j - 1]);
l.k = spring;
array_push(data.links, l);
}
if(i && j < sample && data.points[(i - 1) * _sam + j + 1] != 0) { if(diagon || d0 ^ d1) {
var l = new link(data.points[i * _sam + j], data.points[(i - 1) * _sam + j + 1]); if(d0) array_push(data.links, new _Link(p0, p3, spring));
l.k = spring; if(d1) array_push(data.links, new _Link(p1, p2, spring));
array_push(data.links, l);
}
}
} }
} #endregion
if(is_surface(cont)) surface_free(cont); if(is_surface(cont)) surface_free(cont);
} #endregion } #endregion
static triangulate = function(surf) { #region static Mesh_triangulate = function(surf) { #region
var sample = getInputData(1); var sample = getInputData(1);
var seed = getInputData(9); var seed = getInputData(9);
@ -516,10 +572,6 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
var ww = useArray? surface_get_width_safe(surf[0]) : surface_get_width_safe(surf); var ww = useArray? surface_get_width_safe(surf[0]) : surface_get_width_safe(surf);
var hh = useArray? surface_get_height_safe(surf[0]) : surface_get_height_safe(surf); var hh = useArray? surface_get_height_safe(surf[0]) : surface_get_height_safe(surf);
data.points = [];
data.tris = [];
data.links = [];
var _m = attributes.mesh_bound; var _m = attributes.mesh_bound;
if(array_length(_m) < 3) return; if(array_length(_m) < 3) return;
@ -574,31 +626,29 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
var t = _t[i]; var t = _t[i];
array_push(data.tris, new _Triangle(t[0], t[1], t[2])); array_push(data.tris, new _Triangle(t[0], t[1], t[2]));
array_push(data.links, new link(t[0], t[1])); array_push(data.links, new _Link(t[0], t[1]));
array_push(data.links, new link(t[1], t[2])); array_push(data.links, new _Link(t[1], t[2]));
array_push(data.links, new link(t[2], t[0])); array_push(data.links, new _Link(t[2], t[0]));
} }
} #endregion } #endregion
static reset = function() { #region static Mesh_setTriangle = function() { #region
for(var i = 0; i < array_length(data.tris); i++)
data.tris[i].reset();
} #endregion
static setTriangle = function() { #region
var _inSurf = getInputData(0); var _inSurf = getInputData(0);
var _type = getInputData(8); var _type = getInputData(8);
points = [];
data = { points : [], tris : [], links : [], controls: [] };
switch(_type) { switch(_type) {
case 0 : regularTri(_inSurf); break; case 0 : Mesh_regularTri(_inSurf); break;
case 1 : triangulate(_inSurf); break; case 1 : Mesh_triangulate(_inSurf); break;
} }
for(var i = 0; i < array_length(data.tris); i++) for(var i = 0; i < array_length(data.tris); i++)
data.tris[i].initSurface(is_array(_inSurf)? _inSurf[0] : _inSurf); data.tris[i].initSurface(is_array(_inSurf)? _inSurf[0] : _inSurf);
} #endregion } #endregion
static affectPoint = function(c, p) { #region static Control_affectPoint = function(c, p) { #region
var mode = c[PUPPET_CONTROL.mode]; var mode = c[PUPPET_CONTROL.mode];
var cx = c[PUPPET_CONTROL.cx]; var cx = c[PUPPET_CONTROL.cx];
var cy = c[PUPPET_CONTROL.cy]; var cy = c[PUPPET_CONTROL.cy];
@ -633,15 +683,30 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
static control = function() { #region static control = function() { #region
var lStr = getInputData(6); var lStr = getInputData(6);
for(var i = control_index; i < ds_list_size(inputs); i++) { for(var i = control_index, n = ds_list_size(inputs); i < n; i++) {
var c = getInputData(i); var c = getInputData(i);
for( var j = 0; j < array_length(data.points); j++ ) { for( var j = 0, m = array_length(data.points); j < m; j++ ) {
if(data.points[j] == 0) continue; if(data.points[j] == 0) continue;
affectPoint(c, data.points[j]); Control_affectPoint(c, data.points[j]);
} }
} }
for( var i = 0, n = array_length(data.points); i < n; i++ ) {
var _p = data.points[i]; if(_p == 0) continue;
var _dx = 0;
var _dy = 0;
for( var j = 0, m = array_length(data.controls); j < m; j++ ) {
var _c = data.controls[j];
_dx += _c[PUPPET_CONTROL.fx] * _p.controlWeights[j];
_dy += _c[PUPPET_CONTROL.fy] * _p.controlWeights[j];
}
_p.planMove(_dx, _dy);
}
var it = attributes.iteration; var it = attributes.iteration;
var _rat = 1 / it; var _rat = 1 / it;
@ -664,21 +729,18 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
} }
} #endregion } #endregion
static step = function() { #region
var _type = getInputData(8);
inputs[| 2].setVisible(_type == 0);
inputs[| 4].setVisible(_type == 0);
inputs[| 7].setVisible(_type == 0);
if(_type == 0) tools = tools_edit;
else if (_type == 1) tools = tools_mesh;
} #endregion
static processData = function(_outSurf, _data, _output_index, _array_index) { #region static processData = function(_outSurf, _data, _output_index, _array_index) { #region
var _inSurf = _data[0]; var _inSurf = _data[0];
if(!is_surface(_inSurf)) return _outSurf; if(!is_surface(_inSurf)) return _outSurf;
data.controls = [];
for(var i = control_index; i < ds_list_size(inputs); i++) {
var c = getInputData(i);
if(c[0] == PUPPET_FORCE_MODE.puppet)
array_push(data.controls, c);
}
reset(); reset();
control(); control();
@ -701,6 +763,8 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
return _outSurf; return _outSurf;
} #endregion } #endregion
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static postDeserialize = function() { #region static postDeserialize = function() { #region
var _inputs = load_map.inputs; var _inputs = load_map.inputs;
@ -733,7 +797,7 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
} #endregion } #endregion
static postLoad = function() { #region static postLoad = function() { #region
setTriangle(); Mesh_setTriangle();
if(loadPin == noone) return; if(loadPin == noone) return;

View file

@ -305,9 +305,7 @@ function Panel_Animation() : PanelContent() constructor {
array_push(_item, [ array_push(_item, [
[ THEME.timeline_color, 2 ], [ THEME.timeline_color, 2 ],
function(_data) { function(_data) {
var dialog = dialogCall(o_dialog_color_selector); colorSelectorCall(context_selecting_item? context_selecting_item.item.getColor() : c_white, setSelectingItemColor);
dialog.selector.onApply = setSelectingItemColor;
dialog.onApply = setSelectingItemColor;
} }
]); ]);

View file

@ -506,9 +506,7 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
array_push(_item, [ array_push(_item, [
[ THEME.timeline_color, 2 ], [ THEME.timeline_color, 2 ],
function(_data) { function(_data) {
var dialog = dialogCall(o_dialog_color_selector); colorSelectorCall(node_hover? node_hover.attributes.color : c_white, setSelectingNodeColor);
dialog.selector.onApply = setSelectingNodeColor;
dialog.onApply = setSelectingNodeColor;
} }
]); ]);
@ -549,9 +547,7 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
array_push(_item, [ array_push(_item, [
[ THEME.timeline_color, 2 ], [ THEME.timeline_color, 2 ],
function(_data) { function(_data) {
var dialog = dialogCall(o_dialog_color_selector); colorSelectorCall(__junction_hovering? __junction_hovering.color : c_white, setSelectingJuncColor);
dialog.selector.onApply = setSelectingJuncColor;
dialog.onApply = setSelectingJuncColor;
} }
]); ]);

View file

@ -172,9 +172,7 @@ function Panel_Inspector() : PanelContent() constructor {
array_push(_item, [ array_push(_item, [
[ THEME.timeline_color, 2 ], [ THEME.timeline_color, 2 ],
function(_data) { function(_data) {
var dialog = dialogCall(o_dialog_color_selector); colorSelectorCall(__dialog_junction? __dialog_junction.color : c_white, setSelectingItemColor);
dialog.selector.onApply = setSelectingItemColor;
dialog.onApply = setSelectingItemColor;
} }
]); ]);

View file

@ -644,7 +644,7 @@ function Panel_Preview() : PanelContent() constructor {
tile_surface = surface_verify(tile_surface, w, surface_get_height_safe(preview_surface[0]) * ss); tile_surface = surface_verify(tile_surface, w, surface_get_height_safe(preview_surface[0]) * ss);
surface_set_target(tile_surface); surface_set_target(tile_surface);
DRAW_CLEAR DRAW_CLEAR
draw_surface_tiled_ext_safe(preview_surface[0], psx, 0, ss, ss, c_white, 1); draw_surface_tiled_ext_safe(preview_surface[0], psx, 0, ss, ss, 0, c_white, 1);
surface_reset_target(); surface_reset_target();
draw_surface_safe(tile_surface, 0, psy); draw_surface_safe(tile_surface, 0, psy);
break; break;
@ -652,11 +652,11 @@ function Panel_Preview() : PanelContent() constructor {
tile_surface = surface_verify(tile_surface, surface_get_width_safe(preview_surface[0]) * ss, h); tile_surface = surface_verify(tile_surface, surface_get_width_safe(preview_surface[0]) * ss, h);
surface_set_target(tile_surface); surface_set_target(tile_surface);
DRAW_CLEAR DRAW_CLEAR
draw_surface_tiled_ext_safe(preview_surface[0], 0, psy, ss, ss, c_white, 1); draw_surface_tiled_ext_safe(preview_surface[0], 0, psy, ss, ss, 0, c_white, 1);
surface_reset_target(); surface_reset_target();
draw_surface_safe(tile_surface, psx, 0); draw_surface_safe(tile_surface, psx, 0);
break; break;
case 3 : draw_surface_tiled_ext_safe(preview_surface[0], psx, psy, ss, ss, c_white, 1); break; case 3 : draw_surface_tiled_ext_safe(preview_surface[0], psx, psy, ss, ss, 0, c_white, 1); break;
} }
} }
break; break;

View file

@ -101,6 +101,12 @@ function preview_overlay_puppet(interact, active, _x, _y, _s, _mx, _my, _snx, _s
} else } else
draw_sprite_colored(THEME.anchor_rotate, drag_type == 6, rx, ry,, dir - 45); draw_sprite_colored(THEME.anchor_rotate, drag_type == 6, rx, ry,, dir - 45);
break; break;
case PUPPET_FORCE_MODE.puppet :
draw_line_width2(_ax, _ay, _ax1, _ay1, 6, 1);
draw_sprite_colored(THEME.anchor_selector, 0, _ax, _ay);
draw_sprite_colored(THEME.anchor_selector, 2, _ax1, _ay1);
break;
} }
if(drag_type == 1) { if(drag_type == 1) {
@ -179,7 +185,10 @@ function preview_overlay_puppet(interact, active, _x, _y, _s, _mx, _my, _snx, _s
} }
} }
if(interact && active && _val[PUPPET_CONTROL.mode] == PUPPET_FORCE_MODE.move && point_in_circle(_mx, _my, _ax1, _ay1, 8)) { var _mode = _val[PUPPET_CONTROL.mode];
if(interact && active && (_mode == PUPPET_FORCE_MODE.move || _mode == PUPPET_FORCE_MODE.puppet) && point_in_circle(_mx, _my, _ax1, _ay1, 8)) {
hover = 2; hover = 2;
draw_sprite_colored(THEME.anchor_selector, 0, _ax1, _ay1); draw_sprite_colored(THEME.anchor_selector, 0, _ax1, _ay1);
if(mouse_press(mb_left, active)) { if(mouse_press(mb_left, active)) {

View file

@ -1,17 +1,19 @@
function scrollItem(name, spr = noone) constructor { function scrollItem(name, spr = noone, spr_ind = 0, spr_blend = COLORS._main_icon) constructor {
self.name = name; self.name = name;
self.data = name; self.data = name;
self.spr = spr; self.spr = spr;
self.spr_ind = 0; self.spr_ind = spr_ind;
self.spr_blend = c_white; self.spr_blend = spr_blend;
tooltip = ""; tooltip = "";
} }
function scrollBox(_data, _onModify, update_hover = true) : widget() constructor { function scrollBox(_data, _onModify, update_hover = true) : widget() constructor {
self.update_hover = update_hover;
onModify = _onModify; onModify = _onModify;
data_list = _data; data_list = _data;
self.update_hover = update_hover;
data = _data; data = _data;
curr_text = 0; curr_text = 0;
@ -26,26 +28,26 @@ function scrollBox(_data, _onModify, update_hover = true) : widget() constructor
align = fa_center; align = fa_center;
extra_button = noone; extra_button = noone;
static trigger = function() { static trigger = function() { #region
if(is_method(data_list)) data = data_list(); if(is_method(data_list)) data = data_list();
else data = data_list; else data = data_list;
var ind = array_find(data, curr_text); var ind = array_find(data, curr_text);
open = true; open = true;
with(dialogCall(o_dialog_scrollbox, x + open_rx, y + open_ry)) { with(dialogCall(o_dialog_scrollbox, x + open_rx, y + open_ry)) {
initScroll(other); initScroll(other);
initVal = ind; initVal = ind;
align = other.align; align = other.align;
update_hover = other.update_hover; update_hover = other.update_hover;
} }
} } #endregion
static drawParam = function(params) { static drawParam = function(params) { #region
return draw(params.x, params.y, params.w, params.h, params.data, params.m, params.rx, params.ry); return draw(params.x, params.y, params.w, params.h, params.data, params.m, params.rx, params.ry);
} } #endregion
static draw = function(_x, _y, _w, _h, _val, _m = mouse_ui, _rx = 0, _ry = 0) { static draw = function(_x, _y, _w, _h, _val, _m = mouse_ui, _rx = 0, _ry = 0) { #region
x = _x; x = _x;
y = _y; y = _y;
open_rx = _rx; open_rx = _rx;
@ -100,15 +102,21 @@ function scrollBox(_data, _onModify, update_hover = true) : widget() constructor
var _arw = sprite_get_width(arrow_spr) + ui(8); var _arw = sprite_get_width(arrow_spr) + ui(8);
var _spr = is_instanceof(_selVal, scrollItem) && _selVal.spr; var _spr = is_instanceof(_selVal, scrollItem) && _selVal.spr;
var _x0 = _x;
var _x1 = _x + w - _arw;
var _yc = _y + _h / 2;
if(_spr) _x0 += ui(32);
draw_set_text(font, align, fa_center, COLORS._main_text); draw_set_text(font, align, fa_center, COLORS._main_text);
draw_set_alpha(0.5 + 0.5 * interactable); draw_set_alpha(0.5 + 0.5 * interactable);
if(align == fa_center) draw_text_add(_x + (w - _arw) / 2, _y + _h / 2, _text); if(align == fa_center) draw_text_add((_x0 + _x1) / 2, _yc, _text);
else if(align == fa_left) draw_text_add(_x + ui(8) + _spr * _h, _y + _h / 2, _text); else if(align == fa_left) draw_text_add(_x0 + ui(8), _yc, _text);
draw_set_alpha(1); draw_set_alpha(1);
if(_spr) draw_sprite_ext(_selVal.spr, 0, _x + ui(8) + _h / 2, _y + _h / 2, 1, 1, 0, _selVal.spr_blend, 1); if(_spr) draw_sprite_ext(_selVal.spr, _selVal.spr_ind, _x + ui(16), _yc, 1, 1, 0, _selVal.spr_blend, 1);
draw_sprite_ui_uniform(arrow_spr, arrow_ind, _x + w - _arw / 2, _y + _h / 2, 1, COLORS._main_icon, 0.5 + 0.5 * interactable); draw_sprite_ui_uniform(arrow_spr, arrow_ind, _x1 + _arw / 2, _yc, 1, COLORS._main_icon, 0.5 + 0.5 * interactable);
if(WIDGET_CURRENT == self) if(WIDGET_CURRENT == self)
draw_sprite_stretched_ext(THEME.widget_selecting, 0, _x - ui(3), _y - ui(3), _w + ui(6), _h + ui(6), COLORS._main_accent, 1); draw_sprite_stretched_ext(THEME.widget_selecting, 0, _x - ui(3), _y - ui(3), _w + ui(6), _h + ui(6), COLORS._main_accent, 1);
@ -116,5 +124,5 @@ function scrollBox(_data, _onModify, update_hover = true) : widget() constructor
resetFocus(); resetFocus();
return h; return h;
} } #endregion
} }

View file

@ -68,7 +68,7 @@ function draw_surface_tiled_safe(surface, _x, _y) { #region
__channel_pos(surface); __channel_pos(surface);
} #endregion } #endregion
function draw_surface_tiled_ext_safe(surface, _x, _y, _xs = 1, _ys = 1, _col = c_white, _alpha = 1) { #region function draw_surface_tiled_ext_safe(surface, _x, _y, _xs = 1, _ys = 1, _rot = 0, _col = c_white, _alpha = 1) { #region
INLINE INLINE
if(is_struct(surface)) { if(is_struct(surface)) {
@ -80,9 +80,18 @@ function draw_surface_tiled_ext_safe(surface, _x, _y, _xs = 1, _ys = 1, _col = c
} }
if(!surface_exists(surface)) return; if(!surface_exists(surface)) return;
__channel_pre(surface); var back = surface_get_target();
draw_surface_tiled_ext(surface, _x, _y, _xs, _ys, _col, _alpha); var bdim = surface_get_dimension(back);
__channel_pos(surface);
shader_set(sh_draw_tile);
shader_set_f("backDimension", bdim);
shader_set_f("foreDimension", surface_get_dimension(surface));
shader_set_f("position" , [ _x, _y ]);
shader_set_f("scale" , [ _xs, _ys ]);
shader_set_f("rotation" , _rot);
draw_surface_stretched_ext(surface, 0, 0, bdim[0], bdim[1], _col, _alpha);
shader_reset();
} #endregion } #endregion
function draw_surface_part_ext_safe(surface, _l, _t, _w, _h, _x, _y, _xs = 1, _ys = 1, _rot = 0, _col = c_white, _alpha = 1) { #region function draw_surface_part_ext_safe(surface, _l, _t, _w, _h, _x, _y, _xs = 1, _ys = 1, _rot = 0, _col = c_white, _alpha = 1) { #region

View file

@ -0,0 +1,67 @@
varying vec2 v_vTexcoord;
varying vec4 v_vColour;
uniform vec2 backDimension;
uniform vec2 foreDimension;
uniform vec2 position;
uniform vec2 scale;
uniform float rotation;
#region /////////////// SAMPLING ///////////////
const float PI = 3.14159265358979323846;
uniform int interpolation;
uniform vec2 sampleDimension;
const int RSIN_RADIUS = 1;
float sinc ( float x ) { return x == 0.? 1. : sin(x * PI) / (x * PI); }
vec4 texture2D_rsin( sampler2D texture, vec2 uv ) {
vec2 tx = 1.0 / sampleDimension;
vec2 p = uv * sampleDimension - vec2(0.5);
vec4 sum = vec4(0.0);
float weights = 0.;
for (int x = -RSIN_RADIUS; x <= RSIN_RADIUS; x++)
for (int y = -RSIN_RADIUS; y <= RSIN_RADIUS; y++) {
float a = length(vec2(float(x), float(y))) / float(RSIN_RADIUS);
if(a > 1.) continue;
float w = sinc(a * PI * tx.x) * sinc(a * PI * tx.y);
vec2 offset = vec2(float(x), float(y)) * tx;
vec4 sample = texture2D(texture, (p + offset + vec2(0.5)) / sampleDimension);
sum += w * sample;
weights += w;
}
return sum / weights;
}
vec4 texture2D_bicubic( sampler2D texture, vec2 uv ) {
uv = uv * sampleDimension + 0.5;
vec2 iuv = floor( uv );
vec2 fuv = fract( uv );
uv = iuv + fuv * fuv * (3.0 - 2.0 * fuv);
uv = (uv - 0.5) / sampleDimension;
return texture2D( texture, uv );
}
vec4 texture2Dintp( sampler2D texture, vec2 uv ) {
if(interpolation == 2) return texture2D_bicubic( texture, uv );
else if(interpolation == 3) return texture2D_rsin( texture, uv );
return texture2D( texture, uv );
}
#endregion /////////////// SAMPLING ///////////////
void main() {
vec2 pos = position / backDimension;
float rot = radians(rotation);
vec2 sca = scale * foreDimension / backDimension;
vec2 px = (v_vTexcoord - pos) * mat2(cos(rot), -sin(rot), sin(rot), cos(rot)) / sca;
gl_FragColor = v_vColour * texture2Dintp( gm_BaseTexture, fract(px) );
}

View file

@ -0,0 +1,19 @@
//
// Simple passthrough vertex shader
//
attribute vec3 in_Position; // (x,y,z)
//attribute vec3 in_Normal; // (x,y,z) unused in this shader.
attribute vec4 in_Colour; // (r,g,b,a)
attribute vec2 in_TextureCoord; // (u,v)
varying vec2 v_vTexcoord;
varying vec4 v_vColour;
void main()
{
vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0);
gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos;
v_vColour = in_Colour;
v_vTexcoord = in_TextureCoord;
}

View file

@ -0,0 +1,10 @@
{
"resourceType": "GMShader",
"resourceVersion": "1.0",
"name": "sh_draw_tile",
"parent": {
"name": "draw",
"path": "folders/shader/draw.yy",
},
"type": 1,
}

View file

@ -4,7 +4,7 @@
varying vec2 v_vTexcoord; varying vec2 v_vTexcoord;
varying vec4 v_vColour; varying vec4 v_vColour;
/////////////// SAMPLING /////////////// #region /////////////// SAMPLING ///////////////
const float PI = 3.14159265358979323846; const float PI = 3.14159265358979323846;
uniform int interpolation; uniform int interpolation;
@ -50,7 +50,7 @@ vec4 texture2Dintp( sampler2D texture, vec2 uv ) {
return texture2D( texture, uv ); return texture2D( texture, uv );
} }
/////////////// SAMPLING /////////////// #endregion /////////////// SAMPLING ///////////////
void main() { void main() {
gl_FragColor = texture2Dintp( gm_BaseTexture, v_vTexcoord ) * v_vColour; gl_FragColor = texture2Dintp( gm_BaseTexture, v_vTexcoord ) * v_vColour;

Binary file not shown.

After

Width:  |  Height:  |  Size: 510 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 519 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 496 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 534 B

View file

@ -0,0 +1,80 @@
{
"resourceType": "GMSprite",
"resourceVersion": "1.0",
"name": "s_node_2d_light_shape",
"bbox_bottom": 20,
"bbox_left": 2,
"bbox_right": 21,
"bbox_top": 2,
"bboxMode": 0,
"collisionKind": 1,
"collisionTolerance": 0,
"DynamicTexturePage": false,
"edgeFiltering": false,
"For3D": false,
"frames": [
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"674e4c6b-fa3c-48fc-b8dd-e98e893f6a37",},
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"627be0c1-d02f-48eb-bad9-63437bced55a",},
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"fe76a977-1573-4abb-94d3-9571afbd00e9",},
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"014aa4b1-411b-42cd-bfbf-444fee6c9934",},
],
"gridX": 0,
"gridY": 0,
"height": 24,
"HTile": false,
"layers": [
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"37839a6c-b72d-4baf-b5a3-7a46c99d73cc","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
],
"nineSlice": null,
"origin": 4,
"parent": {
"name": "nodes",
"path": "folders/sprites/nodes.yy",
},
"preMultiplyAlpha": false,
"sequence": {
"resourceType": "GMSequence",
"resourceVersion": "1.4",
"name": "s_node_2d_light_shape",
"autoRecord": true,
"backdropHeight": 768,
"backdropImageOpacity": 0.5,
"backdropImagePath": "",
"backdropWidth": 1366,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"events": {"resourceType":"KeyframeStore<MessageEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"eventStubScript": null,
"eventToFunction": {},
"length": 4.0,
"lockOrigin": false,
"moments": {"resourceType":"KeyframeStore<MomentsEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"showBackdrop": true,
"showBackdropImage": false,
"timeUnits": 1,
"tracks": [
{"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"1.0","Keyframes":[
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"674e4c6b-fa3c-48fc-b8dd-e98e893f6a37","path":"sprites/s_node_2d_light_shape/s_node_2d_light_shape.yy",},},},"Disabled":false,"id":"583b3052-2b0a-4292-a2ad-0c01956f15c9","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"627be0c1-d02f-48eb-bad9-63437bced55a","path":"sprites/s_node_2d_light_shape/s_node_2d_light_shape.yy",},},},"Disabled":false,"id":"6b675d2b-d448-47df-80ce-540bc127a310","IsCreationKey":false,"Key":1.0,"Length":1.0,"Stretch":false,},
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"fe76a977-1573-4abb-94d3-9571afbd00e9","path":"sprites/s_node_2d_light_shape/s_node_2d_light_shape.yy",},},},"Disabled":false,"id":"da156bd6-9155-48f6-83c4-63ee1300fa0a","IsCreationKey":false,"Key":2.0,"Length":1.0,"Stretch":false,},
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"014aa4b1-411b-42cd-bfbf-444fee6c9934","path":"sprites/s_node_2d_light_shape/s_node_2d_light_shape.yy",},},},"Disabled":false,"id":"38fed255-f284-4f73-8e30-9c51e8107eb5","IsCreationKey":false,"Key":3.0,"Length":1.0,"Stretch":false,},
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
],
"visibleRange": null,
"volume": 1.0,
"xorigin": 12,
"yorigin": 12,
},
"swatchColours": null,
"swfPrecision": 2.525,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"type": 0,
"VTile": false,
"width": 24,
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 624 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 532 B

View file

@ -0,0 +1,76 @@
{
"resourceType": "GMSprite",
"resourceVersion": "1.0",
"name": "s_node_3d_affector_shape",
"bbox_bottom": 21,
"bbox_left": 1,
"bbox_right": 21,
"bbox_top": 2,
"bboxMode": 0,
"collisionKind": 1,
"collisionTolerance": 0,
"DynamicTexturePage": false,
"edgeFiltering": false,
"For3D": false,
"frames": [
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"cec94645-072e-4d24-816e-0bfc6d403e1f",},
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"f99dae6f-633e-4c77-b3d3-3020ece1e7e6",},
],
"gridX": 0,
"gridY": 0,
"height": 24,
"HTile": false,
"layers": [
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"c6a750ab-03c7-4d31-b13a-4766f6495768","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
],
"nineSlice": null,
"origin": 4,
"parent": {
"name": "nodes",
"path": "folders/sprites/nodes.yy",
},
"preMultiplyAlpha": false,
"sequence": {
"resourceType": "GMSequence",
"resourceVersion": "1.4",
"name": "s_node_3d_affector_shape",
"autoRecord": true,
"backdropHeight": 768,
"backdropImageOpacity": 0.5,
"backdropImagePath": "",
"backdropWidth": 1366,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"events": {"resourceType":"KeyframeStore<MessageEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"eventStubScript": null,
"eventToFunction": {},
"length": 2.0,
"lockOrigin": false,
"moments": {"resourceType":"KeyframeStore<MomentsEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"showBackdrop": true,
"showBackdropImage": false,
"timeUnits": 1,
"tracks": [
{"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"1.0","Keyframes":[
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"cec94645-072e-4d24-816e-0bfc6d403e1f","path":"sprites/s_node_3d_affector_shape/s_node_3d_affector_shape.yy",},},},"Disabled":false,"id":"e94fe8ec-8dd0-48fe-8aa7-e2f3566ac380","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"f99dae6f-633e-4c77-b3d3-3020ece1e7e6","path":"sprites/s_node_3d_affector_shape/s_node_3d_affector_shape.yy",},},},"Disabled":false,"id":"7c9a1d53-39f3-4d2b-8880-37deb424e792","IsCreationKey":false,"Key":1.0,"Length":1.0,"Stretch":false,},
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
],
"visibleRange": null,
"volume": 1.0,
"xorigin": 12,
"yorigin": 12,
},
"swatchColours": null,
"swfPrecision": 2.525,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"type": 0,
"VTile": false,
"width": 24,
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 404 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 517 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 404 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 517 B

View file

@ -0,0 +1,80 @@
{
"resourceType": "GMSprite",
"resourceVersion": "1.0",
"name": "s_node_alignment",
"bbox_bottom": 21,
"bbox_left": 2,
"bbox_right": 21,
"bbox_top": 2,
"bboxMode": 0,
"collisionKind": 1,
"collisionTolerance": 0,
"DynamicTexturePage": false,
"edgeFiltering": false,
"For3D": false,
"frames": [
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"931ace83-a1ee-41ec-9c98-f70f8491767d",},
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"1f91dfed-b073-44bb-882e-2aacb8769394",},
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"06283cbc-d301-423e-9052-39e1da591134",},
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"d84fab96-3ba9-4987-b81f-d3e06f6d0ed7",},
],
"gridX": 0,
"gridY": 0,
"height": 24,
"HTile": false,
"layers": [
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"3ab15885-432b-41f9-96e6-89be72c32c08","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
],
"nineSlice": null,
"origin": 4,
"parent": {
"name": "nodes",
"path": "folders/sprites/nodes.yy",
},
"preMultiplyAlpha": false,
"sequence": {
"resourceType": "GMSequence",
"resourceVersion": "1.4",
"name": "s_node_alignment",
"autoRecord": true,
"backdropHeight": 768,
"backdropImageOpacity": 0.5,
"backdropImagePath": "",
"backdropWidth": 1366,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"events": {"resourceType":"KeyframeStore<MessageEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"eventStubScript": null,
"eventToFunction": {},
"length": 4.0,
"lockOrigin": false,
"moments": {"resourceType":"KeyframeStore<MomentsEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"showBackdrop": true,
"showBackdropImage": false,
"timeUnits": 1,
"tracks": [
{"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"1.0","Keyframes":[
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"931ace83-a1ee-41ec-9c98-f70f8491767d","path":"sprites/s_node_alignment/s_node_alignment.yy",},},},"Disabled":false,"id":"2a835a87-106b-45e4-b220-3536e50261fd","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"1f91dfed-b073-44bb-882e-2aacb8769394","path":"sprites/s_node_alignment/s_node_alignment.yy",},},},"Disabled":false,"id":"78cf9dc0-f017-4f48-9af4-de38897f3d5f","IsCreationKey":false,"Key":1.0,"Length":1.0,"Stretch":false,},
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"06283cbc-d301-423e-9052-39e1da591134","path":"sprites/s_node_alignment/s_node_alignment.yy",},},},"Disabled":false,"id":"8a704a9f-a685-448e-81c1-3fb6a92450d2","IsCreationKey":false,"Key":2.0,"Length":1.0,"Stretch":false,},
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"d84fab96-3ba9-4987-b81f-d3e06f6d0ed7","path":"sprites/s_node_alignment/s_node_alignment.yy",},},},"Disabled":false,"id":"b588c33e-6604-4452-a95c-b90e5868a398","IsCreationKey":false,"Key":3.0,"Length":1.0,"Stretch":false,},
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
],
"visibleRange": null,
"volume": 1.0,
"xorigin": 12,
"yorigin": 12,
},
"swatchColours": null,
"swfPrecision": 2.525,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"type": 0,
"VTile": false,
"width": 24,
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 414 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 524 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 414 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 524 B

View file

@ -0,0 +1,76 @@
{
"resourceType": "GMSprite",
"resourceVersion": "1.0",
"name": "s_node_axis_type",
"bbox_bottom": 20,
"bbox_left": 3,
"bbox_right": 20,
"bbox_top": 3,
"bboxMode": 0,
"collisionKind": 1,
"collisionTolerance": 0,
"DynamicTexturePage": false,
"edgeFiltering": false,
"For3D": false,
"frames": [
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"3c9b5ffb-d79f-4dc3-aa1a-9b928295e032",},
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"f789b503-2811-4276-8327-8c4b2d3c126e",},
],
"gridX": 0,
"gridY": 0,
"height": 24,
"HTile": false,
"layers": [
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"83bb5590-9118-41c6-8fd2-e605c589abb3","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
],
"nineSlice": null,
"origin": 4,
"parent": {
"name": "nodes",
"path": "folders/sprites/nodes.yy",
},
"preMultiplyAlpha": false,
"sequence": {
"resourceType": "GMSequence",
"resourceVersion": "1.4",
"name": "s_node_axis_type",
"autoRecord": true,
"backdropHeight": 768,
"backdropImageOpacity": 0.5,
"backdropImagePath": "",
"backdropWidth": 1366,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"events": {"resourceType":"KeyframeStore<MessageEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"eventStubScript": null,
"eventToFunction": {},
"length": 2.0,
"lockOrigin": false,
"moments": {"resourceType":"KeyframeStore<MomentsEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"showBackdrop": true,
"showBackdropImage": false,
"timeUnits": 1,
"tracks": [
{"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"1.0","Keyframes":[
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"3c9b5ffb-d79f-4dc3-aa1a-9b928295e032","path":"sprites/s_node_axis_type/s_node_axis_type.yy",},},},"Disabled":false,"id":"d30f1bc5-553c-4749-826a-fbe549776693","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"f789b503-2811-4276-8327-8c4b2d3c126e","path":"sprites/s_node_axis_type/s_node_axis_type.yy",},},},"Disabled":false,"id":"3f96637e-8729-4492-85fc-805fb9e0e5da","IsCreationKey":false,"Key":1.0,"Length":1.0,"Stretch":false,},
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
],
"visibleRange": null,
"volume": 1.0,
"xorigin": 12,
"yorigin": 12,
},
"swatchColours": null,
"swfPrecision": 2.525,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"type": 0,
"VTile": false,
"width": 24,
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 481 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 B

View file

@ -0,0 +1,80 @@
{
"resourceType": "GMSprite",
"resourceVersion": "1.0",
"name": "s_node_camera_repeat",
"bbox_bottom": 20,
"bbox_left": 3,
"bbox_right": 20,
"bbox_top": 3,
"bboxMode": 0,
"collisionKind": 1,
"collisionTolerance": 0,
"DynamicTexturePage": false,
"edgeFiltering": false,
"For3D": false,
"frames": [
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"b2f7b8ea-c35c-493c-b27f-06eadd92b14f",},
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"3a16bb12-c0c3-4307-a998-a7c9b2425aee",},
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"5f993c7c-dff3-48d2-a9e4-fae9c56804e7",},
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"11e19638-7357-4ddf-bc50-bb554b8b600c",},
],
"gridX": 0,
"gridY": 0,
"height": 24,
"HTile": false,
"layers": [
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"3832421a-90b5-4942-9bef-5f40db29249f","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
],
"nineSlice": null,
"origin": 4,
"parent": {
"name": "nodes",
"path": "folders/sprites/nodes.yy",
},
"preMultiplyAlpha": false,
"sequence": {
"resourceType": "GMSequence",
"resourceVersion": "1.4",
"name": "s_node_camera_repeat",
"autoRecord": true,
"backdropHeight": 768,
"backdropImageOpacity": 0.5,
"backdropImagePath": "",
"backdropWidth": 1366,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"events": {"resourceType":"KeyframeStore<MessageEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"eventStubScript": null,
"eventToFunction": {},
"length": 4.0,
"lockOrigin": false,
"moments": {"resourceType":"KeyframeStore<MomentsEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"showBackdrop": true,
"showBackdropImage": false,
"timeUnits": 1,
"tracks": [
{"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"1.0","Keyframes":[
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"b2f7b8ea-c35c-493c-b27f-06eadd92b14f","path":"sprites/s_node_camera_repeat/s_node_camera_repeat.yy",},},},"Disabled":false,"id":"103cdeda-5a13-4422-855f-fb99fdb64103","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"3a16bb12-c0c3-4307-a998-a7c9b2425aee","path":"sprites/s_node_camera_repeat/s_node_camera_repeat.yy",},},},"Disabled":false,"id":"ffb0b392-b703-45e9-a626-6d349563a783","IsCreationKey":false,"Key":1.0,"Length":1.0,"Stretch":false,},
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"5f993c7c-dff3-48d2-a9e4-fae9c56804e7","path":"sprites/s_node_camera_repeat/s_node_camera_repeat.yy",},},},"Disabled":false,"id":"e29556f6-0b84-4325-a640-0f5183a8f378","IsCreationKey":false,"Key":2.0,"Length":1.0,"Stretch":false,},
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"11e19638-7357-4ddf-bc50-bb554b8b600c","path":"sprites/s_node_camera_repeat/s_node_camera_repeat.yy",},},},"Disabled":false,"id":"7a2d88b8-4774-444f-a9aa-62f7bfd13755","IsCreationKey":false,"Key":3.0,"Length":1.0,"Stretch":false,},
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
],
"visibleRange": null,
"volume": 1.0,
"xorigin": 12,
"yorigin": 12,
},
"swatchColours": null,
"swfPrecision": 2.525,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"type": 0,
"VTile": false,
"width": 24,
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 489 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 473 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 419 B

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