morph path

This commit is contained in:
Tanasart 2024-12-28 13:29:49 +07:00
parent ef15dee9f3
commit df4d289333
36 changed files with 564 additions and 297 deletions

View file

@ -240,12 +240,12 @@
{"name":"node","order":5,"path":"folders/shader/UI/node.yy",}, {"name":"node","order":5,"path":"folders/shader/UI/node.yy",},
{"name":"palette mixer","order":2,"path":"folders/shader/UI/palette mixer.yy",}, {"name":"palette mixer","order":2,"path":"folders/shader/UI/palette mixer.yy",},
{"name":"sprites","order":336,"path":"folders/sprites.yy",}, {"name":"sprites","order":336,"path":"folders/sprites.yy",},
{"name":"gameframe","order":1,"path":"folders/sprites/gameframe.yy",}, {"name":"bs","order":1,"path":"folders/sprites/bs.yy",},
{"name":"misc","order":2,"path":"folders/sprites/misc.yy",}, {"name":"gameframe","order":2,"path":"folders/sprites/gameframe.yy",},
{"name":"nodes","order":3,"path":"folders/sprites/nodes.yy",}, {"name":"misc","order":3,"path":"folders/sprites/misc.yy",},
{"name":"profiler","order":5,"path":"folders/sprites/profiler.yy",}, {"name":"nodes","order":4,"path":"folders/sprites/nodes.yy",},
{"name":"texture","order":4,"path":"folders/sprites/texture.yy",}, {"name":"profiler","order":6,"path":"folders/sprites/profiler.yy",},
{"name":"theme","order":6,"path":"folders/sprites/theme.yy",}, {"name":"texture","order":5,"path":"folders/sprites/texture.yy",},
{"name":"font","order":9,"path":"folders/sprites/theme/font.yy",}, {"name":"font","order":9,"path":"folders/sprites/theme/font.yy",},
{"name":"inspector","order":1,"path":"folders/sprites/theme/inspector.yy",}, {"name":"inspector","order":1,"path":"folders/sprites/theme/inspector.yy",},
{"name":"meta","order":2,"path":"folders/sprites/theme/meta.yy",}, {"name":"meta","order":2,"path":"folders/sprites/theme/meta.yy",},
@ -258,7 +258,11 @@
{"name":"UI","order":7,"path":"folders/sprites/theme/UI.yy",}, {"name":"UI","order":7,"path":"folders/sprites/theme/UI.yy",},
{"name":"widget","order":8,"path":"folders/sprites/theme/widget.yy",}, {"name":"widget","order":8,"path":"folders/sprites/theme/widget.yy",},
{"name":"widgets","order":334,"path":"folders/widgets.yy",}, {"name":"widgets","order":334,"path":"folders/widgets.yy",},
{"name":"object","order":18,"path":"folders/widgets/object.yy",}, {"name":"button","order":1,"path":"folders/widgets/button.yy",},
{"name":"object","order":5,"path":"folders/widgets/object.yy",},
{"name":"rotator","order":2,"path":"folders/widgets/rotator.yy",},
{"name":"sliders","order":3,"path":"folders/widgets/sliders.yy",},
{"name":"text","order":4,"path":"folders/widgets/text.yy",},
], ],
"ResourceOrderSettings":[ "ResourceOrderSettings":[
{"name":"ac_disappear","order":2,"path":"animcurves/ac_disappear/ac_disappear.yy",}, {"name":"ac_disappear","order":2,"path":"animcurves/ac_disappear/ac_disappear.yy",},
@ -510,8 +514,8 @@
{"name":"canvas_tool_selection","order":7,"path":"scripts/canvas_tool_selection/canvas_tool_selection.yy",}, {"name":"canvas_tool_selection","order":7,"path":"scripts/canvas_tool_selection/canvas_tool_selection.yy",},
{"name":"canvas_tool_skew","order":6,"path":"scripts/canvas_tool_skew/canvas_tool_skew.yy",}, {"name":"canvas_tool_skew","order":6,"path":"scripts/canvas_tool_skew/canvas_tool_skew.yy",},
{"name":"canvas_tool_with_selector","order":5,"path":"scripts/canvas_tool_with_selector/canvas_tool_with_selector.yy",}, {"name":"canvas_tool_with_selector","order":5,"path":"scripts/canvas_tool_with_selector/canvas_tool_with_selector.yy",},
{"name":"checkboxActive","order":11,"path":"scripts/checkboxActive/checkboxActive.yy",}, {"name":"checkboxActive","order":13,"path":"scripts/checkboxActive/checkboxActive.yy",},
{"name":"checkboxGroup","order":6,"path":"scripts/checkboxGroup/checkboxGroup.yy",}, {"name":"checkboxGroup","order":11,"path":"scripts/checkboxGroup/checkboxGroup.yy",},
{"name":"collection_data","order":9,"path":"scripts/collection_data/collection_data.yy",}, {"name":"collection_data","order":9,"path":"scripts/collection_data/collection_data.yy",},
{"name":"color_function","order":9,"path":"scripts/color_function/color_function.yy",}, {"name":"color_function","order":9,"path":"scripts/color_function/color_function.yy",},
{"name":"color_loader","order":13,"path":"scripts/color_loader/color_loader.yy",}, {"name":"color_loader","order":13,"path":"scripts/color_loader/color_loader.yy",},
@ -523,7 +527,7 @@
{"name":"cross_product","order":3,"path":"scripts/cross_product/cross_product.yy",}, {"name":"cross_product","order":3,"path":"scripts/cross_product/cross_product.yy",},
{"name":"curve_bounce_function","order":1,"path":"scripts/curve_bounce_function/curve_bounce_function.yy",}, {"name":"curve_bounce_function","order":1,"path":"scripts/curve_bounce_function/curve_bounce_function.yy",},
{"name":"curve_damping_function","order":2,"path":"scripts/curve_damping_function/curve_damping_function.yy",}, {"name":"curve_damping_function","order":2,"path":"scripts/curve_damping_function/curve_damping_function.yy",},
{"name":"curveBox","order":1,"path":"scripts/curveBox/curveBox.yy",}, {"name":"curveBox","order":6,"path":"scripts/curveBox/curveBox.yy",},
{"name":"d3d_bbox","order":8,"path":"scripts/d3d_bbox/d3d_bbox.yy",}, {"name":"d3d_bbox","order":8,"path":"scripts/d3d_bbox/d3d_bbox.yy",},
{"name":"d3d_camera_object","order":1,"path":"scripts/d3d_camera_object/d3d_camera_object.yy",}, {"name":"d3d_camera_object","order":1,"path":"scripts/d3d_camera_object/d3d_camera_object.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",},
@ -625,7 +629,7 @@
{"name":"font_data","order":10,"path":"scripts/font_data/font_data.yy",}, {"name":"font_data","order":10,"path":"scripts/font_data/font_data.yy",},
{"name":"font_loader","order":8,"path":"scripts/font_loader/font_loader.yy",}, {"name":"font_loader","order":8,"path":"scripts/font_loader/font_loader.yy",},
{"name":"font_sprite_loader","order":10,"path":"scripts/font_sprite_loader/font_sprite_loader.yy",}, {"name":"font_sprite_loader","order":10,"path":"scripts/font_sprite_loader/font_sprite_loader.yy",},
{"name":"fontScrollBox","order":13,"path":"scripts/fontScrollBox/fontScrollBox.yy",}, {"name":"fontScrollBox","order":14,"path":"scripts/fontScrollBox/fontScrollBox.yy",},
{"name":"FriebaseREST_Firestore_urlUpdateMask","order":20,"path":"scripts/FriebaseREST_Firestore_urlUpdateMask/FriebaseREST_Firestore_urlUpdateMask.yy",}, {"name":"FriebaseREST_Firestore_urlUpdateMask","order":20,"path":"scripts/FriebaseREST_Firestore_urlUpdateMask/FriebaseREST_Firestore_urlUpdateMask.yy",},
{"name":"function_register","order":2,"path":"scripts/function_register/function_register.yy",}, {"name":"function_register","order":2,"path":"scripts/function_register/function_register.yy",},
{"name":"fx_controller","order":1,"path":"scripts/fx_controller/fx_controller.yy",}, {"name":"fx_controller","order":1,"path":"scripts/fx_controller/fx_controller.yy",},
@ -654,7 +658,7 @@
{"name":"luaHighlight","order":1,"path":"scripts/luaHighlight/luaHighlight.yy",}, {"name":"luaHighlight","order":1,"path":"scripts/luaHighlight/luaHighlight.yy",},
{"name":"mac_window_step","order":1,"path":"scripts/mac_window_step/mac_window_step.yy",}, {"name":"mac_window_step","order":1,"path":"scripts/mac_window_step/mac_window_step.yy",},
{"name":"mask_function","order":1,"path":"scripts/mask_function/mask_function.yy",}, {"name":"mask_function","order":1,"path":"scripts/mask_function/mask_function.yy",},
{"name":"materialBox","order":14,"path":"scripts/materialBox/materialBox.yy",}, {"name":"materialBox","order":15,"path":"scripts/materialBox/materialBox.yy",},
{"name":"math_function","order":3,"path":"scripts/math_function/math_function.yy",}, {"name":"math_function","order":3,"path":"scripts/math_function/math_function.yy",},
{"name":"matrixGrid","order":6,"path":"scripts/matrixGrid/matrixGrid.yy",}, {"name":"matrixGrid","order":6,"path":"scripts/matrixGrid/matrixGrid.yy",},
{"name":"meshBox","order":3,"path":"scripts/meshBox/meshBox.yy",}, {"name":"meshBox","order":3,"path":"scripts/meshBox/meshBox.yy",},
@ -1272,7 +1276,7 @@
{"name":"number_function","order":14,"path":"scripts/number_function/number_function.yy",}, {"name":"number_function","order":14,"path":"scripts/number_function/number_function.yy",},
{"name":"obj_reader","order":2,"path":"scripts/obj_reader/obj_reader.yy",}, {"name":"obj_reader","order":2,"path":"scripts/obj_reader/obj_reader.yy",},
{"name":"okhsl_function","order":18,"path":"scripts/okhsl_function/okhsl_function.yy",}, {"name":"okhsl_function","order":18,"path":"scripts/okhsl_function/okhsl_function.yy",},
{"name":"outputBox","order":15,"path":"scripts/outputBox/outputBox.yy",}, {"name":"outputBox","order":16,"path":"scripts/outputBox/outputBox.yy",},
{"name":"pack_bottom_left","order":2,"path":"scripts/pack_bottom_left/pack_bottom_left.yy",}, {"name":"pack_bottom_left","order":2,"path":"scripts/pack_bottom_left/pack_bottom_left.yy",},
{"name":"pack_corner","order":3,"path":"scripts/pack_corner/pack_corner.yy",}, {"name":"pack_corner","order":3,"path":"scripts/pack_corner/pack_corner.yy",},
{"name":"pack_shelf","order":1,"path":"scripts/pack_shelf/pack_shelf.yy",}, {"name":"pack_shelf","order":1,"path":"scripts/pack_shelf/pack_shelf.yy",},
@ -1359,8 +1363,8 @@
{"name":"safe_operation","order":6,"path":"scripts/safe_operation/safe_operation.yy",}, {"name":"safe_operation","order":6,"path":"scripts/safe_operation/safe_operation.yy",},
{"name":"sample_projects","order":6,"path":"scripts/sample_projects/sample_projects.yy",}, {"name":"sample_projects","order":6,"path":"scripts/sample_projects/sample_projects.yy",},
{"name":"save_function","order":1,"path":"scripts/save_function/save_function.yy",}, {"name":"save_function","order":1,"path":"scripts/save_function/save_function.yy",},
{"name":"scrollBox","order":2,"path":"scripts/scrollBox/scrollBox.yy",}, {"name":"scrollBox","order":7,"path":"scripts/scrollBox/scrollBox.yy",},
{"name":"scrollPane","order":3,"path":"scripts/scrollPane/scrollPane.yy",}, {"name":"scrollPane","order":8,"path":"scripts/scrollPane/scrollPane.yy",},
{"name":"shell_functions","order":42,"path":"scripts/shell_functions/shell_functions.yy",}, {"name":"shell_functions","order":42,"path":"scripts/shell_functions/shell_functions.yy",},
{"name":"sliderRange","order":2,"path":"scripts/sliderRange/sliderRange.yy",}, {"name":"sliderRange","order":2,"path":"scripts/sliderRange/sliderRange.yy",},
{"name":"SnapBufferWriteXML","order":1,"path":"scripts/SnapBufferWriteXML/SnapBufferWriteXML.yy",}, {"name":"SnapBufferWriteXML","order":1,"path":"scripts/SnapBufferWriteXML/SnapBufferWriteXML.yy",},
@ -1379,8 +1383,8 @@
{"name":"surface_draw_functions","order":6,"path":"scripts/surface_draw_functions/surface_draw_functions.yy",}, {"name":"surface_draw_functions","order":6,"path":"scripts/surface_draw_functions/surface_draw_functions.yy",},
{"name":"surface_functions","order":4,"path":"scripts/surface_functions/surface_functions.yy",}, {"name":"surface_functions","order":4,"path":"scripts/surface_functions/surface_functions.yy",},
{"name":"surface_get_palette","order":2,"path":"scripts/surface_get_palette/surface_get_palette.yy",}, {"name":"surface_get_palette","order":2,"path":"scripts/surface_get_palette/surface_get_palette.yy",},
{"name":"surfaceBox","order":4,"path":"scripts/surfaceBox/surfaceBox.yy",}, {"name":"surfaceBox","order":9,"path":"scripts/surfaceBox/surfaceBox.yy",},
{"name":"surfaceDynaBox","order":19,"path":"scripts/surfaceDynaBox/surfaceDynaBox.yy",}, {"name":"surfaceDynaBox","order":17,"path":"scripts/surfaceDynaBox/surfaceDynaBox.yy",},
{"name":"svg_objects","order":1,"path":"scripts/svg_objects/svg_objects.yy",}, {"name":"svg_objects","order":1,"path":"scripts/svg_objects/svg_objects.yy",},
{"name":"text_file","order":5,"path":"scripts/text_file/text_file.yy",}, {"name":"text_file","order":5,"path":"scripts/text_file/text_file.yy",},
{"name":"textArrayBox","order":1,"path":"scripts/textArrayBox/textArrayBox.yy",}, {"name":"textArrayBox","order":1,"path":"scripts/textArrayBox/textArrayBox.yy",},
@ -1395,7 +1399,7 @@
{"name":"tilesetBox","order":1,"path":"scripts/tilesetBox/tilesetBox.yy",}, {"name":"tilesetBox","order":1,"path":"scripts/tilesetBox/tilesetBox.yy",},
{"name":"time_source","order":43,"path":"scripts/time_source/time_source.yy",}, {"name":"time_source","order":43,"path":"scripts/time_source/time_source.yy",},
{"name":"timeline_data","order":18,"path":"scripts/timeline_data/timeline_data.yy",}, {"name":"timeline_data","order":18,"path":"scripts/timeline_data/timeline_data.yy",},
{"name":"toggleGroup","order":7,"path":"scripts/toggleGroup/toggleGroup.yy",}, {"name":"toggleGroup","order":12,"path":"scripts/toggleGroup/toggleGroup.yy",},
{"name":"tooltip_hotkey","order":2,"path":"scripts/tooltip_hotkey/tooltip_hotkey.yy",}, {"name":"tooltip_hotkey","order":2,"path":"scripts/tooltip_hotkey/tooltip_hotkey.yy",},
{"name":"tooltip_recent_files","order":3,"path":"scripts/tooltip_recent_files/tooltip_recent_files.yy",}, {"name":"tooltip_recent_files","order":3,"path":"scripts/tooltip_recent_files/tooltip_recent_files.yy",},
{"name":"tooltip_selector_object","order":1,"path":"scripts/tooltip_selector_object/tooltip_selector_object.yy",}, {"name":"tooltip_selector_object","order":1,"path":"scripts/tooltip_selector_object/tooltip_selector_object.yy",},
@ -1413,7 +1417,7 @@
{"name":"vectorRangeBox","order":11,"path":"scripts/vectorRangeBox/vectorRangeBox.yy",}, {"name":"vectorRangeBox","order":11,"path":"scripts/vectorRangeBox/vectorRangeBox.yy",},
{"name":"version_checker","order":11,"path":"scripts/version_checker/version_checker.yy",}, {"name":"version_checker","order":11,"path":"scripts/version_checker/version_checker.yy",},
{"name":"wav_file_object","order":2,"path":"scripts/wav_file_object/wav_file_object.yy",}, {"name":"wav_file_object","order":2,"path":"scripts/wav_file_object/wav_file_object.yy",},
{"name":"widget","order":5,"path":"scripts/widget/widget.yy",}, {"name":"widget","order":10,"path":"scripts/widget/widget.yy",},
{"name":"window_functions","order":2,"path":"scripts/window_functions/window_functions.yy",}, {"name":"window_functions","order":2,"path":"scripts/window_functions/window_functions.yy",},
{"name":"winwin_extras","order":6,"path":"scripts/winwin_extras/winwin_extras.yy",}, {"name":"winwin_extras","order":6,"path":"scripts/winwin_extras/winwin_extras.yy",},
{"name":"winwin_utils","order":7,"path":"scripts/winwin_utils/winwin_utils.yy",}, {"name":"winwin_utils","order":7,"path":"scripts/winwin_utils/winwin_utils.yy",},
@ -2045,7 +2049,7 @@
{"name":"s_info","order":118,"path":"sprites/s_info/s_info.yy",}, {"name":"s_info","order":118,"path":"sprites/s_info/s_info.yy",},
{"name":"s_inspector_channel","order":1,"path":"sprites/s_inspector_channel/s_inspector_channel.yy",}, {"name":"s_inspector_channel","order":1,"path":"sprites/s_inspector_channel/s_inspector_channel.yy",},
{"name":"s_inspector_checkbox","order":2,"path":"sprites/s_inspector_checkbox/s_inspector_checkbox.yy",}, {"name":"s_inspector_checkbox","order":2,"path":"sprites/s_inspector_checkbox/s_inspector_checkbox.yy",},
{"name":"s_inspector_corner","order":3,"path":"sprites/s_inspector_corner/s_inspector_corner.yy",}, {"name":"s_inspector_corner","order":28,"path":"sprites/s_inspector_corner/s_inspector_corner.yy",},
{"name":"s_inspector_curve_presets","order":4,"path":"sprites/s_inspector_curve_presets/s_inspector_curve_presets.yy",}, {"name":"s_inspector_curve_presets","order":4,"path":"sprites/s_inspector_curve_presets/s_inspector_curve_presets.yy",},
{"name":"s_inspector_direction","order":5,"path":"sprites/s_inspector_direction/s_inspector_direction.yy",}, {"name":"s_inspector_direction","order":5,"path":"sprites/s_inspector_direction/s_inspector_direction.yy",},
{"name":"s_inspector_draw_line","order":6,"path":"sprites/s_inspector_draw_line/s_inspector_draw_line.yy",}, {"name":"s_inspector_draw_line","order":6,"path":"sprites/s_inspector_draw_line/s_inspector_draw_line.yy",},

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 81 KiB

View file

@ -13,70 +13,70 @@
"glyphOperations":0, "glyphOperations":0,
"glyphs":{ "glyphs":{
"32":{"character":32,"h":68,"offset":0,"shift":11,"w":11,"x":2,"y":2,}, "32":{"character":32,"h":68,"offset":0,"shift":11,"w":11,"x":2,"y":2,},
"33":{"character":33,"h":68,"offset":2,"shift":12,"w":24,"x":623,"y":142,}, "33":{"character":33,"h":68,"offset":2,"shift":12,"w":24,"x":625,"y":142,},
"34":{"character":34,"h":68,"offset":2,"shift":20,"w":32,"x":589,"y":142,}, "34":{"character":34,"h":68,"offset":2,"shift":20,"w":32,"x":591,"y":142,},
"35":{"character":35,"h":68,"offset":0,"shift":28,"w":43,"x":544,"y":142,}, "35":{"character":35,"h":68,"offset":0,"shift":28,"w":43,"x":546,"y":142,},
"36":{"character":36,"h":68,"offset":1,"shift":24,"w":38,"x":504,"y":142,}, "36":{"character":36,"h":68,"offset":1,"shift":25,"w":38,"x":506,"y":142,},
"37":{"character":37,"h":68,"offset":1,"shift":38,"w":53,"x":449,"y":142,}, "37":{"character":37,"h":68,"offset":1,"shift":39,"w":53,"x":451,"y":142,},
"38":{"character":38,"h":68,"offset":1,"shift":32,"w":47,"x":400,"y":142,}, "38":{"character":38,"h":68,"offset":1,"shift":32,"w":48,"x":401,"y":142,},
"39":{"character":39,"h":68,"offset":2,"shift":11,"w":23,"x":375,"y":142,}, "39":{"character":39,"h":68,"offset":2,"shift":11,"w":23,"x":376,"y":142,},
"40":{"character":40,"h":68,"offset":1,"shift":14,"w":29,"x":344,"y":142,}, "40":{"character":40,"h":68,"offset":1,"shift":15,"w":29,"x":345,"y":142,},
"41":{"character":41,"h":68,"offset":1,"shift":14,"w":28,"x":314,"y":142,}, "41":{"character":41,"h":68,"offset":1,"shift":15,"w":28,"x":315,"y":142,},
"42":{"character":42,"h":68,"offset":1,"shift":23,"w":37,"x":649,"y":142,}, "42":{"character":42,"h":68,"offset":1,"shift":23,"w":38,"x":651,"y":142,},
"43":{"character":43,"h":68,"offset":1,"shift":24,"w":38,"x":274,"y":142,}, "43":{"character":43,"h":68,"offset":1,"shift":25,"w":38,"x":275,"y":142,},
"44":{"character":44,"h":68,"offset":1,"shift":12,"w":25,"x":208,"y":142,}, "44":{"character":44,"h":68,"offset":1,"shift":12,"w":25,"x":209,"y":142,},
"45":{"character":45,"h":68,"offset":1,"shift":14,"w":28,"x":178,"y":142,}, "45":{"character":45,"h":68,"offset":1,"shift":14,"w":28,"x":179,"y":142,},
"46":{"character":46,"h":68,"offset":2,"shift":12,"w":24,"x":152,"y":142,}, "46":{"character":46,"h":68,"offset":2,"shift":12,"w":24,"x":153,"y":142,},
"47":{"character":47,"h":68,"offset":0,"shift":18,"w":34,"x":116,"y":142,}, "47":{"character":47,"h":68,"offset":0,"shift":18,"w":34,"x":117,"y":142,},
"48":{"character":48,"h":68,"offset":1,"shift":24,"w":38,"x":76,"y":142,}, "48":{"character":48,"h":68,"offset":1,"shift":25,"w":38,"x":77,"y":142,},
"49":{"character":49,"h":68,"offset":2,"shift":24,"w":32,"x":42,"y":142,}, "49":{"character":49,"h":68,"offset":2,"shift":25,"w":32,"x":43,"y":142,},
"50":{"character":50,"h":68,"offset":1,"shift":24,"w":38,"x":2,"y":142,}, "50":{"character":50,"h":68,"offset":1,"shift":25,"w":39,"x":2,"y":142,},
"51":{"character":51,"h":68,"offset":1,"shift":24,"w":38,"x":960,"y":72,}, "51":{"character":51,"h":68,"offset":1,"shift":25,"w":38,"x":965,"y":72,},
"52":{"character":52,"h":68,"offset":0,"shift":24,"w":40,"x":918,"y":72,}, "52":{"character":52,"h":68,"offset":0,"shift":25,"w":40,"x":923,"y":72,},
"53":{"character":53,"h":68,"offset":2,"shift":24,"w":37,"x":235,"y":142,}, "53":{"character":53,"h":68,"offset":2,"shift":25,"w":37,"x":236,"y":142,},
"54":{"character":54,"h":68,"offset":1,"shift":24,"w":38,"x":688,"y":142,}, "54":{"character":54,"h":68,"offset":1,"shift":25,"w":39,"x":691,"y":142,},
"55":{"character":55,"h":68,"offset":1,"shift":24,"w":38,"x":728,"y":142,}, "55":{"character":55,"h":68,"offset":1,"shift":25,"w":39,"x":732,"y":142,},
"56":{"character":56,"h":68,"offset":1,"shift":24,"w":38,"x":768,"y":142,}, "56":{"character":56,"h":68,"offset":1,"shift":25,"w":39,"x":773,"y":142,},
"57":{"character":57,"h":68,"offset":1,"shift":24,"w":38,"x":605,"y":212,}, "57":{"character":57,"h":68,"offset":1,"shift":25,"w":39,"x":606,"y":212,},
"58":{"character":58,"h":68,"offset":2,"shift":12,"w":24,"x":579,"y":212,}, "58":{"character":58,"h":68,"offset":2,"shift":12,"w":24,"x":580,"y":212,},
"59":{"character":59,"h":68,"offset":1,"shift":12,"w":25,"x":552,"y":212,}, "59":{"character":59,"h":68,"offset":1,"shift":12,"w":25,"x":553,"y":212,},
"60":{"character":60,"h":68,"offset":1,"shift":24,"w":38,"x":512,"y":212,}, "60":{"character":60,"h":68,"offset":1,"shift":25,"w":38,"x":513,"y":212,},
"61":{"character":61,"h":68,"offset":1,"shift":24,"w":38,"x":472,"y":212,}, "61":{"character":61,"h":68,"offset":1,"shift":25,"w":38,"x":473,"y":212,},
"62":{"character":62,"h":68,"offset":1,"shift":24,"w":38,"x":432,"y":212,}, "62":{"character":62,"h":68,"offset":1,"shift":25,"w":38,"x":433,"y":212,},
"63":{"character":63,"h":68,"offset":0,"shift":20,"w":36,"x":394,"y":212,}, "63":{"character":63,"h":68,"offset":0,"shift":21,"w":36,"x":395,"y":212,},
"64":{"character":64,"h":68,"offset":2,"shift":38,"w":51,"x":341,"y":212,}, "64":{"character":64,"h":68,"offset":2,"shift":39,"w":51,"x":342,"y":212,},
"65":{"character":65,"h":68,"offset":0,"shift":29,"w":46,"x":293,"y":212,}, "65":{"character":65,"h":68,"offset":0,"shift":30,"w":46,"x":294,"y":212,},
"66":{"character":66,"h":68,"offset":3,"shift":29,"w":40,"x":251,"y":212,}, "66":{"character":66,"h":68,"offset":3,"shift":29,"w":40,"x":252,"y":212,},
"67":{"character":67,"h":68,"offset":2,"shift":27,"w":40,"x":209,"y":212,}, "67":{"character":67,"h":68,"offset":2,"shift":27,"w":40,"x":210,"y":212,},
"68":{"character":68,"h":68,"offset":3,"shift":32,"w":43,"x":164,"y":212,}, "68":{"character":68,"h":68,"offset":3,"shift":32,"w":43,"x":165,"y":212,},
"69":{"character":69,"h":68,"offset":3,"shift":24,"w":35,"x":127,"y":212,}, "69":{"character":69,"h":68,"offset":3,"shift":24,"w":35,"x":128,"y":212,},
"70":{"character":70,"h":68,"offset":3,"shift":23,"w":35,"x":90,"y":212,}, "70":{"character":70,"h":68,"offset":3,"shift":24,"w":35,"x":91,"y":212,},
"71":{"character":71,"h":68,"offset":2,"shift":31,"w":42,"x":46,"y":212,}, "71":{"character":71,"h":68,"offset":2,"shift":31,"w":42,"x":47,"y":212,},
"72":{"character":72,"h":68,"offset":3,"shift":33,"w":42,"x":2,"y":212,}, "72":{"character":72,"h":68,"offset":3,"shift":33,"w":43,"x":2,"y":212,},
"73":{"character":73,"h":68,"offset":1,"shift":17,"w":31,"x":975,"y":142,}, "73":{"character":73,"h":68,"offset":1,"shift":17,"w":31,"x":981,"y":142,},
"74":{"character":74,"h":68,"offset":-4,"shift":14,"w":31,"x":942,"y":142,}, "74":{"character":74,"h":68,"offset":-4,"shift":14,"w":31,"x":948,"y":142,},
"75":{"character":75,"h":68,"offset":3,"shift":28,"w":42,"x":898,"y":142,}, "75":{"character":75,"h":68,"offset":3,"shift":29,"w":42,"x":904,"y":142,},
"76":{"character":76,"h":68,"offset":3,"shift":24,"w":36,"x":860,"y":142,}, "76":{"character":76,"h":68,"offset":3,"shift":24,"w":36,"x":866,"y":142,},
"77":{"character":77,"h":68,"offset":3,"shift":40,"w":50,"x":808,"y":142,}, "77":{"character":77,"h":68,"offset":3,"shift":41,"w":50,"x":814,"y":142,},
"78":{"character":78,"h":68,"offset":3,"shift":35,"w":44,"x":872,"y":72,}, "78":{"character":78,"h":68,"offset":3,"shift":35,"w":45,"x":876,"y":72,},
"79":{"character":79,"h":68,"offset":2,"shift":34,"w":46,"x":824,"y":72,}, "79":{"character":79,"h":68,"offset":2,"shift":34,"w":46,"x":828,"y":72,},
"80":{"character":80,"h":68,"offset":3,"shift":27,"w":38,"x":784,"y":72,}, "80":{"character":80,"h":68,"offset":3,"shift":27,"w":39,"x":787,"y":72,},
"81":{"character":81,"h":68,"offset":2,"shift":34,"w":46,"x":866,"y":2,}, "81":{"character":81,"h":68,"offset":2,"shift":34,"w":46,"x":866,"y":2,},
"82":{"character":82,"h":68,"offset":3,"shift":28,"w":42,"x":792,"y":2,}, "82":{"character":82,"h":68,"offset":3,"shift":28,"w":42,"x":793,"y":2,},
"83":{"character":83,"h":68,"offset":1,"shift":24,"w":37,"x":753,"y":2,}, "83":{"character":83,"h":68,"offset":1,"shift":24,"w":37,"x":754,"y":2,},
"84":{"character":84,"h":68,"offset":0,"shift":25,"w":40,"x":711,"y":2,}, "84":{"character":84,"h":68,"offset":0,"shift":25,"w":41,"x":711,"y":2,},
"85":{"character":85,"h":68,"offset":3,"shift":32,"w":42,"x":667,"y":2,}, "85":{"character":85,"h":68,"offset":3,"shift":33,"w":42,"x":667,"y":2,},
"86":{"character":86,"h":68,"offset":0,"shift":28,"w":44,"x":621,"y":2,}, "86":{"character":86,"h":68,"offset":0,"shift":28,"w":44,"x":621,"y":2,},
"87":{"character":87,"h":68,"offset":0,"shift":41,"w":58,"x":561,"y":2,}, "87":{"character":87,"h":68,"offset":0,"shift":42,"w":58,"x":561,"y":2,},
"88":{"character":88,"h":68,"offset":0,"shift":28,"w":45,"x":514,"y":2,}, "88":{"character":88,"h":68,"offset":0,"shift":29,"w":45,"x":514,"y":2,},
"89":{"character":89,"h":68,"offset":0,"shift":27,"w":43,"x":469,"y":2,}, "89":{"character":89,"h":68,"offset":0,"shift":27,"w":43,"x":469,"y":2,},
"90":{"character":90,"h":68,"offset":1,"shift":25,"w":39,"x":428,"y":2,}, "90":{"character":90,"h":68,"offset":1,"shift":25,"w":39,"x":428,"y":2,},
"91":{"character":91,"h":68,"offset":2,"shift":14,"w":28,"x":836,"y":2,}, "91":{"character":91,"h":68,"offset":3,"shift":14,"w":27,"x":837,"y":2,},
"92":{"character":92,"h":68,"offset":0,"shift":18,"w":34,"x":392,"y":2,}, "92":{"character":92,"h":68,"offset":0,"shift":18,"w":34,"x":392,"y":2,},
"93":{"character":93,"h":68,"offset":1,"shift":14,"w":27,"x":326,"y":2,}, "93":{"character":93,"h":68,"offset":1,"shift":14,"w":27,"x":326,"y":2,},
"94":{"character":94,"h":68,"offset":0,"shift":24,"w":40,"x":284,"y":2,}, "94":{"character":94,"h":68,"offset":0,"shift":25,"w":40,"x":284,"y":2,},
"95":{"character":95,"h":68,"offset":-1,"shift":18,"w":35,"x":247,"y":2,}, "95":{"character":95,"h":68,"offset":-1,"shift":18,"w":35,"x":247,"y":2,},
"96":{"character":96,"h":68,"offset":1,"shift":15,"w":29,"x":216,"y":2,}, "96":{"character":96,"h":68,"offset":1,"shift":16,"w":29,"x":216,"y":2,},
"97":{"character":97,"h":68,"offset":1,"shift":26,"w":38,"x":176,"y":2,}, "97":{"character":97,"h":68,"offset":1,"shift":26,"w":38,"x":176,"y":2,},
"98":{"character":98,"h":68,"offset":3,"shift":27,"w":39,"x":135,"y":2,}, "98":{"character":98,"h":68,"offset":3,"shift":27,"w":39,"x":135,"y":2,},
"99":{"character":99,"h":68,"offset":1,"shift":22,"w":36,"x":97,"y":2,}, "99":{"character":99,"h":68,"offset":1,"shift":22,"w":36,"x":97,"y":2,},
@ -84,19 +84,19 @@
"101":{"character":101,"h":68,"offset":1,"shift":25,"w":39,"x":15,"y":2,}, "101":{"character":101,"h":68,"offset":1,"shift":25,"w":39,"x":15,"y":2,},
"102":{"character":102,"h":68,"offset":0,"shift":17,"w":35,"x":355,"y":2,}, "102":{"character":102,"h":68,"offset":0,"shift":17,"w":35,"x":355,"y":2,},
"103":{"character":103,"h":68,"offset":1,"shift":27,"w":39,"x":914,"y":2,}, "103":{"character":103,"h":68,"offset":1,"shift":27,"w":39,"x":914,"y":2,},
"104":{"character":104,"h":68,"offset":3,"shift":28,"w":38,"x":321,"y":72,}, "104":{"character":104,"h":68,"offset":3,"shift":28,"w":39,"x":321,"y":72,},
"105":{"character":105,"h":68,"offset":3,"shift":13,"w":23,"x":955,"y":2,}, "105":{"character":105,"h":68,"offset":3,"shift":13,"w":24,"x":955,"y":2,},
"106":{"character":106,"h":68,"offset":-3,"shift":13,"w":29,"x":716,"y":72,}, "106":{"character":106,"h":68,"offset":-3,"shift":13,"w":30,"x":718,"y":72,},
"107":{"character":107,"h":68,"offset":3,"shift":26,"w":40,"x":674,"y":72,}, "107":{"character":107,"h":68,"offset":3,"shift":27,"w":40,"x":676,"y":72,},
"108":{"character":108,"h":68,"offset":3,"shift":13,"w":23,"x":649,"y":72,}, "108":{"character":108,"h":68,"offset":3,"shift":13,"w":23,"x":651,"y":72,},
"109":{"character":109,"h":68,"offset":3,"shift":42,"w":52,"x":595,"y":72,}, "109":{"character":109,"h":68,"offset":3,"shift":42,"w":52,"x":597,"y":72,},
"110":{"character":110,"h":68,"offset":3,"shift":28,"w":38,"x":555,"y":72,}, "110":{"character":110,"h":68,"offset":3,"shift":28,"w":39,"x":556,"y":72,},
"111":{"character":111,"h":68,"offset":1,"shift":26,"w":40,"x":513,"y":72,}, "111":{"character":111,"h":68,"offset":1,"shift":27,"w":40,"x":514,"y":72,},
"112":{"character":112,"h":68,"offset":3,"shift":27,"w":39,"x":472,"y":72,}, "112":{"character":112,"h":68,"offset":3,"shift":27,"w":39,"x":473,"y":72,},
"113":{"character":113,"h":68,"offset":1,"shift":27,"w":39,"x":431,"y":72,}, "113":{"character":113,"h":68,"offset":1,"shift":27,"w":39,"x":432,"y":72,},
"114":{"character":114,"h":68,"offset":3,"shift":19,"w":32,"x":397,"y":72,}, "114":{"character":114,"h":68,"offset":3,"shift":20,"w":32,"x":398,"y":72,},
"115":{"character":115,"h":68,"offset":1,"shift":21,"w":35,"x":747,"y":72,}, "115":{"character":115,"h":68,"offset":1,"shift":21,"w":35,"x":750,"y":72,},
"116":{"character":116,"h":68,"offset":0,"shift":19,"w":34,"x":361,"y":72,}, "116":{"character":116,"h":68,"offset":0,"shift":19,"w":34,"x":362,"y":72,},
"117":{"character":117,"h":68,"offset":3,"shift":28,"w":38,"x":281,"y":72,}, "117":{"character":117,"h":68,"offset":3,"shift":28,"w":38,"x":281,"y":72,},
"118":{"character":118,"h":68,"offset":0,"shift":24,"w":41,"x":238,"y":72,}, "118":{"character":118,"h":68,"offset":0,"shift":24,"w":41,"x":238,"y":72,},
"119":{"character":119,"h":68,"offset":0,"shift":37,"w":53,"x":183,"y":72,}, "119":{"character":119,"h":68,"offset":0,"shift":37,"w":53,"x":183,"y":72,},
@ -105,9 +105,9 @@
"122":{"character":122,"h":68,"offset":1,"shift":21,"w":35,"x":60,"y":72,}, "122":{"character":122,"h":68,"offset":1,"shift":21,"w":35,"x":60,"y":72,},
"123":{"character":123,"h":68,"offset":0,"shift":17,"w":32,"x":26,"y":72,}, "123":{"character":123,"h":68,"offset":0,"shift":17,"w":32,"x":26,"y":72,},
"124":{"character":124,"h":68,"offset":9,"shift":24,"w":22,"x":2,"y":72,}, "124":{"character":124,"h":68,"offset":9,"shift":24,"w":22,"x":2,"y":72,},
"125":{"character":125,"h":68,"offset":1,"shift":17,"w":32,"x":980,"y":2,}, "125":{"character":125,"h":68,"offset":1,"shift":17,"w":32,"x":981,"y":2,},
"126":{"character":126,"h":68,"offset":1,"shift":24,"w":38,"x":645,"y":212,}, "126":{"character":126,"h":68,"offset":1,"shift":25,"w":38,"x":647,"y":212,},
"9647":{"character":9647,"h":68,"offset":8,"shift":42,"w":42,"x":685,"y":212,}, "9647":{"character":9647,"h":68,"offset":8,"shift":42,"w":42,"x":687,"y":212,},
}, },
"hinting":0, "hinting":0,
"includeTTF":false, "includeTTF":false,
@ -120,14 +120,14 @@
"name":"_f_sdf", "name":"_f_sdf",
"parent":{ "parent":{
"name":"font", "name":"font",
"path":"folders/font.yy", "path":"folders/sprites/theme/font.yy",
}, },
"pointRounding":0, "pointRounding":0,
"ranges":[ "ranges":[
{"lower":32,"upper":127,}, {"lower":32,"upper":127,},
{"lower":9647,"upper":9647,}, {"lower":9647,"upper":9647,},
], ],
"regenerateBitmap":true, "regenerateBitmap":false,
"resourceType":"GMFont", "resourceType":"GMFont",
"resourceVersion":"2.0", "resourceVersion":"2.0",
"sampleText":"abcdef ABCDEF\n0123456789 .,<>\"'&!?\nthe quick brown fox jumps over the lazy dog\nTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG\nDefault character: ▯ (9647)", "sampleText":"abcdef ABCDEF\n0123456789 .,<>\"'&!?\nthe quick brown fox jumps over the lazy dog\nTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG\nDefault character: ▯ (9647)",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

View file

@ -120,14 +120,14 @@
"name":"_f_sdf_medium", "name":"_f_sdf_medium",
"parent":{ "parent":{
"name":"font", "name":"font",
"path":"folders/font.yy", "path":"folders/sprites/theme/font.yy",
}, },
"pointRounding":0, "pointRounding":0,
"ranges":[ "ranges":[
{"lower":32,"upper":127,}, {"lower":32,"upper":127,},
{"lower":9647,"upper":9647,}, {"lower":9647,"upper":9647,},
], ],
"regenerateBitmap":true, "regenerateBitmap":false,
"resourceType":"GMFont", "resourceType":"GMFont",
"resourceVersion":"2.0", "resourceVersion":"2.0",
"sampleText":"abcdef ABCDEF\n0123456789 .,<>\"'&!?\nthe quick brown fox jumps over the lazy dog\nTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG\nDefault character: ▯ (9647)", "sampleText":"abcdef ABCDEF\n0123456789 .,<>\"'&!?\nthe quick brown fox jumps over the lazy dog\nTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG\nDefault character: ▯ (9647)",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

View file

@ -547,10 +547,11 @@ event_inherited();
content_pane.hover_content = true; content_pane.hover_content = true;
draw_sprite_stretched_ext(THEME.node_bg, 1, _boxx, yy, grid_size, grid_size, COLORS._main_accent, 1); draw_sprite_stretched_ext(THEME.node_bg, 1, _boxx, yy, grid_size, grid_size, COLORS._main_accent, 1);
if(mouse_release(mb_left, sFOCUS))
buildNode(_node); if(sFOCUS) {
else if(mouse_release(mb_right, right_free && sFOCUS)) if(mouse_release(mb_left)) buildNode(_node);
rightClick(_node); if(mouse_release(mb_right, right_free)) rightClick(_node);
}
} }
if(_node.getTooltip() != "" || _node.tooltip_spr != noone) { if(_node.getTooltip() != "" || _node.tooltip_spr != noone) {
@ -672,9 +673,9 @@ event_inherited();
if(is_string(_node)) { if(is_string(_node)) {
if(!PREFERENCES.dialog_add_node_grouping) if(!PREFERENCES.dialog_add_node_grouping)
continue; continue;
hh += ui(8); hh += ui(4) * (i > 0);
yy += ui(8); yy += ui(4) * (i > 0);
var _key = $"{ADD_NODE_PAGE}:{i}"; var _key = $"{ADD_NODE_PAGE}:{i}";

View file

@ -6,7 +6,7 @@ if !ready exit;
if(DIALOG_SHOW_FOCUS) DIALOG_DRAW_FOCUS if(DIALOG_SHOW_FOCUS) DIALOG_DRAW_FOCUS
#endregion #endregion
#region search #region content
WIDGET_CURRENT = tb_search; WIDGET_CURRENT = tb_search;
tb_search.setFocusHover(sFOCUS, sHOVER); tb_search.setFocusHover(sFOCUS, sHOVER);

View file

@ -1,5 +1,5 @@
function __vec2(_x = 0, _y = _x) constructor { function __vec2(_x = 0, _y = _x) constructor {
static set = function(_x = 0, _y = _x) { #region static set = function(_x = 0, _y = _x) {
if(is_struct(_x) && is_instanceof(_x, __vec2)) { if(is_struct(_x) && is_instanceof(_x, __vec2)) {
x = _x.x; x = _x.x;
y = _x.y; y = _x.y;
@ -21,162 +21,162 @@ function __vec2(_x = 0, _y = _x) constructor {
x = _x; x = _x;
y = _y; y = _y;
return self; return self;
} set(_x, _y); #endregion } set(_x, _y);
ref = noone; ref = noone;
static setRef = function(ref = noone) { #region static setRef = function(ref = noone) {
self.ref = ref; self.ref = ref;
return self; return self;
} #endregion }
static setIndex = function(index, value) { #region static setIndex = function(index, value) {
INLINE INLINE
switch(index) { switch(index) {
case 0 : x = value; break; case 0 : x = value; break;
case 1 : y = value; break; case 1 : y = value; break;
} }
return self; return self;
} #endregion }
static getIndex = function(index) { #region static getIndex = function(index) {
switch(index) { switch(index) {
case 0 : return x; case 0 : return x;
case 1 : return y; case 1 : return y;
} }
return 0; return 0;
} #endregion }
static addElement = function(_x, _y) { #region static addElement = function(_x, _y) {
INLINE INLINE
return new __vec2(x + _x, y + _y); return new __vec2(x + _x, y + _y);
} #endregion }
static _addElement = function(_x, _y) { #region static _addElement = function(_x, _y) {
INLINE INLINE
x += _x; x += _x;
y += _y; y += _y;
return self; return self;
} #endregion }
static add = function(_vec2) { #region static add = function(_vec2) {
INLINE INLINE
return new __vec2(x + _vec2.x, y + _vec2.y); return new __vec2(x + _vec2.x, y + _vec2.y);
} #endregion }
static _add = function(_vec2) { #region static _add = function(_vec2) {
INLINE INLINE
x += _vec2.x; x += _vec2.x;
y += _vec2.y; y += _vec2.y;
return self; return self;
} #endregion }
static addElement = function(_x, _y) { #region static addElement = function(_x, _y) {
INLINE INLINE
return new __vec2(x + _x, y + _y); return new __vec2(x + _x, y + _y);
} #endregion }
static _addElement = function(_x, _y) { #region static _addElement = function(_x, _y) {
INLINE INLINE
x += _x; x += _x;
y += _y; y += _y;
return self; return self;
} #endregion }
static subtract = function(_vec2) { #region static subtract = function(_vec2) {
INLINE INLINE
return new __vec2(x - _vec2.x, y - _vec2.y); return new __vec2(x - _vec2.x, y - _vec2.y);
} #endregion }
static _subtract = function(_vec2) { #region static _subtract = function(_vec2) {
INLINE INLINE
x -= _vec2.x; x -= _vec2.x;
y -= _vec2.y; y -= _vec2.y;
return self; return self;
} #endregion }
static subtractElement = function(_x, _y) { #region static subtractElement = function(_x, _y) {
INLINE INLINE
return new __vec2(x - _x, y - _y); return new __vec2(x - _x, y - _y);
} #endregion }
static _subtractElement = function(_x, _y) { #region static _subtractElement = function(_x, _y) {
INLINE INLINE
x -= _x; x -= _x;
y -= _y; y -= _y;
return self; return self;
} #endregion }
static multiply = function(_scalar) { #region static multiply = function(_scalar) {
INLINE INLINE
return new __vec2(x * _scalar, y * _scalar); return new __vec2(x * _scalar, y * _scalar);
} #endregion }
static _multiply = function(_scalar) { #region static _multiply = function(_scalar) {
INLINE INLINE
x *= _scalar; x *= _scalar;
y *= _scalar; y *= _scalar;
return self; return self;
} #endregion }
static multiplyVec = function(_vec) { #region static multiplyVec = function(_vec) {
INLINE INLINE
return new __vec2(x * _vec.x, y * _vec.y); return new __vec2(x * _vec.x, y * _vec.y);
} #endregion }
static _multiplyVec = function(_vec) { #region static _multiplyVec = function(_vec) {
INLINE INLINE
x *= _vec.x; x *= _vec.x;
y *= _vec.y; y *= _vec.y;
return self; return self;
} #endregion }
static multiplyElement = function(_x, _y) { #region static multiplyElement = function(_x, _y) {
INLINE INLINE
return new __vec2(x * _x, y * _y); return new __vec2(x * _x, y * _y);
} #endregion }
static _multiplyElement = function(_x, _y) { #region static _multiplyElement = function(_x, _y) {
INLINE INLINE
x *= _x; x *= _x;
y *= _y; y *= _y;
return self; return self;
} #endregion }
static divide = function(_scalar) { #region static divide = function(_scalar) {
INLINE INLINE
if (_scalar != 0) if (_scalar != 0)
return new __vec2(x / _scalar, y / _scalar); return new __vec2(x / _scalar, y / _scalar);
return new __vec2(x, y, z); // Avoid division by zero return new __vec2(x, y, z); // Avoid division by zero
} #endregion }
static _divide = function(_scalar) { #region static _divide = function(_scalar) {
INLINE INLINE
if (_scalar != 0) { if (_scalar != 0) {
x /= _scalar; x /= _scalar;
y /= _scalar; y /= _scalar;
} }
return self; return self;
} #endregion }
static dot = function(_vec2) { #region static dot = function(_vec2) {
INLINE INLINE
return x * _vec2.x + y * _vec2.y; return x * _vec2.x + y * _vec2.y;
} #endregion }
static distance = function(_vec2) { #region static distance = function(_vec2) {
INLINE INLINE
var dx = _vec2.x - x; var dx = _vec2.x - x;
var dy = _vec2.y - y; var dy = _vec2.y - y;
return sqrt(dx * dx + dy * dy); return sqrt(dx * dx + dy * dy);
} #endregion }
static directionTo = function(_vec2) { #region static directionTo = function(_vec2) {
INLINE INLINE
return point_direction(x, y, _vec2.x, _vec2.y); return point_direction(x, y, _vec2.x, _vec2.y);
} #endregion }
static length = function() { #region static length = function() {
INLINE INLINE
return sqrt(x * x + y * y); return sqrt(x * x + y * y);
} #endregion }
static normalize = function() { #region static normalize = function() {
INLINE INLINE
return clone()._normalize(); return clone()._normalize();
} #endregion }
static _normalize = function() { #region static _normalize = function() {
INLINE INLINE
var _length = length(); var _length = length();
if (_length != 0) { if (_length != 0) {
@ -184,33 +184,33 @@ function __vec2(_x = 0, _y = _x) constructor {
y /= _length; y /= _length;
} }
return self; return self;
} #endregion }
static lerpTo = function(to, speed = 0.3) { #region static lerpTo = function(to, speed = 0.3) {
INLINE INLINE
return new __vec2(lerp(x, to.x, speed), lerp(y, to.y, speed)); return new __vec2(lerp(x, to.x, speed), lerp(y, to.y, speed));
} #endregion }
static _lerpTo = function(to, speed = 0.3) { #region static _lerpTo = function(to, speed = 0.3) {
INLINE INLINE
x = lerp(x, to.x, speed); x = lerp(x, to.x, speed);
y = lerp(y, to.y, speed); y = lerp(y, to.y, speed);
} #endregion }
static _lerp_float = function(to, speed = 5, pre = 0.01) { #region static _lerp_float = function(to, speed = 5, pre = 0.01) {
INLINE INLINE
x = lerp_float(x, to.x, speed, pre); x = lerp_float(x, to.x, speed, pre);
y = lerp_float(y, to.y, speed, pre); y = lerp_float(y, to.y, speed, pre);
} #endregion }
static equal = function(to) { #region static equal = function(to) {
INLINE INLINE
return x == to.x && y == to.y; return x == to.x && y == to.y;
} #endregion }
static clone = function() { #region static clone = function() {
INLINE INLINE
return new __vec2(x, y); return new __vec2(x, y);
} #endregion }
static toString = function() { return $"[__vec2] ({x}, {y})"; } static toString = function() { return $"[__vec2] ({x}, {y})"; }

View file

@ -21,15 +21,19 @@ function cornerBox(_onModify, _unit = noone) : widget() constructor {
onModifySingle[2] = function(val) { onModifyIndex(val, 2); } onModifySingle[2] = function(val) { onModifyIndex(val, 2); }
onModifySingle[3] = function(val) { onModifyIndex(val, 3); } onModifySingle[3] = function(val) { onModifyIndex(val, 3); }
labels = [ "r", "t", "l", "b" ];
for(var i = 0; i < 4; i++) { for(var i = 0; i < 4; i++) {
tb[i] = new textBox(TEXTBOX_INPUT.number, onModifySingle[i]); tb[i] = new textBox(TEXTBOX_INPUT.number, onModifySingle[i]);
tb[i].label = labels[i];
tb[i].slidable = true; tb[i].labelSpr = s_inspector_corner;
tb[i].hide = true; tb[i].labelSprIndex = i;
tb[i].labelColor = COLORS._main_icon;
tb[i].slidable = true;
tb[i].hide = true;
} }
tb[1].labelAlign = fa_right;
tb[2].labelAlign = fa_right;
static setInteract = function(interactable = noone) { static setInteract = function(interactable = noone) {
self.interactable = interactable; self.interactable = interactable;
b_link.interactable = interactable; b_link.interactable = interactable;
@ -43,8 +47,8 @@ function cornerBox(_onModify, _unit = noone) : widget() constructor {
tb[0].register(parent); tb[0].register(parent);
tb[1].register(parent); tb[1].register(parent);
tb[2].register(parent);
tb[3].register(parent); tb[3].register(parent);
tb[2].register(parent);
} }
static isHovering = function() { static isHovering = function() {
@ -104,11 +108,11 @@ function cornerBox(_onModify, _unit = noone) : widget() constructor {
var tb_bx = _x + tb_w; var tb_bx = _x + tb_w;
var tb_by = _y + _h + ui(4); var tb_by = _y + _h + ui(4);
tb[2].draw(tb_lx, tb_ly, tb_w, tb_h, array_safe_get_fast(_data, 2), _m); tb[0].draw(tb_lx, tb_ly, tb_w, tb_h, array_safe_get_fast(_data, 0), _m);
tb[0].draw(tb_rx, tb_ry, tb_w, tb_h, array_safe_get_fast(_data, 0), _m); tb[1].draw(tb_rx, tb_ry, tb_w, tb_h, array_safe_get_fast(_data, 1), _m);
tb[1].draw(tb_tx, tb_ty, tb_w, tb_h, array_safe_get_fast(_data, 1), _m); tb[3].draw(tb_tx, tb_ty, tb_w, tb_h, array_safe_get_fast(_data, 3), _m);
tb[3].draw(tb_bx, tb_by, tb_w, tb_h, array_safe_get_fast(_data, 3), _m); tb[2].draw(tb_bx, tb_by, tb_w, tb_h, array_safe_get_fast(_data, 2), _m);
resetFocus(); resetFocus();

View file

@ -38,14 +38,14 @@ function Node_Greyscale(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
attribute_surface_depth(); attribute_surface_depth();
static step = function() { #region static step = function() {
__step_mask_modifier(); __step_mask_modifier();
inputs[1].mappableStep(); inputs[1].mappableStep();
inputs[2].mappableStep(); inputs[2].mappableStep();
} #endregion }
static processData = function(_outSurf, _data, _output_index, _array_index) { #region static processData = function(_outSurf, _data, _output_index, _array_index) {
surface_set_shader(_outSurf, sh_greyscale); surface_set_shader(_outSurf, sh_greyscale);
shader_set_f_map("brightness", _data[1], _data[ 9], inputs[1]); shader_set_f_map("brightness", _data[1], _data[ 9], inputs[1]);
@ -58,5 +58,5 @@ function Node_Greyscale(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
_outSurf = channel_apply(_data[0], _outSurf, _data[6]); _outSurf = channel_apply(_data[0], _outSurf, _data[6]);
return _outSurf; return _outSurf;
} #endregion }
} }

View file

@ -117,7 +117,7 @@ function Node_Path_Blend(_x, _y, _group = noone) : Node(_x, _y, _group) construc
static getPointRatio = function(_rat, ind = 0, out = undefined) { #region static getPointRatio = function(_rat, ind = 0, out = undefined) { #region
if(out == undefined) out = new __vec2(); else { out.x = 0; out.y = 0; } if(out == undefined) out = new __vec2(); else { out.x = 0; out.y = 0; }
var _cKey = $"{_rat},{ind}"; var _cKey = $"{string_format(_rat, 0, 6)},{ind}";
if(ds_map_exists(cached_pos, _cKey)) { if(ds_map_exists(cached_pos, _cKey)) {
var _p = cached_pos[? _cKey]; var _p = cached_pos[? _cKey];
out.x = _p.x; out.x = _p.x;

View file

@ -86,7 +86,7 @@ function Node_Path_Bridge(_x, _y, _group = noone) : Node(_x, _y, _group) constru
static getPointDistance = function(_dist, ind = 0, out = undefined) { #region static getPointDistance = function(_dist, ind = 0, out = undefined) { #region
if(out == undefined) out = new __vec2(); else { out.x = 0; out.y = 0; } if(out == undefined) out = new __vec2(); else { out.x = 0; out.y = 0; }
var _cKey = $"{_dist},{ind}"; var _cKey = $"{string_format(_dist, 0, 6)},{ind}";
if(ds_map_exists(cached_pos, _cKey)) { if(ds_map_exists(cached_pos, _cKey)) {
var _p = cached_pos[? _cKey]; var _p = cached_pos[? _cKey];
out.x = _p.x; out.x = _p.x;

View file

@ -112,7 +112,7 @@ function Node_Path_Builder(_x, _y, _group = noone) : Node(_x, _y, _group) constr
static getPointDistance = function(_dist, ind = 0, out = undefined) { static getPointDistance = function(_dist, ind = 0, out = undefined) {
if(out == undefined) out = new __vec2(); else { out.x = 0; out.y = 0; } if(out == undefined) out = new __vec2(); else { out.x = 0; out.y = 0; }
var _cKey = $"{ind}, {_dist}"; var _cKey = $"{ind}, {string_format(_dist, 0, 6)}";
if(ds_map_exists(cached_pos, _cKey)) { if(ds_map_exists(cached_pos, _cKey)) {
var _p = cached_pos[? _cKey]; var _p = cached_pos[? _cKey];
out.x = _p.x; out.x = _p.x;

View file

@ -13,11 +13,13 @@ function Node_Path_Fill(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
newInput(4, nodeValue_Bool("Inverted", self, false)) newInput(4, nodeValue_Bool("Inverted", self, false))
newInput(5, nodeValue_Color("Bachground", self, cola(c_black, 0)))
newOutput(0, nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone)); newOutput(0, nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone));
input_display_list = [ 0, input_display_list = [ 0,
["Path", false], 1, 2, ["Path", false], 1, 2,
["COlor", false], 3, 4, ["Color", false], 3, 4, 5,
] ]
temp_surface = [ 0 ]; temp_surface = [ 0 ];
@ -36,6 +38,7 @@ function Node_Path_Fill(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
var _reso = _data[2]; var _reso = _data[2];
var _colr = _data[3]; var _colr = _data[3];
var _invt = _data[4]; var _invt = _data[4];
var _bg = _data[5];
_outSurf = surface_verify(_outSurf, _dim[0], _dim[1]); _outSurf = surface_verify(_outSurf, _dim[0], _dim[1]);
if(!struct_has(_path, "getPointRatio")) return _outSurf; if(!struct_has(_path, "getPointRatio")) return _outSurf;
@ -46,7 +49,7 @@ function Node_Path_Fill(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
surface_set_target(_outSurf); surface_set_target(_outSurf);
if(_invt) { draw_clear(_colr); BLEND_SUBTRACT } if(_invt) { draw_clear(_colr); BLEND_SUBTRACT }
else { DRAW_CLEAR } else { draw_clear(_bg); }
draw_set_color(_invt? c_white : _colr); draw_set_color(_invt? c_white : _colr);
array_map_ext(path_points, function(p, i) /*=>*/ {return __tpath.getPointRatio(i * __step, 0, p)}); array_map_ext(path_points, function(p, i) /*=>*/ {return __tpath.getPointRatio(i * __step, 0, p)});

View file

@ -30,7 +30,7 @@ function Node_Path_From_Mask(_x, _y, _group = noone) : Node(_x, _y, _group) cons
static getPointDistance = function(_dist, _ind = 0, out = undefined) { #region static getPointDistance = function(_dist, _ind = 0, out = undefined) { #region
if(out == undefined) out = new __vec2(); else { out.x = 0; out.y = 0; } if(out == undefined) out = new __vec2(); else { out.x = 0; out.y = 0; }
var _cKey = $"{_dist},{_ind}"; var _cKey = $"{string_format(_dist, 0, 6)},{_ind}";
if(ds_map_exists(cached_pos, _cKey)) { if(ds_map_exists(cached_pos, _cKey)) {
var _p = cached_pos[? _cKey]; var _p = cached_pos[? _cKey];
out.x = _p.x; out.x = _p.x;

View file

@ -1,5 +1,6 @@
function Node_Path_Morph(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_Path_Morph(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "Morph Path"; name = "Morph Path";
dimension_index = 2;
newInput(0, nodeValue_PathNode("Path 1", self, noone)) newInput(0, nodeValue_PathNode("Path 1", self, noone))
.setVisible(true, true) .setVisible(true, true)
@ -11,16 +12,25 @@ function Node_Path_Morph(_x, _y, _group = noone) : Node(_x, _y, _group) construc
newInput(2, nodeValue_Dimension(self)); newInput(2, nodeValue_Dimension(self));
newInput(3, nodeValue_Int("Subdivision", self, 512)) newInput(3, nodeValue_Int("Subdivision", self, 128))
.setValidator(VV_min(2)) .setValidator(VV_min(2))
.rejectArray(); .rejectArray();
newInput(4, nodeValue_Bool("Clip In-Out", self, false))
newInput(5, nodeValue_Curve("Curve", self, CURVE_DEF_01));
newInput(6, nodeValue_Bool("Match index", self, false))
newOutput(0, nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone)); newOutput(0, nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone));
input_display_list = [ 0, 1, input_display_list = [ 0, 1,
["Morphing", false], 2, 3, ["Morphing", false], 2, 3, 6,
["Rendering", false], 5, 4,
] ]
attribute_surface_depth();
temp_surface = [ 0 ]; temp_surface = [ 0 ];
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
@ -31,13 +41,16 @@ function Node_Path_Morph(_x, _y, _group = noone) : Node(_x, _y, _group) construc
if(_path && struct_has(_path, "drawOverlay")) _path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny); if(_path && struct_has(_path, "drawOverlay")) _path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
} }
static update = function() { static processData = function(_outSurf, _data, _output_index, _array_index) {
var _path1 = getInputData(0); var _path1 = _data[0];
var _path2 = getInputData(1); var _path2 = _data[1];
if(_path1 == noone || _path2 == noone) return; if(_path1 == noone || _path2 == noone) return _outSurf;
var _dim = getInputData(2); var _dim = _data[2];
var _sub = getInputData(3); var _sub = _data[3] + 1;
var _clp = _data[4];
var _cur = _data[5];
var _mid = _data[6];
var _p1 = array_create(_sub * 2); var _p1 = array_create(_sub * 2);
var _p2 = array_create(_sub * 2); var _p2 = array_create(_sub * 2);
@ -57,18 +70,20 @@ function Node_Path_Morph(_x, _y, _group = noone) : Node(_x, _y, _group) construc
_p2[i * 2 + 1] = _pp.y; _p2[i * 2 + 1] = _pp.y;
} }
var _out = outputs[0].getValue(); surface_set_shader(_outSurf, sh_path_morph);
_out = surface_verify(_out, _dim[0], _dim[1])
surface_set_shader(_out, sh_path_morph);
shader_set_2("dimension", _dim); shader_set_2("dimension", _dim);
shader_set_i("subdivision", _sub); shader_set_i("subdivision", _sub);
shader_set_i("clip", _clp);
shader_set_i("matchIndex", _mid);
shader_set_f("point1", _p1); shader_set_f("point1", _p1);
shader_set_f("point2", _p2); shader_set_f("point2", _p2);
shader_set_f("w_curve", _cur);
shader_set_i("w_amount", array_length(_cur));
draw_empty(); draw_empty();
surface_reset_shader(); surface_reset_shader();
outputs[0].setValue(_out); return _outSurf;
} }
} }

View file

@ -25,7 +25,7 @@ function Node_Path_Shape(_x, _y, _group = noone) : Node(_x, _y, _group) construc
new scrollItem("Line", s_node_shape_type, 16), new scrollItem("Line", s_node_shape_type, 16),
new scrollItem("Curve", s_shape_curve, 0), new scrollItem("Curve", s_shape_curve, 0),
]; ];
newInput(3, nodeValue_Enum_Scroll("Shape", self, 0, shapeScroll)); newInput(3, nodeValue_Enum_Scroll("Shape", self, 0, { data: shapeScroll, horizontal: true, text_pad: ui(16) }));
newInput(4, nodeValue_Float("Skew", self, .5)) newInput(4, nodeValue_Float("Skew", self, .5))
.setDisplay(VALUE_DISPLAY.slider, { range: [ -1, 1, 0.01] }); .setDisplay(VALUE_DISPLAY.slider, { range: [ -1, 1, 0.01] });
@ -38,11 +38,13 @@ function Node_Path_Shape(_x, _y, _group = noone) : Node(_x, _y, _group) construc
newInput(8, nodeValue_Float("Inner Radius", self, .5)); newInput(8, nodeValue_Float("Inner Radius", self, .5));
newInput(9, nodeValue_Corner("Corner Radius", self, [ 0, 0, 0, 0 ]));
newOutput(0, nodeValue_Output("Path data", self, VALUE_TYPE.pathnode, self)); newOutput(0, nodeValue_Output("Path data", self, VALUE_TYPE.pathnode, self));
input_display_list = [ input_display_list = [
["Transform", false], 0, 2, 1, ["Transform", false], 0, 2, 1,
["Shape", false], 3, 4, 5, 6, 7, 8, ["Shape", false], 3, 4, 5, 6, 7, 8, 9,
]; ];
points = []; points = [];
@ -62,6 +64,8 @@ function Node_Path_Shape(_x, _y, _group = noone) : Node(_x, _y, _group) construc
pa2x = 0; pa2y = 0; pa2x = 0; pa2y = 0;
pa3 = 0; pa3 = 0;
corners = [ 0, 0, 0, 0 ];
preview_surf = noone; preview_surf = noone;
static getLineCount = function() /*=>*/ {return 1}; static getLineCount = function() /*=>*/ {return 1};
@ -78,23 +82,11 @@ function Node_Path_Shape(_x, _y, _group = noone) : Node(_x, _y, _group) construc
case "Rectangle" : case "Rectangle" :
case "Trapezoid" : case "Trapezoid" :
case "Parallelogram" : case "Parallelogram" :
if(_rat <= .25) { var i = floor(_rat * 4);
var r = _rat * 4; var r = (_rat - i * .25) * 4;
out.x = lerp(points[0][0], points[1][0], r);
out.y = lerp(points[0][1], points[1][1], r); out.x = lerp(points[i * 2][0], points[i * 2 + 1][0], r);
} else if(_rat <= .50) { out.y = lerp(points[i * 2][1], points[i * 2 + 1][1], r);
var r = (_rat - .25) * 4;
out.x = lerp(points[1][0], points[2][0], r);
out.y = lerp(points[1][1], points[2][1], r);
} else if(_rat <= .75) {
var r = (_rat - .50) * 4;
out.x = lerp(points[2][0], points[3][0], r);
out.y = lerp(points[2][1], points[3][1], r);
} else {
var r = (_rat - .75) * 4;
out.x = lerp(points[3][0], points[0][0], r);
out.y = lerp(points[3][1], points[0][1], r);
}
break; break;
case "Ellipse" : case "Ellipse" :
@ -128,7 +120,7 @@ function Node_Path_Shape(_x, _y, _group = noone) : Node(_x, _y, _group) construc
point_vec2_rotate(out, posx, posy, rot); point_vec2_rotate(out, posx, posy, rot);
return out; return out;
} }
static getPointDistance = function(_dist, _ind = 0, out = undefined) { static getPointDistance = function(_dist, _ind = 0, out = undefined) {
if(out == undefined) out = new __vec2(); if(out == undefined) out = new __vec2();
_dist = safe_mod(_dist, lengthTotal); _dist = safe_mod(_dist, lengthTotal);
@ -148,7 +140,6 @@ function Node_Path_Shape(_x, _y, _group = noone) : Node(_x, _y, _group) construc
break; break;
} }
// point_vec2_rotate(out, posx, posy, rot);
return out; return out;
} }
@ -190,6 +181,7 @@ function Node_Path_Shape(_x, _y, _group = noone) : Node(_x, _y, _group) construc
var _pa3 = inputs[6].getValue(); var _pa3 = inputs[6].getValue();
var _sid = inputs[7].getValue(); var _sid = inputs[7].getValue();
var _inn = inputs[8].getValue(); var _inn = inputs[8].getValue();
var _c = inputs[9].getValue();
shape = inputs[3].getValue(); shape = inputs[3].getValue();
posx = _pos[0]; posx = _pos[0];
@ -203,6 +195,8 @@ function Node_Path_Shape(_x, _y, _group = noone) : Node(_x, _y, _group) construc
pa2y = _aran[1]; pa2y = _aran[1];
pa3 = _pa3; pa3 = _pa3;
corners = _c;
var ox, oy, nx, ny, x0, y0; var ox, oy, nx, ny, x0, y0;
inputs[4].setVisible(false); inputs[4].setVisible(false);
@ -210,15 +204,31 @@ function Node_Path_Shape(_x, _y, _group = noone) : Node(_x, _y, _group) construc
inputs[6].setVisible(false); inputs[6].setVisible(false);
inputs[7].setVisible(false); inputs[7].setVisible(false);
inputs[8].setVisible(false); inputs[8].setVisible(false);
inputs[9].setVisible(false);
switch(shapeScroll[shape].name) { switch(shapeScroll[shape].name) {
case "Rectangle" : case "Rectangle" :
inputs[9].setVisible(true);
loop = true; loop = true;
var x0 = posx - scax;
var y0 = posy - scay;
var x1 = posx + scax;
var y1 = posy + scay;
points = [ points = [
[ posx - scax, posy - scay ], [ x0 + _c[0], y0 ],
[ posx + scax, posy - scay ], [ x1 - _c[1], y0 ],
[ posx + scax, posy + scay ],
[ posx - scax, posy + scay ], [ x1, y0 + _c[1] ],
[ x1, y1 - _c[2] ],
[ x1 - _c[2], y1 ],
[ x0 + _c[3], y1 ],
[ x0, y1 - _c[3] ],
[ x0, y0 + _c[0] ],
]; ];
break; break;
@ -229,8 +239,15 @@ function Node_Path_Shape(_x, _y, _group = noone) : Node(_x, _y, _group) construc
points = [ points = [
[ posx - scax * saturate(1 - _pa1), posy - scay ], [ posx - scax * saturate(1 - _pa1), posy - scay ],
[ posx + scax * saturate(1 - _pa1), posy - scay ], [ posx + scax * saturate(1 - _pa1), posy - scay ],
[ posx + scax * saturate(1 - _pa1), posy - scay ],
[ posx + scax * saturate(1 + _pa1), posy + scay ],
[ posx + scax * saturate(1 + _pa1), posy + scay ], [ posx + scax * saturate(1 + _pa1), posy + scay ],
[ posx - scax * saturate(1 + _pa1), posy + scay ], [ posx - scax * saturate(1 + _pa1), posy + scay ],
[ posx - scax * saturate(1 + _pa1), posy + scay ],
[ posx - scax * saturate(1 - _pa1), posy - scay ],
]; ];
break; break;
@ -241,8 +258,15 @@ function Node_Path_Shape(_x, _y, _group = noone) : Node(_x, _y, _group) construc
points = [ points = [
[ posx - scax * saturate(1 - _pa1), posy - scay ], [ posx - scax * saturate(1 - _pa1), posy - scay ],
[ posx + scax * saturate(1 + _pa1), posy - scay ], [ posx + scax * saturate(1 + _pa1), posy - scay ],
[ posx + scax * saturate(1 + _pa1), posy - scay ],
[ posx + scax * saturate(1 - _pa1), posy + scay ],
[ posx + scax * saturate(1 - _pa1), posy + scay ], [ posx + scax * saturate(1 - _pa1), posy + scay ],
[ posx - scax * saturate(1 + _pa1), posy + scay ], [ posx - scax * saturate(1 + _pa1), posy + scay ],
[ posx - scax * saturate(1 + _pa1), posy + scay ],
[ posx - scax * saturate(1 - _pa1), posy - scay ],
]; ];
break; break;

View file

@ -60,7 +60,7 @@ function Node_Path_Shift(_x, _y, _group = noone) : Node(_x, _y, _group) construc
static getPointRatio = function(_rat, ind = 0, out = undefined) { static getPointRatio = function(_rat, ind = 0, out = undefined) {
if(out == undefined) out = new __vec2(); else { out.x = 0; out.y = 0; } if(out == undefined) out = new __vec2(); else { out.x = 0; out.y = 0; }
var _cKey = $"{_rat},{ind}"; var _cKey = $"{string_format(_rat, 0, 6)},{ind}";
if(ds_map_exists(cached_pos, _cKey)) { if(ds_map_exists(cached_pos, _cKey)) {
var _p = cached_pos[? _cKey]; var _p = cached_pos[? _cKey];
out.x = _p.x; out.x = _p.x;

View file

@ -5,13 +5,15 @@ function Node_Path_Transform(_x, _y, _group = noone) : Node(_x, _y, _group) cons
newInput(0, nodeValue_PathNode("Path", self, noone)) newInput(0, nodeValue_PathNode("Path", self, noone))
.setVisible(true, true); .setVisible(true, true);
newInput(1, nodeValue_Vec2("Position", self, [ 0, 0 ])); newInput(1, nodeValue_Vec2("Position", self, [ 0, 0 ]))
.setUnitRef(function() /*=>*/ {return DEF_SURF}, VALUE_UNIT.reference);
newInput(2, nodeValue_Rotation("Rotation", self, 0)); newInput(2, nodeValue_Rotation("Rotation", self, 0));
newInput(3, nodeValue_Vec2("Scale", self, [ 1, 1 ])); newInput(3, nodeValue_Vec2("Scale", self, [ 1, 1 ]));
newInput(4, nodeValue_Vec2("Anchor", self, [ 0, 0 ])); newInput(4, nodeValue_Vec2("Anchor", self, [ 0, 0 ]))
.setUnitRef(function() /*=>*/ {return DEF_SURF}, VALUE_UNIT.reference);
newOutput(0, nodeValue_Output("Path", self, VALUE_TYPE.pathnode, self)); newOutput(0, nodeValue_Output("Path", self, VALUE_TYPE.pathnode, self));
@ -21,8 +23,32 @@ function Node_Path_Transform(_x, _y, _group = noone) : Node(_x, _y, _group) cons
rot = 0; rot = 0;
sca = [ 1, 1 ]; sca = [ 1, 1 ];
anc = [ 0, 0 ]; anc = [ 0, 0 ];
p = new __vec2();
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
var _path = getInputData(0);
if(_path && struct_has(_path, "drawOverlay")) _path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
draw_set_color(COLORS._main_icon);
var _amo = getLineCount();
for( var i = 0; i < _amo; i++ ) {
var _len = getLength(i);
var _stp = 1 / clamp(_len * _s, 1, 64);
var ox, oy, nx, ny;
for( var j = 0; j < 1; j += _stp ) {
p = getPointRatio(j, i, p);
nx = _x + p.x * _s;
ny = _y + p.y * _s;
if(j > 0) draw_line_width(ox, oy, nx, ny, 1);
ox = nx;
oy = ny;
}
}
var px = _x + pos[0] * _s; var px = _x + pos[0] * _s;
var py = _y + pos[1] * _s; var py = _y + pos[1] * _s;
@ -65,9 +91,9 @@ function Node_Path_Transform(_x, _y, _group = noone) : Node(_x, _y, _group) cons
} }
static getPointRatio = function(_rat, ind = 0, out = undefined) { static getPointRatio = function(_rat, ind = 0, out = undefined) {
if(out == undefined) out = new __vec2(); else { out.x = 0; out.y = 0; } if(out == undefined) out = new __vec2();
var _cKey = $"{_rat},{ind}"; var _cKey = $"{string_format(_rat, 0, 6)},{ind}";
if(ds_map_exists(cached_pos, _cKey)) { if(ds_map_exists(cached_pos, _cKey)) {
var _p = cached_pos[? _cKey]; var _p = cached_pos[? _cKey];
out.x = _p.x; out.x = _p.x;
@ -83,7 +109,7 @@ function Node_Path_Transform(_x, _y, _group = noone) : Node(_x, _y, _group) cons
if(!is_struct(path) || !struct_has(path, "getPointRatio")) if(!is_struct(path) || !struct_has(path, "getPointRatio"))
return out; return out;
var _p = path.getPointRatio(_rat, ind).clone(); var _p = path.getPointRatio(_rat, ind);
_p.x = anc[0] + (_p.x - anc[0]) * sca[0]; _p.x = anc[0] + (_p.x - anc[0]) * sca[0];
_p.y = anc[1] + (_p.y - anc[1]) * sca[1]; _p.y = anc[1] + (_p.y - anc[1]) * sca[1];
@ -94,7 +120,6 @@ function Node_Path_Transform(_x, _y, _group = noone) : Node(_x, _y, _group) cons
out.y = _pp[1] + pos[1]; out.y = _pp[1] + pos[1];
cached_pos[? _cKey] = out.clone(); cached_pos[? _cKey] = out.clone();
return out; return out;
} }

View file

@ -47,8 +47,8 @@ function Node_Path_Wave(_x, _y, _group = noone) : Node(_x, _y, _group) construct
wig_map = noone; wig_map = noone;
amp_curve = noone; amp_curve = noone;
p0 = new __vec2();
p = new __vec2(); p = new __vec2();
p0 = new __vec2();
p1 = new __vec2(); p1 = new __vec2();
cached_pos = ds_map_create(); cached_pos = ds_map_create();
@ -58,9 +58,7 @@ function Node_Path_Wave(_x, _y, _group = noone) : Node(_x, _y, _group) construct
if(_path && struct_has(_path, "drawOverlay")) _path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny); if(_path && struct_has(_path, "drawOverlay")) _path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
draw_set_color(COLORS._main_icon); draw_set_color(COLORS._main_icon);
var _amo = getLineCount(); var _amo = getLineCount();
for( var i = 0; i < _amo; i++ ) { for( var i = 0; i < _amo; i++ ) {
var _len = getLength(i); var _len = getLength(i);
var _stp = 1 / clamp(_len * _s, 1, 64); var _stp = 1 / clamp(_len * _s, 1, 64);
@ -72,7 +70,7 @@ function Node_Path_Wave(_x, _y, _group = noone) : Node(_x, _y, _group) construct
nx = _x + p.x * _s; nx = _x + p.x * _s;
ny = _y + p.y * _s; ny = _y + p.y * _s;
if(j > 0) draw_line_width(ox, oy, nx, ny, 3); if(j > 0) draw_line_width(ox, oy, nx, ny, 1);
ox = nx; ox = nx;
oy = ny; oy = ny;
@ -116,7 +114,7 @@ function Node_Path_Wave(_x, _y, _group = noone) : Node(_x, _y, _group) construct
static getPointRatio = function(_rat, ind = 0, out = undefined) { static getPointRatio = function(_rat, ind = 0, out = undefined) {
if(out == undefined) out = new __vec2(); else { out.x = 0; out.y = 0; } if(out == undefined) out = new __vec2(); else { out.x = 0; out.y = 0; }
var _cKey = $"{_rat},{ind}"; var _cKey = $"{string_format(_rat, 0, 6)},{ind}";
if(ds_map_exists(cached_pos, _cKey)) { if(ds_map_exists(cached_pos, _cKey)) {
var _p = cached_pos[? _cKey]; var _p = cached_pos[? _cKey];
out.x = _p.x; out.x = _p.x;
@ -125,12 +123,12 @@ function Node_Path_Wave(_x, _y, _group = noone) : Node(_x, _y, _group) construct
} }
var _path = path; var _path = path;
var _fre = fre ; var _fre = fre;
var _amp = amp ; var _amp = amp;
var _shf = shf ; var _shf = shf;
var _seed = seed + ind; var _seed = seed + ind;
var _wig = wig ; var _wig = wig;
var _wigs = wigs; var _wigs = wigs;
var _wigf = wigf; var _wigf = wigf;

View file

@ -393,16 +393,18 @@ function Panel_Collection() : PanelContent() constructor {
if(sprite_exists(_node.spr)) { if(sprite_exists(_node.spr)) {
var sw = sprite_get_width(_node.spr); var sw = sprite_get_width(_node.spr);
var sh = sprite_get_height(_node.spr); var sh = sprite_get_height(_node.spr);
var ss = (grid_size - ui(10)) * PREFERENCES.collection_scale / max(sw, sh); var ss = (grid_size - ui(12)) * PREFERENCES.collection_scale / max(sw, sh);
var xo = (sprite_get_xoffset(_node.spr) - sw / 2) * ss; var xo = (sprite_get_xoffset(_node.spr) - sw / 2) * ss;
var yo = (sprite_get_yoffset(_node.spr) - sh / 2) * ss; var yo = (sprite_get_yoffset(_node.spr) - sh / 2) * ss;
var sx = _boxx + grid_size / 2 + xo; var sx = _boxx + grid_size / 2 + xo;
var sy = yy + grid_size / 2 + yo; var sy = yy + grid_size / 2 + yo;
BLEND_ALPHA_MULP gpu_set_texfilter(true);
draw_sprite_ext(_node.spr, frame, sx, sy, ss, ss, 0, c_white, 1); BLEND_ALPHA_MULP
BLEND_NORMAL draw_sprite_ext(_node.spr, frame, sx, sy, ss, ss, 0, c_white, 1);
BLEND_NORMAL
gpu_set_texfilter(false);
} else } else
draw_sprite_ui_uniform(THEME.group, 0, _boxx + grid_size / 2, yy + grid_size / 2, 1, c_white); draw_sprite_ui_uniform(THEME.group, 0, _boxx + grid_size / 2, yy + grid_size / 2, 1, c_white);
@ -562,7 +564,7 @@ function Panel_Collection() : PanelContent() constructor {
nodeListPane.hover_content = true; nodeListPane.hover_content = true;
var ww = nodeListPane.surface_w; var ww = nodeListPane.surface_w;
var _hg = ui(28); var _hg = line_get_height(f_p1, 4);
var _hov = pHOVER && nodeListPane.hover; var _hov = pHOVER && nodeListPane.hover;
var _foc = pFOCUS; var _foc = pFOCUS;
@ -583,7 +585,7 @@ function Panel_Collection() : PanelContent() constructor {
nodeListPane_page = i; nodeListPane_page = i;
} }
draw_set_text(f_p0, fa_left, fa_center, nodeListPane_page == i? COLORS._main_text_accent : COLORS._main_text_inner); draw_set_text(f_p1, fa_left, fa_center, nodeListPane_page == i? COLORS._main_text_accent : COLORS._main_text_inner);
draw_text_add(ui(24), _y + _hg / 2, _nam); draw_text_add(ui(24), _y + _hg / 2, _nam);
_y += _hg; _y += _hg;
@ -667,13 +669,15 @@ function Panel_Collection() : PanelContent() constructor {
} }
} }
var ss = grid_size / (max(sprite_get_width(_node.spr), sprite_get_height(_node.spr)) + 16); var ss = (grid_size - ui(16)) / max(sprite_get_width(_node.spr), sprite_get_height(_node.spr));
var sx = _boxx + grid_size / 2; var sx = _boxx + grid_size / 2;
var sy = yy + grid_size / 2; var sy = yy + grid_size / 2;
BLEND_ALPHA_MULP gpu_set_texfilter(true);
draw_sprite_ext(_node.spr, 0, sx, sy, ss, ss, 0, c_white, 1); BLEND_ALPHA_MULP
BLEND_NORMAL draw_sprite_ext(_node.spr, 0, sx, sy, ss, ss, 0, c_white, 1);
BLEND_NORMAL
gpu_set_texfilter(false);
var fav = struct_exists(global.FAV_NODES, _node.node); var fav = struct_exists(global.FAV_NODES, _node.node);
if(fav) draw_sprite_ui_uniform(THEME.star, 0, _boxx + grid_size - ui(8), yy + grid_size - ui(8), 0.7, COLORS._main_accent, 1.); if(fav) draw_sprite_ui_uniform(THEME.star, 0, _boxx + grid_size - ui(8), yy + grid_size - ui(8), 0.7, COLORS._main_accent, 1.);

View file

@ -40,6 +40,9 @@ function textBox(_input, _onModify) : textInput(_input, _onModify) constructor {
label = ""; label = "";
labelColor = COLORS._main_text_sub; labelColor = COLORS._main_text_sub;
labelSpr = noone;
labelSprIndex = 0;
labelAlign = fa_left;
highlight_color = -1; highlight_color = -1;
highlight_alpha = 1; highlight_alpha = 1;
@ -574,6 +577,10 @@ function textBox(_input, _onModify) : textInput(_input, _onModify) constructor {
draw_set_alpha(0.5); draw_set_alpha(0.5);
draw_text_add(_x + padding, _y + _h / 2, label); draw_text_add(_x + padding, _y + _h / 2, label);
draw_set_alpha(1); draw_set_alpha(1);
} else if(labelSpr != noone) {
var _ix = labelAlign == fa_left? _x + _h / 2 : _x + _w - _h / 2;
draw_sprite_ext(labelSpr, labelSprIndex, _ix, _y + _h / 2, 1, 1, 0, labelColor, 1);
} }
} }

View file

@ -1,13 +1,118 @@
#define PI 3.14159265359 #define PI 3.14159265359
#ifdef _YY_HLSL11_
#define CURVE_MAX 1024
#else
#define CURVE_MAX 512
#endif
varying vec2 v_vTexcoord; varying vec2 v_vTexcoord;
varying vec4 v_vColour; varying vec4 v_vColour;
uniform vec2 dimension; uniform vec2 dimension;
uniform int subdivision; uniform int subdivision;
uniform int clip;
uniform int matchIndex;
uniform float w_curve[CURVE_MAX];
uniform int w_amount;
uniform vec2 point1[1024]; uniform vec2 point1[1024];
uniform vec2 point2[1024]; uniform vec2 point2[1024];
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
float eval_curve_segment_t(in float _y0, in float ax0, in float ay0, in float bx1, in float by1, in float _y1, in float prog) {
return _y0 * pow(1. - prog, 3.) +
ay0 * 3. * pow(1. - prog, 2.) * prog +
by1 * 3. * (1. - prog) * pow(prog, 2.) +
_y1 * pow(prog, 3.);
}
float eval_curve_segment_x(in float _y0, in float ax0, in float ay0, in float bx1, in float by1, in float _y1, in float _x) {
float st = 0.;
float ed = 1.;
float _prec = 0.0001;
float _xt = _x;
int _binRep = 8;
if(_x <= 0.) return _y0;
if(_x >= 1.) return _y1;
if(_y0 == ay0 && _y0 == by1 && _y0 == _y1) return _y0;
for(int i = 0; i < _binRep; i++) {
float _ftx = 3. * pow(1. - _xt, 2.) * _xt * ax0
+ 3. * (1. - _xt) * pow(_xt, 2.) * bx1
+ pow(_xt, 3.);
if(abs(_ftx - _x) < _prec)
return eval_curve_segment_t(_y0, ax0, ay0, bx1, by1, _y1, _xt);
if(_xt < _x) st = _xt;
else ed = _xt;
_xt = (st + ed) / 2.;
}
int _newRep = 16;
for(int i = 0; i < _newRep; i++) {
float slope = ( 9. * ax0 - 9. * bx1 + 3.) * _xt * _xt
+ (-12. * ax0 + 6. * bx1) * _xt
+ 3. * ax0;
float _ftx = 3. * pow(1. - _xt, 2.) * _xt * ax0
+ 3. * (1. - _xt) * pow(_xt, 2.) * bx1
+ pow(_xt, 3.)
- _x;
_xt -= _ftx / slope;
if(abs(_ftx) < _prec)
break;
}
_xt = clamp(_xt, 0., 1.);
return eval_curve_segment_t(_y0, ax0, ay0, bx1, by1, _y1, _xt);
}
float curveEval(in float[CURVE_MAX] curve, in int amo, in float _x) {
int _shf = amo - int(floor(float(amo) / 6.) * 6.);
int _segs = (amo - _shf) / 6 - 1;
float _shift = _shf > 0? curve[0] : 0.;
float _scale = _shf > 1? curve[1] : 1.;
_x = _x / _scale - _shift;
_x = clamp(_x, 0., 1.);
for( int i = 0; i < _segs; i++ ) {
int ind = _shf + i * 6;
float _x0 = curve[ind + 2];
float _y0 = curve[ind + 3];
//float bx0 = _x0 + curve[ind + 0];
//float by0 = _y0 + curve[ind + 1];
float ax0 = _x0 + curve[ind + 4];
float ay0 = _y0 + curve[ind + 5];
float _x1 = curve[ind + 6 + 2];
float _y1 = curve[ind + 6 + 3];
float bx1 = _x1 + curve[ind + 6 + 0];
float by1 = _y1 + curve[ind + 6 + 1];
//float ax1 = _x1 + curve[ind + 6 + 4];
//float ay1 = _y1 + curve[ind + 6 + 5];
if(_x < _x0) continue;
if(_x > _x1) continue;
return eval_curve_segment_x(_y0, ax0, ay0, bx1, by1, _y1, (_x - _x0) / (_x1 - _x0));
}
return curve[0];
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
vec2 pointToLine(in vec2 p, in vec2 l0, in vec2 l1) { vec2 pointToLine(in vec2 p, in vec2 l0, in vec2 l1) {
float l2 = pow(l0.x - l1.x, 2.) + pow(l0.y - l1.y, 2.); float l2 = pow(l0.x - l1.x, 2.) + pow(l0.y - l1.y, 2.);
if (l2 == 0.) return l0; if (l2 == 0.) return l0;
@ -26,45 +131,110 @@ float pointOnLine(in vec2 p, in vec2 l0, in vec2 l1) {
return t; return t;
} }
float tsign (in vec2 p1, in vec2 p2, in vec2 p3) { return (p1.x - p3.x) * (p2.y - p3.y) - (p2.x - p3.x) * (p1.y - p3.y); }
bool pointInTriangle(in vec2 p, in vec2 t0, in vec2 t1, in vec2 t2) {
float d1 = tsign(p, t0, t1);
float d2 = tsign(p, t1, t2);
float d3 = tsign(p, t2, t0);
bool has_neg = (d1 < 0.) || (d2 < 0.) || (d3 < 0.);
bool has_pos = (d1 > 0.) || (d2 > 0.) || (d3 > 0.);
return !(has_neg && has_pos);
}
bool intersect(in vec2 p, in vec2 l0, in vec2 l1) {
float s0 = sign(p.y - l0.y);
float s1 = sign(l1.y - p.y);
bool ins = s0 == s1;
return ins;
}
void main() { void main() {
vec2 px = v_vTexcoord * dimension; vec2 px = v_vTexcoord * dimension;
float dF = dimension.x + dimension.y; float dF = dimension.x + dimension.y;
vec2 pF = point1[0]; vec2 pF = point1[0];
vec2 pF0 = point1[0]; vec2 pF0 = point1[0], pF1;
vec2 pF1 = vec2(0.);
float dT = dimension.x + dimension.y; float dT = dimension.x + dimension.y;
vec2 pT = point2[0]; vec2 pT = point2[0];
vec2 pT0 = point2[0]; vec2 pT0 = point2[0], pT1;
vec2 pT1 = vec2(0.);
for(int i = 1; i < subdivision; i++) { bool inFrom = false;
pF1 = point1[i]; bool inTo = false;
pT1 = point2[i]; float a = 0.;
vec2 f = pointToLine(px, pF0, pF1); if(matchIndex == 0) {
float _f = distance(px, f); for(int i = 1; i < subdivision; i++) {
if(_f <= dF) { pF1 = point1[i];
dF = _f; pT1 = point2[i];
pF = f;
} vec2 f = pointToLine(px, pF0, pF1);
vec2 t = pointToLine(px, pT0, pT1);
vec2 t = pointToLine(px, pT0, pT1);
float _t = distance(px, t); if(intersect(px, pF0, pF1) && f.x >= px.x) inFrom = !inFrom;
if(_t <= dT) { if(intersect(px, pT0, pT1) && t.x >= px.x) inTo = !inTo;
dT = _t;
pT = t; float _f = distance(px, f);
} float _t = distance(px, t);
pF0 = pF1; if(_f <= dF) {
pT0 = pT1; dF = _f;
pF = f;
}
if(_t <= dT) {
dT = _t;
pT = t;
}
pF0 = pF1;
pT0 = pT1;
}
a = dF / (dF + dT);
} else {
float ma = 99999.;
float index = 0.;
bool infr = false;
a = 0.;
for(int i = 1; i < subdivision; i++) {
pF1 = point1[i];
pT1 = point2[i];
vec2 f = pointToLine(px, pF0, pF1);
vec2 t = pointToLine(px, pT0, pT1);
if(intersect(px, pF0, pF1) && f.x >= px.x) inFrom = !inFrom;
if(intersect(px, pT0, pT1) && t.x >= px.x) inTo = !inTo;
bool inRegion = pointInTriangle(px, pF0, pF1, pT0) || pointInTriangle(px, pF1, pT0, pT1);
pF0 = pF1;
pT0 = pT1;
if(!inRegion) continue;
float _f = distance(px, f);
float _t = distance(px, t);
a = max(a, _f / (_f + _t));
infr = true;
}
if(infr) inFrom = true;
} }
float a = dF / (dF + dT); if(clip == 1) {
// float l = pointOnLine(px, pF, pT); if( inTo) a = 1.;
// if(l < 0.) a = 0.; else if(!inFrom) a = 0.;
// else if(l > 1.) a = 1.; }
a = curveEval(w_curve, w_amount, a);
gl_FragColor = vec4(vec3(a), 1.); gl_FragColor = vec4(vec3(a), 1.);
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 596 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 595 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 865 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 596 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 595 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 B

View file

@ -2,24 +2,27 @@
"$GMSprite":"", "$GMSprite":"",
"%Name":"s_inspector_corner", "%Name":"s_inspector_corner",
"bboxMode":0, "bboxMode":0,
"bbox_bottom":92, "bbox_bottom":15,
"bbox_left":3, "bbox_left":0,
"bbox_right":92, "bbox_right":15,
"bbox_top":3, "bbox_top":0,
"collisionKind":1, "collisionKind":1,
"collisionTolerance":0, "collisionTolerance":0,
"DynamicTexturePage":false, "DynamicTexturePage":false,
"edgeFiltering":false, "edgeFiltering":false,
"For3D":false, "For3D":false,
"frames":[ "frames":[
{"$GMSpriteFrame":"","%Name":"7d6f3c9b-816b-473c-9609-7afe7c287375","name":"7d6f3c9b-816b-473c-9609-7afe7c287375","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, {"$GMSpriteFrame":"","%Name":"e83b87fa-8548-47d9-9730-795354c9cfab","name":"e83b87fa-8548-47d9-9730-795354c9cfab","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"489b53d7-5462-40c6-ae0b-a79548a50391","name":"489b53d7-5462-40c6-ae0b-a79548a50391","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"1a3b04c9-2e80-4197-ad8a-fb08eecac59b","name":"1a3b04c9-2e80-4197-ad8a-fb08eecac59b","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
{"$GMSpriteFrame":"","%Name":"138da7d0-5a9b-40c2-a77a-5225382e6964","name":"138da7d0-5a9b-40c2-a77a-5225382e6964","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
], ],
"gridX":0, "gridX":0,
"gridY":0, "gridY":0,
"height":96, "height":16,
"HTile":false, "HTile":false,
"layers":[ "layers":[
{"$GMImageLayer":"","%Name":"c0fbcaac-9a99-4788-bf26-4e7d3abe43a7","blendMode":0,"displayName":"default","isLocked":false,"name":"c0fbcaac-9a99-4788-bf26-4e7d3abe43a7","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, {"$GMImageLayer":"","%Name":"f4daaca1-3dcd-4fc2-9fae-5dcbab5b23cd","blendMode":0,"displayName":"default","isLocked":false,"name":"f4daaca1-3dcd-4fc2-9fae-5dcbab5b23cd","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
], ],
"name":"s_inspector_corner", "name":"s_inspector_corner",
"nineSlice":null, "nineSlice":null,
@ -49,7 +52,7 @@
}, },
"eventStubScript":null, "eventStubScript":null,
"eventToFunction":{}, "eventToFunction":{},
"length":1.0, "length":4.0,
"lockOrigin":false, "lockOrigin":false,
"moments":{ "moments":{
"$KeyframeStore<MomentsEventKeyframe>":"", "$KeyframeStore<MomentsEventKeyframe>":"",
@ -69,14 +72,23 @@
"tracks":[ "tracks":[
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[ {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{ {"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"7d6f3c9b-816b-473c-9609-7afe7c287375","path":"sprites/s_inspector_corner/s_inspector_corner.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, "0":{"$SpriteFrameKeyframe":"","Id":{"name":"e83b87fa-8548-47d9-9730-795354c9cfab","path":"sprites/s_inspector_corner/s_inspector_corner.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"941a0f5d-b28e-4048-91da-114760d8380f","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,}, },"Disabled":false,"id":"711e0c69-a7f6-4904-98f0-7e8f49e55088","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"489b53d7-5462-40c6-ae0b-a79548a50391","path":"sprites/s_inspector_corner/s_inspector_corner.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"0d575809-e630-40b8-8a85-0528e99c7c3e","IsCreationKey":false,"Key":1.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"1a3b04c9-2e80-4197-ad8a-fb08eecac59b","path":"sprites/s_inspector_corner/s_inspector_corner.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"03a68097-6315-4121-82ed-231fa6c71547","IsCreationKey":false,"Key":2.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"138da7d0-5a9b-40c2-a77a-5225382e6964","path":"sprites/s_inspector_corner/s_inspector_corner.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"80bb90fa-5b1c-4d10-b92f-4f809d15c50b","IsCreationKey":false,"Key":3.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
], ],
"visibleRange":null, "visibleRange":null,
"volume":1.0, "volume":1.0,
"xorigin":48, "xorigin":8,
"yorigin":48, "yorigin":8,
}, },
"swatchColours":null, "swatchColours":null,
"swfPrecision":0.5, "swfPrecision":0.5,
@ -86,5 +98,5 @@
}, },
"type":0, "type":0,
"VTile":false, "VTile":false,
"width":96, "width":16,
} }