This commit is contained in:
Tanasart 2023-12-10 20:55:05 +07:00
parent 40187887b4
commit ce559e7224
52 changed files with 757 additions and 263 deletions

View file

@ -565,7 +565,6 @@
{"name":"s_node_rigidSim_global","order":4,"path":"sprites/s_node_rigidSim_global/s_node_rigidSim_global.yy",}, {"name":"s_node_rigidSim_global","order":4,"path":"sprites/s_node_rigidSim_global/s_node_rigidSim_global.yy",},
{"name":"sh_channel_G_grey","order":8,"path":"shaders/sh_channel_G_grey/sh_channel_G_grey.yy",}, {"name":"sh_channel_G_grey","order":8,"path":"shaders/sh_channel_G_grey/sh_channel_G_grey.yy",},
{"name":"s_node_smokeSim_update","order":10,"path":"sprites/s_node_smokeSim_update/s_node_smokeSim_update.yy",}, {"name":"s_node_smokeSim_update","order":10,"path":"sprites/s_node_smokeSim_update/s_node_smokeSim_update.yy",},
{"name":"s_node_mk_flip_grid","order":2,"path":"sprites/s_node_mk_flip_grid/s_node_mk_flip_grid.yy",},
{"name":"node_3d_depth","order":15,"path":"scripts/node_3d_depth/node_3d_depth.yy",}, {"name":"node_3d_depth","order":15,"path":"scripts/node_3d_depth/node_3d_depth.yy",},
{"name":"s_node_vec4","order":9,"path":"sprites/s_node_vec4/s_node_vec4.yy",}, {"name":"s_node_vec4","order":9,"path":"sprites/s_node_vec4/s_node_vec4.yy",},
{"name":"vct_knob","order":2,"path":"scripts/vct_knob/vct_knob.yy",}, {"name":"vct_knob","order":2,"path":"scripts/vct_knob/vct_knob.yy",},
@ -582,6 +581,7 @@
{"name":"node_pb_fx_radial","order":9,"path":"scripts/node_pb_fx_radial/node_pb_fx_radial.yy",}, {"name":"node_pb_fx_radial","order":9,"path":"scripts/node_pb_fx_radial/node_pb_fx_radial.yy",},
{"name":"node_VFX_variable","order":6,"path":"scripts/node_VFX_variable/node_VFX_variable.yy",}, {"name":"node_VFX_variable","order":6,"path":"scripts/node_VFX_variable/node_VFX_variable.yy",},
{"name":"node_array_sort","order":11,"path":"scripts/node_array_sort/node_array_sort.yy",}, {"name":"node_array_sort","order":11,"path":"scripts/node_array_sort/node_array_sort.yy",},
{"name":"s_node_mk_ball_grid","order":3,"path":"sprites/s_node_mk_ball_grid/s_node_mk_ball_grid.yy",},
{"name":"sh_pb_outline","order":2,"path":"shaders/sh_pb_outline/sh_pb_outline.yy",}, {"name":"sh_pb_outline","order":2,"path":"shaders/sh_pb_outline/sh_pb_outline.yy",},
{"name":"fd_draw_surface_to_collision_mask_surface","order":2,"path":"scripts/fd_draw_surface_to_collision_mask_surface/fd_draw_surface_to_collision_mask_surface.yy",}, {"name":"fd_draw_surface_to_collision_mask_surface","order":2,"path":"scripts/fd_draw_surface_to_collision_mask_surface/fd_draw_surface_to_collision_mask_surface.yy",},
{"name":"sh_blur_box_contrast","order":3,"path":"shaders/sh_blur_box_contrast/sh_blur_box_contrast.yy",}, {"name":"sh_blur_box_contrast","order":3,"path":"shaders/sh_blur_box_contrast/sh_blur_box_contrast.yy",},
@ -823,6 +823,7 @@
{"name":"s_node_array_sample","order":18,"path":"sprites/s_node_array_sample/s_node_array_sample.yy",}, {"name":"s_node_array_sample","order":18,"path":"sprites/s_node_array_sample/s_node_array_sample.yy",},
{"name":"s_biterator_b_labels","order":9,"path":"sprites/s_biterator_b_labels/s_biterator_b_labels.yy",}, {"name":"s_biterator_b_labels","order":9,"path":"sprites/s_biterator_b_labels/s_biterator_b_labels.yy",},
{"name":"FirebaseREST_Firestore_collection_decode","order":6,"path":"scripts/FirebaseREST_Firestore_collection_decode/FirebaseREST_Firestore_collection_decode.yy",}, {"name":"FirebaseREST_Firestore_collection_decode","order":6,"path":"scripts/FirebaseREST_Firestore_collection_decode/FirebaseREST_Firestore_collection_decode.yy",},
{"name":"s_node_mk_flip_grid","order":2,"path":"sprites/s_node_mk_flip_grid/s_node_mk_flip_grid.yy",},
{"name":"d3d_ray","order":9,"path":"scripts/d3d_ray/d3d_ray.yy",}, {"name":"d3d_ray","order":9,"path":"scripts/d3d_ray/d3d_ray.yy",},
{"name":"sh_combine_hsv","order":10,"path":"shaders/sh_combine_hsv/sh_combine_hsv.yy",}, {"name":"sh_combine_hsv","order":10,"path":"shaders/sh_combine_hsv/sh_combine_hsv.yy",},
{"name":"s_node_array_insert","order":4,"path":"sprites/s_node_array_insert/s_node_array_insert.yy",}, {"name":"s_node_array_insert","order":4,"path":"sprites/s_node_array_insert/s_node_array_insert.yy",},
@ -1064,6 +1065,7 @@
{"name":"s_node_pb_box_mirror","order":21,"path":"sprites/s_node_pb_box_mirror/s_node_pb_box_mirror.yy",}, {"name":"s_node_pb_box_mirror","order":21,"path":"sprites/s_node_pb_box_mirror/s_node_pb_box_mirror.yy",},
{"name":"__node_shader_generator","order":22,"path":"scripts/__node_shader_generator/__node_shader_generator.yy",}, {"name":"__node_shader_generator","order":22,"path":"scripts/__node_shader_generator/__node_shader_generator.yy",},
{"name":"node_global","order":3,"path":"scripts/node_global/node_global.yy",}, {"name":"node_global","order":3,"path":"scripts/node_global/node_global.yy",},
{"name":"s_node_mk_saber","order":1,"path":"sprites/s_node_mk_saber/s_node_mk_saber.yy",},
{"name":"spr_gameframe_buttons","order":1,"path":"sprites/spr_gameframe_buttons/spr_gameframe_buttons.yy",}, {"name":"spr_gameframe_buttons","order":1,"path":"sprites/spr_gameframe_buttons/spr_gameframe_buttons.yy",},
{"name":"s_node_draw_stack","order":4,"path":"sprites/s_node_draw_stack/s_node_draw_stack.yy",}, {"name":"s_node_draw_stack","order":4,"path":"sprites/s_node_draw_stack/s_node_draw_stack.yy",},
{"name":"sh_d3d_grid_view","order":12,"path":"shaders/sh_d3d_grid_view/sh_d3d_grid_view.yy",}, {"name":"sh_d3d_grid_view","order":12,"path":"shaders/sh_d3d_grid_view/sh_d3d_grid_view.yy",},
@ -1418,7 +1420,6 @@
{"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",},
{"name":"s_node_mk_saber","order":3,"path":"sprites/s_node_mk_saber/s_node_mk_saber.yy",},
{"name":"node_alpha_hash","order":11,"path":"scripts/node_alpha_hash/node_alpha_hash.yy",}, {"name":"node_alpha_hash","order":11,"path":"scripts/node_alpha_hash/node_alpha_hash.yy",},
{"name":"sh_mask_modify","order":2,"path":"shaders/sh_mask_modify/sh_mask_modify.yy",}, {"name":"sh_mask_modify","order":2,"path":"shaders/sh_mask_modify/sh_mask_modify.yy",},
{"name":"toggleGroup","order":31,"path":"scripts/toggleGroup/toggleGroup.yy",}, {"name":"toggleGroup","order":31,"path":"scripts/toggleGroup/toggleGroup.yy",},
@ -1437,6 +1438,7 @@
{"name":"sh_shadow_cast_light_sep","order":1,"path":"shaders/sh_shadow_cast_light_sep/sh_shadow_cast_light_sep.yy",}, {"name":"sh_shadow_cast_light_sep","order":1,"path":"shaders/sh_shadow_cast_light_sep/sh_shadow_cast_light_sep.yy",},
{"name":"node_audio_loudness","order":1,"path":"scripts/node_audio_loudness/node_audio_loudness.yy",}, {"name":"node_audio_loudness","order":1,"path":"scripts/node_audio_loudness/node_audio_loudness.yy",},
{"name":"node_grid","order":1,"path":"scripts/node_grid/node_grid.yy",}, {"name":"node_grid","order":1,"path":"scripts/node_grid/node_grid.yy",},
{"name":"s_node_mk_rain","order":4,"path":"sprites/s_node_mk_rain/s_node_mk_rain.yy",},
{"name":"node_edge_detect","order":8,"path":"scripts/node_edge_detect/node_edge_detect.yy",}, {"name":"node_edge_detect","order":8,"path":"scripts/node_edge_detect/node_edge_detect.yy",},
{"name":"node_morph_surface","order":5,"path":"scripts/node_morph_surface/node_morph_surface.yy",}, {"name":"node_morph_surface","order":5,"path":"scripts/node_morph_surface/node_morph_surface.yy",},
{"name":"node_tunnel_in","order":6,"path":"scripts/node_tunnel_in/node_tunnel_in.yy",}, {"name":"node_tunnel_in","order":6,"path":"scripts/node_tunnel_in/node_tunnel_in.yy",},
@ -1502,6 +1504,7 @@
{"name":"node_base_convert","order":7,"path":"scripts/node_base_convert/node_base_convert.yy",}, {"name":"node_base_convert","order":7,"path":"scripts/node_base_convert/node_base_convert.yy",},
{"name":"node_3d_mesh_plane","order":7,"path":"scripts/node_3d_mesh_plane/node_3d_mesh_plane.yy",}, {"name":"node_3d_mesh_plane","order":7,"path":"scripts/node_3d_mesh_plane/node_3d_mesh_plane.yy",},
{"name":"s_node_normal_light","order":31,"path":"sprites/s_node_normal_light/s_node_normal_light.yy",}, {"name":"s_node_normal_light","order":31,"path":"sprites/s_node_normal_light/s_node_normal_light.yy",},
{"name":"node_tile_random","order":16,"path":"scripts/node_tile_random/node_tile_random.yy",},
{"name":"Obj_FirebaseFirestore_Document_Update","order":7,"path":"objects/Obj_FirebaseFirestore_Document_Update/Obj_FirebaseFirestore_Document_Update.yy",}, {"name":"Obj_FirebaseFirestore_Document_Update","order":7,"path":"objects/Obj_FirebaseFirestore_Document_Update/Obj_FirebaseFirestore_Document_Update.yy",},
{"name":"node_transform_single","order":1,"path":"scripts/node_transform_single/node_transform_single.yy",}, {"name":"node_transform_single","order":1,"path":"scripts/node_transform_single/node_transform_single.yy",},
{"name":"node_string_length","order":7,"path":"scripts/node_string_length/node_string_length.yy",}, {"name":"node_string_length","order":7,"path":"scripts/node_string_length/node_string_length.yy",},
@ -1544,7 +1547,6 @@
{"name":"s_node_smokeSim_update_paused","order":5,"path":"sprites/s_node_smokeSim_update_paused/s_node_smokeSim_update_paused.yy",}, {"name":"s_node_smokeSim_update_paused","order":5,"path":"sprites/s_node_smokeSim_update_paused/s_node_smokeSim_update_paused.yy",},
{"name":"s_node_ase_file","order":15,"path":"sprites/s_node_ase_file/s_node_ase_file.yy",}, {"name":"s_node_ase_file","order":15,"path":"sprites/s_node_ase_file/s_node_ase_file.yy",},
{"name":"draw_line_round","order":4,"path":"scripts/draw_line_round/draw_line_round.yy",}, {"name":"draw_line_round","order":4,"path":"scripts/draw_line_round/draw_line_round.yy",},
{"name":"s_node_mk_ball_grid","order":1,"path":"sprites/s_node_mk_ball_grid/s_node_mk_ball_grid.yy",},
{"name":"vectorBox","order":10,"path":"scripts/vectorBox/vectorBox.yy",}, {"name":"vectorBox","order":10,"path":"scripts/vectorBox/vectorBox.yy",},
{"name":"sh_3d_extrude_corner","order":7,"path":"shaders/sh_3d_extrude_corner/sh_3d_extrude_corner.yy",}, {"name":"sh_3d_extrude_corner","order":7,"path":"shaders/sh_3d_extrude_corner/sh_3d_extrude_corner.yy",},
{"name":"sh_blend_normal_dim","order":10,"path":"shaders/sh_blend_normal_dim/sh_blend_normal_dim.yy",}, {"name":"sh_blend_normal_dim","order":10,"path":"shaders/sh_blend_normal_dim/sh_blend_normal_dim.yy",},
@ -1727,6 +1729,7 @@
{"name":"sprite_loader","order":11,"path":"scripts/sprite_loader/sprite_loader.yy",}, {"name":"sprite_loader","order":11,"path":"scripts/sprite_loader/sprite_loader.yy",},
{"name":"fd_rectangle_get_material_surface","order":12,"path":"scripts/fd_rectangle_get_material_surface/fd_rectangle_get_material_surface.yy",}, {"name":"fd_rectangle_get_material_surface","order":12,"path":"scripts/fd_rectangle_get_material_surface/fd_rectangle_get_material_surface.yy",},
{"name":"fd_rectangle_clear","order":6,"path":"scripts/fd_rectangle_clear/fd_rectangle_clear.yy",}, {"name":"fd_rectangle_clear","order":6,"path":"scripts/fd_rectangle_clear/fd_rectangle_clear.yy",},
{"name":"sh_tile_random","order":56,"path":"shaders/sh_tile_random/sh_tile_random.yy",},
{"name":"d3d_cone","order":5,"path":"scripts/d3d_cone/d3d_cone.yy",}, {"name":"d3d_cone","order":5,"path":"scripts/d3d_cone/d3d_cone.yy",},
{"name":"__rectangle","order":7,"path":"scripts/__rectangle/__rectangle.yy",}, {"name":"__rectangle","order":7,"path":"scripts/__rectangle/__rectangle.yy",},
{"name":"node_PCX_fn_random","order":1,"path":"scripts/node_PCX_fn_random/node_PCX_fn_random.yy",}, {"name":"node_PCX_fn_random","order":1,"path":"scripts/node_PCX_fn_random/node_PCX_fn_random.yy",},

View file

@ -1310,6 +1310,7 @@
{"id":{"name":"node_array","path":"scripts/node_array/node_array.yy",},}, {"id":{"name":"node_array","path":"scripts/node_array/node_array.yy",},},
{"id":{"name":"discordBridge","path":"extensions/discordBridge/discordBridge.yy",},}, {"id":{"name":"discordBridge","path":"extensions/discordBridge/discordBridge.yy",},},
{"id":{"name":"pack_corner","path":"scripts/pack_corner/pack_corner.yy",},}, {"id":{"name":"pack_corner","path":"scripts/pack_corner/pack_corner.yy",},},
{"id":{"name":"s_node_mk_tile","path":"sprites/s_node_mk_tile/s_node_mk_tile.yy",},},
{"id":{"name":"s_node_websocket","path":"sprites/s_node_websocket/s_node_websocket.yy",},}, {"id":{"name":"s_node_websocket","path":"sprites/s_node_websocket/s_node_websocket.yy",},},
{"id":{"name":"sh_colorize","path":"shaders/sh_colorize/sh_colorize.yy",},}, {"id":{"name":"sh_colorize","path":"shaders/sh_colorize/sh_colorize.yy",},},
{"id":{"name":"node_string","path":"scripts/node_string/node_string.yy",},}, {"id":{"name":"node_string","path":"scripts/node_string/node_string.yy",},},
@ -1582,7 +1583,6 @@
{"id":{"name":"s_node_rigidSim_global","path":"sprites/s_node_rigidSim_global/s_node_rigidSim_global.yy",},}, {"id":{"name":"s_node_rigidSim_global","path":"sprites/s_node_rigidSim_global/s_node_rigidSim_global.yy",},},
{"id":{"name":"sh_channel_G_grey","path":"shaders/sh_channel_G_grey/sh_channel_G_grey.yy",},}, {"id":{"name":"sh_channel_G_grey","path":"shaders/sh_channel_G_grey/sh_channel_G_grey.yy",},},
{"id":{"name":"s_node_smokeSim_update","path":"sprites/s_node_smokeSim_update/s_node_smokeSim_update.yy",},}, {"id":{"name":"s_node_smokeSim_update","path":"sprites/s_node_smokeSim_update/s_node_smokeSim_update.yy",},},
{"id":{"name":"s_node_mk_flip_grid","path":"sprites/s_node_mk_flip_grid/s_node_mk_flip_grid.yy",},},
{"id":{"name":"node_3d_depth","path":"scripts/node_3d_depth/node_3d_depth.yy",},}, {"id":{"name":"node_3d_depth","path":"scripts/node_3d_depth/node_3d_depth.yy",},},
{"id":{"name":"s_node_vec4","path":"sprites/s_node_vec4/s_node_vec4.yy",},}, {"id":{"name":"s_node_vec4","path":"sprites/s_node_vec4/s_node_vec4.yy",},},
{"id":{"name":"vct_knob","path":"scripts/vct_knob/vct_knob.yy",},}, {"id":{"name":"vct_knob","path":"scripts/vct_knob/vct_knob.yy",},},
@ -1601,6 +1601,7 @@
{"id":{"name":"node_pb_fx_radial","path":"scripts/node_pb_fx_radial/node_pb_fx_radial.yy",},}, {"id":{"name":"node_pb_fx_radial","path":"scripts/node_pb_fx_radial/node_pb_fx_radial.yy",},},
{"id":{"name":"node_VFX_variable","path":"scripts/node_VFX_variable/node_VFX_variable.yy",},}, {"id":{"name":"node_VFX_variable","path":"scripts/node_VFX_variable/node_VFX_variable.yy",},},
{"id":{"name":"node_array_sort","path":"scripts/node_array_sort/node_array_sort.yy",},}, {"id":{"name":"node_array_sort","path":"scripts/node_array_sort/node_array_sort.yy",},},
{"id":{"name":"s_node_mk_ball_grid","path":"sprites/s_node_mk_ball_grid/s_node_mk_ball_grid.yy",},},
{"id":{"name":"sh_pb_outline","path":"shaders/sh_pb_outline/sh_pb_outline.yy",},}, {"id":{"name":"sh_pb_outline","path":"shaders/sh_pb_outline/sh_pb_outline.yy",},},
{"id":{"name":"fd_draw_surface_to_collision_mask_surface","path":"scripts/fd_draw_surface_to_collision_mask_surface/fd_draw_surface_to_collision_mask_surface.yy",},}, {"id":{"name":"fd_draw_surface_to_collision_mask_surface","path":"scripts/fd_draw_surface_to_collision_mask_surface/fd_draw_surface_to_collision_mask_surface.yy",},},
{"id":{"name":"s_node_pixel_builder","path":"sprites/s_node_pixel_builder/s_node_pixel_builder.yy",},}, {"id":{"name":"s_node_pixel_builder","path":"sprites/s_node_pixel_builder/s_node_pixel_builder.yy",},},
@ -1881,6 +1882,7 @@
{"id":{"name":"s_node_array_sample","path":"sprites/s_node_array_sample/s_node_array_sample.yy",},}, {"id":{"name":"s_node_array_sample","path":"sprites/s_node_array_sample/s_node_array_sample.yy",},},
{"id":{"name":"s_biterator_b_labels","path":"sprites/s_biterator_b_labels/s_biterator_b_labels.yy",},}, {"id":{"name":"s_biterator_b_labels","path":"sprites/s_biterator_b_labels/s_biterator_b_labels.yy",},},
{"id":{"name":"FirebaseREST_Firestore_collection_decode","path":"scripts/FirebaseREST_Firestore_collection_decode/FirebaseREST_Firestore_collection_decode.yy",},}, {"id":{"name":"FirebaseREST_Firestore_collection_decode","path":"scripts/FirebaseREST_Firestore_collection_decode/FirebaseREST_Firestore_collection_decode.yy",},},
{"id":{"name":"s_node_mk_flip_grid","path":"sprites/s_node_mk_flip_grid/s_node_mk_flip_grid.yy",},},
{"id":{"name":"d3d_ray","path":"scripts/d3d_ray/d3d_ray.yy",},}, {"id":{"name":"d3d_ray","path":"scripts/d3d_ray/d3d_ray.yy",},},
{"id":{"name":"sh_combine_hsv","path":"shaders/sh_combine_hsv/sh_combine_hsv.yy",},}, {"id":{"name":"sh_combine_hsv","path":"shaders/sh_combine_hsv/sh_combine_hsv.yy",},},
{"id":{"name":"s_node_array_insert","path":"sprites/s_node_array_insert/s_node_array_insert.yy",},}, {"id":{"name":"s_node_array_insert","path":"sprites/s_node_array_insert/s_node_array_insert.yy",},},
@ -2154,6 +2156,7 @@
{"id":{"name":"s_node_pb_box_mirror","path":"sprites/s_node_pb_box_mirror/s_node_pb_box_mirror.yy",},}, {"id":{"name":"s_node_pb_box_mirror","path":"sprites/s_node_pb_box_mirror/s_node_pb_box_mirror.yy",},},
{"id":{"name":"__node_shader_generator","path":"scripts/__node_shader_generator/__node_shader_generator.yy",},}, {"id":{"name":"__node_shader_generator","path":"scripts/__node_shader_generator/__node_shader_generator.yy",},},
{"id":{"name":"node_global","path":"scripts/node_global/node_global.yy",},}, {"id":{"name":"node_global","path":"scripts/node_global/node_global.yy",},},
{"id":{"name":"s_node_mk_saber","path":"sprites/s_node_mk_saber/s_node_mk_saber.yy",},},
{"id":{"name":"spr_gameframe_buttons","path":"sprites/spr_gameframe_buttons/spr_gameframe_buttons.yy",},}, {"id":{"name":"spr_gameframe_buttons","path":"sprites/spr_gameframe_buttons/spr_gameframe_buttons.yy",},},
{"id":{"name":"s_node_draw_stack","path":"sprites/s_node_draw_stack/s_node_draw_stack.yy",},}, {"id":{"name":"s_node_draw_stack","path":"sprites/s_node_draw_stack/s_node_draw_stack.yy",},},
{"id":{"name":"sh_d3d_grid_view","path":"shaders/sh_d3d_grid_view/sh_d3d_grid_view.yy",},}, {"id":{"name":"sh_d3d_grid_view","path":"shaders/sh_d3d_grid_view/sh_d3d_grid_view.yy",},},
@ -2236,7 +2239,6 @@
{"id":{"name":"node_random","path":"scripts/node_random/node_random.yy",},}, {"id":{"name":"node_random","path":"scripts/node_random/node_random.yy",},},
{"id":{"name":"Obj_FirebaseFirestore_Collection_Query_LessThan","path":"objects/Obj_FirebaseFirestore_Collection_Query_LessThan/Obj_FirebaseFirestore_Collection_Query_LessThan.yy",},}, {"id":{"name":"Obj_FirebaseFirestore_Collection_Query_LessThan","path":"objects/Obj_FirebaseFirestore_Collection_Query_LessThan/Obj_FirebaseFirestore_Collection_Query_LessThan.yy",},},
{"id":{"name":"sh_channel_A","path":"shaders/sh_channel_A/sh_channel_A.yy",},}, {"id":{"name":"sh_channel_A","path":"shaders/sh_channel_A/sh_channel_A.yy",},},
{"id":{"name":"s_node_mk_rain","path":"sprites/s_node_mk_rain/s_node_mk_rain.yy",},},
{"id":{"name":"node_atlas","path":"scripts/node_atlas/node_atlas.yy",},}, {"id":{"name":"node_atlas","path":"scripts/node_atlas/node_atlas.yy",},},
{"id":{"name":"sh_blend_sat","path":"shaders/sh_blend_sat/sh_blend_sat.yy",},}, {"id":{"name":"sh_blend_sat","path":"shaders/sh_blend_sat/sh_blend_sat.yy",},},
{"id":{"name":"s_node_feedback","path":"sprites/s_node_feedback/s_node_feedback.yy",},}, {"id":{"name":"s_node_feedback","path":"sprites/s_node_feedback/s_node_feedback.yy",},},
@ -2561,7 +2563,6 @@
{"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",},},
{"id":{"name":"s_node_mk_saber","path":"sprites/s_node_mk_saber/s_node_mk_saber.yy",},},
{"id":{"name":"node_alpha_hash","path":"scripts/node_alpha_hash/node_alpha_hash.yy",},}, {"id":{"name":"node_alpha_hash","path":"scripts/node_alpha_hash/node_alpha_hash.yy",},},
{"id":{"name":"node_PCX_condition","path":"scripts/node_PCX_condition/node_PCX_condition.yy",},}, {"id":{"name":"node_PCX_condition","path":"scripts/node_PCX_condition/node_PCX_condition.yy",},},
{"id":{"name":"sh_mask_modify","path":"shaders/sh_mask_modify/sh_mask_modify.yy",},}, {"id":{"name":"sh_mask_modify","path":"shaders/sh_mask_modify/sh_mask_modify.yy",},},
@ -2582,6 +2583,7 @@
{"id":{"name":"sh_shadow_cast_light_sep","path":"shaders/sh_shadow_cast_light_sep/sh_shadow_cast_light_sep.yy",},}, {"id":{"name":"sh_shadow_cast_light_sep","path":"shaders/sh_shadow_cast_light_sep/sh_shadow_cast_light_sep.yy",},},
{"id":{"name":"node_audio_loudness","path":"scripts/node_audio_loudness/node_audio_loudness.yy",},}, {"id":{"name":"node_audio_loudness","path":"scripts/node_audio_loudness/node_audio_loudness.yy",},},
{"id":{"name":"node_grid","path":"scripts/node_grid/node_grid.yy",},}, {"id":{"name":"node_grid","path":"scripts/node_grid/node_grid.yy",},},
{"id":{"name":"s_node_mk_rain","path":"sprites/s_node_mk_rain/s_node_mk_rain.yy",},},
{"id":{"name":"o_crash_handler","path":"objects/o_crash_handler/o_crash_handler.yy",},}, {"id":{"name":"o_crash_handler","path":"objects/o_crash_handler/o_crash_handler.yy",},},
{"id":{"name":"node_edge_detect","path":"scripts/node_edge_detect/node_edge_detect.yy",},}, {"id":{"name":"node_edge_detect","path":"scripts/node_edge_detect/node_edge_detect.yy",},},
{"id":{"name":"node_morph_surface","path":"scripts/node_morph_surface/node_morph_surface.yy",},}, {"id":{"name":"node_morph_surface","path":"scripts/node_morph_surface/node_morph_surface.yy",},},
@ -2659,6 +2661,7 @@
{"id":{"name":"node_base_convert","path":"scripts/node_base_convert/node_base_convert.yy",},}, {"id":{"name":"node_base_convert","path":"scripts/node_base_convert/node_base_convert.yy",},},
{"id":{"name":"node_3d_mesh_plane","path":"scripts/node_3d_mesh_plane/node_3d_mesh_plane.yy",},}, {"id":{"name":"node_3d_mesh_plane","path":"scripts/node_3d_mesh_plane/node_3d_mesh_plane.yy",},},
{"id":{"name":"s_node_normal_light","path":"sprites/s_node_normal_light/s_node_normal_light.yy",},}, {"id":{"name":"s_node_normal_light","path":"sprites/s_node_normal_light/s_node_normal_light.yy",},},
{"id":{"name":"node_tile_random","path":"scripts/node_tile_random/node_tile_random.yy",},},
{"id":{"name":"Obj_FirebaseFirestore_Document_Update","path":"objects/Obj_FirebaseFirestore_Document_Update/Obj_FirebaseFirestore_Document_Update.yy",},}, {"id":{"name":"Obj_FirebaseFirestore_Document_Update","path":"objects/Obj_FirebaseFirestore_Document_Update/Obj_FirebaseFirestore_Document_Update.yy",},},
{"id":{"name":"node_transform_single","path":"scripts/node_transform_single/node_transform_single.yy",},}, {"id":{"name":"node_transform_single","path":"scripts/node_transform_single/node_transform_single.yy",},},
{"id":{"name":"node_string_length","path":"scripts/node_string_length/node_string_length.yy",},}, {"id":{"name":"node_string_length","path":"scripts/node_string_length/node_string_length.yy",},},
@ -2708,7 +2711,6 @@
{"id":{"name":"s_node_smokeSim_update_paused","path":"sprites/s_node_smokeSim_update_paused/s_node_smokeSim_update_paused.yy",},}, {"id":{"name":"s_node_smokeSim_update_paused","path":"sprites/s_node_smokeSim_update_paused/s_node_smokeSim_update_paused.yy",},},
{"id":{"name":"s_node_ase_file","path":"sprites/s_node_ase_file/s_node_ase_file.yy",},}, {"id":{"name":"s_node_ase_file","path":"sprites/s_node_ase_file/s_node_ase_file.yy",},},
{"id":{"name":"draw_line_round","path":"scripts/draw_line_round/draw_line_round.yy",},}, {"id":{"name":"draw_line_round","path":"scripts/draw_line_round/draw_line_round.yy",},},
{"id":{"name":"s_node_mk_ball_grid","path":"sprites/s_node_mk_ball_grid/s_node_mk_ball_grid.yy",},},
{"id":{"name":"vectorBox","path":"scripts/vectorBox/vectorBox.yy",},}, {"id":{"name":"vectorBox","path":"scripts/vectorBox/vectorBox.yy",},},
{"id":{"name":"sh_3d_extrude_corner","path":"shaders/sh_3d_extrude_corner/sh_3d_extrude_corner.yy",},}, {"id":{"name":"sh_3d_extrude_corner","path":"shaders/sh_3d_extrude_corner/sh_3d_extrude_corner.yy",},},
{"id":{"name":"sh_blend_normal_dim","path":"shaders/sh_blend_normal_dim/sh_blend_normal_dim.yy",},}, {"id":{"name":"sh_blend_normal_dim","path":"shaders/sh_blend_normal_dim/sh_blend_normal_dim.yy",},},
@ -2918,6 +2920,7 @@
{"id":{"name":"sprite_loader","path":"scripts/sprite_loader/sprite_loader.yy",},}, {"id":{"name":"sprite_loader","path":"scripts/sprite_loader/sprite_loader.yy",},},
{"id":{"name":"fd_rectangle_get_material_surface","path":"scripts/fd_rectangle_get_material_surface/fd_rectangle_get_material_surface.yy",},}, {"id":{"name":"fd_rectangle_get_material_surface","path":"scripts/fd_rectangle_get_material_surface/fd_rectangle_get_material_surface.yy",},},
{"id":{"name":"fd_rectangle_clear","path":"scripts/fd_rectangle_clear/fd_rectangle_clear.yy",},}, {"id":{"name":"fd_rectangle_clear","path":"scripts/fd_rectangle_clear/fd_rectangle_clear.yy",},},
{"id":{"name":"sh_tile_random","path":"shaders/sh_tile_random/sh_tile_random.yy",},},
{"id":{"name":"instance_create","path":"scripts/instance_create/instance_create.yy",},}, {"id":{"name":"instance_create","path":"scripts/instance_create/instance_create.yy",},},
{"id":{"name":"d3d_cone","path":"scripts/d3d_cone/d3d_cone.yy",},}, {"id":{"name":"d3d_cone","path":"scripts/d3d_cone/d3d_cone.yy",},},
{"id":{"name":"__rectangle","path":"scripts/__rectangle/__rectangle.yy",},}, {"id":{"name":"__rectangle","path":"scripts/__rectangle/__rectangle.yy",},},

View file

@ -67,9 +67,9 @@ function Node_Blur_Zoom(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
_cen[1] /= surface_get_height_safe(_outSurf); _cen[1] /= surface_get_height_safe(_outSurf);
surface_set_shader(_outSurf, sh_blur_zoom); surface_set_shader(_outSurf, sh_blur_zoom);
shader_set_f("strength", _str); shader_set_f("strength", _str);
shader_set_f("center", _cen); shader_set_f("center", _cen);
shader_set_i("blurMode", _blr); shader_set_i("blurMode", _blr);
shader_set_i("sampleMode", _sam); shader_set_i("sampleMode", _sam);
shader_set_i("useMask", is_surface(_msk)); shader_set_i("useMask", is_surface(_msk));

View file

@ -205,6 +205,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) : __Node_Base(_x
passiveDynamic = false; passiveDynamic = false;
topoSorted = false; topoSorted = false;
temp_surface = []; temp_surface = [];
force_requeue = false;
is_group_io = false; is_group_io = false;
#endregion #endregion
@ -244,6 +245,10 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) : __Node_Base(_x
clearCacheOnChange = true; clearCacheOnChange = true;
#endregion #endregion
#region ---- log ----
messages = [];
#endregion
static createNewInput = noone; static createNewInput = noone;
static initTooltip = function() { #region static initTooltip = function() { #region
@ -439,6 +444,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) : __Node_Base(_x
if(update_on_frame) return true; if(update_on_frame) return true;
if(!rendered) return true; if(!rendered) return true;
force_requeue = false;
for(var i = 0; i < ds_list_size(inputs); i++) for(var i = 0; i < ds_list_size(inputs); i++)
if(inputs[| i].isActiveDynamic(frame)) return true; if(inputs[| i].isActiveDynamic(frame)) return true;

View file

@ -247,19 +247,19 @@
str = string_trim(str); str = string_trim(str);
var strs = string_splice(str, "."); var strs = string_splice(str, ".");
if(array_length(strs) == 0) return [ 0, true ]; if(array_length(strs) == 0) return 0;
if(array_length(strs) == 1) { if(array_length(strs) == 1) {
return [ EXPRESS_TREE_ANIM.none, true ]; return EXPRESS_TREE_ANIM.none;
} else if(struct_has(PROJECT_VARIABLES, strs[0])) { } else if(struct_has(PROJECT_VARIABLES, strs[0])) {
var _str_var = PROJECT_VARIABLES[$ strs[0]]; var _str_var = PROJECT_VARIABLES[$ strs[0]];
if(!struct_has(_str_var, strs[1])) return [ EXPRESS_TREE_ANIM.none, true ]; if(!struct_has(_str_var, strs[1])) return EXPRESS_TREE_ANIM.none;
var val = _str_var[$ strs[1]][1]; var val = _str_var[$ strs[1]][1];
return [ val, true ]; return val;
} else if(array_length(strs) > 2) { } else if(array_length(strs) > 2) {
var key = strs[0]; var key = strs[0];
if(!ds_map_exists(PROJECT.nodeNameMap, key)) return [ EXPRESS_TREE_ANIM.none, true ]; if(!ds_map_exists(PROJECT.nodeNameMap, key)) return EXPRESS_TREE_ANIM.none;
var node = PROJECT.nodeNameMap[? key]; var node = PROJECT.nodeNameMap[? key];
var map = noone; var map = noone;
@ -272,18 +272,18 @@
case "output" : case "output" :
map = node.outputMap; map = node.outputMap;
break; break;
default : return [ EXPRESS_TREE_ANIM.none, true ]; default : return EXPRESS_TREE_ANIM.none;
} }
var _junc_key = string_lower(strs[2]); var _junc_key = string_lower(strs[2]);
var _junc = ds_map_try_get(map, _junc_key, noone); var _junc = ds_map_try_get(map, _junc_key, noone);
if(_junc == noone) return [ EXPRESS_TREE_ANIM.none, true ]; if(_junc == noone) return EXPRESS_TREE_ANIM.none;
return [ _junc.is_anim * 2, false ]; return _junc.is_anim * 2;
} }
return [ EXPRESS_TREE_ANIM.none, true ]; return EXPRESS_TREE_ANIM.none;
} }
function create_preview_window(node) { function create_preview_window(node) {

View file

@ -1,36 +1,211 @@
function Node_MK_Flag(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { function Node_MK_Flag(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "MK Flag"; name = "MK Flag";
update_on_frame = true;
inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF) inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF)
.setDisplay(VALUE_DISPLAY.vector); .setDisplay(VALUE_DISPLAY.vector);
inputs[| 1] = nodeValue("Point 1", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) inputs[| 1] = nodeValue("Texture", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 2] = nodeValue("Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ])
.setDisplay(VALUE_DISPLAY.vector); .setDisplay(VALUE_DISPLAY.vector);
inputs[| 2] = nodeValue("Point 2", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 16, 16 ]) inputs[| 3] = nodeValue("Pin side", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.vector); .setDisplay(VALUE_DISPLAY.enum_button, [ "Left", "Right", "Up", "Down" ]);
inputs[| 4] = nodeValue("Subdivision", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 8);
inputs[| 5] = nodeValue("Wind speed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 2);
inputs[| 6] = nodeValue("Wave width", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 2);
inputs[| 7] = nodeValue("Wave size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 4);
inputs[| 8] = nodeValue("Phase", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.1)
.setDisplay(VALUE_DISPLAY.slider);
input_display_list = [ 0, input_display_list = [ 0,
["Saber", false], 1, 2, ["Flag", false], 4, 1, 2, 3,
["Wave", false], 6, 7, 5, 8,
]; ];
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone);
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region attributes.iteration = 4;
var _a = inputs[| 1].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny); active &= _a; array_push(attributeEditors, "Verlet solver");
var _a = inputs[| 2].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny); active &= _a; array_push(attributeEditors, ["Iteration", function() { return attributes.iteration; },
new textBox(TEXTBOX_INPUT.number, function(val) {
attributes.iteration = val;
triggerRender();
})]);
function fPoints(_x, _y, _u, _v) constructor { #region
x = _x;
y = _y;
sx = _x;
sy = _y;
u = _u;
v = _v;
pin = false;
} #endregion } #endregion
static processData = function(_outSurf, _data, _output_index, _array_index) { function fLink(_p0, _p1) constructor { #region
var _dim = _data[0]; p0 = _p0;
var _pnt1 = _data[1]; p1 = _p1;
var _pnt2 = _data[2]; dist = point_distance(_p0.x, _p0.y, _p1.x, _p1.y);
} #endregion
function fMesh(_p0, _p1, _p2) constructor { #region
p0 = _p0;
p1 = _p1;
p2 = _p2;
} #endregion
points = [];
links = [];
meshes = [];
static setGeometry = function() { #region
var _surf = getSingleValue(1); if(!is_surface(_surf)) return;
var _start = getSingleValue(2);
var _pinn = getSingleValue(3);
var _subd = getSingleValue(4);
var _sw = surface_get_width_safe(_surf);
var _sh = surface_get_height_safe(_surf);
points = array_create((_subd + 1) * (_subd + 1));
links = array_create(2 * _subd * (_subd + 1));
meshes = array_create(2 * _subd * _subd);
var _ind = 0;
for( var i = 0; i <= _subd; i++ )
for( var j = 0; j <= _subd; j++ ) {
var _x = _start[0] + i / _subd * _sw;
var _y = _start[1] + j / _subd * _sh;
points[_ind++] = new fPoints(_x, _y, i / _subd, j / _subd);
}
switch(_pinn) {
case 0 : for( var i = 0; i <= _subd; i++ ) points[i].pin = true; break;
case 1 : for( var i = 0; i <= _subd; i++ ) points[_subd * (_subd + 1) + i].pin = true; break;
case 2 : for( var i = 0; i <= _subd; i++ ) points[i * (_subd + 1) + 0].pin = true; break;
case 3 : for( var i = 0; i <= _subd; i++ ) points[i * (_subd + 1) + _subd].pin = true; break;
}
var _ind = 0;
for( var k = 0; k < 2; k++)
for( var i = 0; i < _subd; i++ )
for( var j = 0; j <= _subd; j++ ) {
var p0x = k? i : j;
var p0y = k? j : i;
var p1x = k? i + 1 : j;
var p1y = k? j : i + 1;
var i0 = p0y * (_subd + 1) + p0x;
var i1 = p1y * (_subd + 1) + p1x;
links[_ind++] = new fLink(points[i0], points[i1]);
}
var _ind = 0;
for( var i = 0; i < _subd; i++ )
for( var j = 0; j < _subd; j++ ) {
var i0 = i * (_subd + 1) + j;
var i1 = i * (_subd + 1) + j + 1;
var i2 = (i + 1) * (_subd + 1) + j;
meshes[_ind++] = new fMesh(points[i0], points[i1], points[i2]);
var i0 = i * (_subd + 1) + j + 1;
var i1 = (i + 1) * (_subd + 1) + j;
var i2 = (i + 1) * (_subd + 1) + j + 1;
meshes[_ind++] = new fMesh(points[i0], points[i1], points[i2]);
}
} #endregion
static stepFlag = function() { #region
var _pinn = getSingleValue(3);
var _wspd = getSingleValue(5);
var _wave = getSingleValue(6);
var _wavz = getSingleValue(7);
var _wphs = getSingleValue(8);
var _tps = CURRENT_FRAME / TOTAL_FRAMES * _wspd * pi * 2;
for( var i = 0, n = array_length(points); i < n; i++ ) {
var p = points[i];
switch(_pinn) {
case 0 :
var y0 = p.sy + max(-0.2, sin(p.u * pi * _wave - _tps)) * _wavz * p.u;
var y1 = p.sy + min( 0.2, sin((p.u - _wphs) * pi * _wave - _tps)) * _wavz * p.u;
p.y = lerp(y0, y1, p.v);
break;
}
}
} #endregion
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
var _a = inputs[| 2].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny); active &= _a;
//for( var i = 0, n = array_length(links); i < n; i++ ) {
// var _l = links[i];
// var p0 = _l.p0;
// var p1 = _l.p1;
// var _p0x = _x + p0.x * _s;
// var _p0y = _y + p0.y * _s;
// var _p1x = _x + p1.x * _s;
// var _p1y = _y + p1.y * _s;
// if(p0.pin && p1.pin) {
// draw_set_color(COLORS._main_text);
// draw_line_width(_p0x, _p0y, _p1x, _p1y, 2);
// } else {
// draw_set_color(COLORS._main_accent);
// draw_line(_p0x, _p0y, _p1x, _p1y);
// }
//}
} #endregion
static processData_prebatch = function() { #region
if(CURRENT_FRAME == 0) setGeometry();
stepFlag();
} #endregion
static processData = function(_outSurf, _data, _output_index, _array_index) { #region
var _dim = _data[0];
var _tex = _data[1];
_outSurf = surface_verify(_outSurf, _dim[0], _dim[1]);
if(!is_surface(_tex)) return _outSurf;
surface_set_target(_outSurf); surface_set_target(_outSurf);
DRAW_CLEAR DRAW_CLEAR
draw_set_color(c_white);
draw_primitive_begin_texture(pr_trianglelist, surface_get_texture(_tex));
for( var i = 0, n = array_length(meshes); i < n; i++ ) {
var m = meshes[i];
var p0 = m.p0;
var p1 = m.p1;
var p2 = m.p2;
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();
surface_reset_target(); surface_reset_target();
return _outSurf; return _outSurf;
} } #endregion
} }

View file

@ -4,18 +4,18 @@ function Node_MK_Tile(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
inputs[| 0] = nodeValue("Texture", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone); inputs[| 0] = nodeValue("Texture", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| 1] = nodeValue("Background Texture", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone); inputs[| 1] = nodeValue("Background texture", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
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_button, [ "Corner (18 sprites)", "Corner + Side (55 sprites)" ] ); .setDisplay(VALUE_DISPLAY.enum_button, [ "Corner (18 sprites)", "Corner + Side (55 sprites)" ] );
inputs[| 3] = nodeValue("Output Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 3] = nodeValue("Output type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_button, [ "Sheet", "Array" ] ); .setDisplay(VALUE_DISPLAY.enum_button, [ "Sheet", "Array" ] );
inputs[| 4] = nodeValue("Crop", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 8, 8, 8, 8 ]) inputs[| 4] = nodeValue("Crop", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 8, 8, 8, 8 ])
.setDisplay(VALUE_DISPLAY.padding); .setDisplay(VALUE_DISPLAY.padding);
inputs[| 5] = nodeValue("Edge Type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 5] = nodeValue("Edge type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_button, [ "Uniform", "Individual" ] ); .setDisplay(VALUE_DISPLAY.enum_button, [ "Uniform", "Individual" ] );
inputs[| 6] = nodeValue("Edge", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone); inputs[| 6] = nodeValue("Edge", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
@ -29,17 +29,18 @@ function Node_MK_Tile(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
inputs[| 11] = nodeValue("Full edge", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) inputs[| 11] = nodeValue("Full edge", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.toggle, { data: [ "T", "B", "L", "R" ] }); .setDisplay(VALUE_DISPLAY.toggle, { data: [ "T", "B", "L", "R" ] });
inputs[| 12] = nodeValue("Extend edge", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false) inputs[| 12] = nodeValue("Edge sprite", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
inputs[| 13] = nodeValue("Edge sprite", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Single", "Side + Center", "Side + Center + Side" ] ); .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Single", "Side + Center", "Side + Center + Side" ] );
inputs[| 13] = nodeValue("Edge transform", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_button, [ "Flip", "Rotate" ] );
input_display_list = [ input_display_list = [
["Surfaces", false], 0, 1, ["Surfaces", true], 0, 1,
["Tiling", false], 2, 4, ["Tile set", false], 2, 4,
["Edge", false], 5, 13, 10, 11, 12, ["Edge", false], 5, 12, 13, 10, 11,
["Edge Textures", true], 6, 7, 8, 9, ["Edge Textures", true], 6, 7, 8, 9,
["Output", false], 3, ["Output", false], 3,
]; ];
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone);
@ -48,30 +49,31 @@ function Node_MK_Tile(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
for( var i = 0, n = array_length(temp_surface); i < n; i++ ) for( var i = 0, n = array_length(temp_surface); i < n; i++ )
temp_surface[i] = array_create(1, 1); temp_surface[i] = array_create(1, 1);
__edge_surface = array_create(12); __edge_uniform = array_create(4);
__edge_buffer = [ surface_create(1, 1), surface_create(1, 1)]; __edge_surface = array_create(4 * 7);
__edge_buffer = [ surface_create(1, 1), surface_create(1, 1), surface_create(1, 1) ];
edge_surface = []; edge_surface = [];
#region index #region index
index_18 = [ 0, 8, 12, 4, 7, 11, index_18 = [ 0, /**/ 8, 12, 4, /**/ 7, 11,
0, 10, 15, 5, 13, 14, 0, /**/ 10, 15, 5, /**/ 13, 14,
0, 2, 3, 1, 9, 6]; 0, /**/ 2, 3, 1, /**/ 9, 6];
index_18_et = [ 0, 0, 1, 2, 0, 0, index_18_et = [ 0, /**/ 0, 1, 2, /**/ 0, 0,
0, 0, 0, 0, 0, 2, 0, /**/ 0, 0, 0, /**/ 3, 4,
0, 0, 0, 0, 0, 2]; 0, /**/ 0, 0, 0, /**/ 3, 4];
index_18_eb = [ 0, 0, 0, 0, 0, 2, index_18_eb = [ 0, /**/ 0, 0, 0, /**/ 3, 4,
0, 0, 0, 0, 0, 0, 0, /**/ 0, 0, 0, /**/ 0, 0,
0, 0, 1, 2, 2, 0]; 0, /**/ 0, 1, 2, /**/ 4, 3];
index_18_el = [ 0, 0, 0, 0, 0, 0, index_18_el = [ 0, /**/ 0, 0, 0, /**/ 0, 3,
0, 1, 0, 0, 0, 2, 0, /**/ 1, 0, 0, /**/ 0, 4,
0, 2, 0, 0, 0, 2]; 0, /**/ 2, 0, 0, /**/ 3, 4];
index_18_er = [ 0, 0, 0, 0, 0, 0, index_18_er = [ 0, /**/ 0, 0, 0, /**/ 3, 0,
0, 0, 0, 1, 2, 0, 0, /**/ 0, 0, 1, /**/ 4, 0,
0, 0, 0, 2, 2, 0]; 0, /**/ 0, 0, 2, /**/ 4, 3];
index_55 = [208, 224, 104, /**/ 64, /**/ 80, 120, 216, 72, /**/ 88, 219, -1, index_55 = [208, 224, 104, /**/ 64, /**/ 80, 120, 216, 72, /**/ 88, 219, -1,
148, 255, 41, /**/ 66, /**/ 86, 127, 223, 75, /**/ 95, 126, -1, 148, 255, 41, /**/ 66, /**/ 86, 127, 223, 75, /**/ 95, 126, -1,
@ -79,29 +81,29 @@ function Node_MK_Tile(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
16, 24, 8, /**/ 0, /**/ 18, 27, 30, 10, /**/ 26, 94, 91, 16, 24, 8, /**/ 0, /**/ 18, 27, 30, 10, /**/ 26, 94, 91,
-1, -1, -1, /**/ -1, /**/ 82, 123, 222, 74, /**/ 90, -1, -1]; -1, -1, -1, /**/ -1, /**/ 82, 123, 222, 74, /**/ 90, -1, -1];
index_55_et = [ 0, 1, 2, /**/ 1, /**/ 0, 1, 1, 0, /**/ 1, 0, 0, index_55_et = [ 0, 1, 2, /**/ 5, /**/ 0, 1, 1, 2, /**/ 1, 3, 0,
0, 0, 0, /**/ 0, /**/ 0, 0, 0, 0, /**/ 0, 2, 0, 0, 0, 0, /**/ 0, /**/ 0, 0, 0, 0, /**/ 0, 4, 0,
0, 0, 0, /**/ 0, /**/ 0, 0, 2, 2, /**/ 0, 0, 0, 0, 0, 0, /**/ 0, /**/ 3, 3, 4, 4, /**/ 6, 6, 6,
0, 1, 2, /**/ 0, /**/ 0, 0, 0, 0, /**/ 0, 0, 0, 0, 1, 2, /**/ 5, /**/ 3, 3, 4, 4, /**/ 6, 3, 4,
0, 0, 0, /**/ 0, /**/ 0, 0, 0, 0, /**/ 0, 0, 0, ]; 0, 0, 0, /**/ 0, /**/ 3, 3, 4, 4, /**/ 6, 0, 0, ];
index_55_eb = [ 0, 0, 0, /**/ 0, /**/ 0, 0, 0, 0, /**/ 0, 0, 0, index_55_eb = [ 0, 0, 0, /**/ 0, /**/ 3, 3, 4, 4, /**/ 6, 4, 0,
0, 0, 0, /**/ 0, /**/ 0, 0, 0, 0, /**/ 0, 0, 0, 0, 0, 0, /**/ 0, /**/ 3, 3, 4, 4, /**/ 6, 3, 0,
0, 0, 0, /**/ 0, /**/ 0, 0, 0, 0, /**/ 0, 0, 0, 0, 1, 2, /**/ 5, /**/ 0, 0, 0, 0, /**/ 0, 4, 3,
0, 0, 0, /**/ 0, /**/ 0, 0, 0, 0, /**/ 0, 0, 0, 0, 1, 2, /**/ 5, /**/ 0, 1, 1, 2, /**/ 1, 6, 6,
0, 0, 0, /**/ 0, /**/ 0, 0, 0, 0, /**/ 0, 0, 0, ]; 0, 0, 0, /**/ 0, /**/ 3, 3, 4, 4, /**/ 6, 0, 0, ];
index_55_el = [ 0, 0, 0, /**/ 0, /**/ 0, 0, 0, 0, /**/ 0, 0, 0, index_55_el = [ 0, 0, 0, /**/ 0, /**/ 0, 0, 3, 3, /**/ 4, 3, 0,
0, 0, 0, /**/ 0, /**/ 0, 0, 0, 0, /**/ 0, 0, 0, 1, 0, 0, /**/ 1, /**/ 1, 0, 3, 3, /**/ 4, 4, 0,
0, 0, 0, /**/ 0, /**/ 0, 0, 0, 0, /**/ 0, 0, 0, 2, 0, 0, /**/ 2, /**/ 1, 0, 4, 4, /**/ 4, 6, 4,
0, 0, 0, /**/ 0, /**/ 0, 0, 0, 0, /**/ 0, 0, 0, 5, 0, 0, /**/ 5, /**/ 2, 0, 4, 4, /**/ 4, 6, 3,
0, 0, 0, /**/ 0, /**/ 0, 0, 0, 0, /**/ 0, 0, 0, ]; 0, 0, 0, /**/ 0, /**/ 1, 0, 6, 6, /**/ 6, 0, 0, ];
index_55_er = [ 0, 0, 0, /**/ 0, /**/ 0, 0, 0, 0, /**/ 0, 0, 0, index_55_er = [ 0, 0, 0, /**/ 0, /**/ 3, 3, 0, 0, /**/ 3, 4, 0,
0, 0, 0, /**/ 0, /**/ 0, 0, 0, 0, /**/ 0, 0, 0, 0, 0, 1, /**/ 1, /**/ 3, 3, 0, 1, /**/ 3, 3, 0,
0, 0, 0, /**/ 0, /**/ 0, 0, 0, 0, /**/ 0, 0, 0, 0, 0, 2, /**/ 2, /**/ 4, 4, 0, 1, /**/ 4, 4, 6,
0, 0, 0, /**/ 0, /**/ 0, 0, 0, 0, /**/ 0, 0, 0, 0, 0, 5, /**/ 5, /**/ 4, 4, 0, 2, /**/ 4, 3, 6,
0, 0, 0, /**/ 0, /**/ 0, 0, 0, 0, /**/ 0, 0, 0, ]; 0, 0, 0, /**/ 0, /**/ 6, 6, 0, 1, /**/ 6, 0, 0, ];
#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
@ -112,10 +114,11 @@ function Node_MK_Tile(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
var _edgType = getSingleValue( 5); var _edgType = getSingleValue( 5);
var _edgFull = getSingleValue(11); var _edgFull = getSingleValue(11);
inputs[| 6].name = _edgType == 1? "Edge top" : "Edge" inputs[| 6].name = _edgType == 1? "Edge top" : "Edge"
inputs[| 7].setVisible(_edgType == 1, _edgType == 1); inputs[| 7].setVisible(_edgType == 1, _edgType == 1);
inputs[| 8].setVisible(_edgType == 1, _edgType == 1); inputs[| 8].setVisible(_edgType == 1, _edgType == 1);
inputs[| 9].setVisible(_edgType == 1, _edgType == 1); inputs[| 9].setVisible(_edgType == 1, _edgType == 1);
inputs[| 13].setVisible(_edgType == 0);
} #endregion } #endregion
static generate18 = function(_data, _tex0, _tex1, _edge, _crop) { #region static generate18 = function(_data, _tex0, _tex1, _edge, _crop) { #region
@ -131,7 +134,6 @@ function Node_MK_Tile(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
var _edgeShf = _data[10]; var _edgeShf = _data[10];
var _edgFull = _data[11]; var _edgFull = _data[11];
var _edgExtn = _data[12];
for( var i = 0; i < 18; i++ ) { for( var i = 0; i < 18; i++ ) {
var _index = index_18[i]; var _index = index_18[i];
@ -169,8 +171,7 @@ function Node_MK_Tile(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
shader_set_f("crop", _crop); shader_set_f("crop", _crop);
shader_set_i("edge", _index); shader_set_i("edge", _index);
shader_set_i("fullEdge", bool(_edgFull & 0b0100)); shader_set_i("fullEdge", bool(_edgFull & 0b0100));
shader_set_i("extendEdge", _edgExtn);
draw_surface_ext(_el, 0, 0, 1, 1, 0, c_white, 1); draw_surface_ext(_el, 0, 0, 1, 1, 0, c_white, 1);
shader_reset(); shader_reset();
} #endregion } #endregion
@ -181,8 +182,6 @@ function Node_MK_Tile(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
shader_set_f("crop", _crop); shader_set_f("crop", _crop);
shader_set_i("edge", _index); shader_set_i("edge", _index);
shader_set_i("fullEdge", bool(_edgFull & 0b1000)); shader_set_i("fullEdge", bool(_edgFull & 0b1000));
shader_set_i("extendEdge", _edgExtn);
draw_surface_ext(_er, 0, 0, 1, 1, 0, c_white, 1); draw_surface_ext(_er, 0, 0, 1, 1, 0, c_white, 1);
shader_reset(); shader_reset();
@ -194,7 +193,6 @@ function Node_MK_Tile(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
shader_set_f("crop", _crop); shader_set_f("crop", _crop);
shader_set_i("edge", _index); shader_set_i("edge", _index);
shader_set_i("fullEdge", bool(_edgFull & 0b0001)); shader_set_i("fullEdge", bool(_edgFull & 0b0001));
shader_set_i("extendEdge", _edgExtn);
draw_surface_ext(_et, 0, 0, 1, 1, 0, c_white, 1); draw_surface_ext(_et, 0, 0, 1, 1, 0, c_white, 1);
shader_reset(); shader_reset();
@ -206,7 +204,6 @@ function Node_MK_Tile(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
shader_set_f("crop", _crop); shader_set_f("crop", _crop);
shader_set_i("edge", _index); shader_set_i("edge", _index);
shader_set_i("fullEdge", bool(_edgFull & 0b0010)); shader_set_i("fullEdge", bool(_edgFull & 0b0010));
shader_set_i("extendEdge", _edgExtn);
draw_surface_ext(_eb, 0, 0, 1, 1, 0, c_white, 1); draw_surface_ext(_eb, 0, 0, 1, 1, 0, c_white, 1);
shader_reset(); shader_reset();
@ -233,7 +230,6 @@ function Node_MK_Tile(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
var b = _crop[3]; var b = _crop[3];
var _edgFull = _data[11]; var _edgFull = _data[11];
var _edgExtn = _data[12];
for( var i = 0; i < 55; i++ ) { for( var i = 0; i < 55; i++ ) {
var _index = index_55[i]; var _index = index_55[i];
@ -268,54 +264,50 @@ function Node_MK_Tile(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
if(_index & 0b0000_1011 >= 0b0000_1011) draw_surface_part(_tex0, 0, 0, _sw - r, _sh - b, 0, 0); if(_index & 0b0000_1011 >= 0b0000_1011) draw_surface_part(_tex0, 0, 0, _sw - r, _sh - b, 0, 0);
if(_index & 0b0001_0110 >= 0b0001_0110) draw_surface_part(_tex0, l, 0, _sw - l, _sh - b, l, 0); if(_index & 0b0001_0110 >= 0b0001_0110) draw_surface_part(_tex0, l, 0, _sw - l, _sh - b, l, 0);
var _et = _edge[0][1]; var _et = _edge[0][index_55_et[i]];
var _eb = _edge[1][1]; var _eb = _edge[1][index_55_eb[i]];
var _el = _edge[2][1]; var _el = _edge[2][index_55_el[i]];
var _er = _edge[3][1]; var _er = _edge[3][index_55_er[i]];
if(_el == noone) { #region if(_el != noone) { #region
shader_set(sh_mk_tile55_edge_l); shader_set(sh_mk_tile55_edge_l);
shader_set_f("dimension", _sw, _sh); shader_set_f("dimension", _sw, _sh);
shader_set_f("crop", _crop); shader_set_f("crop", _crop);
shader_set_i("edge", _index); shader_set_i("edge", _index);
shader_set_i("fullEdge", bool(_edgFull & 0b0100)); shader_set_i("fullEdge", bool(_edgFull & 0b0100));
shader_set_i("extendEdge", _edgExtn);
draw_surface_ext(_el, 0, 0, 1, 1, 0, c_white, 1); draw_surface_ext(_el, 0, 0, 1, 1, 0, c_white, 1);
shader_reset(); shader_reset();
} #endregion } #endregion
if(_er == noone) { #region if(_er != noone) { #region
shader_set(sh_mk_tile55_edge_r); shader_set(sh_mk_tile55_edge_r);
shader_set_f("dimension", _sw, _sh); shader_set_f("dimension", _sw, _sh);
shader_set_f("crop", _crop); shader_set_f("crop", _crop);
shader_set_i("edge", _index); shader_set_i("edge", _index);
shader_set_i("fullEdge", bool(_edgFull & 0b1000)); shader_set_i("fullEdge", bool(_edgFull & 0b1000));
shader_set_i("extendEdge", _edgExtn);
draw_surface_ext(_er, 0, 0, 1, 1, 0, c_white, 1); draw_surface_ext(_er, 0, 0, 1, 1, 0, c_white, 1);
shader_reset(); shader_reset();
} #endregion } #endregion
if(_et == noone) { #region if(_et != noone) { #region
shader_set(sh_mk_tile55_edge_t); shader_set(sh_mk_tile55_edge_t);
shader_set_f("dimension", _sw, _sh); shader_set_f("dimension", _sw, _sh);
shader_set_f("crop", _crop); shader_set_f("crop", _crop);
shader_set_i("edge", _index); shader_set_i("edge", _index);
shader_set_i("fullEdge", bool(_edgFull & 0b0001)); shader_set_i("fullEdge", bool(_edgFull & 0b0001));
shader_set_i("extendEdge", _edgExtn);
draw_surface_ext(_et, 0, 0, 1, 1, 0, c_white, 1); draw_surface_ext(_et, 0, 0, 1, 1, 0, c_white, 1);
shader_reset(); shader_reset();
} #endregion } #endregion
if(_eb == noone) { #region if(_eb != noone) { #region
shader_set(sh_mk_tile55_edge_b); shader_set(sh_mk_tile55_edge_b);
shader_set_f("dimension", _sw, _sh); shader_set_f("dimension", _sw, _sh);
shader_set_f("crop", _crop); shader_set_f("crop", _crop);
shader_set_i("edge", _index); shader_set_i("edge", _index);
shader_set_i("fullEdge", bool(_edgFull & 0b0010)); shader_set_i("fullEdge", bool(_edgFull & 0b0010));
shader_set_i("extendEdge", _edgExtn);
draw_surface_ext(_eb, 0, 0, 1, 1, 0, c_white, 1); draw_surface_ext(_eb, 0, 0, 1, 1, 0, c_white, 1);
shader_reset(); shader_reset();
@ -340,11 +332,11 @@ function Node_MK_Tile(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
var _edgType = _data[5]; var _edgType = _data[5];
var _edgeShf = _data[10]; var _edgeShf = _data[10];
var _edgFull = _data[11]; var _edgFull = _data[11];
var _edgSprt = _data[13]; var _edgSprt = _data[12];
var _edgTran = _data[13];
var _edges = _edgType == 0? [ _data[6], _data[6], _data[6], _data[6] ] : [ _data[6], _data[7], _data[8], _data[9] ]; var _edges = _edgType == 0? [ _data[6], _data[6], _data[6], _data[6] ] : [ _data[6], _data[7], _data[8], _data[9] ];
var _edge; var _edge;
var _rot = [ 0, 180, 90, 270 ];
var _shi = [ 1, 3, 2, 0 ]; var _shi = [ 1, 3, 2, 0 ];
var _sw = surface_get_width_safe(_tex0); var _sw = surface_get_width_safe(_tex0);
@ -354,11 +346,39 @@ function Node_MK_Tile(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
for( var i = 0, n = array_length(__edge_buffer); i < n; i++ ) for( var i = 0, n = array_length(__edge_buffer); i < n; i++ )
__edge_buffer[i] = surface_verify(__edge_buffer[i], _sw, _sh); __edge_buffer[i] = surface_verify(__edge_buffer[i], _sw, _sh);
if(_edgType == 0 && is_surface(_data[6])) { #region
var _esw = surface_get_width_safe(_data[6]);
var _esh = surface_get_height_safe(_data[6]);
__edge_uniform[0] = surface_verify(__edge_uniform[0], _esw, _esh);
__edge_uniform[1] = surface_verify(__edge_uniform[1], _esw, _esh);
__edge_uniform[2] = surface_verify(__edge_uniform[2], _esh, _esw);
__edge_uniform[3] = surface_verify(__edge_uniform[3], _esh, _esw);
surface_set_shader(__edge_uniform[0], noone);
draw_surface(_data[6], 0, 0);
surface_reset_shader();
surface_set_shader(__edge_uniform[1], noone);
draw_surface_ext(_data[6], 0, _esh, 1, -1, 0, c_white, 1);
surface_reset_shader();
surface_set_shader(__edge_uniform[2], noone);
draw_surface_ext(_data[6], 0, 0, -1, 1, 90, c_white, 1);
surface_reset_shader();
surface_set_shader(__edge_uniform[3], noone);
draw_surface_ext(_data[6], _esh, 0, -1, -1, 90, c_white, 1);
surface_reset_shader();
_edges = __edge_uniform;
} #endregion
for( var i = 0; i < 4; i++ ) { for( var i = 0; i < 4; i++ ) {
var _ed = _edges[i]; var _ed = _edges[i];
var _edShf = _edgeShf[_shi[i]]; var _edShf = _edgeShf[_shi[i]];
edge_surface[i] = [ noone, noone, noone ]; edge_surface[i] = array_create(7, noone);
if(!is_surface(_ed)) continue; if(!is_surface(_ed)) continue;
var _ew = surface_get_width_safe(_ed); var _ew = surface_get_width_safe(_ed);
@ -367,73 +387,107 @@ function Node_MK_Tile(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
var _esw = _ew > _eh? _ew / _am : 0; var _esw = _ew > _eh? _ew / _am : 0;
var _esh = _ew > _eh? 0 : _eh / _am; var _esh = _ew > _eh? 0 : _eh / _am;
for( var j = 0; j < 3; j++ ) { for( var j = 0; j < 7; j++ ) {
var _sIndx = i * 3 + j; var _sIndx = i * 7 + j;
var _edBuf = _ed; var _edBuf = _ed;
__edge_surface[_sIndx] = surface_verify(__edge_surface[_sIndx], _sw, _sh); __edge_surface[_sIndx] = surface_verify(__edge_surface[_sIndx], _sw, _sh);
if(_edgSprt) { surface_set_target(__edge_buffer[0]); #region
surface_set_target(__edge_buffer[0]); #region DRAW_CLEAR
DRAW_CLEAR BLEND_OVERRIDE
BLEND_OVERRIDE
if(_edgSprt == 1) { if(_edgSprt == 0) {
switch(j) { draw_surface(_ed, 0, 0);
case 0 : draw_surface(_ed, -_esw * 0, -_esh * 0); break; } else if(_edgSprt == 1) { // flip side
case 1 : draw_surface(_ed, -_esw * 1, -_esh * 1); break; switch(j) {
case 2 : draw_surface(_ed, -_esw * 0, -_esh * 0); break; case 0 : draw_surface(_ed, -_esw * 0, -_esh * 0); break;
} case 1 : draw_surface(_ed, -_esw * 1, -_esh * 1); break;
} else if(_edgSprt == 2) { case 2 : draw_surface(_ed, -_esw * 0, -_esh * 0); break;
switch(j) { case 3 :
case 0 : draw_surface(_ed, -_esw * 0, -_esh * 0); break; case 4 :
case 1 : draw_surface(_ed, -_esw * 1, -_esh * 1); break; case 5 :
case 2 : draw_surface(_ed, -_esw * 2, -_esh * 2); break; case 6 : draw_surface(_ed, -_esw * 0, -_esh * 0); break;
}
} }
} else if(_edgSprt == 2) { // indiviual sides
switch(j) {
case 0 : draw_surface(_ed, -_esw * 0, -_esh * 0); break;
case 1 : draw_surface(_ed, -_esw * 1, -_esh * 1); break;
case 2 : draw_surface(_ed, -_esw * 2, -_esh * 2); break;
}
}
BLEND_NORMAL
surface_reset_target(); #endregion
_edBuf = __edge_buffer[0];
if(_edgType == 0 && _edgTran == 1) { // rotate surface for uniform edge type
surface_set_target(__edge_buffer[1]); #region
DRAW_CLEAR
BLEND_ALPHA_MULP
switch(i) {
//case 1 : draw_surface_ext(_edBuf, _sw, 0, -1, 1, 0, c_white, 1); break;
case 3 : draw_surface_ext(_edBuf, 0, _sh, 1, -1, 0, c_white, 1); break;
default: draw_surface_ext(_edBuf, 0, 0, 1, 1, 0, c_white, 1); break;
}
BLEND_NORMAL BLEND_NORMAL
surface_reset_target(); #endregion surface_reset_target(); #endregion
_edBuf = __edge_buffer[0];
if(_edgSprt == 1 && j == 2) {
surface_set_target(__edge_buffer[1]); #region
DRAW_CLEAR
BLEND_OVERRIDE
if(i == 0 || i == 1) draw_surface_ext(__edge_buffer[0], _sw, 0, -1, 1, 0, c_white, 1);
if(i == 2 || i == 3) draw_surface_ext(__edge_buffer[0], 0, _sh, 1, -1, 0, c_white, 1);
BLEND_NORMAL _edBuf = __edge_buffer[1];
surface_reset_target(); #endregion }
if(_edgSprt == 1 && j >= 2) {
surface_set_target(__edge_buffer[2]); #region
DRAW_CLEAR
BLEND_ALPHA_MULP
if(j == 2) { // flip surface
if(i == 0 || i == 1) draw_surface_ext(_edBuf, _sw, 0, -1, 1, 0, c_white, 1); // flip x
if(i == 2 || i == 3) draw_surface_ext(_edBuf, 0, _sh, 1, -1, 0, c_white, 1); // flip y
} else if(j == 3) {
if(i == 0 || i == 1) draw_surface_part_ext(_edBuf, 0, 0, _sw / 2, _sh, _sw / 2, 0, 1, 1, c_white, 1);
if(i == 2 || i == 3) draw_surface_part_ext(_edBuf, 0, 0, _sw, _sh / 2, 0, _sh / 2, 1, 1, c_white, 1);
} else if(j == 4) {
if(i == 0 || i == 1) draw_surface_part_ext(_edBuf, 0, 0, _sw / 2, _sh, _sw / 2, 0, -1, 1, c_white, 1);
if(i == 2 || i == 3) draw_surface_part_ext(_edBuf, 0, 0, _sw, _sh / 2, 0, _sh / 2, 1, -1, c_white, 1);
} else if(j == 5) {
if(i == 0 || i == 1) {
draw_surface_part_ext(_edBuf, 0, 0, _sw / 2, _sh, 0, 0, 1, 1, c_white, 1);
draw_surface_part_ext(_edBuf, 0, 0, _sw / 2, _sh, _sw, 0, -1, 1, c_white, 1);
}
if(i == 2 || i == 3) {
draw_surface_part_ext(_edBuf, 0, 0, _sw, _sh / 2, 0, 0, 1, 1, c_white, 1);
draw_surface_part_ext(_edBuf, 0, 0, _sw, _sh / 2, 0, _sh, 1, -1, c_white, 1);
}
} else if(j == 6) {
if(i == 0 || i == 1) {
draw_surface_part_ext(_edBuf, 0, 0, _sw / 2, _sh, _sw / 2, 0, 1, 1, c_white, 1);
draw_surface_part_ext(_edBuf, 0, 0, _sw / 2, _sh, _sw / 2, 0, -1, 1, c_white, 1);
}
if(i == 2 || i == 3) {
draw_surface_part_ext(_edBuf, 0, 0, _sw, _sh / 2, 0, _sh / 2, 1, 1, c_white, 1);
draw_surface_part_ext(_edBuf, 0, 0, _sw, _sh / 2, 0, _sh / 2, 1, -1, c_white, 1);
}
}
BLEND_NORMAL
surface_reset_target(); #endregion
_edBuf = __edge_buffer[1]; _edBuf = __edge_buffer[2];
}
} }
surface_set_target(__edge_surface[_sIndx]); #region surface_set_target(__edge_surface[_sIndx]); #region
DRAW_CLEAR DRAW_CLEAR
BLEND_OVERRIDE BLEND_OVERRIDE
var _rr = 0;
var _xx = 0; var _xx = 0;
var _yy = 0; var _yy = 0;
if(_edgType == 0) {
_rr = _rot[i];
if(_edgSprt) {
if(i == 1 && j != 1) _rr += 180;
if(i == 2 && j == 0) _rr += 180;
if(i == 3 && j == 2) _rr += 180;
}
_pp = point_rotate(0, 0, _sw / 2, _sh / 2, _rr);
_xx = _pp[0];
_yy = _pp[1];
}
switch(i) { switch(i) {
case 0 : _yy += _edShf; break; case 0 : _yy += _edShf; break;
case 1 : _yy -= _edShf; break; case 1 : _yy -= _edShf; break;
@ -441,7 +495,7 @@ function Node_MK_Tile(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
case 3 : _xx -= _edShf; break; case 3 : _xx -= _edShf; break;
} }
draw_surface_ext(_edBuf, _xx, _yy, 1, 1, _rr, c_white, 1); draw_surface(_edBuf, _xx, _yy);
BLEND_NORMAL BLEND_NORMAL
surface_reset_target(); #endregion surface_reset_target(); #endregion

View file

@ -399,7 +399,7 @@ function __initNodes() {
addNodeObject(input, "Animation", s_node_image_animation, "Node_Image_Animated", [0, Node_create_Image_Animated],, "Load multiple images from your computer as animation."); addNodeObject(input, "Animation", s_node_image_animation, "Node_Image_Animated", [0, Node_create_Image_Animated],, "Load multiple images from your computer as animation.");
addNodeObject(input, "Array to Anim", s_node_image_sequence_to_anim, "Node_Sequence_Anim", [1, Node_Sequence_Anim],, "Convert array of images into animation."); addNodeObject(input, "Array to Anim", s_node_image_sequence_to_anim, "Node_Sequence_Anim", [1, Node_Sequence_Anim],, "Convert array of images into animation.");
if(!DEMO) addNodeObject(input, "Export", s_node_export, "Node_Export", [0, Node_create_Export],, "Export image, image array to file, image sequence, animation."); if(!DEMO) addNodeObject(input, "Export", s_node_export, "Node_Export", [0, Node_create_Export],, "Export image, image array to file, image sequence, animation.");
ds_list_add(input, "Files"); ds_list_add(input, "Files");
addNodeObject(input, "Text File In", s_node_text_file_read, "Node_Text_File_Read", [1, Node_Text_File_Read], ["txt"], "Load .txt in as text.").setVersion(1080); addNodeObject(input, "Text File In", s_node_text_file_read, "Node_Text_File_Read", [1, Node_Text_File_Read], ["txt"], "Load .txt in as text.").setVersion(1080);
addNodeObject(input, "Text File Out", s_node_text_file_write, "Node_Text_File_Write", [1, Node_Text_File_Write], ["txt"], "Save text as a .txt file.").setVersion(1090); addNodeObject(input, "Text File Out", s_node_text_file_write, "Node_Text_File_Write", [1, Node_Text_File_Write], ["txt"], "Save text as a .txt file.").setVersion(1090);
@ -438,6 +438,7 @@ function __initNodes() {
addNodeObject(transform, "Composite", s_node_compose, "Node_Composite", [1, Node_Composite], ["merge"], "Combine multiple images with controllable position, rotation, scale."); addNodeObject(transform, "Composite", s_node_compose, "Node_Composite", [1, Node_Composite], ["merge"], "Combine multiple images with controllable position, rotation, scale.");
addNodeObject(transform, "Nine Slice", s_node_9patch, "Node_9Slice", [1, Node_9Slice], ["9 slice", "splice"], "Cut image into 3x3 parts, and scale/repeat only the middle part."); addNodeObject(transform, "Nine Slice", s_node_9patch, "Node_9Slice", [1, Node_9Slice], ["9 slice", "splice"], "Cut image into 3x3 parts, and scale/repeat only the middle part.");
addNodeObject(transform, "Padding", s_node_padding, "Node_Padding", [1, Node_Padding],, "Make image bigger by adding space in 4 directions."); addNodeObject(transform, "Padding", s_node_padding, "Node_Padding", [1, Node_Padding],, "Make image bigger by adding space in 4 directions.");
//addNodeObject(transform, "Tile Random", s_node_padding, "Node_Tile_Random", [1, Node_Tile_Random]);
#endregion #endregion
var filter = ds_list_create(); #region var filter = ds_list_create(); #region
@ -620,7 +621,8 @@ function __initNodes() {
addNodeObject(generator, "MK GridBalls", s_node_mk_ball_grid, "Node_MK_GridBalls", [1, Node_MK_GridBalls]).setVersion(11600); addNodeObject(generator, "MK GridBalls", s_node_mk_ball_grid, "Node_MK_GridBalls", [1, Node_MK_GridBalls]).setVersion(11600);
addNodeObject(generator, "MK GridFlip", s_node_mk_flip_grid, "Node_MK_GridFlip", [1, Node_MK_GridFlip]).setVersion(11600); addNodeObject(generator, "MK GridFlip", s_node_mk_flip_grid, "Node_MK_GridFlip", [1, Node_MK_GridFlip]).setVersion(11600);
addNodeObject(generator, "MK Saber", s_node_mk_saber, "Node_MK_Saber", [1, Node_MK_Saber]).setVersion(11600); addNodeObject(generator, "MK Saber", s_node_mk_saber, "Node_MK_Saber", [1, Node_MK_Saber]).setVersion(11600);
if(TESTING) addNodeObject(generator, "MK Tile", s_node_mk_saber, "Node_MK_Tile", [1, Node_MK_Tile]).setVersion(11600); addNodeObject(generator, "MK Tile", s_node_mk_tile, "Node_MK_Tile", [1, Node_MK_Tile]).setVersion(11600);
if(TESTING) addNodeObject(generator, "MK Flag", s_node_mk_tile, "Node_MK_Flag", [1, Node_MK_Flag]).setVersion(11600);
#endregion #endregion
var compose = ds_list_create(); #region var compose = ds_list_create(); #region

View file

@ -0,0 +1,40 @@
function Node_Tile_Random(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Tile Random";
dimension_index = -1;
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 1] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, DEF_SURF)
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 2] = nodeValue("Randomness", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5)
.setDisplay(VALUE_DISPLAY.slider);
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone);
input_display_list = [ 1,
["Surfaces", true], 0,
["Tiling", false], 2,
];
static processData = function(_outSurf, _data, _output_index, _array_index) {
var _surf = _data[0];
var dim = _data[1];
var rand = _data[2];
var _sw = surface_get_width_safe(_surf);
var _sh = surface_get_height_safe(_surf);
_outSurf = surface_verify(_outSurf, dim[0], dim[1]);
surface_set_shader(_outSurf, sh_tile_random);
shader_set_surface("surface", _surf);
shader_set_f("blend", rand);
shader_set_f("scale", dim[0] / _sw, dim[1] / _sh);
draw_sprite_stretched(s_fx_pixel, 0, 0, 0, dim[0], dim[1]);
surface_reset_shader();
return _outSurf;
}
}

View file

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

View file

@ -1710,8 +1710,8 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru
switch(res) { switch(res) {
case EXPRESS_TREE_ANIM.none : return false; case EXPRESS_TREE_ANIM.none : return false;
case EXPRESS_TREE_ANIM.base_value : return is_anim; case EXPRESS_TREE_ANIM.base_value : force_requeue = true; return is_anim;
case EXPRESS_TREE_ANIM.animated : return true; case EXPRESS_TREE_ANIM.animated : force_requeue = true; return true;
} }
} }

View file

@ -4,16 +4,16 @@ function Node_Wiggler(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
w = 96; w = 96;
inputs[| 0] = nodeValue("Range", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [0, 1]) inputs[| 0] = nodeValue("Range", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 1 ])
.setDisplay(VALUE_DISPLAY.vector); .setDisplay(VALUE_DISPLAY.vector);
inputs[| 1] = nodeValue("Frequency", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4 ) inputs[| 1] = nodeValue("Frequency", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4 )
.setDisplay(VALUE_DISPLAY.slider, { range: [1, 32, 1] }); .setDisplay(VALUE_DISPLAY.slider, { range: [1, 32, 1] });
inputs[| 2] = nodeValue("Seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, irandom(9999999) ); inputs[| 2] = nodeValue("Seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, irandom_range(1000000, 9999999) );
inputs[| 3] = nodeValue("Display", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1 ) inputs[| 3] = nodeValue("Display", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1 )
.setDisplay(VALUE_DISPLAY.enum_scroll, ["Number", "Graph"]) .setDisplay(VALUE_DISPLAY.enum_scroll, [ "Number", "Graph" ])
outputs[| 0] = nodeValue("Output", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0); outputs[| 0] = nodeValue("Output", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0);
@ -24,7 +24,7 @@ function Node_Wiggler(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
random_value = array_create(64, 0); random_value = array_create(64, 0);
static onValueUpdate = function(index = 0) { static onValueUpdate = function(index = 0) { #region
var ran = getSingleValue(0); var ran = getSingleValue(0);
var fre = getSingleValue(1); var fre = getSingleValue(1);
var sed = getSingleValue(2); var sed = getSingleValue(2);
@ -32,18 +32,18 @@ function Node_Wiggler(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
var step = TOTAL_FRAMES / 64; var step = TOTAL_FRAMES / 64;
for( var i = 0; i < 64; i++ ) for( var i = 0; i < 64; i++ )
random_value[i] = getWiggle(array_safe_get(ran, 0), array_safe_get(ran, 1), TOTAL_FRAMES / fre, step * i, sed, 0, TOTAL_FRAMES); random_value[i] = getWiggle(array_safe_get(ran, 0), array_safe_get(ran, 1), TOTAL_FRAMES / fre, step * i, sed, 0, TOTAL_FRAMES);
} } run_in(1, function() { onValueUpdate(); }); #endregion
static processData = function(_output, _data, _output_index, _array_index = 0) { static processData = function(_output, _data, _output_index, _array_index = 0) { #region
var ran = _data[0]; var ran = _data[0];
var fre = _data[1]; var fre = _data[1];
var sed = _data[2]; var sed = _data[2];
var time = CURRENT_FRAME; var time = CURRENT_FRAME;
return getWiggle(array_safe_get(ran, 0), array_safe_get(ran, 1), TOTAL_FRAMES / fre, time, sed, 0, TOTAL_FRAMES); return getWiggle(array_safe_get(ran, 0), array_safe_get(ran, 1), TOTAL_FRAMES / fre, time, sed, 0, TOTAL_FRAMES);
} } #endregion
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) { static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) { #region
var ran = array_safe_get(current_data, 0); var ran = array_safe_get(current_data, 0);
var fre = array_safe_get(current_data, 1); var fre = array_safe_get(current_data, 1);
var sed = array_safe_get(current_data, 2); var sed = array_safe_get(current_data, 2);
@ -53,9 +53,12 @@ function Node_Wiggler(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
if(!is_array(ran)) return; if(!is_array(ran)) return;
var _h = min_h;
switch(disp) { switch(disp) {
case 0 : case 0 :
w = 96; w = 96;
_h = 0;
draw_set_text(f_sdf, fa_center, fa_center, COLORS._main_text); draw_set_text(f_sdf, fa_center, fa_center, COLORS._main_text);
var str = getWiggle(ran[0], ran[1], TOTAL_FRAMES / fre, time, sed, 0, TOTAL_FRAMES); var str = getWiggle(ran[0], ran[1], TOTAL_FRAMES / fre, time, sed, 0, TOTAL_FRAMES);
@ -63,8 +66,8 @@ function Node_Wiggler(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
draw_text_transformed(xx + w / 2 * _s, yy + 10 + h / 2 * _s, str, ss, ss, 0); draw_text_transformed(xx + w / 2 * _s, yy + 10 + h / 2 * _s, str, ss, ss, 0);
break; break;
case 1 : case 1 :
w = 128; w = 128;
min_h = 96; _h = 96;
var _min = ran[0]; var _min = ran[0];
var _max = ran[1]; var _max = ran[1];
@ -80,26 +83,35 @@ function Node_Wiggler(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c
var yc = (y0 + y1) / 2; var yc = (y0 + y1) / 2;
draw_set_color(COLORS.node_wiggler_frame); draw_set_color(COLORS.node_wiggler_frame);
draw_set_alpha(0.5);
draw_line(x0, yc, x1, yc); draw_line(x0, yc, x1, yc);
var _fx = x0 + (time / total_time * ww); draw_set_alpha(1);
draw_line(_fx, y0, _fx, y1);
var lw = ww / (64 - 1); var lw = ww / (64 - 1);
draw_set_color(COLORS.node_wiggler_frame);
var ox, oy; var ox, oy;
draw_set_color(c_white);
for( var i = 0; i < 64; i++ ) { for( var i = 0; i < 64; i++ ) {
var _x = x0 + i * lw; var _x = x0 + i * lw;
var _y = yc - (random_value[i] - val) / _ran * hh; var _y = yc - (random_value[i] - val) / _ran * hh;
if(i) if(i) draw_line(ox, oy, _x, _y);
draw_line(ox, oy, _x, _y);
ox = _x; ox = _x;
oy = _y; oy = _y;
} }
draw_set_color(COLORS._main_accent);
var _fx = x0 + (time / total_time * ww);
draw_line(_fx, y0, _fx, y1);
draw_set_color(COLORS.node_wiggler_frame); draw_set_color(COLORS.node_wiggler_frame);
draw_rectangle(x0, y0, x1, y1, true); draw_rectangle(x0, y0, x1, y1, true);
break; break;
} }
}
if(min_h != _h) {
min_h = _h;
will_setHeight = true;
}
} #endregion
static doApplyDeserialize = function() { onValueUpdate(); }
} }

View file

@ -408,7 +408,7 @@ function Panel_Inspector() : PanelContent() constructor {
//draw_sprite_ui(THEME.search, 0, ui(32 + 16), _y + ui(4 + 14), 1, 1, 0, COLORS._main_icon, 1); //draw_sprite_ui(THEME.search, 0, ui(32 + 16), _y + ui(4 + 14), 1, 1, 0, COLORS._main_icon, 1);
prop_page_button.setFocusHover(pFOCUS, pHOVER); prop_page_button.setFocusHover(pFOCUS, pHOVER);
prop_page_button.draw(ui(32), _y + ui(4), contentPane.w - ui(76), ui(28), prop_page, _m); prop_page_button.draw(ui(32), _y + ui(4), contentPane.w - ui(76), ui(28), prop_page, _m, x + contentPane.x, y + contentPane.y);
var xc = con_w / 2; var xc = con_w / 2;

View file

@ -259,7 +259,6 @@
self.r = r; self.r = r;
dependency = []; dependency = [];
anim_stat = undefined; anim_stat = undefined;
anim_cache = true;
static _string = function(str) { #region static _string = function(str) { #region
return string_char_at(str, 1) == "\"" && string_char_at(str, string_length(str)) == "\""; return string_char_at(str, 1) == "\"" && string_char_at(str, string_length(str)) == "\"";
@ -340,15 +339,11 @@
} }
if(val == "value") return EXPRESS_TREE_ANIM.base_value; if(val == "value") return EXPRESS_TREE_ANIM.base_value;
var anim = nodeGetDataAnim(val); //var anim = nodeGetDataAnim(val);
anim_cache &= anim[1]; return EXPRESS_TREE_ANIM.animated;
return anim[0];
} #endregion } #endregion
static isDynamic = function() { #region static isDynamic = function() { #region
if(anim_cache && anim_stat != undefined) return anim_stat;
anim_stat = EXPRESS_TREE_ANIM.none; anim_stat = EXPRESS_TREE_ANIM.none;
anim_stat = max(anim_stat, _isAnimated(l)); anim_stat = max(anim_stat, _isAnimated(l));
if(symbol != "@") anim_stat = max(anim_stat, _isAnimated(r)); if(symbol != "@") anim_stat = max(anim_stat, _isAnimated(r));

View file

@ -210,7 +210,8 @@ function Render(partial = false, runAction = false) { #region
if(runAction && rendering.hasInspector1Update()) if(runAction && rendering.hasInspector1Update())
rendering.inspector1Update(); rendering.inspector1Update();
} } else if(rendering.force_requeue)
RENDER_QUEUE.enqueue(rendering);
LOG_BLOCK_END(); LOG_BLOCK_END();
} }

View file

@ -89,7 +89,7 @@ function slider(_min, _max, _step, _onModify = noone, _onRelease = noone) : widg
draw_sprite_stretched_ext(spr, 0, _x - ui(4), _y + _h / 2 - ui(4), sw + ui(8), ui(8), blend, 1); draw_sprite_stretched_ext(spr, 0, _x - ui(4), _y + _h / 2 - ui(4), sw + ui(8), ui(8), blend, 1);
if(stepSize >= 1 && sw / ((curr_maxx - curr_minn) / stepSize) > ui(8)) { if(stepSize >= 1 && sw / ((curr_maxx - curr_minn) / stepSize) > ui(16)) {
for( var i = curr_minn; i <= curr_maxx; i += stepSize ) { for( var i = curr_minn; i <= curr_maxx; i += stepSize ) {
var _v = round(i / stepSize) * stepSize; var _v = round(i / stepSize) * stepSize;
var _cx = _x + clamp((_v - curr_minn) / (curr_maxx - curr_minn), 0, 1) * sw; var _cx = _x + clamp((_v - curr_minn) / (curr_maxx - curr_minn), 0, 1) * sw;

View file

@ -54,7 +54,7 @@ function sliderRange(_min, _max, _step, _onModify) : widget() constructor {
var _x0 = _x + tb_w + ui(16); var _x0 = _x + tb_w + ui(16);
draw_sprite_stretched(spr, 0, _x0, _y + _h / 2 - ui(4), sw, ui(8)); draw_sprite_stretched(spr, 0, _x0, _y + _h / 2 - ui(4), sw, ui(8));
if(stepSize >= 1 && sw / ((maxx - minn) / stepSize) > ui(8)) { if(stepSize >= 1 && sw / ((maxx - minn) / stepSize) > ui(16)) {
for( var i = minn; i <= maxx; i += stepSize ) { for( var i = minn; i <= maxx; i += stepSize ) {
var _v = round(i / stepSize) * stepSize; var _v = round(i / stepSize) * stepSize;
var _cx = _x + clamp((_v - minn) / (maxx - minn), 0, 1) * sw; var _cx = _x + clamp((_v - minn) / (maxx - minn), 0, 1) * sw;

View file

@ -5,20 +5,39 @@ varying vec2 v_vTexcoord;
varying vec4 v_vColour; varying vec4 v_vColour;
uniform float strength; uniform float strength;
uniform vec2 center; uniform vec2 center;
uniform int sampleMode; uniform int sampleMode;
uniform int blurMode; uniform int blurMode;
uniform int useMask; uniform int useMask;
uniform sampler2D mask; uniform sampler2D mask;
float sampleMask() { #region ==== PARAM DRIVER ====
#define PARAM_COUNT 1
uniform int parameter_active[PARAM_COUNT];
uniform sampler2D parameters;
float sampleParameter(in int index, in float def) {
if(parameter_active[index] == 0) return def;
float row = floor(float(index) / 4.);
vec2 coord = (v_vTexcoord + vec2(float(index) - row * 4., row)) * 0.25;
vec4 col = texture2D( parameters, coord );
float _val = col.r;
float _min = col.g * 256. - 128.;
float _max = col.b * 256. - 128.;
return mix(_min, _max, _val);
}
#endregion
float sampleMask() { #region
if(useMask == 0) return 1.; if(useMask == 0) return 1.;
vec4 m = texture2D( mask, v_vTexcoord ); vec4 m = texture2D( mask, v_vTexcoord );
return (m.r + m.g + m.b) / 3. * m.a; return (m.r + m.g + m.b) / 3. * m.a;
} } #endregion
vec4 sampleTexture(vec2 pos) { vec4 sampleTexture(vec2 pos) { #region
if(pos.x >= 0. && pos.y >= 0. && pos.x <= 1. && pos.y <= 1.) if(pos.x >= 0. && pos.y >= 0. && pos.x <= 1. && pos.y <= 1.)
return texture2D(gm_BaseTexture, pos); return texture2D(gm_BaseTexture, pos);
@ -30,23 +49,20 @@ vec4 sampleTexture(vec2 pos) {
return texture2D(gm_BaseTexture, fract(pos)); return texture2D(gm_BaseTexture, fract(pos));
return vec4(0.); return vec4(0.);
} } #endregion
void main() { void main() { #region
vec2 uv = v_vTexcoord - center; vec2 uv = v_vTexcoord - center;
float str = strength * sampleMask(); float str = sampleParameter(0, strength) * sampleMask();
float nsamples = 64.; float nsamples = 64.;
float scale_factor = str * (1. / (nsamples * 2. - 1.)); float scale_factor = str * (1. / (nsamples * 2. - 1.));
vec4 color = vec4(0.0); vec4 color = vec4(0.0);
float blrStart = 0.; float blrStart = 0.;
if(blurMode == 0) if(blurMode == 0) blrStart = 0.;
blrStart = 0.; else if(blurMode == 1) blrStart = -nsamples;
else if(blurMode == 1) else if(blurMode == 2) blrStart = -nsamples * 2. - 1.;
blrStart = -nsamples;
else if(blurMode == 2)
blrStart = -nsamples * 2. - 1.;
for(float i = 0.; i < nsamples * 2. + 1.; i++) { for(float i = 0.; i < nsamples * 2. + 1.; i++) {
float scale = 1.0 + ((blrStart + i) * scale_factor); float scale = 1.0 + ((blrStart + i) * scale_factor);
@ -57,5 +73,4 @@ void main() {
color /= nsamples * 2. + 1.; color /= nsamples * 2. + 1.;
gl_FragColor = color; gl_FragColor = color;
} } #endregion

View file

@ -18,29 +18,29 @@ void main() {
if(edge == 2) { if(edge == 2) {
if(fullEdge == 0 && tx.x < w - tx.y) discard; if(fullEdge == 0 && tx.x < w - tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.x < crop[2] ) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.x < crop[2] ) discard;
} else if(edge == 3) { } else if(edge == 3) {
} else if(edge == 1) { } else if(edge == 1) {
if(fullEdge == 0 && tx.x > tx.y) discard; if(fullEdge == 0 && tx.x > tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.x > w - crop[0]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.x > w - crop[0]) discard;
} else if(edge == 7) { } else if(edge == 7) {
if(fullEdge == 0 && tx.x + crop[2] < tx.y + crop[1]) discard; if(fullEdge == 0 && tx.x + crop[2] < tx.y + crop[1]) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.x < crop[2]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.x < crop[2]) discard;
} else if(edge == 11) { } else if(edge == 11) {
if(fullEdge == 0 && tx.x - crop[0] > h - tx.y - crop[3]) discard; if(fullEdge == 0 && tx.x - crop[0] > h - tx.y - crop[3]) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.x > w - crop[0]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.x > w - crop[0]) discard;
} else if(edge == 9) { } else if(edge == 9) {
if(fullEdge == 0 && tx.x + crop[2] > tx.y + crop[3]) discard; if(fullEdge == 0 && tx.x + crop[2] > tx.y + crop[3]) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.x > w - crop[0]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.x > w - crop[0]) discard;
} else if(edge == 6) { } else if(edge == 6) {
if(fullEdge == 0 && tx.x - crop[0] < h - tx.y - crop[1]) discard; if(fullEdge == 0 && tx.x - crop[0] < h - tx.y - crop[1]) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.x < crop[2]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.x < crop[2]) discard;
} else { } else {
discard; discard;

View file

@ -18,29 +18,29 @@ void main() {
if(edge == 8) { if(edge == 8) {
if(fullEdge == 0 && tx.x > tx.y) discard; if(fullEdge == 0 && tx.x > tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.y < crop[1]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.y < crop[1]) discard;
} else if(edge == 10) { } else if(edge == 10) {
} else if(edge == 2) { } else if(edge == 2) {
if(fullEdge == 0 && tx.x > h - tx.y) discard; if(fullEdge == 0 && tx.x > h - tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.y > h - crop[3]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.y > h - crop[3]) discard;
} else if(edge == 11) { } else if(edge == 11) {
if(fullEdge == 0 && tx.x + crop[0] < h - tx.y + crop[3]) discard; if(fullEdge == 0 && tx.x + crop[0] < h - tx.y + crop[3]) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.y < crop[1]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.y < crop[1]) discard;
} else if(edge == 14) { } else if(edge == 14) {
if(fullEdge == 0 && tx.x + crop[0] < tx.y + crop[3]) discard; if(fullEdge == 0 && tx.x + crop[0] < tx.y + crop[3]) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.y > h - crop[3]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.y > h - crop[3]) discard;
} else if(edge == 6) { } else if(edge == 6) {
if(fullEdge == 0 && tx.x > h - tx.y) discard; if(fullEdge == 0 && tx.x > h - tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.y > h - crop[3]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.y > h - crop[3]) discard;
} else if(edge == 9) { } else if(edge == 9) {
if(fullEdge == 0 && tx.x > tx.y) discard; if(fullEdge == 0 && tx.x > tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.y < crop[1]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.y < crop[1]) discard;
} else { } else {
discard; discard;

View file

@ -18,29 +18,29 @@ void main() {
if(edge == 4) { if(edge == 4) {
if(fullEdge == 0 && tx.x < h - tx.y) discard; if(fullEdge == 0 && tx.x < h - tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.y < crop[1]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.y < crop[1]) discard;
} else if(edge == 5) { } else if(edge == 5) {
} else if(edge == 1) { } else if(edge == 1) {
if(fullEdge == 0 && tx.x < tx.y) discard; if(fullEdge == 0 && tx.x < tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.y > h - crop[3]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.y > h - crop[3]) discard;
} else if(edge == 7) { } else if(edge == 7) {
if(fullEdge == 0 && tx.x + crop[0] > tx.y + crop[3]) discard; if(fullEdge == 0 && tx.x + crop[0] > tx.y + crop[3]) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.y < crop[1]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.y < crop[1]) discard;
} else if(edge == 13) { } else if(edge == 13) {
if(fullEdge == 0 && tx.x + crop[0] > h - tx.y + crop[3]) discard; if(fullEdge == 0 && tx.x + crop[0] > h - tx.y + crop[3]) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.y > h - crop[3]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.y > h - crop[3]) discard;
} else if(edge == 9) { } else if(edge == 9) {
if(fullEdge == 0 && tx.x < tx.y) discard; if(fullEdge == 0 && tx.x < tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.y > h - crop[3]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.y > h - crop[3]) discard;
} else if(edge == 6) { } else if(edge == 6) {
if(fullEdge == 0 && tx.x < h - tx.y) discard; if(fullEdge == 0 && tx.x < h - tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.y < crop[1]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.y < crop[1]) discard;
} else { } else {
discard; discard;

View file

@ -18,29 +18,29 @@ void main() {
if(edge == 8) { if(edge == 8) {
if(fullEdge == 0 && tx.x < tx.y) discard; if(fullEdge == 0 && tx.x < tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.x < crop[2] ) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.x < crop[2] ) discard;
} else if(edge == 12) { } else if(edge == 12) {
} else if(edge == 4) { } else if(edge == 4) {
if(fullEdge == 0 && tx.x > h - tx.y) discard; if(fullEdge == 0 && tx.x > h - tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.x > w - crop[0]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.x > w - crop[0]) discard;
} else if(edge == 13) { } else if(edge == 13) {
if(fullEdge == 0 && tx.x - crop[2] < h - tx.y - crop[3]) discard; if(fullEdge == 0 && tx.x - crop[2] < h - tx.y - crop[3]) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.x < crop[2]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.x < crop[2]) discard;
} else if(edge == 14) { } else if(edge == 14) {
if(fullEdge == 0 && tx.x + crop[0] > tx.y + crop[1]) discard; if(fullEdge == 0 && tx.x + crop[0] > tx.y + crop[1]) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.x > w - crop[0]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.x > w - crop[0]) discard;
} else if(edge == 9) { } else if(edge == 9) {
if(fullEdge == 0 && tx.x - crop[2] < tx.y - crop[1]) discard; if(fullEdge == 0 && tx.x - crop[2] < tx.y - crop[1]) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.x < crop[2]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.x < crop[2]) discard;
} else if(edge == 6) { } else if(edge == 6) {
if(fullEdge == 0 && tx.x + crop[0] > h - tx.y + crop[3]) discard; if(fullEdge == 0 && tx.x + crop[0] > h - tx.y + crop[3]) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.x > w - crop[0]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.x > w - crop[0]) discard;
} else { } else {
discard; discard;

View file

@ -18,19 +18,19 @@ void main() {
if(edge == 22 || edge == 16 || edge == 18) { if(edge == 22 || edge == 16 || edge == 18) {
if(fullEdge == 0 && tx.x < w - tx.y) discard; if(fullEdge == 0 && tx.x < w - tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.x < crop[2] ) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.x < crop[2] ) discard;
} else if(edge == 7 || edge == 24 || edge == 27 || edge == 30 || edge == 26 ) { } else if(edge == 7 || edge == 24 || edge == 27 || edge == 30 || edge == 26 ) {
} else if(edge == 11 || edge == 8 || edge == 10) { } else if(edge == 11 || edge == 8 || edge == 10) {
if(fullEdge == 0 && tx.x > tx.y) discard; if(fullEdge == 0 && tx.x > tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.x > w - crop[0]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.x > w - crop[0]) discard;
} else if(edge == 2 || edge == 0) { } else if(edge == 2 || edge == 0) {
if(fullEdge == 0 && tx.x < w - tx.y) discard; if(fullEdge == 0 && tx.x < w - tx.y) discard;
if(fullEdge == 0 && tx.x > tx.y) discard; if(fullEdge == 0 && tx.x > tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.x < crop[2] ) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.x < crop[2] ) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.x > w - crop[0]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.x > w - crop[0]) discard;
} else { } else {
bool draw = false; bool draw = false;
@ -38,14 +38,20 @@ void main() {
if(edge == 80 || edge == 120 || edge == 86 || edge == 127 || edge == 82 || edge == 123 || edge == 88 || edge == 95 || edge == 126 || edge == 122 || edge == 94 || edge == 91 || edge == 90) { if(edge == 80 || edge == 120 || edge == 86 || edge == 127 || edge == 82 || edge == 123 || edge == 88 || edge == 95 || edge == 126 || edge == 122 || edge == 94 || edge == 91 || edge == 90) {
if(fullEdge == 0 && tx.x + crop[2] >= tx.y + crop[1]) if(fullEdge == 0 && tx.x + crop[2] >= tx.y + crop[1])
draw = true; draw = true;
if(fullEdge == 1 && (extendEdge == 1 || tx.x > w - crop[0]))
//if(fullEdge == 1 && (extendEdge == 1 || tx.x > w - crop[0]))
// draw = true;
if(fullEdge == 1)
draw = true; draw = true;
} }
if(edge == 216 || edge == 72 || edge == 223 || edge == 75 || edge == 222 || edge == 74 || edge == 88 || edge == 219 || edge == 95 || edge == 218 || edge == 94 || edge == 91 || edge == 90) { if(edge == 216 || edge == 72 || edge == 223 || edge == 75 || edge == 222 || edge == 74 || edge == 88 || edge == 219 || edge == 95 || edge == 218 || edge == 94 || edge == 91 || edge == 90) {
if(fullEdge == 0 && tx.x - crop[0] < h - tx.y - crop[3]) if(fullEdge == 0 && tx.x - crop[0] < h - tx.y - crop[3])
draw = true; draw = true;
if(fullEdge == 1 && (extendEdge == 1 || tx.x < crop[2]))
//if(fullEdge == 1 && (extendEdge == 1 || tx.x < crop[2]))
// draw = true;
if(fullEdge == 1)
draw = true; draw = true;
} }

View file

@ -18,19 +18,19 @@ void main() {
if(edge == 208 || edge == 64 || edge == 80) { if(edge == 208 || edge == 64 || edge == 80) {
if(fullEdge == 0 && tx.x > tx.y) discard; if(fullEdge == 0 && tx.x > tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.y < crop[1]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.y < crop[1]) discard;
} else if(edge == 148 || edge == 66 || edge == 86 || edge == 210 || edge == 82) { } else if(edge == 148 || edge == 66 || edge == 86 || edge == 210 || edge == 82) {
} else if(edge == 22 || edge == 2 || edge == 18) { } else if(edge == 22 || edge == 2 || edge == 18) {
if(fullEdge == 0 && tx.x > h - tx.y) discard; if(fullEdge == 0 && tx.x > h - tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.y > h - crop[3]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.y > h - crop[3]) discard;
} else if(edge == 16 || edge == 0) { } else if(edge == 16 || edge == 0) {
if(fullEdge == 0 && tx.x > tx.y) discard; if(fullEdge == 0 && tx.x > tx.y) discard;
if(fullEdge == 0 && tx.x > h - tx.y) discard; if(fullEdge == 0 && tx.x > h - tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.y < crop[1]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.y < crop[1]) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.y > h - crop[3]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.y > h - crop[3]) discard;
} else { } else {
bool draw = false; bool draw = false;
@ -38,14 +38,20 @@ void main() {
if(edge == 216 || edge == 72 || edge == 223 || edge == 75 || edge == 222 || edge == 74 || edge == 95 || edge == 88 || edge == 219 || edge == 218 || edge == 94 || edge == 91 || edge == 90) { if(edge == 216 || edge == 72 || edge == 223 || edge == 75 || edge == 222 || edge == 74 || edge == 95 || edge == 88 || edge == 219 || edge == 218 || edge == 94 || edge == 91 || edge == 90) {
if(fullEdge == 0 && tx.x - crop[0] >= h - tx.y - crop[3]) if(fullEdge == 0 && tx.x - crop[0] >= h - tx.y - crop[3])
draw = true; draw = true;
if(fullEdge == 1 && (extendEdge == 1 || tx.y > h - crop[3]))
//if(fullEdge == 1 && (extendEdge == 1 || tx.y > h - crop[3]))
// draw = true;
if(fullEdge == 1)
draw = true; draw = true;
} }
if(edge == 254 || edge == 106 || edge == 30 || edge == 10 || edge == 222 || edge == 74 || edge == 126 || edge == 250 || edge == 218 || edge == 122 || edge == 26 || edge == 94 || edge == 90) { if(edge == 254 || edge == 106 || edge == 30 || edge == 10 || edge == 222 || edge == 74 || edge == 126 || edge == 250 || edge == 218 || edge == 122 || edge == 26 || edge == 94 || edge == 90) {
if(fullEdge == 0 && tx.x - crop[0] > tx.y - crop[3]) if(fullEdge == 0 && tx.x - crop[0] > tx.y - crop[3])
draw = true; draw = true;
if(fullEdge == 1 && (extendEdge == 1 || tx.y < crop[1]))
//if(fullEdge == 1 && (extendEdge == 1 || tx.y < crop[1]))
// draw = true;
if(fullEdge == 1)
draw = true; draw = true;
} }

View file

@ -18,19 +18,19 @@ void main() {
if(edge == 104 || edge == 64 || edge == 72) { if(edge == 104 || edge == 64 || edge == 72) {
if(fullEdge == 0 && tx.x < h - tx.y) discard; if(fullEdge == 0 && tx.x < h - tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.y < crop[1]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.y < crop[1]) discard;
} else if(edge == 41 || edge == 66 || edge == 75 || edge == 106 || edge == 74) { } else if(edge == 41 || edge == 66 || edge == 75 || edge == 106 || edge == 74) {
} else if(edge == 11 || edge == 2 || edge == 10) { } else if(edge == 11 || edge == 2 || edge == 10) {
if(fullEdge == 0 && tx.x < tx.y) discard; if(fullEdge == 0 && tx.x < tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.y > h - crop[3]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.y > h - crop[3]) discard;
} else if(edge == 8 || edge == 0) { } else if(edge == 8 || edge == 0) {
if(fullEdge == 0 && tx.x < h - tx.y) discard; if(fullEdge == 0 && tx.x < h - tx.y) discard;
if(fullEdge == 0 && tx.x < tx.y) discard; if(fullEdge == 0 && tx.x < tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.y < crop[1]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.y < crop[1]) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.y > h - crop[3]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.y > h - crop[3]) discard;
} else { } else {
bool draw = false; bool draw = false;
@ -38,14 +38,20 @@ void main() {
if(edge == 80 || edge == 120 || edge == 86 || edge == 127 || edge == 82 || edge == 123 || edge == 88 || edge == 95 || edge == 126 || edge == 122 || edge == 94 || edge == 91 || edge == 90) { if(edge == 80 || edge == 120 || edge == 86 || edge == 127 || edge == 82 || edge == 123 || edge == 88 || edge == 95 || edge == 126 || edge == 122 || edge == 94 || edge == 91 || edge == 90) {
if(fullEdge == 0 && tx.x - crop[0] <= tx.y - crop[3]) if(fullEdge == 0 && tx.x - crop[0] <= tx.y - crop[3])
draw = true; draw = true;
if(fullEdge == 1 && (extendEdge == 1 || tx.y > h - crop[3]))
//if(fullEdge == 1 && (extendEdge == 1 || tx.y > h - crop[3]))
// draw = true;
if(fullEdge == 1)
draw = true; draw = true;
} }
if(edge == 210 || edge == 251 || edge == 18 || edge == 27 || edge == 82 || edge == 123 || edge == 219 || edge == 250 || edge == 218 || edge == 122 || edge == 26 || edge == 91 || edge == 90) { if(edge == 210 || edge == 251 || edge == 18 || edge == 27 || edge == 82 || edge == 123 || edge == 219 || edge == 250 || edge == 218 || edge == 122 || edge == 26 || edge == 91 || edge == 90) {
if(fullEdge == 0 && tx.x - crop[0] < h - tx.y - crop[3]) if(fullEdge == 0 && tx.x - crop[0] < h - tx.y - crop[3])
draw = true; draw = true;
if(fullEdge == 1 && (extendEdge == 1 || tx.y < crop[1]))
//if(fullEdge == 1 && (extendEdge == 1 || tx.y < crop[1]))
// draw = true;
if(fullEdge == 1)
draw = true; draw = true;
} }

View file

@ -18,19 +18,19 @@ void main() {
if(edge == 208 || edge == 16 || edge == 80) { if(edge == 208 || edge == 16 || edge == 80) {
if(fullEdge == 0 && tx.x < tx.y) discard; if(fullEdge == 0 && tx.x < tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.x < crop[2] ) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.x < crop[2] ) discard;
} else if(edge == 224 || edge == 24 || edge == 120 || edge == 216 || edge == 88) { } else if(edge == 224 || edge == 24 || edge == 120 || edge == 216 || edge == 88) {
} else if(edge == 104 || edge == 8 || edge == 72) { } else if(edge == 104 || edge == 8 || edge == 72) {
if(fullEdge == 0 && tx.x > h - tx.y) discard; if(fullEdge == 0 && tx.x > h - tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.x > w - crop[0]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.x > w - crop[0]) discard;
} else if(edge == 64 || edge == 0) { } else if(edge == 64 || edge == 0) {
if(fullEdge == 0 && tx.x < tx.y) discard; if(fullEdge == 0 && tx.x < tx.y) discard;
if(fullEdge == 0 && tx.x > h - tx.y) discard; if(fullEdge == 0 && tx.x > h - tx.y) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.x < crop[2] ) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.x < crop[2] ) discard;
if(fullEdge == 1 && extendEdge == 0 && tx.x > w - crop[0]) discard; //if(fullEdge == 1 && extendEdge == 0 && tx.x > w - crop[0]) discard;
} else { } else {
bool draw = false; bool draw = false;
@ -38,14 +38,20 @@ void main() {
if(edge == 210 || edge == 251 || edge == 18 || edge == 27 || edge == 82 || edge == 123 || edge == 219 || edge == 250 || edge == 218 || edge == 122 || edge == 26 || edge == 91 || edge == 90) { if(edge == 210 || edge == 251 || edge == 18 || edge == 27 || edge == 82 || edge == 123 || edge == 219 || edge == 250 || edge == 218 || edge == 122 || edge == 26 || edge == 91 || edge == 90) {
if(fullEdge == 0 && tx.x - crop[2] >= h - tx.y - crop[3]) if(fullEdge == 0 && tx.x - crop[2] >= h - tx.y - crop[3])
draw = true; draw = true;
if(fullEdge == 1 && (extendEdge == 1 || tx.x < crop[2]))
//if(fullEdge == 1 && (extendEdge == 1 || tx.x < crop[2]))
// draw = true;
if(fullEdge == 1)
draw = true; draw = true;
} }
if(edge == 254 || edge == 106 || edge == 30 || edge == 10 || edge == 222 || edge == 74 || edge == 126 || edge == 250 || edge == 218 || edge == 122 || edge == 26 || edge == 94 || edge == 90) { if(edge == 254 || edge == 106 || edge == 30 || edge == 10 || edge == 222 || edge == 74 || edge == 126 || edge == 250 || edge == 218 || edge == 122 || edge == 26 || edge == 94 || edge == 90) {
if(fullEdge == 0 && tx.x + crop[0] <= tx.y + crop[1]) if(fullEdge == 0 && tx.x + crop[0] <= tx.y + crop[1])
draw = true; draw = true;
if(fullEdge == 1 && (extendEdge == 1 || tx.x > w - crop[0]))
//if(fullEdge == 1 && (extendEdge == 1 || tx.x > w - crop[0]))
// draw = true;
if(fullEdge == 1)
draw = true; draw = true;
} }

View file

@ -0,0 +1,50 @@
// The MIT License
// Copyright © 2015 Inigo Quilez
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// https://www.youtube.com/c/InigoQuilez
// https://iquilezles.org
varying vec2 v_vTexcoord;
varying vec4 v_vColour;
uniform sampler2D surface;
uniform float blend;
uniform vec2 scale;
vec4 hash4( vec2 p ) { return fract(sin(vec4( 1.0 + dot(p, vec2(37.0, 17.0)),
2.0 + dot(p, vec2(11.0, 47.0)),
3.0 + dot(p, vec2(41.0, 29.0)),
4.0 + dot(p, vec2(23.0, 31.0)))) * 103.0); }
vec4 textureNoTile( in vec2 uv, float v ) {
vec2 p = floor( uv );
vec2 f = fract( uv );
vec4 va = vec4(0.0);
float w1 = 0.0;
float w2 = 0.0;
for( int j=-1; j<=1; j++ )
for( int i=-1; i<=1; i++ ) {
vec2 g = vec2( float(i), float(j) );
vec4 o = hash4( p + g );
vec2 r = g - f + o.xy;
float d = dot(r, r);
float w = exp(-5.0 * d );
vec4 c = texture2D( surface, fract(uv + v * o.zw) );
va += w * c;
w1 += w;
w2 += w * w;
}
float mean = 0.3;
vec4 res = mean + (va - w1 * mean) / sqrt(w2);
return mix( va / w1, res, v );
}
void main() {
vec2 uv = v_vTexcoord * scale;
gl_FragColor = textureNoTile( uv, blend );
}

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_tile_random",
"parent": {
"name": "filter",
"path": "folders/shader/filter.yy",
},
"type": 1,
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View file

@ -13,14 +13,14 @@
"edgeFiltering": false, "edgeFiltering": false,
"For3D": false, "For3D": false,
"frames": [ "frames": [
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"93617f8b-5294-4379-9291-8997c8659aaf",}, {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"af86ed9d-9f7a-4ab5-9491-23d157754470",},
], ],
"gridX": 0, "gridX": 0,
"gridY": 0, "gridY": 0,
"height": 64, "height": 64,
"HTile": false, "HTile": false,
"layers": [ "layers": [
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"cc424554-c7d8-4d22-ad63-84b7e506e945","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,}, {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"2ef71ed2-22fb-4c55-9b24-72fadd383798","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
], ],
"nineSlice": null, "nineSlice": null,
"origin": 4, "origin": 4,
@ -54,7 +54,7 @@
"timeUnits": 1, "timeUnits": 1,
"tracks": [ "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":"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":"93617f8b-5294-4379-9291-8997c8659aaf","path":"sprites/s_node_mk_ball_grid/s_node_mk_ball_grid.yy",},},},"Disabled":false,"id":"f59f5080-75ed-44e8-9afe-39cd8e92ad39","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":"af86ed9d-9f7a-4ab5-9491-23d157754470","path":"sprites/s_node_mk_ball_grid/s_node_mk_ball_grid.yy",},},},"Disabled":false,"id":"9a2d9d69-0ca2-47c8-b62b-0e3c513f338f","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
], ],
"visibleRange": null, "visibleRange": null,

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -13,14 +13,14 @@
"edgeFiltering": false, "edgeFiltering": false,
"For3D": false, "For3D": false,
"frames": [ "frames": [
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"9346723f-9bfe-4d65-a80e-4ce2643a5b3f",}, {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"7da3fa7b-19e8-4752-9b7b-c42270228ce1",},
], ],
"gridX": 0, "gridX": 0,
"gridY": 0, "gridY": 0,
"height": 64, "height": 64,
"HTile": false, "HTile": false,
"layers": [ "layers": [
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"0abbdf26-32ca-4411-999b-57beff9ac021","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,}, {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"cd81bf79-7b4e-47ef-a4f6-a30761d687f9","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
], ],
"nineSlice": null, "nineSlice": null,
"origin": 4, "origin": 4,
@ -54,7 +54,7 @@
"timeUnits": 1, "timeUnits": 1,
"tracks": [ "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":"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":"9346723f-9bfe-4d65-a80e-4ce2643a5b3f","path":"sprites/s_node_mk_flip_grid/s_node_mk_flip_grid.yy",},},},"Disabled":false,"id":"47e778b6-b6b8-4972-9d4f-a5ae19e40300","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":"7da3fa7b-19e8-4752-9b7b-c42270228ce1","path":"sprites/s_node_mk_flip_grid/s_node_mk_flip_grid.yy",},},},"Disabled":false,"id":"477ea8da-d5c2-4efe-9e3d-9dec04d206e3","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
], ],
"visibleRange": null, "visibleRange": null,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -13,14 +13,14 @@
"edgeFiltering": false, "edgeFiltering": false,
"For3D": false, "For3D": false,
"frames": [ "frames": [
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"18e0d307-8a22-4660-8d07-94154effe0c4",}, {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"fa0422a8-979f-423e-b910-d2c0a55be02e",},
], ],
"gridX": 0, "gridX": 0,
"gridY": 0, "gridY": 0,
"height": 64, "height": 64,
"HTile": false, "HTile": false,
"layers": [ "layers": [
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"7d4701da-57f9-4127-8e80-c019bcffa559","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,}, {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"d5781296-7570-45f0-8e69-34e87e3f5e36","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
], ],
"nineSlice": null, "nineSlice": null,
"origin": 4, "origin": 4,
@ -54,7 +54,7 @@
"timeUnits": 1, "timeUnits": 1,
"tracks": [ "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":"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":"18e0d307-8a22-4660-8d07-94154effe0c4","path":"sprites/s_node_mk_rain/s_node_mk_rain.yy",},},},"Disabled":false,"id":"ad66282b-c136-4710-9ff3-39b80920e02a","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":"fa0422a8-979f-423e-b910-d2c0a55be02e","path":"sprites/s_node_mk_rain/s_node_mk_rain.yy",},},},"Disabled":false,"id":"c3379a38-7831-4425-afa8-20d2806f70dc","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
], ],
"visibleRange": null, "visibleRange": null,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

View file

@ -13,14 +13,14 @@
"edgeFiltering": false, "edgeFiltering": false,
"For3D": false, "For3D": false,
"frames": [ "frames": [
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"738a7dcd-3806-4941-ad43-fb97ce09c4e8",}, {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"f0cba714-735b-4358-a30c-8dedc27bd8e4",},
], ],
"gridX": 0, "gridX": 0,
"gridY": 0, "gridY": 0,
"height": 64, "height": 64,
"HTile": false, "HTile": false,
"layers": [ "layers": [
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"97534089-2439-4d31-a905-7f8ab255ac71","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,}, {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"316c0452-4330-47c0-afd8-19d80938e3da","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
], ],
"nineSlice": null, "nineSlice": null,
"origin": 4, "origin": 4,
@ -54,7 +54,7 @@
"timeUnits": 1, "timeUnits": 1,
"tracks": [ "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":"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":"738a7dcd-3806-4941-ad43-fb97ce09c4e8","path":"sprites/s_node_mk_saber/s_node_mk_saber.yy",},},},"Disabled":false,"id":"04252012-20e2-42a9-b7a7-6a71b7b9c596","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":"f0cba714-735b-4358-a30c-8dedc27bd8e4","path":"sprites/s_node_mk_saber/s_node_mk_saber.yy",},},},"Disabled":false,"id":"a861369c-dd0d-4ae7-92d4-617146994538","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
], ],
"visibleRange": null, "visibleRange": null,

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -0,0 +1,74 @@
{
"resourceType": "GMSprite",
"resourceVersion": "1.0",
"name": "s_node_mk_tile",
"bbox_bottom": 63,
"bbox_left": 0,
"bbox_right": 63,
"bbox_top": 0,
"bboxMode": 0,
"collisionKind": 1,
"collisionTolerance": 0,
"DynamicTexturePage": false,
"edgeFiltering": false,
"For3D": false,
"frames": [
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"b4d4c641-85c8-4f01-96fd-eefedb4610b0",},
],
"gridX": 0,
"gridY": 0,
"height": 64,
"HTile": false,
"layers": [
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"c8c66ee6-914d-476e-81c6-c4b667d1cb24","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
],
"nineSlice": null,
"origin": 4,
"parent": {
"name": "MK effects",
"path": "folders/nodes/icons/MK effects.yy",
},
"preMultiplyAlpha": false,
"sequence": {
"resourceType": "GMSequence",
"resourceVersion": "1.4",
"name": "s_node_mk_tile",
"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": 1.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":"b4d4c641-85c8-4f01-96fd-eefedb4610b0","path":"sprites/s_node_mk_tile/s_node_mk_tile.yy",},},},"Disabled":false,"id":"6019620f-8e2c-412d-a208-34d0b1b203b6","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
],
"visibleRange": null,
"volume": 1.0,
"xorigin": 32,
"yorigin": 32,
},
"swatchColours": null,
"swfPrecision": 2.525,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"type": 0,
"VTile": false,
"width": 64,
}