weight in other path nodes
|
@ -232,6 +232,7 @@
|
||||||
{"name":"colors","order":2,"path":"folders/nodes/values/types/colors.yy",},
|
{"name":"colors","order":2,"path":"folders/nodes/values/types/colors.yy",},
|
||||||
{"name":"object","order":3,"path":"folders/nodes/values/types/object.yy",},
|
{"name":"object","order":3,"path":"folders/nodes/values/types/object.yy",},
|
||||||
{"name":"panels","order":333,"path":"folders/panels.yy",},
|
{"name":"panels","order":333,"path":"folders/panels.yy",},
|
||||||
|
{"name":"debug","order":2,"path":"folders/panels/_others/debug.yy",},
|
||||||
{"name":"what?","order":1,"path":"folders/panels/_others/what?.yy",},
|
{"name":"what?","order":1,"path":"folders/panels/_others/what?.yy",},
|
||||||
{"name":"animation","order":1,"path":"folders/panels/animation.yy",},
|
{"name":"animation","order":1,"path":"folders/panels/animation.yy",},
|
||||||
{"name":"collection","order":2,"path":"folders/panels/collection.yy",},
|
{"name":"collection","order":2,"path":"folders/panels/collection.yy",},
|
||||||
|
@ -1312,18 +1313,18 @@
|
||||||
{"name":"paddingBox","order":7,"path":"scripts/paddingBox/paddingBox.yy",},
|
{"name":"paddingBox","order":7,"path":"scripts/paddingBox/paddingBox.yy",},
|
||||||
{"name":"palette_functions","order":3,"path":"scripts/palette_functions/palette_functions.yy",},
|
{"name":"palette_functions","order":3,"path":"scripts/palette_functions/palette_functions.yy",},
|
||||||
{"name":"panel_action_create","order":9,"path":"scripts/panel_action_create/panel_action_create.yy",},
|
{"name":"panel_action_create","order":9,"path":"scripts/panel_action_create/panel_action_create.yy",},
|
||||||
{"name":"panel_addon","order":5,"path":"scripts/panel_addon/panel_addon.yy",},
|
{"name":"panel_addon","order":6,"path":"scripts/panel_addon/panel_addon.yy",},
|
||||||
{"name":"panel_animation_scaler","order":1,"path":"scripts/panel_animation_scaler/panel_animation_scaler.yy",},
|
{"name":"panel_animation_scaler","order":1,"path":"scripts/panel_animation_scaler/panel_animation_scaler.yy",},
|
||||||
{"name":"panel_animation","order":3,"path":"scripts/panel_animation/panel_animation.yy",},
|
{"name":"panel_animation","order":3,"path":"scripts/panel_animation/panel_animation.yy",},
|
||||||
{"name":"panel_array_sequence","order":3,"path":"scripts/panel_array_sequence/panel_array_sequence.yy",},
|
{"name":"panel_array_sequence","order":3,"path":"scripts/panel_array_sequence/panel_array_sequence.yy",},
|
||||||
|
{"name":"panel_collection_manager","order":5,"path":"scripts/panel_collection_manager/panel_collection_manager.yy",},
|
||||||
{"name":"panel_collection","order":1,"path":"scripts/panel_collection/panel_collection.yy",},
|
{"name":"panel_collection","order":1,"path":"scripts/panel_collection/panel_collection.yy",},
|
||||||
{"name":"panel_color","order":1,"path":"scripts/panel_color/panel_color.yy",},
|
{"name":"panel_color","order":1,"path":"scripts/panel_color/panel_color.yy",},
|
||||||
{"name":"panel_console","order":8,"path":"scripts/panel_console/panel_console.yy",},
|
|
||||||
{"name":"panel_custom_inspector","order":5,"path":"scripts/panel_custom_inspector/panel_custom_inspector.yy",},
|
{"name":"panel_custom_inspector","order":5,"path":"scripts/panel_custom_inspector/panel_custom_inspector.yy",},
|
||||||
{"name":"panel_data","order":2,"path":"scripts/panel_data/panel_data.yy",},
|
{"name":"panel_data","order":3,"path":"scripts/panel_data/panel_data.yy",},
|
||||||
{"name":"panel_display_additional","order":12,"path":"scripts/panel_display_additional/panel_display_additional.yy",},
|
{"name":"panel_display_additional","order":13,"path":"scripts/panel_display_additional/panel_display_additional.yy",},
|
||||||
{"name":"panel_file_explorer","order":13,"path":"scripts/panel_file_explorer/panel_file_explorer.yy",},
|
{"name":"panel_file_explorer","order":14,"path":"scripts/panel_file_explorer/panel_file_explorer.yy",},
|
||||||
{"name":"panel_function","order":3,"path":"scripts/panel_function/panel_function.yy",},
|
{"name":"panel_function","order":4,"path":"scripts/panel_function/panel_function.yy",},
|
||||||
{"name":"panel_globalvar","order":2,"path":"scripts/panel_globalvar/panel_globalvar.yy",},
|
{"name":"panel_globalvar","order":2,"path":"scripts/panel_globalvar/panel_globalvar.yy",},
|
||||||
{"name":"panel_gm_explorer","order":5,"path":"scripts/panel_gm_explorer/panel_gm_explorer.yy",},
|
{"name":"panel_gm_explorer","order":5,"path":"scripts/panel_gm_explorer/panel_gm_explorer.yy",},
|
||||||
{"name":"panel_gradient","order":2,"path":"scripts/panel_gradient/panel_gradient.yy",},
|
{"name":"panel_gradient","order":2,"path":"scripts/panel_gradient/panel_gradient.yy",},
|
||||||
|
@ -1333,19 +1334,19 @@
|
||||||
{"name":"panel_graph_export_image","order":4,"path":"scripts/panel_graph_export_image/panel_graph_export_image.yy",},
|
{"name":"panel_graph_export_image","order":4,"path":"scripts/panel_graph_export_image/panel_graph_export_image.yy",},
|
||||||
{"name":"panel_graph_grid_settings","order":7,"path":"scripts/panel_graph_grid_settings/panel_graph_grid_settings.yy",},
|
{"name":"panel_graph_grid_settings","order":7,"path":"scripts/panel_graph_grid_settings/panel_graph_grid_settings.yy",},
|
||||||
{"name":"panel_graph_view_settings","order":8,"path":"scripts/panel_graph_view_settings/panel_graph_view_settings.yy",},
|
{"name":"panel_graph_view_settings","order":8,"path":"scripts/panel_graph_view_settings/panel_graph_view_settings.yy",},
|
||||||
{"name":"panel_history","order":7,"path":"scripts/panel_history/panel_history.yy",},
|
{"name":"panel_history","order":8,"path":"scripts/panel_history/panel_history.yy",},
|
||||||
{"name":"panel_image_array_editor","order":1,"path":"scripts/panel_image_array_editor/panel_image_array_editor.yy",},
|
{"name":"panel_image_array_editor","order":1,"path":"scripts/panel_image_array_editor/panel_image_array_editor.yy",},
|
||||||
{"name":"panel_inspector","order":1,"path":"scripts/panel_inspector/panel_inspector.yy",},
|
{"name":"panel_inspector","order":1,"path":"scripts/panel_inspector/panel_inspector.yy",},
|
||||||
{"name":"panel_keyframe_driver","order":2,"path":"scripts/panel_keyframe_driver/panel_keyframe_driver.yy",},
|
{"name":"panel_keyframe_driver","order":2,"path":"scripts/panel_keyframe_driver/panel_keyframe_driver.yy",},
|
||||||
{"name":"panel_menu","order":10,"path":"scripts/panel_menu/panel_menu.yy",},
|
{"name":"panel_menu","order":10,"path":"scripts/panel_menu/panel_menu.yy",},
|
||||||
{"name":"panel_node_align","order":3,"path":"scripts/panel_node_align/panel_node_align.yy",},
|
{"name":"panel_node_align","order":3,"path":"scripts/panel_node_align/panel_node_align.yy",},
|
||||||
{"name":"panel_node_custom_import","order":2,"path":"scripts/panel_node_custom_import/panel_node_custom_import.yy",},
|
{"name":"panel_node_custom_import","order":2,"path":"scripts/panel_node_custom_import/panel_node_custom_import.yy",},
|
||||||
{"name":"panel_node_data_gen","order":9,"path":"scripts/panel_node_data_gen/panel_node_data_gen.yy",},
|
{"name":"panel_node_data_gen","order":1,"path":"scripts/panel_node_data_gen/panel_node_data_gen.yy",},
|
||||||
{"name":"panel_nodes","order":2,"path":"scripts/panel_nodes/panel_nodes.yy",},
|
{"name":"panel_nodes","order":2,"path":"scripts/panel_nodes/panel_nodes.yy",},
|
||||||
{"name":"panel_notification","order":4,"path":"scripts/panel_notification/panel_notification.yy",},
|
{"name":"panel_notification","order":5,"path":"scripts/panel_notification/panel_notification.yy",},
|
||||||
{"name":"panel_palette_mixer","order":3,"path":"scripts/panel_palette_mixer/panel_palette_mixer.yy",},
|
{"name":"panel_palette_mixer","order":3,"path":"scripts/panel_palette_mixer/panel_palette_mixer.yy",},
|
||||||
{"name":"panel_patreon","order":2,"path":"scripts/panel_patreon/panel_patreon.yy",},
|
{"name":"panel_patreon","order":2,"path":"scripts/panel_patreon/panel_patreon.yy",},
|
||||||
{"name":"panel_preference","order":17,"path":"scripts/panel_preference/panel_preference.yy",},
|
{"name":"panel_preference","order":18,"path":"scripts/panel_preference/panel_preference.yy",},
|
||||||
{"name":"panel_presets","order":4,"path":"scripts/panel_presets/panel_presets.yy",},
|
{"name":"panel_presets","order":4,"path":"scripts/panel_presets/panel_presets.yy",},
|
||||||
{"name":"panel_preview_3d_sdf_setting","order":10,"path":"scripts/panel_preview_3d_sdf_setting/panel_preview_3d_sdf_setting.yy",},
|
{"name":"panel_preview_3d_sdf_setting","order":10,"path":"scripts/panel_preview_3d_sdf_setting/panel_preview_3d_sdf_setting.yy",},
|
||||||
{"name":"panel_preview_3d_setting","order":4,"path":"scripts/panel_preview_3d_setting/panel_preview_3d_setting.yy",},
|
{"name":"panel_preview_3d_setting","order":4,"path":"scripts/panel_preview_3d_setting/panel_preview_3d_setting.yy",},
|
||||||
|
@ -1356,13 +1357,13 @@
|
||||||
{"name":"panel_preview_view_settings","order":9,"path":"scripts/panel_preview_view_settings/panel_preview_view_settings.yy",},
|
{"name":"panel_preview_view_settings","order":9,"path":"scripts/panel_preview_view_settings/panel_preview_view_settings.yy",},
|
||||||
{"name":"panel_preview_window","order":3,"path":"scripts/panel_preview_window/panel_preview_window.yy",},
|
{"name":"panel_preview_window","order":3,"path":"scripts/panel_preview_window/panel_preview_window.yy",},
|
||||||
{"name":"panel_preview","order":2,"path":"scripts/panel_preview/panel_preview.yy",},
|
{"name":"panel_preview","order":2,"path":"scripts/panel_preview/panel_preview.yy",},
|
||||||
{"name":"panel_profile_render","order":14,"path":"scripts/panel_profile_render/panel_profile_render.yy",},
|
{"name":"panel_profile_render","order":3,"path":"scripts/panel_profile_render/panel_profile_render.yy",},
|
||||||
{"name":"panel_resource_monitor","order":15,"path":"scripts/panel_resource_monitor/panel_resource_monitor.yy",},
|
{"name":"panel_resource_monitor","order":4,"path":"scripts/panel_resource_monitor/panel_resource_monitor.yy",},
|
||||||
{"name":"panel_test","order":10,"path":"scripts/panel_test/panel_test.yy",},
|
{"name":"panel_test","order":2,"path":"scripts/panel_test/panel_test.yy",},
|
||||||
{"name":"panel_text_editor","order":11,"path":"scripts/panel_text_editor/panel_text_editor.yy",},
|
{"name":"panel_text_editor","order":12,"path":"scripts/panel_text_editor/panel_text_editor.yy",},
|
||||||
{"name":"panel_toolbar_icon","order":16,"path":"scripts/panel_toolbar_icon/panel_toolbar_icon.yy",},
|
{"name":"panel_toolbar_icon","order":17,"path":"scripts/panel_toolbar_icon/panel_toolbar_icon.yy",},
|
||||||
{"name":"panel_tunnels","order":1,"path":"scripts/panel_tunnels/panel_tunnels.yy",},
|
{"name":"panel_tunnels","order":1,"path":"scripts/panel_tunnels/panel_tunnels.yy",},
|
||||||
{"name":"panel_workspace","order":6,"path":"scripts/panel_workspace/panel_workspace.yy",},
|
{"name":"panel_workspace","order":7,"path":"scripts/panel_workspace/panel_workspace.yy",},
|
||||||
{"name":"path_function","order":4,"path":"scripts/path_function/path_function.yy",},
|
{"name":"path_function","order":4,"path":"scripts/path_function/path_function.yy",},
|
||||||
{"name":"path_parser","order":3,"path":"scripts/path_parser/path_parser.yy",},
|
{"name":"path_parser","order":3,"path":"scripts/path_parser/path_parser.yy",},
|
||||||
{"name":"path_reader","order":5,"path":"scripts/path_reader/path_reader.yy",},
|
{"name":"path_reader","order":5,"path":"scripts/path_reader/path_reader.yy",},
|
||||||
|
|
|
@ -304,6 +304,7 @@
|
||||||
{"$GMFolder":"","%Name":"object","folderPath":"folders/nodes/values/types/object.yy","name":"object","resourceType":"GMFolder","resourceVersion":"2.0",},
|
{"$GMFolder":"","%Name":"object","folderPath":"folders/nodes/values/types/object.yy","name":"object","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||||
{"$GMFolder":"","%Name":"panels","folderPath":"folders/panels.yy","name":"panels","resourceType":"GMFolder","resourceVersion":"2.0",},
|
{"$GMFolder":"","%Name":"panels","folderPath":"folders/panels.yy","name":"panels","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||||
{"$GMFolder":"","%Name":"_others","folderPath":"folders/panels/_others.yy","name":"_others","resourceType":"GMFolder","resourceVersion":"2.0",},
|
{"$GMFolder":"","%Name":"_others","folderPath":"folders/panels/_others.yy","name":"_others","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||||
|
{"$GMFolder":"","%Name":"debug","folderPath":"folders/panels/_others/debug.yy","name":"debug","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||||
{"$GMFolder":"","%Name":"video_banner","folderPath":"folders/panels/_others/video_banner.yy","name":"video_banner","resourceType":"GMFolder","resourceVersion":"2.0",},
|
{"$GMFolder":"","%Name":"video_banner","folderPath":"folders/panels/_others/video_banner.yy","name":"video_banner","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||||
{"$GMFolder":"","%Name":"what?","folderPath":"folders/panels/_others/what?.yy","name":"what?","resourceType":"GMFolder","resourceVersion":"2.0",},
|
{"$GMFolder":"","%Name":"what?","folderPath":"folders/panels/_others/what?.yy","name":"what?","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||||
{"$GMFolder":"","%Name":"animation","folderPath":"folders/panels/animation.yy","name":"animation","resourceType":"GMFolder","resourceVersion":"2.0",},
|
{"$GMFolder":"","%Name":"animation","folderPath":"folders/panels/animation.yy","name":"animation","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||||
|
@ -1284,69 +1285,6 @@
|
||||||
{"$GMIncludedFile":"","%Name":"snap_license.txt","CopyToMask":-1,"filePath":"datafiles","name":"snap_license.txt","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
{"$GMIncludedFile":"","%Name":"snap_license.txt","CopyToMask":-1,"filePath":"datafiles","name":"snap_license.txt","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||||
{"$GMIncludedFile":"","%Name":"ucrtbased.dll","ConfigValues":{},"CopyToMask":-1,"filePath":"datafiles","name":"ucrtbased.dll","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
{"$GMIncludedFile":"","%Name":"ucrtbased.dll","ConfigValues":{},"CopyToMask":-1,"filePath":"datafiles","name":"ucrtbased.dll","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||||
{"$GMIncludedFile":"","%Name":"webpmux.exe","CopyToMask":-1,"filePath":"datafiles/webp","name":"webpmux.exe","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
{"$GMIncludedFile":"","%Name":"webpmux.exe","CopyToMask":-1,"filePath":"datafiles/webp","name":"webpmux.exe","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||||
{"$GMIncludedFile":"","%Name":"0 Introduction.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"0 Introduction.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"0 Introduction.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"0 Introduction.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"1 Image import.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"1 Image import.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"1 Image import.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"1 Image import.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"10 Audio.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"10 Audio.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"11 Optimization.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"11 Optimization.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"2 Animation.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"2 Animation.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"2 Animation.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"2 Animation.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"3 Group.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"3 Group.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"3 Group.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"3 Group.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"4 Loop.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"4 Loop.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"4 Loop.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"4 Loop.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"5 Particles.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"5 Particles.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"5 Particles.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"5 Particles.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"6 Organization.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"6 Organization.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"6 Organization.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"6 Organization.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"7 Composing.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"7 Composing.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"7 Composing.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"7 Composing.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"8 Path.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"8 Path.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"8 Path.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"8 Path.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"9 Expression.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"9 Expression.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"9 Expression.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"9 Expression.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"arrowRight.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"arrowRight.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"card_back.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"card_back.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"card_clubs_02.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"card_clubs_02.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"card_clubs_03.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"card_clubs_03.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"card_clubs_04.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"card_clubs_04.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"card_clubs_05.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"card_clubs_05.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"dice_1.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"dice_1.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"dice_2.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"dice_2.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"dice_3.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"dice_3.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"dice_4.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"dice_4.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"dice_5.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"dice_5.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"dice_6.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"dice_6.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"driver_dialog.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"driver_dialog.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"multi file dialog.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"multi file dialog.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"node_clutter.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"node_clutter.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"tile_0044.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"tile_0044.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"tile_0067.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"tile_0067.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"tile_0126.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Getting started","name":"tile_0126.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"Broken heart.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Sample Projects","name":"Broken heart.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"Broken heart.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Sample Projects","name":"Broken heart.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"dice_1.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Sample Projects","name":"dice_1.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"dice_2.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Sample Projects","name":"dice_2.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"dice_3.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Sample Projects","name":"dice_3.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"dice_4.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Sample Projects","name":"dice_4.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"dice_5.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Sample Projects","name":"dice_5.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"dice_6.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Sample Projects","name":"dice_6.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"Dice.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Sample Projects","name":"Dice.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"Dice.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Sample Projects","name":"Dice.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"Shiny gem.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Sample Projects","name":"Shiny gem.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"Shiny gem.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Sample Projects","name":"Shiny gem.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"Space cloud.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Sample Projects","name":"Space cloud.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"Space cloud.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Sample Projects","name":"Space cloud.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"spark.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Sample Projects","name":"spark.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"tile_0044.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Sample Projects","name":"tile_0044.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"tile_0067.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Sample Projects","name":"tile_0067.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"tile_0126.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Sample Projects","name":"tile_0126.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"Tree sway.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Sample Projects","name":"Tree sway.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"Tree sway.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Sample Projects","name":"Tree sway.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"Canvas.png","CopyToMask":-1,"filePath":"datafiles/Welcome files/Templates","name":"Canvas.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"Canvas.pxc","CopyToMask":-1,"filePath":"datafiles/Welcome files/Templates","name":"Canvas.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"Welcome files.zip","CopyToMask":-1,"filePath":"datafiles/Welcome files","name":"Welcome files.zip","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
|
||||||
{"$GMIncludedFile":"","%Name":"winwin.html","CopyToMask":-1,"filePath":"datafiles","name":"winwin.html","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
{"$GMIncludedFile":"","%Name":"winwin.html","CopyToMask":-1,"filePath":"datafiles","name":"winwin.html","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||||
],
|
],
|
||||||
"isEcma":false,
|
"isEcma":false,
|
||||||
|
@ -2544,6 +2482,7 @@
|
||||||
{"id":{"name":"panel_animation_settings","path":"scripts/panel_animation_settings/panel_animation_settings.yy",},},
|
{"id":{"name":"panel_animation_settings","path":"scripts/panel_animation_settings/panel_animation_settings.yy",},},
|
||||||
{"id":{"name":"panel_animation","path":"scripts/panel_animation/panel_animation.yy",},},
|
{"id":{"name":"panel_animation","path":"scripts/panel_animation/panel_animation.yy",},},
|
||||||
{"id":{"name":"panel_array_sequence","path":"scripts/panel_array_sequence/panel_array_sequence.yy",},},
|
{"id":{"name":"panel_array_sequence","path":"scripts/panel_array_sequence/panel_array_sequence.yy",},},
|
||||||
|
{"id":{"name":"panel_collection_manager","path":"scripts/panel_collection_manager/panel_collection_manager.yy",},},
|
||||||
{"id":{"name":"panel_collection","path":"scripts/panel_collection/panel_collection.yy",},},
|
{"id":{"name":"panel_collection","path":"scripts/panel_collection/panel_collection.yy",},},
|
||||||
{"id":{"name":"panel_collections_settings","path":"scripts/panel_collections_settings/panel_collections_settings.yy",},},
|
{"id":{"name":"panel_collections_settings","path":"scripts/panel_collections_settings/panel_collections_settings.yy",},},
|
||||||
{"id":{"name":"panel_color","path":"scripts/panel_color/panel_color.yy",},},
|
{"id":{"name":"panel_color","path":"scripts/panel_color/panel_color.yy",},},
|
||||||
|
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 3 KiB After Width: | Height: | Size: 3 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 8.3 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 620 B After Width: | Height: | Size: 620 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 508 B After Width: | Height: | Size: 508 B |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 114 B After Width: | Height: | Size: 114 B |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
@ -416,7 +416,6 @@ function Node_Line(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
|
||||||
|
|
||||||
_nx = p.x;
|
_nx = p.x;
|
||||||
_ny = p.y;
|
_ny = p.y;
|
||||||
// print($"{_nx}, {_ny}");
|
|
||||||
|
|
||||||
if(_total < _pathEnd) { //Do not wiggle the last point.
|
if(_total < _pathEnd) { //Do not wiggle the last point.
|
||||||
var _d = point_direction(_ox, _oy, _nx, _ny);
|
var _d = point_direction(_ox, _oy, _nx, _ny);
|
||||||
|
@ -587,6 +586,7 @@ function Node_Line(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
|
||||||
var dat = array_safe_get_fast(_pathData, i, noone);
|
var dat = array_safe_get_fast(_pathData, i, noone);
|
||||||
|
|
||||||
var _col_base = dat == noone? _colb.eval(random(1)) : dat.color;
|
var _col_base = dat == noone? _colb.eval(random(1)) : dat.color;
|
||||||
|
_ow = 1;
|
||||||
|
|
||||||
for( var j = 0, m = array_length(points); j < m; j++ ) {
|
for( var j = 0, m = array_length(points); j < m; j++ ) {
|
||||||
var p0 = points[j];
|
var p0 = points[j];
|
||||||
|
|
|
@ -6,6 +6,8 @@ function Node_Path_Array(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
||||||
|
|
||||||
newOutput(0, nodeValue_Output("Combined Path", self, VALUE_TYPE.pathnode, self));
|
newOutput(0, nodeValue_Output("Combined Path", self, VALUE_TYPE.pathnode, self));
|
||||||
|
|
||||||
|
curr_path = [];
|
||||||
|
|
||||||
static createNewInput = function() {
|
static createNewInput = function() {
|
||||||
var index = array_length(inputs);
|
var index = array_length(inputs);
|
||||||
|
|
||||||
|
@ -17,19 +19,17 @@ function Node_Path_Array(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
||||||
|
|
||||||
static getLineCount = function() {
|
static getLineCount = function() {
|
||||||
var l = 0;
|
var l = 0;
|
||||||
for( var i = input_fix_len; i < array_length(inputs); i += data_length ) {
|
for( var i = 0, n = array_length(curr_path); i < n; i++ )
|
||||||
var _path = getInputData(i);
|
l += curr_path[i].getLineCount();
|
||||||
l += struct_has(_path, "getLineCount")? _path.getLineCount() : 1;
|
|
||||||
}
|
|
||||||
return l;
|
return l;
|
||||||
}
|
}
|
||||||
|
|
||||||
static getSegmentCount = function(ind = 0) {
|
static getSegmentCount = function(ind = 0) {
|
||||||
for( var i = input_fix_len; i < array_length(inputs); i += data_length ) {
|
for( var i = 0, n = array_length(curr_path); i < n; i++ ) {
|
||||||
var _path = getInputData(i);
|
var lc = curr_path[i].getLineCount()
|
||||||
var lc = struct_has(_path, "getLineCount")? _path.getLineCount() : 1;
|
|
||||||
|
|
||||||
if(ind < lc) return _path.getSegmentCount(ind);
|
if(ind < lc) return curr_path[i].getSegmentCount(ind);
|
||||||
ind -= lc;
|
ind -= lc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,11 +37,10 @@ function Node_Path_Array(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
||||||
}
|
}
|
||||||
|
|
||||||
static getLength = function(ind = 0) {
|
static getLength = function(ind = 0) {
|
||||||
for( var i = input_fix_len; i < array_length(inputs); i += data_length ) {
|
for( var i = 0, n = array_length(curr_path); i < n; i++ ) {
|
||||||
var _path = getInputData(i);
|
var lc = curr_path[i].getLineCount();
|
||||||
var lc = struct_has(_path, "getLineCount")? _path.getLineCount() : 1;
|
|
||||||
|
|
||||||
if(ind < lc) return _path.getLength(ind);
|
if(ind < lc) return curr_path[i].getLength(ind);
|
||||||
ind -= lc;
|
ind -= lc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,11 +48,10 @@ function Node_Path_Array(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
||||||
}
|
}
|
||||||
|
|
||||||
static getAccuLength = function(ind = 0) {
|
static getAccuLength = function(ind = 0) {
|
||||||
for( var i = input_fix_len; i < array_length(inputs); i += data_length ) {
|
for( var i = 0, n = array_length(curr_path); i < n; i++ ) {
|
||||||
var _path = getInputData(i);
|
var lc = curr_path[i].getLineCount();
|
||||||
var lc = struct_has(_path, "getLineCount")? _path.getLineCount() : 1;
|
|
||||||
|
|
||||||
if(ind < lc) return _path.getAccuLength(ind);
|
if(ind < lc) return curr_path[i].getAccuLength(ind);
|
||||||
ind -= lc;
|
ind -= lc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,11 +59,10 @@ function Node_Path_Array(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
||||||
}
|
}
|
||||||
|
|
||||||
static getPointRatio = function(_rat, ind = 0) {
|
static getPointRatio = function(_rat, ind = 0) {
|
||||||
for( var i = input_fix_len; i < array_length(inputs); i += data_length ) {
|
for( var i = 0, n = array_length(curr_path); i < n; i++ ) {
|
||||||
var _path = getInputData(i);
|
var lc = curr_path[i].getLineCount();
|
||||||
var lc = struct_has(_path, "getLineCount")? _path.getLineCount() : 1;
|
|
||||||
|
|
||||||
if(ind < lc) return _path.getPointRatio(_rat, ind).clone();
|
if(ind < lc) return curr_path[i].getPointRatio(_rat, ind);
|
||||||
ind -= lc;
|
ind -= lc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,11 +70,10 @@ function Node_Path_Array(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
||||||
}
|
}
|
||||||
|
|
||||||
static getPointDistance = function(_dist, ind = 0) {
|
static getPointDistance = function(_dist, ind = 0) {
|
||||||
for( var i = input_fix_len; i < array_length(inputs); i += data_length ) {
|
for( var i = 0, n = array_length(curr_path); i < n; i++ ) {
|
||||||
var _path = getInputData(i);
|
var lc = curr_path[i].getLineCount();
|
||||||
var lc = struct_has(_path, "getLineCount")? _path.getLineCount() : 1;
|
|
||||||
|
|
||||||
if(ind < lc) return _path.getPointDistance(_dist, ind).clone();
|
if(ind < lc) return curr_path[i].getPointDistance(_dist, ind);
|
||||||
ind -= lc;
|
ind -= lc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,11 +81,10 @@ function Node_Path_Array(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
||||||
}
|
}
|
||||||
|
|
||||||
static getBoundary = function(ind = 0) {
|
static getBoundary = function(ind = 0) {
|
||||||
for( var i = input_fix_len; i < array_length(inputs); i += data_length ) {
|
for( var i = 0, n = array_length(curr_path); i < n; i++ ) {
|
||||||
var _path = getInputData(i);
|
var lc = curr_path[i].getLineCount();
|
||||||
var lc = struct_has(_path, "getLineCount")? _path.getLineCount() : 1;
|
|
||||||
|
|
||||||
if(ind < lc) return _path.getBoundary(ind);
|
if(ind < lc) return curr_path[i].getBoundary(ind);
|
||||||
ind -= lc;
|
ind -= lc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,16 +92,24 @@ function Node_Path_Array(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
||||||
}
|
}
|
||||||
|
|
||||||
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
|
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
|
||||||
for( var i = input_fix_len; i < array_length(inputs); i += data_length ) {
|
for( var i = 0, n = array_length(curr_path); i < n; i++ ) {
|
||||||
var _path = getInputData(i);
|
if(!struct_has(curr_path[i], "drawOverlay")) continue;
|
||||||
if(!struct_has(_path, "drawOverlay")) continue;
|
|
||||||
|
|
||||||
if(_path && struct_has(_path, "drawOverlay")) _path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
curr_path[i].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static update = function(frame = CURRENT_FRAME) {
|
static update = function(frame = CURRENT_FRAME) {
|
||||||
ds_map_clear(cached_pos);
|
ds_map_clear(cached_pos);
|
||||||
outputs[0].setValue(self);
|
outputs[0].setValue(self);
|
||||||
|
|
||||||
|
curr_path = [];
|
||||||
|
|
||||||
|
for( var i = input_fix_len; i < array_length(inputs); i += data_length ) {
|
||||||
|
var _path = getInputData(i);
|
||||||
|
var _ispath = _path != noone && struct_has(_path, "getPointRatio");
|
||||||
|
|
||||||
|
if(_ispath) array_push(curr_path, _path);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -19,12 +19,17 @@ function Node_Path_Blend(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
||||||
|
|
||||||
cached_pos = ds_map_create();
|
cached_pos = ds_map_create();
|
||||||
|
|
||||||
|
curr_path1 = noone;
|
||||||
|
curr_path2 = noone;
|
||||||
|
curr_lerp = noone;
|
||||||
|
|
||||||
|
is_path1 = false;
|
||||||
|
is_path2 = false;
|
||||||
|
|
||||||
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 _p0 = getInputData(0);
|
|
||||||
var _p1 = getInputData(1);
|
|
||||||
|
|
||||||
if(_p0) _p0.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
if(is_path1 && struct_has(curr_path1, "drawOverlay")) curr_path1.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
||||||
if(_p1) _p1.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
if(is_path2 && struct_has(curr_path2, "drawOverlay")) curr_path2.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
||||||
|
|
||||||
draw_set_color(COLORS._main_icon);
|
draw_set_color(COLORS._main_icon);
|
||||||
|
|
||||||
|
@ -48,58 +53,37 @@ function Node_Path_Blend(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static getLineCount = function() {
|
static getLineCount = function() { return is_path1? curr_path1.getLineCount() : 1; }
|
||||||
var _path = getInputData(0);
|
|
||||||
return struct_has(_path, "getLineCount")? _path.getLineCount() : 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static getSegmentCount = function(ind = 0) {
|
static getSegmentCount = function(ind = 0) {
|
||||||
var _path1 = getInputData(0);
|
|
||||||
var _path2 = getInputData(1);
|
|
||||||
var _lerp = getInputData(2);
|
|
||||||
|
|
||||||
var p1 = _path1 != noone && struct_has(_path1, "getSegmentCount");
|
if(!is_path1 && !is_path2) return 0;
|
||||||
var p2 = _path2 != noone && struct_has(_path2, "getSegmentCount");
|
if( is_path1 && !is_path2) return curr_path1.getSegmentCount(ind);
|
||||||
|
if(!is_path1 && is_path2) return curr_path2.getSegmentCount(ind);
|
||||||
|
|
||||||
if(!p1 && !p2) return 0;
|
return max(curr_path1.getSegmentCount(ind), curr_path2.getSegmentCount(ind));
|
||||||
if( p1 && !p2) return _path1.getSegmentCount(ind);
|
|
||||||
if(!p1 && p2) return _path2.getSegmentCount(ind);
|
|
||||||
|
|
||||||
return max(_path1.getSegmentCount(ind), _path2.getSegmentCount(ind));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static getLength = function(ind = 0) {
|
static getLength = function(ind = 0) {
|
||||||
var _path1 = getInputData(0);
|
|
||||||
var _path2 = getInputData(1);
|
|
||||||
var _lerp = getInputData(2);
|
|
||||||
|
|
||||||
var p1 = _path1 != noone && struct_has(_path1, "getLength");
|
if(!is_path1 && !is_path2) return 0;
|
||||||
var p2 = _path2 != noone && struct_has(_path2, "getLength");
|
if( is_path1 && !is_path2) return curr_path1.getLength(ind);
|
||||||
|
if(!is_path1 && is_path2) return curr_path2.getLength(ind);
|
||||||
if(!p1 && !p2) return 0;
|
|
||||||
if( p1 && !p2) return _path1.getLength(ind);
|
|
||||||
if(!p1 && p2) return _path2.getLength(ind);
|
|
||||||
|
|
||||||
var _p1 = _path1.getLength(ind);
|
var _p1 = curr_path1.getLength(ind);
|
||||||
var _p2 = _path2.getLength(ind);
|
var _p2 = curr_path2.getLength(ind);
|
||||||
|
|
||||||
return lerp(_p1, _p2, _lerp);
|
return lerp(_p1, _p2, curr_lerp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static getAccuLength = function(ind = 0) {
|
static getAccuLength = function(ind = 0) {
|
||||||
var _path1 = getInputData(0);
|
|
||||||
var _path2 = getInputData(1);
|
|
||||||
var _lerp = getInputData(2);
|
|
||||||
|
|
||||||
var p1 = _path1 != noone && struct_has(_path1, "getAccuLength");
|
if(!is_path1 && !is_path2) return 0;
|
||||||
var p2 = _path2 != noone && struct_has(_path2, "getAccuLength");
|
if( is_path1 && !is_path2) return curr_path1.getAccuLength(ind);
|
||||||
|
if(!is_path1 && is_path2) return curr_path2.getAccuLength(ind);
|
||||||
if(!p1 && !p2) return 0;
|
|
||||||
if( p1 && !p2) return _path1.getAccuLength(ind);
|
|
||||||
if(!p1 && p2) return _path2.getAccuLength(ind);
|
|
||||||
|
|
||||||
var _p1 = _path1.getAccuLength(ind);
|
var _p1 = curr_path1.getAccuLength(ind);
|
||||||
var _p2 = _path2.getAccuLength(ind);
|
var _p2 = curr_path2.getAccuLength(ind);
|
||||||
|
|
||||||
var len = max(array_length(_p1), array_length(_p2));
|
var len = max(array_length(_p1), array_length(_p2));
|
||||||
var res = [];
|
var res = [];
|
||||||
|
@ -108,7 +92,7 @@ function Node_Path_Blend(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
||||||
var _l1 = array_get_decimal(_p1, i);
|
var _l1 = array_get_decimal(_p1, i);
|
||||||
var _l2 = array_get_decimal(_p2, i);
|
var _l2 = array_get_decimal(_p2, i);
|
||||||
|
|
||||||
res[i] = lerp(_l1, _l2, _lerp);
|
res[i] = lerp(_l1, _l2, curr_lerp);
|
||||||
}
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
|
@ -126,23 +110,16 @@ function Node_Path_Blend(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
var _path1 = getInputData(0);
|
if(!is_path1 && !is_path2) return out;
|
||||||
var _path2 = getInputData(1);
|
if( is_path1 && !is_path2) return curr_path1.getPointRatio(_rat, ind, out);
|
||||||
var _lerp = getInputData(2);
|
if(!is_path1 && is_path2) return curr_path2.getPointRatio(_rat, ind, out);
|
||||||
|
|
||||||
var p1 = _path1 != noone && struct_has(_path1, "getPointRatio");
|
var _p1 = curr_path1.getPointRatio(_rat, ind);
|
||||||
var p2 = _path2 != noone && struct_has(_path2, "getPointRatio");
|
var _p2 = curr_path2.getPointRatio(_rat, ind);
|
||||||
|
|
||||||
if(!p1 && !p2) return out;
|
|
||||||
if( p1 && !p2) return _path1.getPointRatio(_rat, ind, out);
|
|
||||||
if(!p1 && p2) return _path2.getPointRatio(_rat, ind, out);
|
|
||||||
|
|
||||||
var _p1 = _path1.getPointRatio(_rat, ind);
|
out.x = lerp(_p1.x, _p2.x, curr_lerp);
|
||||||
var _p2 = _path2.getPointRatio(_rat, ind);
|
out.y = lerp(_p1.y, _p2.y, curr_lerp);
|
||||||
|
out.weight = lerp(_p1.weight, _p2.weight, curr_lerp);
|
||||||
out.x = lerp(_p1.x, _p2.x, _lerp);
|
|
||||||
out.y = lerp(_p1.y, _p2.y, _lerp);
|
|
||||||
out.weight = lerp(_p1.weight, _p2.weight, _lerp);
|
|
||||||
|
|
||||||
cached_pos[? _cKey] = new __vec2P(out.x, out.y, out.weight);
|
cached_pos[? _cKey] = new __vec2P(out.x, out.y, out.weight);
|
||||||
|
|
||||||
|
@ -152,24 +129,25 @@ function Node_Path_Blend(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
||||||
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(ind), ind, out); }
|
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(ind), ind, out); }
|
||||||
|
|
||||||
static getBoundary = function(ind = 0) {
|
static getBoundary = function(ind = 0) {
|
||||||
var _path1 = getInputData(0);
|
|
||||||
var _path2 = getInputData(1);
|
|
||||||
var _lerp = getInputData(2);
|
|
||||||
|
|
||||||
var p1 = _path1 != noone && struct_has(_path1, "getPointRatio");
|
if(!is_path1 && !is_path2) return new BoundingBox();
|
||||||
var p2 = _path2 != noone && struct_has(_path2, "getPointRatio");
|
if( is_path1 && !is_path2) return curr_path1.getBoundary(ind);
|
||||||
|
if(!is_path1 && is_path2) return curr_path2.getBoundary(ind);
|
||||||
if(!p1 && !p2) return new BoundingBox();
|
|
||||||
if( p1 && !p2) return _path1.getBoundary(ind);
|
|
||||||
if(!p1 && p2) return _path2.getBoundary(ind);
|
|
||||||
|
|
||||||
var _p1 = _path1.getBoundary(ind);
|
var _p1 = curr_path1.getBoundary(ind);
|
||||||
var _p2 = _path2.getBoundary(ind);
|
var _p2 = curr_path2.getBoundary(ind);
|
||||||
|
|
||||||
return _p1.lerpTo(_p2, _lerp);
|
return _p1.lerpTo(_p2, curr_lerp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static update = function() {
|
static update = function() {
|
||||||
|
curr_path1 = getInputData(0);
|
||||||
|
curr_path2 = getInputData(1);
|
||||||
|
curr_lerp = getInputData(2);
|
||||||
|
|
||||||
|
is_path1 = curr_path1 != noone && struct_has(curr_path1, "getPointRatio");
|
||||||
|
is_path2 = curr_path2 != noone && struct_has(curr_path2, "getPointRatio");
|
||||||
|
|
||||||
ds_map_clear(cached_pos);
|
ds_map_clear(cached_pos);
|
||||||
outputs[0].setValue(self);
|
outputs[0].setValue(self);
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,12 @@ function Node_Path_Bridge(_x, _y, _group = noone) : Node(_x, _y, _group) constru
|
||||||
|
|
||||||
cached_pos = ds_map_create();
|
cached_pos = ds_map_create();
|
||||||
|
|
||||||
|
curr_path = noone;
|
||||||
|
is_path = false;
|
||||||
|
|
||||||
|
curr_amount = noone;
|
||||||
|
curr_smooth = noone;
|
||||||
|
|
||||||
#region ---- path ----
|
#region ---- path ----
|
||||||
anchors = [];
|
anchors = [];
|
||||||
controls = [];
|
controls = [];
|
||||||
|
@ -32,9 +38,9 @@ function Node_Path_Bridge(_x, _y, _group = noone) : Node(_x, _y, _group) constru
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
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);
|
|
||||||
var _smt = getInputData(2);
|
if(curr_path && struct_has(curr_path, "drawOverlay"))
|
||||||
if(_path && struct_has(_path, "drawOverlay")) _path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
curr_path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
||||||
|
|
||||||
var _amo = array_length(anchors);
|
var _amo = array_length(anchors);
|
||||||
var ox, oy, nx, ny;
|
var ox, oy, nx, ny;
|
||||||
|
@ -44,7 +50,7 @@ function Node_Path_Bridge(_x, _y, _group = noone) : Node(_x, _y, _group) constru
|
||||||
for( var i = 0, n = _amo; i < n; i++ ) {
|
for( var i = 0, n = _amo; i < n; i++ ) {
|
||||||
var _a = anchors[i];
|
var _a = anchors[i];
|
||||||
|
|
||||||
if(_smt) {
|
if(curr_smooth) {
|
||||||
var _smp = 1 / 32;
|
var _smp = 1 / 32;
|
||||||
for( var j = 0; j <= 1; j += _smp ) {
|
for( var j = 0; j <= 1; j += _smp ) {
|
||||||
_p = getPointRatio(j, i, _p);
|
_p = getPointRatio(j, i, _p);
|
||||||
|
@ -71,15 +77,11 @@ function Node_Path_Bridge(_x, _y, _group = noone) : Node(_x, _y, _group) constru
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static getLineCount = function() { return getInputData(1); }
|
static getLineCount = function( ) /*=>*/ {return getInputData(1)};
|
||||||
|
static getSegmentCount = function(ind = 0) /*=>*/ {return array_safe_length(array_safe_get_fast(anchors, ind))};
|
||||||
static getSegmentCount = function(ind = 0) { return array_safe_length(array_safe_get_fast(anchors, ind)); }
|
static getLength = function(ind = 0) /*=>*/ {return array_safe_get_fast(lengths, ind)};
|
||||||
|
static getAccuLength = function(ind = 0) /*=>*/ {return array_safe_get_fast(lengthAccs, ind)};
|
||||||
static getLength = function(ind = 0) { return array_safe_get_fast(lengths, ind); }
|
static getBoundary = function(ind = 0) /*=>*/ {return array_safe_get_fast(boundary, ind)};
|
||||||
|
|
||||||
static getAccuLength = function(ind = 0) { return array_safe_get_fast(lengthAccs, ind); }
|
|
||||||
|
|
||||||
static getBoundary = function(ind = 0) { return array_safe_get_fast(boundary, ind); }
|
|
||||||
|
|
||||||
static getPointRatio = function(_rat, ind = 0, out = undefined) { return getPointDistance(clamp(_rat, 0, 1) * getLength(ind), ind, out); }
|
static getPointRatio = function(_rat, ind = 0, out = undefined) { return getPointDistance(clamp(_rat, 0, 1) * getLength(ind), ind, out); }
|
||||||
|
|
||||||
|
@ -95,14 +97,14 @@ function Node_Path_Bridge(_x, _y, _group = noone) : Node(_x, _y, _group) constru
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
var _smt = getInputData(2);
|
|
||||||
var _a = anchors[ind];
|
var _a = anchors[ind];
|
||||||
var _la = lengthAccs[ind];
|
var _la = lengthAccs[ind];
|
||||||
|
|
||||||
if(_dist == 0) {
|
if(_dist == 0) {
|
||||||
var _p = _a[0];
|
var _p = _a[0];
|
||||||
out.x = _p[0];
|
out.x = _p[0];
|
||||||
out.y = _p[1];
|
out.y = _p[1];
|
||||||
|
out.weight = _p[2];
|
||||||
|
|
||||||
cached_pos[? _cKey] = new __vec2P(out.x, out.y, out.weight);
|
cached_pos[? _cKey] = new __vec2P(out.x, out.y, out.weight);
|
||||||
return out;
|
return out;
|
||||||
|
@ -117,6 +119,7 @@ function Node_Path_Bridge(_x, _y, _group = noone) : Node(_x, _y, _group) constru
|
||||||
var _p = _a[_ind];
|
var _p = _a[_ind];
|
||||||
out.x = _p[0];
|
out.x = _p[0];
|
||||||
out.y = _p[1];
|
out.y = _p[1];
|
||||||
|
out.weight = _p[2];
|
||||||
|
|
||||||
cached_pos[? _cKey] = new __vec2P(out.x, out.y, out.weight);
|
cached_pos[? _cKey] = new __vec2P(out.x, out.y, out.weight);
|
||||||
return out;
|
return out;
|
||||||
|
@ -126,8 +129,8 @@ function Node_Path_Bridge(_x, _y, _group = noone) : Node(_x, _y, _group) constru
|
||||||
var _rat = _d / (_la[_ind] - (_ind == 0? 0 : _la[_ind - 1]));
|
var _rat = _d / (_la[_ind] - (_ind == 0? 0 : _la[_ind - 1]));
|
||||||
var p0 = _a[_ind];
|
var p0 = _a[_ind];
|
||||||
var p1 = _a[_ind + 1];
|
var p1 = _a[_ind + 1];
|
||||||
|
|
||||||
if(_smt) {
|
if(curr_smooth) {
|
||||||
var _cnt = controls[ind];
|
var _cnt = controls[ind];
|
||||||
var _c0x = _cnt[_ind][0];
|
var _c0x = _cnt[_ind][0];
|
||||||
var _c0y = _cnt[_ind][1];
|
var _c0y = _cnt[_ind][1];
|
||||||
|
@ -136,10 +139,12 @@ function Node_Path_Bridge(_x, _y, _group = noone) : Node(_x, _y, _group) constru
|
||||||
|
|
||||||
out.x = eval_bezier_x(_rat, p0[0], p0[1], p1[0], p1[1], _c0x, _c0y, _c1x, _c1y);
|
out.x = eval_bezier_x(_rat, p0[0], p0[1], p1[0], p1[1], _c0x, _c0y, _c1x, _c1y);
|
||||||
out.y = eval_bezier_y(_rat, p0[0], p0[1], p1[0], p1[1], _c0x, _c0y, _c1x, _c1y);
|
out.y = eval_bezier_y(_rat, p0[0], p0[1], p1[0], p1[1], _c0x, _c0y, _c1x, _c1y);
|
||||||
|
out.weight = lerp(p0[2], p1[2], _rat);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
out.x = lerp(p0[0], p1[0], _rat);
|
out.x = lerp(p0[0], p1[0], _rat);
|
||||||
out.y = lerp(p0[1], p1[1], _rat);
|
out.y = lerp(p0[1], p1[1], _rat);
|
||||||
|
out.weight = lerp(p0[2], p1[2], _rat);
|
||||||
}
|
}
|
||||||
|
|
||||||
cached_pos[? _cKey] = new __vec2P(out.x, out.y, out.weight);
|
cached_pos[? _cKey] = new __vec2P(out.x, out.y, out.weight);
|
||||||
|
@ -150,33 +155,35 @@ function Node_Path_Bridge(_x, _y, _group = noone) : Node(_x, _y, _group) constru
|
||||||
static update = function() {
|
static update = function() {
|
||||||
ds_map_clear(cached_pos);
|
ds_map_clear(cached_pos);
|
||||||
|
|
||||||
var _path = getInputData(0);
|
curr_path = getInputData(0);
|
||||||
var _amo = getInputData(1);
|
is_path = curr_path != noone && struct_has(curr_path, "getPointRatio");
|
||||||
var _smt = getInputData(2);
|
|
||||||
|
|
||||||
if(_path == noone) return;
|
curr_amount = getInputData(1);
|
||||||
|
curr_smooth = getInputData(2);
|
||||||
|
|
||||||
|
if(!is_path) return;
|
||||||
|
|
||||||
#region bridge
|
#region bridge
|
||||||
var _lines = _path.getLineCount();
|
var _lines = curr_path.getLineCount();
|
||||||
var _p = new __vec2P();
|
var _p = new __vec2P();
|
||||||
var _rat;
|
var _rat;
|
||||||
|
|
||||||
anchors = array_create(_amo);
|
anchors = array_create(curr_amount);
|
||||||
lengths = array_create(_amo);
|
lengths = array_create(curr_amount);
|
||||||
lengthAccs = array_create(_amo);
|
lengthAccs = array_create(curr_amount);
|
||||||
|
|
||||||
for( var i = 0; i < _amo; i++ ) {
|
for( var i = 0; i < curr_amount; i++ ) {
|
||||||
var _a = array_create(_lines);
|
var _a = array_create(_lines);
|
||||||
_rat = _amo == 1? 0.5 : i / (_amo - 1);
|
_rat = curr_amount == 1? 0.5 : i / (curr_amount - 1);
|
||||||
|
|
||||||
for( var j = 0; j < _lines; j++ ) {
|
for( var j = 0; j < _lines; j++ ) {
|
||||||
_p = _path.getPointRatio(clamp(_rat, 0, 0.999), j, _p);
|
_p = curr_path.getPointRatio(clamp(_rat, 0, 0.999), j, _p);
|
||||||
_a[j] = [ _p.x, _p.y ];
|
_a[j] = [ _p.x, _p.y, _p.weight ];
|
||||||
}
|
}
|
||||||
|
|
||||||
anchors[i] = _a;
|
anchors[i] = _a;
|
||||||
|
|
||||||
if(_smt) {
|
if(curr_smooth) {
|
||||||
var _cnt = array_create(_lines - 1);
|
var _cnt = array_create(_lines - 1);
|
||||||
|
|
||||||
for( var j = 0; j < _lines - 1; j++ ) _cnt[j] = [ 0, 0, 0, 0 ];
|
for( var j = 0; j < _lines - 1; j++ ) _cnt[j] = [ 0, 0, 0, 0 ];
|
||||||
|
|
|
@ -21,13 +21,13 @@ function Node_Path_From_Mask(_x, _y, _group = noone) : Node(_x, _y, _group) cons
|
||||||
array_push(attributeEditors, ["Max Dimension", function() { return attributes.maximum_dim; },
|
array_push(attributeEditors, ["Max Dimension", function() { return attributes.maximum_dim; },
|
||||||
new textBox(TEXTBOX_INPUT.number, function(val) { attributes.maximum_dim = clamp(val, 8, 8192); })]);
|
new textBox(TEXTBOX_INPUT.number, function(val) { attributes.maximum_dim = clamp(val, 8, 8192); })]);
|
||||||
|
|
||||||
static getBoundary = function() { return boundary; }
|
static getBoundary = function() /*=>*/ {return boundary};
|
||||||
static getAccuLength = function() { return lengthAccs; }
|
static getAccuLength = function() /*=>*/ {return lengthAccs};
|
||||||
static getLength = function() { return lengthTotal; }
|
static getLength = function() /*=>*/ {return lengthTotal};
|
||||||
static getSegmentCount = function() { return 1; }
|
static getSegmentCount = function() /*=>*/ {return 1};
|
||||||
static getLineCount = function() { return 1; }
|
static getLineCount = function() /*=>*/ {return 1};
|
||||||
|
|
||||||
static getPointDistance = function(_dist, _ind = 0, out = undefined) { #region
|
static getPointDistance = function(_dist, _ind = 0, out = undefined) {
|
||||||
if(out == undefined) out = new __vec2P(); else { out.x = 0; out.y = 0; }
|
if(out == undefined) out = new __vec2P(); else { out.x = 0; out.y = 0; }
|
||||||
|
|
||||||
var _cKey = $"{string_format(_dist, 0, 6)},{_ind}";
|
var _cKey = $"{string_format(_dist, 0, 6)},{_ind}";
|
||||||
|
@ -71,14 +71,13 @@ function Node_Path_From_Mask(_x, _y, _group = noone) : Node(_x, _y, _group) cons
|
||||||
cached_pos[? _cKey] = new __vec2P(out.x, out.y, out.weight);
|
cached_pos[? _cKey] = new __vec2P(out.x, out.y, out.weight);
|
||||||
|
|
||||||
return out;
|
return out;
|
||||||
} #endregion
|
}
|
||||||
|
|
||||||
static getPointRatio = function(_rat, _ind = 0, out = undefined) { #region
|
static getPointRatio = function(_rat, _ind = 0, out = undefined) {
|
||||||
var pix = frac(_rat) * lengthTotal;
|
return getPointDistance(frac(_rat) * lengthTotal, _ind, out);
|
||||||
return getPointDistance(pix, _ind, out);
|
}
|
||||||
} #endregion
|
|
||||||
|
|
||||||
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
|
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
|
||||||
|
|
||||||
draw_set_color(COLORS._main_accent);
|
draw_set_color(COLORS._main_accent);
|
||||||
var ox, oy, nx, ny, sx, sy;
|
var ox, oy, nx, ny, sx, sy;
|
||||||
|
@ -98,9 +97,9 @@ function Node_Path_From_Mask(_x, _y, _group = noone) : Node(_x, _y, _group) cons
|
||||||
ox = nx;
|
ox = nx;
|
||||||
oy = ny;
|
oy = ny;
|
||||||
}
|
}
|
||||||
} #endregion
|
}
|
||||||
|
|
||||||
static update = function(frame = CURRENT_FRAME) { #region
|
static update = function(frame = CURRENT_FRAME) {
|
||||||
ds_map_clear(cached_pos);
|
ds_map_clear(cached_pos);
|
||||||
var _surf = getInputData(0);
|
var _surf = getInputData(0);
|
||||||
var _smt = getInputData(1);
|
var _smt = getInputData(1);
|
||||||
|
@ -242,7 +241,7 @@ function Node_Path_From_Mask(_x, _y, _group = noone) : Node(_x, _y, _group) cons
|
||||||
// print($"Anchors : {anchors}");
|
// print($"Anchors : {anchors}");
|
||||||
// print($"Lengths : {lengths}");
|
// print($"Lengths : {lengths}");
|
||||||
// print($"Len Accs : {lengthAccs}");
|
// print($"Len Accs : {lengthAccs}");
|
||||||
} #endregion
|
}
|
||||||
|
|
||||||
static getGraphPreviewSurface = function() { return /*temp_surface[0]*/ getInputData(0); }
|
static getGraphPreviewSurface = function() { return /*temp_surface[0]*/ getInputData(0); }
|
||||||
static getPreviewValues = function() { return /*temp_surface[0]*/ getInputData(0); }
|
static getPreviewValues = function() { return /*temp_surface[0]*/ getInputData(0); }
|
||||||
|
|
|
@ -233,20 +233,6 @@ function Node_Path_L_System(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
|
||||||
static getLength = function() { return current_length; }
|
static getLength = function() { return current_length; }
|
||||||
static getAccuLength = function() { return [ 0, current_length ]; }
|
static getAccuLength = function() { return [ 0, current_length ]; }
|
||||||
|
|
||||||
static getWeightDistance = function (_dist, _ind = 0) {
|
|
||||||
return getWeightRatio(_dist / current_length, _ind);
|
|
||||||
}
|
|
||||||
|
|
||||||
static getWeightRatio = function (_rat, _ind = 0) {
|
|
||||||
var _p0 = lines[_ind][0];
|
|
||||||
var _p1 = lines[_ind][1];
|
|
||||||
|
|
||||||
if(!is_array(_p0) || array_length(_p0) < 2) return 1;
|
|
||||||
if(!is_array(_p1) || array_length(_p1) < 2) return 1;
|
|
||||||
|
|
||||||
return lerp(_p0[3], _p1[3], _rat);
|
|
||||||
}
|
|
||||||
|
|
||||||
static getPointRatio = function(_rat, _ind = 0, out = undefined) {
|
static getPointRatio = function(_rat, _ind = 0, out = undefined) {
|
||||||
if(out == undefined) out = path_3d? new __vec3() : new __vec2P();
|
if(out == undefined) out = path_3d? new __vec3() : new __vec2P();
|
||||||
else { out.x = 0; out.y = 0; if(path_3d) out.z = 0; }
|
else { out.x = 0; out.y = 0; if(path_3d) out.z = 0; }
|
||||||
|
|
|
@ -37,11 +37,11 @@ function Node_Path_Plot(_x, _y, _group = noone) : Node(_x, _y, _group) construct
|
||||||
inputs[5].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
inputs[5].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
||||||
}
|
}
|
||||||
|
|
||||||
static getLineCount = function() { return 1; }
|
static getLineCount = function() /*=>*/ {return 1};
|
||||||
static getSegmentCount = function() { return 1; }
|
static getSegmentCount = function() /*=>*/ {return 1};
|
||||||
|
static getLength = function() /*=>*/ {return length};
|
||||||
static getLength = function(ind = 0) { return length; }
|
static getAccuLength = function() /*=>*/ {return [ length ]};
|
||||||
static getAccuLength = function(ind = 0) { return [ length ]; }
|
static getBoundary = function() /*=>*/ {return boundary};
|
||||||
|
|
||||||
static getPointRatio = function(_rat, ind = 0, out = undefined) {
|
static getPointRatio = function(_rat, ind = 0, out = undefined) {
|
||||||
if(out == undefined) out = new __vec2P(); else { out.x = 0; out.y = 0; }
|
if(out == undefined) out = new __vec2P(); else { out.x = 0; out.y = 0; }
|
||||||
|
@ -105,8 +105,6 @@ function Node_Path_Plot(_x, _y, _group = noone) : Node(_x, _y, _group) construct
|
||||||
|
|
||||||
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(ind), ind, out); }
|
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(ind), ind, out); }
|
||||||
|
|
||||||
static getBoundary = function() { return boundary; }
|
|
||||||
|
|
||||||
static step = function() {
|
static step = function() {
|
||||||
var _coor = getInputData(1);
|
var _coor = getInputData(1);
|
||||||
var _eqa = getInputData(2);
|
var _eqa = getInputData(2);
|
||||||
|
|
|
@ -84,8 +84,9 @@ function Node_Path_Repeat(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
|
||||||
}
|
}
|
||||||
|
|
||||||
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(ind), ind, out); }
|
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(ind), ind, out); }
|
||||||
|
|
||||||
static getBoundary = function(ind = 0) {
|
static getBoundary = function(ind = 0) {
|
||||||
var _path = getInputData(0);
|
var _path = array_safe_get_fast(paths, ind, 0);
|
||||||
return struct_has(_path, "getBoundary")? _path.getBoundary(ind) : new BoundingBox( 0, 0, 1, 1 );
|
return struct_has(_path, "getBoundary")? _path.getBoundary(ind) : new BoundingBox( 0, 0, 1, 1 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,48 +9,33 @@ function Node_Path_Reverse(_x, _y, _group = noone) : Node(_x, _y, _group) constr
|
||||||
|
|
||||||
cached_pos = ds_map_create();
|
cached_pos = ds_map_create();
|
||||||
|
|
||||||
|
curr_path = noone;
|
||||||
|
is_path = false;
|
||||||
|
|
||||||
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(curr_path && struct_has(curr_path, "drawOverlay"))
|
||||||
if(_path && struct_has(_path, "drawOverlay")) _path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
curr_path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
||||||
}
|
}
|
||||||
|
|
||||||
static getLineCount = function() {
|
static getLineCount = function( ) /*=>*/ {return is_path? curr_path.getLineCount() : 1};
|
||||||
var _path = getInputData(0);
|
static getSegmentCount = function(ind = 0) /*=>*/ {return is_path? curr_path.getSegmentCount(ind) : 0};
|
||||||
return struct_has(_path, "getLineCount")? _path.getLineCount() : 1;
|
static getLength = function(ind = 0) /*=>*/ {return is_path? curr_path.getLength(ind) : 0};
|
||||||
}
|
static getAccuLength = function(ind = 0) /*=>*/ {return is_path? array_reverse(curr_path.getAccuLength(ind)) : []};
|
||||||
|
static getBoundary = function(ind = 0) /*=>*/ {return is_path? curr_path.getBoundary(ind) : new BoundingBox(0, 0, 1, 1)};
|
||||||
static getSegmentCount = function(ind = 0) {
|
|
||||||
var _path = getInputData(0);
|
|
||||||
return struct_has(_path, "getSegmentCount")? _path.getSegmentCount(ind) : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static getLength = function(ind = 0) {
|
|
||||||
var _path = getInputData(0);
|
|
||||||
return struct_has(_path, "getLength")? _path.getLength(ind) : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static getAccuLength = function(ind = 0) {
|
|
||||||
var _path = getInputData(0);
|
|
||||||
return struct_has(_path, "getAccuLength")? array_reverse(_path.getAccuLength(ind)) : [];
|
|
||||||
}
|
|
||||||
|
|
||||||
static getBoundary = function(ind = 0) {
|
|
||||||
var _path = getInputData(0);
|
|
||||||
return struct_has(_path, "getBoundary")? _path.getBoundary(ind) : new BoundingBox(0, 0, 1, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
static getPointRatio = function(_rat, ind = 0, out = undefined) {
|
static getPointRatio = function(_rat, ind = 0, out = undefined) {
|
||||||
if(out == undefined) out = new __vec2P(); else { out.x = 0; out.y = 0; }
|
if(out == undefined) out = new __vec2P(); else { out.x = 0; out.y = 0; }
|
||||||
var _path = getInputData(0);
|
if(!is_path) return out;
|
||||||
|
|
||||||
if(!is_struct(_path) || !struct_has(_path, "getPointRatio"))
|
return curr_path.getPointRatio(1 - _rat, ind, out);
|
||||||
return out;
|
|
||||||
return _path.getPointRatio(1 - _rat, ind, out);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(), ind, out); }
|
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(), ind, out); }
|
||||||
|
|
||||||
static update = function() {
|
static update = function() {
|
||||||
|
curr_path = getInputData(0);
|
||||||
|
is_path = curr_path != noone && struct_has(curr_path, "getPointRatio");
|
||||||
|
|
||||||
ds_map_clear(cached_pos);
|
ds_map_clear(cached_pos);
|
||||||
outputs[0].setValue(self);
|
outputs[0].setValue(self);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
function Node_Path_Sample(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
function Node_Path_Sample(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
||||||
name = "Sample Path";
|
name = "Sample Path";
|
||||||
batch_output = false;
|
|
||||||
setDimension(96, 48);
|
setDimension(96, 48);
|
||||||
|
|
||||||
newInput(0, nodeValue_PathNode("Path", self, noone))
|
newInput(0, nodeValue_PathNode("Path", self, noone))
|
||||||
|
@ -15,6 +14,8 @@ function Node_Path_Sample(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
|
||||||
|
|
||||||
newOutput(1, nodeValue_Output("Direction", self, VALUE_TYPE.float, 0));
|
newOutput(1, nodeValue_Output("Direction", self, VALUE_TYPE.float, 0));
|
||||||
|
|
||||||
|
newOutput(2, nodeValue_Output("Weight", self, VALUE_TYPE.float, 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) {
|
||||||
var _path = getInputData(0);
|
var _path = getInputData(0);
|
||||||
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);
|
||||||
|
@ -32,14 +33,18 @@ function Node_Path_Sample(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__temp_p = new __vec2P();
|
||||||
|
__temp_p0 = new __vec2P();
|
||||||
|
__temp_p1 = new __vec2P();
|
||||||
|
|
||||||
static processData = function(_output, _data, _output_index, _array_index = 0) {
|
static processData = function(_output, _data, _output_index, _array_index = 0) {
|
||||||
var _path = _data[0];
|
var _path = _data[0];
|
||||||
var _rat = _data[1];
|
var _rat = _data[1];
|
||||||
var _mod = _data[2];
|
var _mod = _data[2];
|
||||||
|
|
||||||
if(_path == noone) return [ 0, 0 ];
|
if(_path == noone) return _output;
|
||||||
if(!struct_has(_path, "getPointRatio")) return [ 0, 0 ];
|
if(!struct_has(_path, "getPointRatio")) return _output;
|
||||||
if(!is_real(_rat)) return [ 0, 0 ];
|
if(!is_real(_rat)) return _output;
|
||||||
var inv = false;
|
var inv = false;
|
||||||
|
|
||||||
switch(_mod) {
|
switch(_mod) {
|
||||||
|
@ -56,19 +61,27 @@ function Node_Path_Sample(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
|
||||||
_rat = fr;
|
_rat = fr;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(_output_index == 0)
|
_path.getPointRatio(_rat, 0, __temp_p);
|
||||||
return _path.getPointRatio(_rat).toArray();
|
|
||||||
else if(_output_index == 1) {
|
var _px = __temp_p.x;
|
||||||
var r0 = clamp(_rat - 0.0001, 0, 1);
|
var _py = __temp_p.y;
|
||||||
var r1 = clamp(_rat + 0.0001, 0, 1);
|
var _pw = __temp_p.weight;
|
||||||
|
|
||||||
var p0 = _path.getPointRatio(r0);
|
var r0 = clamp(_rat - 0.0001, 0, 1);
|
||||||
var p1 = _path.getPointRatio(r1);
|
var r1 = clamp(_rat + 0.0001, 0, 1);
|
||||||
|
|
||||||
var dir = inv? p1.directionTo(p0) : p0.directionTo(p1);
|
_path.getPointRatio(r0, 0, __temp_p0);
|
||||||
return dir;
|
_path.getPointRatio(r1, 0, __temp_p1);
|
||||||
}
|
|
||||||
|
var dir = inv? __temp_p1.directionTo(__temp_p0) : __temp_p0.directionTo(__temp_p1);
|
||||||
|
|
||||||
|
return [
|
||||||
|
[ _px, _py ],
|
||||||
|
dir,
|
||||||
|
_pw
|
||||||
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
|
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
|
||||||
|
|
|
@ -102,9 +102,11 @@ function Node_Path_Scatter(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro
|
||||||
|
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(ind), ind, out); }
|
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(ind), ind, out); }
|
||||||
|
|
||||||
static getBoundary = function(ind = 0) {
|
static getBoundary = function(ind = 0) {
|
||||||
var _path = getInputData(0);
|
var _path = array_safe_get_fast(paths, ind, 0);
|
||||||
return struct_has(_path, "getBoundary")? _path.getBoundary(ind) : new BoundingBox( 0, 0, 1, 1 );
|
return struct_has(_path, "getBoundary")? _path.getBoundary(ind) : new BoundingBox( 0, 0, 1, 1 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,18 +11,24 @@ function Node_Path_Shift(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
||||||
|
|
||||||
cached_pos = ds_map_create();
|
cached_pos = ds_map_create();
|
||||||
|
|
||||||
|
curr_path = noone;
|
||||||
|
is_path = false;
|
||||||
|
|
||||||
|
curr_shift = noone;
|
||||||
|
|
||||||
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(curr_path && struct_has(curr_path, "drawOverlay"))
|
||||||
if(_path && struct_has(_path, "drawOverlay")) _path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
curr_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();
|
||||||
|
var _p = new __vec2P();
|
||||||
|
|
||||||
for( var i = 0; i < _amo; i++ ) {
|
for( var i = 0; i < _amo; i++ ) {
|
||||||
var _len = getLength(_amo);
|
var _len = getLength(_amo);
|
||||||
var _stp = 1 / clamp(_len * _s, 1, 64);
|
var _stp = 1 / clamp(_len * _s, 1, 64);
|
||||||
var ox, oy, nx, ny;
|
var ox, oy, nx, ny;
|
||||||
var _p = new __vec2P();
|
|
||||||
|
|
||||||
for( var j = 0; j < 1; j += _stp ) {
|
for( var j = 0; j < 1; j += _stp ) {
|
||||||
_p = getPointRatio(j, i, _p);
|
_p = getPointRatio(j, i, _p);
|
||||||
|
@ -37,25 +43,11 @@ function Node_Path_Shift(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static getLineCount = function() {
|
static getLineCount = function( ) /*=>*/ {return is_path? curr_path.getLineCount() : 1};
|
||||||
var _path = getInputData(0);
|
static getSegmentCount = function(ind = 0) /*=>*/ {return is_path? curr_path.getSegmentCount(ind) : 0};
|
||||||
return struct_has(_path, "getLineCount")? _path.getLineCount() : 1;
|
static getLength = function(ind = 0) /*=>*/ {return is_path? curr_path.getLength(ind) : 0};
|
||||||
}
|
static getAccuLength = function(ind = 0) /*=>*/ {return is_path? curr_path.getAccuLength(ind) : []};
|
||||||
|
static getBoundary = function(ind = 0) /*=>*/ {return is_path? curr_path.getBoundary(ind) : new BoundingBox( 0, 0, 1, 1 )};
|
||||||
static getSegmentCount = function(ind = 0) {
|
|
||||||
var _path = getInputData(0);
|
|
||||||
return struct_has(_path, "getSegmentCount")? _path.getSegmentCount(ind) : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static getLength = function(ind = 0) {
|
|
||||||
var _path = getInputData(0);
|
|
||||||
return struct_has(_path, "getLength")? _path.getLength(ind) : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static getAccuLength = function(ind = 0) {
|
|
||||||
var _path = getInputData(0);
|
|
||||||
return struct_has(_path, "getAccuLength")? _path.getAccuLength(ind) : [];
|
|
||||||
}
|
|
||||||
|
|
||||||
static getPointRatio = function(_rat, ind = 0, out = undefined) {
|
static getPointRatio = function(_rat, ind = 0, out = undefined) {
|
||||||
if(out == undefined) out = new __vec2P(); else { out.x = 0; out.y = 0; }
|
if(out == undefined) out = new __vec2P(); else { out.x = 0; out.y = 0; }
|
||||||
|
@ -69,25 +61,16 @@ function Node_Path_Shift(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
var _path = getInputData(0);
|
if(!is_path) return out;
|
||||||
var _shf = getInputData(1);
|
|
||||||
|
|
||||||
if(is_array(_path)) {
|
var _p0 = curr_path.getPointRatio(clamp(_rat - 0.001, 0, 0.999999), ind);
|
||||||
_path = array_safe_get_fast(_path, ind);
|
var _p = curr_path.getPointRatio(_rat, ind);
|
||||||
ind = 0;
|
var _p1 = curr_path.getPointRatio(clamp(_rat + 0.001, 0, 0.999999), ind);
|
||||||
}
|
|
||||||
|
|
||||||
if(!is_struct(_path) || !struct_has(_path, "getPointRatio"))
|
|
||||||
return out;
|
|
||||||
|
|
||||||
var _p0 = _path.getPointRatio(clamp(_rat - 0.001, 0, 0.999999), ind);
|
|
||||||
var _p = _path.getPointRatio(_rat, ind);
|
|
||||||
var _p1 = _path.getPointRatio(clamp(_rat + 0.001, 0, 0.999999), ind);
|
|
||||||
|
|
||||||
var dir = point_direction(_p0.x, _p0.y, _p1.x, _p1.y) + 90;
|
var dir = point_direction(_p0.x, _p0.y, _p1.x, _p1.y) + 90;
|
||||||
|
|
||||||
out.x += _p.x + lengthdir_x(_shf, dir);
|
out.x += _p.x + lengthdir_x(curr_shift, dir);
|
||||||
out.y += _p.y + lengthdir_y(_shf, dir);
|
out.y += _p.y + lengthdir_y(curr_shift, dir);
|
||||||
out.weight = _p.weight;
|
out.weight = _p.weight;
|
||||||
|
|
||||||
cached_pos[? _cKey] = new __vec2P(out.x, out.y, out.weight);
|
cached_pos[? _cKey] = new __vec2P(out.x, out.y, out.weight);
|
||||||
|
@ -97,12 +80,12 @@ function Node_Path_Shift(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
||||||
|
|
||||||
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(), ind, out); }
|
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(), ind, out); }
|
||||||
|
|
||||||
static getBoundary = function(ind = 0) {
|
|
||||||
var _path = getInputData(0);
|
|
||||||
return struct_has(_path, "getBoundary")? _path.getBoundary(ind) : new BoundingBox( 0, 0, 1, 1 );
|
|
||||||
}
|
|
||||||
|
|
||||||
static update = function() {
|
static update = function() {
|
||||||
|
curr_path = getInputData(0);
|
||||||
|
is_path = curr_path != noone && struct_has(curr_path, "getPointRatio");
|
||||||
|
|
||||||
|
curr_shift = getInputData(1);
|
||||||
|
|
||||||
ds_map_clear(cached_pos);
|
ds_map_clear(cached_pos);
|
||||||
outputs[0].setValue(self);
|
outputs[0].setValue(self);
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ function Node_Path_Transform(_x, _y, _group = noone) : Node(_x, _y, _group) cons
|
||||||
|
|
||||||
newInput(4, nodeValue_Vec2("Anchor", self, [ 0, 0 ]))
|
newInput(4, nodeValue_Vec2("Anchor", self, [ 0, 0 ]))
|
||||||
.setUnitRef(function() /*=>*/ {return DEF_SURF}, VALUE_UNIT.reference);
|
.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));
|
||||||
|
|
||||||
cached_pos = ds_map_create();
|
cached_pos = ds_map_create();
|
||||||
|
|
|
@ -11,9 +11,14 @@ function Node_Path_Trim(_x, _y, _group = noone) : Node(_x, _y, _group) construct
|
||||||
|
|
||||||
cached_pos = ds_map_create();
|
cached_pos = ds_map_create();
|
||||||
|
|
||||||
|
curr_path = noone;
|
||||||
|
is_path = false;
|
||||||
|
|
||||||
|
curr_range = noone;
|
||||||
|
|
||||||
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(curr_path && struct_has(curr_path, "drawOverlay"))
|
||||||
if(_path && struct_has(_path, "drawOverlay")) _path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
curr_path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
||||||
|
|
||||||
draw_set_color(COLORS._main_icon);
|
draw_set_color(COLORS._main_icon);
|
||||||
|
|
||||||
|
@ -37,53 +42,28 @@ function Node_Path_Trim(_x, _y, _group = noone) : Node(_x, _y, _group) construct
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static getLineCount = function() {
|
static getLineCount = function( ) /*=>*/ {return is_path? curr_path.getLineCount() : 1};
|
||||||
var _path = getInputData(0);
|
static getSegmentCount = function(ind = 0) /*=>*/ {return is_path? curr_path.getSegmentCount(ind) : 0};
|
||||||
return struct_has(_path, "getLineCount")? _path.getLineCount() : 1;
|
static getLength = function(ind = 0) /*=>*/ {return is_path? curr_path.getLength(ind) : 0};
|
||||||
}
|
static getAccuLength = function(ind = 0) /*=>*/ {return is_path? curr_path.getAccuLength(ind) : []};
|
||||||
|
static getBoundary = function(ind = 0) /*=>*/ {return is_path? curr_path.getBoundary(ind) : new BoundingBox( 0, 0, 1, 1 )};
|
||||||
static getSegmentCount = function(ind = 0) {
|
|
||||||
var _path = getInputData(0);
|
|
||||||
return struct_has(_path, "getSegmentCount")? _path.getSegmentCount(ind) : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static getLength = function(ind = 0) {
|
|
||||||
var _path = getInputData(0);
|
|
||||||
return struct_has(_path, "getLength")? _path.getLength(ind) : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static getAccuLength = function(ind = 0) {
|
|
||||||
var _path = getInputData(0);
|
|
||||||
return struct_has(_path, "getAccuLength")? _path.getAccuLength(ind) : [];
|
|
||||||
}
|
|
||||||
|
|
||||||
static getPointRatio = function(_rat, ind = 0, out = undefined) {
|
static getPointRatio = function(_rat, ind = 0, out = undefined) {
|
||||||
if(out == undefined) out = new __vec2P(); else { out.x = 0; out.y = 0; }
|
if(out == undefined) out = new __vec2P(); else { out.x = 0; out.y = 0; }
|
||||||
|
if(!is_path) return out;
|
||||||
|
|
||||||
var _path = getInputData(0);
|
_rat = lerp(curr_range[0], curr_range[1], _rat);
|
||||||
var _rng = getInputData(1);
|
return curr_path.getPointRatio(_rat, ind, out);
|
||||||
|
|
||||||
if(is_array(_path)) {
|
|
||||||
_path = array_safe_get_fast(_path, ind);
|
|
||||||
ind = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!is_struct(_path) || !struct_has(_path, "getPointRatio"))
|
|
||||||
return out;
|
|
||||||
|
|
||||||
_rat = _rng[0] + _rat * (_rng[1] - _rng[0]);
|
|
||||||
|
|
||||||
return _path.getPointRatio(_rat, ind, out);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(), ind, out); }
|
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(), ind, out); }
|
||||||
|
|
||||||
static getBoundary = function(ind = 0) {
|
|
||||||
var _path = getInputData(0);
|
|
||||||
return struct_has(_path, "getBoundary")? _path.getBoundary(ind) : new BoundingBox( 0, 0, 1, 1 );
|
|
||||||
}
|
|
||||||
|
|
||||||
static update = function() {
|
static update = function() {
|
||||||
|
curr_path = getInputData(0);
|
||||||
|
is_path = curr_path != noone && struct_has(curr_path, "getPointRatio");
|
||||||
|
|
||||||
|
curr_range = getInputData(1);
|
||||||
|
|
||||||
ds_map_clear(cached_pos);
|
ds_map_clear(cached_pos);
|
||||||
outputs[0].setValue(self);
|
outputs[0].setValue(self);
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,6 @@ function Node_Path_Wave(_x, _y, _group = noone) : Node(_x, _y, _group) construct
|
||||||
["Wiggle", true, 6], 7, 8,
|
["Wiggle", true, 6], 7, 8,
|
||||||
];
|
];
|
||||||
|
|
||||||
path = 0;
|
|
||||||
fre = 0;
|
fre = 0;
|
||||||
amp = 0;
|
amp = 0;
|
||||||
shf = 0;
|
shf = 0;
|
||||||
|
@ -53,9 +52,12 @@ function Node_Path_Wave(_x, _y, _group = noone) : Node(_x, _y, _group) construct
|
||||||
|
|
||||||
cached_pos = ds_map_create();
|
cached_pos = ds_map_create();
|
||||||
|
|
||||||
|
curr_path = noone;
|
||||||
|
is_path = false;
|
||||||
|
|
||||||
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(curr_path && struct_has(curr_path, "drawOverlay"))
|
||||||
if(_path && struct_has(_path, "drawOverlay")) _path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
curr_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();
|
||||||
|
@ -78,31 +80,29 @@ function Node_Path_Wave(_x, _y, _group = noone) : Node(_x, _y, _group) construct
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static getLineCount = function() {
|
static getLineCount = function( ) /*=>*/ {return is_path? curr_path.getLineCount() : 1};
|
||||||
return struct_has(path, "getLineCount")? path.getLineCount() : 1;
|
static getSegmentCount = function(ind = 0) /*=>*/ {return is_path? curr_path.getSegmentCount(ind) : 0};
|
||||||
}
|
static getBoundary = function(ind = 0) /*=>*/ {return is_path? curr_path.getBoundary(ind) : new BoundingBox( 0, 0, 1, 1 )};
|
||||||
|
|
||||||
static getSegmentCount = function(ind = 0) {
|
|
||||||
return struct_has(path, "getSegmentCount")? path.getSegmentCount(ind) : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static getLength = function(ind = 0) {
|
static getLength = function(ind = 0) {
|
||||||
var _fre = fre ; _fre = max(_fre[0], _fre[1]);
|
if(!is_path) return 0;
|
||||||
var _amo = amp ; _amo = max(_amo[0], _amo[1]);
|
|
||||||
|
var _fre = fre; _fre = max(_fre[0], _fre[1]);
|
||||||
|
var _amo = amp; _amo = max(_amo[0], _amo[1]);
|
||||||
|
|
||||||
_fre = max(1, abs(_fre));
|
_fre = max(1, abs(_fre));
|
||||||
var _len = struct_has(path, "getLength")? path.getLength(ind) : 0;
|
var _len = curr_path.getLength(ind);
|
||||||
_len *= _fre * sqrt(abs(_amo) + 1 / _fre);
|
_len *= _fre * sqrt(abs(_amo) + 1 / _fre);
|
||||||
|
|
||||||
return _len;
|
return _len;
|
||||||
}
|
}
|
||||||
|
|
||||||
static getAccuLength = function(ind = 0) {
|
static getAccuLength = function(ind = 0) {
|
||||||
var _fre = fre ; _fre = max(_fre[0], _fre[1]);
|
var _fre = fre; _fre = max(_fre[0], _fre[1]);
|
||||||
var _amo = amp ; _amo = max(_amo[0], _amo[1]);
|
var _amo = amp; _amo = max(_amo[0], _amo[1]);
|
||||||
|
|
||||||
_fre = max(1, abs(_fre));
|
_fre = max(1, abs(_fre));
|
||||||
var _len = struct_has(path, "getAccuLength")? path.getAccuLength(ind) : [];
|
var _len = is_path? curr_path.getAccuLength(ind) : [];
|
||||||
var _mul = _fre * sqrt(abs(_amo) + 1 / _fre);
|
var _mul = _fre * sqrt(abs(_amo) + 1 / _fre);
|
||||||
|
|
||||||
for( var i = 0, n = array_length(_len); i < n; i++ )
|
for( var i = 0, n = array_length(_len); i < n; i++ )
|
||||||
|
@ -114,6 +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 __vec2P(); else { out.x = 0; out.y = 0; }
|
if(out == undefined) out = new __vec2P(); else { out.x = 0; out.y = 0; }
|
||||||
|
|
||||||
|
if(!is_path) return out;
|
||||||
var _cKey = $"{string_format(_rat, 0, 6)},{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];
|
||||||
|
@ -123,7 +124,7 @@ function Node_Path_Wave(_x, _y, _group = noone) : Node(_x, _y, _group) construct
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
var _path = path;
|
var _path = curr_path;
|
||||||
var _fre = fre;
|
var _fre = fre;
|
||||||
var _amp = amp;
|
var _amp = amp;
|
||||||
var _shf = shf;
|
var _shf = shf;
|
||||||
|
@ -145,14 +146,6 @@ function Node_Path_Wave(_x, _y, _group = noone) : Node(_x, _y, _group) construct
|
||||||
_amp += _w;
|
_amp += _w;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(is_array(_path)) {
|
|
||||||
_path = array_safe_get_fast(_path, ind);
|
|
||||||
ind = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!is_struct(_path) || !struct_has(_path, "getPointRatio"))
|
|
||||||
return out;
|
|
||||||
|
|
||||||
p0 = _path.getPointRatio(clamp(_rat - 0.001, 0, 0.999999), ind, p0);
|
p0 = _path.getPointRatio(clamp(_rat - 0.001, 0, 0.999999), ind, p0);
|
||||||
p = _path.getPointRatio(_rat, ind, p);
|
p = _path.getPointRatio(_rat, ind, p);
|
||||||
p1 = _path.getPointRatio(clamp(_rat + 0.001, 0, 0.999999), ind, p1);
|
p1 = _path.getPointRatio(clamp(_rat + 0.001, 0, 0.999999), ind, p1);
|
||||||
|
@ -185,13 +178,11 @@ function Node_Path_Wave(_x, _y, _group = noone) : Node(_x, _y, _group) construct
|
||||||
|
|
||||||
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(), ind, out); }
|
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(), ind, out); }
|
||||||
|
|
||||||
static getBoundary = function(ind = 0) {
|
|
||||||
return struct_has(path, "getBoundary")? path.getBoundary(ind) : new BoundingBox( 0, 0, 1, 1 );
|
|
||||||
}
|
|
||||||
|
|
||||||
static update = function() {
|
static update = function() {
|
||||||
ds_map_clear(cached_pos);
|
ds_map_clear(cached_pos);
|
||||||
path = getInputData(0);
|
curr_path = getInputData(0);
|
||||||
|
is_path = curr_path != noone && struct_has(curr_path, "getPointRatio");
|
||||||
|
|
||||||
fre = getInputData(1);
|
fre = getInputData(1);
|
||||||
amp = getInputData(2);
|
amp = getInputData(2);
|
||||||
shf = getInputData(3);
|
shf = getInputData(3);
|
||||||
|
|
|
@ -9,17 +9,25 @@ function Node_Path_Weight_Adjust(_x, _y, _group = noone) : Node(_x, _y, _group)
|
||||||
|
|
||||||
newInput(2, nodeValue_Float("Value", self, 0));
|
newInput(2, nodeValue_Float("Value", self, 0));
|
||||||
|
|
||||||
newInput(3, nodeValue_Curve("Length Modifier", self, CURVE_DEF_11));
|
newInput(3, nodeValue_Curve("Curve", self, CURVE_DEF_11));
|
||||||
|
|
||||||
|
newInput(4, nodeValue_Enum_Scroll("Type", self, 0, [ "Constant", "Curve" ]));
|
||||||
|
|
||||||
|
newInput(5, nodeValue_Vec2("Curve Range", self, [ 0, 1 ]));
|
||||||
|
|
||||||
newOutput(0, nodeValue_Output("Path", self, VALUE_TYPE.pathnode, self));
|
newOutput(0, nodeValue_Output("Path", self, VALUE_TYPE.pathnode, self));
|
||||||
|
|
||||||
input_display_list = [ 0,
|
input_display_list = [ 0,
|
||||||
["Adjustment", false], 1, 2,
|
["Adjustment", false], 1, 4, 2, 3, 5,
|
||||||
];
|
];
|
||||||
|
|
||||||
curr_path = noone;
|
curr_path = noone;
|
||||||
|
is_path = false;
|
||||||
curr_mode = 0;
|
curr_mode = 0;
|
||||||
|
curr_type = 0;
|
||||||
curr_value = 0;
|
curr_value = 0;
|
||||||
|
curr_curve = noone;
|
||||||
|
curr_curve_range = [ 0, 1 ];
|
||||||
|
|
||||||
temp_p = new __vec2P();
|
temp_p = new __vec2P();
|
||||||
|
|
||||||
|
@ -27,22 +35,26 @@ function Node_Path_Weight_Adjust(_x, _y, _group = noone) : Node(_x, _y, _group)
|
||||||
if(curr_path && struct_has(curr_path, "drawOverlay")) curr_path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
if(curr_path && struct_has(curr_path, "drawOverlay")) curr_path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
||||||
}
|
}
|
||||||
|
|
||||||
static getLineCount = function( ) /*=>*/ {return struct_has(curr_path, "getLineCount")? curr_path.getLineCount() : 1};
|
static getLineCount = function( ) /*=>*/ {return is_path? curr_path.getLineCount() : 1};
|
||||||
static getSegmentCount = function(ind = 0) /*=>*/ {return struct_has(curr_path, "getSegmentCount")? curr_path.getSegmentCount(ind) : 0};
|
static getSegmentCount = function(ind = 0) /*=>*/ {return is_path? curr_path.getSegmentCount(ind) : 0};
|
||||||
static getLength = function(ind = 0) /*=>*/ {return struct_has(curr_path, "getLength")? curr_path.getLength(ind) : 0};
|
static getLength = function(ind = 0) /*=>*/ {return is_path? curr_path.getLength(ind) : 0};
|
||||||
static getAccuLength = function(ind = 0) /*=>*/ {return struct_has(curr_path, "getAccuLength")? curr_path.getAccuLength(ind) : []};
|
static getAccuLength = function(ind = 0) /*=>*/ {return is_path? curr_path.getAccuLength(ind) : []};
|
||||||
static getBoundary = function(ind = 0) /*=>*/ {return struct_has(curr_path, "getBoundary")? curr_path.getBoundary(ind) : new BoundingBox( 0, 0, 1, 1 )};
|
static getBoundary = function(ind = 0) /*=>*/ {return is_path? curr_path.getBoundary(ind) : new BoundingBox( 0, 0, 1, 1 )};
|
||||||
|
|
||||||
static getPointRatio = function(_rat, ind = 0, out = undefined) {
|
static getPointRatio = function(_rat, ind = 0, out = undefined) {
|
||||||
if(out == undefined) out = new __vec2P(); else { out.x = 0; out.y = 0; }
|
if(out == undefined) out = new __vec2P(); else { out.x = 0; out.y = 0; }
|
||||||
|
if(!is_path) return out;
|
||||||
|
|
||||||
temp_p = curr_path.getPointRatio(_rat, ind, temp_p);
|
temp_p = curr_path.getPointRatio(_rat, ind, temp_p);
|
||||||
out.x = temp_p.x;
|
out.x = temp_p.x;
|
||||||
out.y = temp_p.y;
|
out.y = temp_p.y;
|
||||||
|
|
||||||
|
var _v = curr_value;
|
||||||
|
if(curr_type) _v = lerp(curr_curve_range[0], curr_curve_range[1], curr_curve.get(_rat));
|
||||||
|
|
||||||
switch(curr_mode) {
|
switch(curr_mode) {
|
||||||
case 0 : out.weight = max(0, temp_p.weight + curr_value); break;
|
case 0 : out.weight = max(0, temp_p.weight + _v); break;
|
||||||
case 1 : out.weight = temp_p.weight * curr_value; break;
|
case 1 : out.weight = temp_p.weight * _v; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return out;
|
return out;
|
||||||
|
@ -51,9 +63,26 @@ function Node_Path_Weight_Adjust(_x, _y, _group = noone) : Node(_x, _y, _group)
|
||||||
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(), ind, out); }
|
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(), ind, out); }
|
||||||
|
|
||||||
static update = function() {
|
static update = function() {
|
||||||
curr_path = getInputData(0);
|
var _path = getInputData(0);
|
||||||
curr_mode = getInputData(1);
|
var _mode = getInputData(1);
|
||||||
curr_value = getInputData(2);
|
var _value = getInputData(2);
|
||||||
|
var _curve = getInputData(3);
|
||||||
|
var _type = getInputData(4);
|
||||||
|
var _curve_range = getInputData(5);
|
||||||
|
|
||||||
|
inputs[2].setVisible(curr_type == 0);
|
||||||
|
inputs[3].setVisible(curr_type == 1);
|
||||||
|
inputs[5].setVisible(curr_type == 1);
|
||||||
|
|
||||||
|
curr_path = _path;
|
||||||
|
curr_mode = _mode;
|
||||||
|
curr_value = _value;
|
||||||
|
|
||||||
|
curr_curve = new curveMap(_curve, TOTAL_FRAMES);
|
||||||
|
curr_type = _type;
|
||||||
|
curr_curve_range = _curve_range;
|
||||||
|
|
||||||
|
is_path = curr_path != noone && struct_has(curr_path, "getPointRatio");
|
||||||
|
|
||||||
outputs[0].setValue(self);
|
outputs[0].setValue(self);
|
||||||
}
|
}
|
||||||
|
|
|
@ -318,16 +318,18 @@ function NodeObject(_name, _node, _tooltip = "") constructor {
|
||||||
var _ispr = _data[$ "spr"];
|
var _ispr = _data[$ "spr"];
|
||||||
_spr = asset_get_index(_ispr);
|
_spr = asset_get_index(_ispr);
|
||||||
|
|
||||||
if(sprite_exists(_spr))
|
if(sprite_exists(_spr)) spr = _spr;
|
||||||
spr = _spr;
|
else print($"Node icon not found {_ispr}");
|
||||||
else
|
|
||||||
print($"Node icon not found {_ispr}");
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
var pth = $"{sourceDir}/icon.png";
|
var pth = $"{sourceDir}/icon.png";
|
||||||
|
|
||||||
if(file_exists_empty(pth)) {
|
if(file_exists_empty(pth)) {
|
||||||
spr = sprite_add(pth, 0, false, false, 0, 0);
|
spr = sprite_add(pth, 0, false, false, 0, 0);
|
||||||
sprite_set_offset(spr, sprite_get_width(spr) / 2, sprite_get_height(spr) / 2);
|
sprite_set_offset(spr, sprite_get_width(spr) / 2, sprite_get_height(spr) / 2);
|
||||||
|
} else {
|
||||||
|
var _spr = asset_get_index($"s_{string_lower(nodeName)}");
|
||||||
|
if(sprite_exists(_spr)) spr = _spr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,99 @@
|
||||||
|
function Panel_Collection_Manager() : PanelContent() constructor {
|
||||||
|
w = ui(540);
|
||||||
|
h = ui(480);
|
||||||
|
|
||||||
|
title = "Collection Manager";
|
||||||
|
auto_pin = true;
|
||||||
|
padding = ui(4);
|
||||||
|
content_w = w - ui(200);
|
||||||
|
|
||||||
|
stack = ds_stack_create();
|
||||||
|
|
||||||
|
sc_content = new scrollPane(content_w, h, function(_y, _m) {
|
||||||
|
draw_clear_alpha(COLORS.panel_bg_clear_inner, 1);
|
||||||
|
var _h = 0;
|
||||||
|
var hg = ui(20);
|
||||||
|
var yy = _y;
|
||||||
|
|
||||||
|
ds_stack_clear(stack);
|
||||||
|
ds_stack_push(stack, COLLECTIONS);
|
||||||
|
|
||||||
|
while(!ds_stack_empty(stack)) {
|
||||||
|
var st = ds_stack_pop(stack);
|
||||||
|
|
||||||
|
var _list = st.subDir;
|
||||||
|
for( var i = 0, n = ds_list_size(_list); i < n; i++ )
|
||||||
|
ds_stack_push(stack, _list[| i]);
|
||||||
|
|
||||||
|
draw_set_text(f_p3, fa_left, fa_center, COLORS._main_text_sub);
|
||||||
|
draw_text_add(ui(16), yy + hg / 2, st.name);
|
||||||
|
|
||||||
|
_h += hg;
|
||||||
|
yy += hg;
|
||||||
|
|
||||||
|
var _list = st.content;
|
||||||
|
for( var i = 0, n = ds_list_size(_list); i < n; i++ ) {
|
||||||
|
var _con = _list[| i];
|
||||||
|
|
||||||
|
draw_set_text(f_p3, fa_left, fa_center, COLORS._main_text);
|
||||||
|
draw_text_add(ui(8), yy + hg / 2, _con.name);
|
||||||
|
|
||||||
|
_h += hg;
|
||||||
|
yy += hg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return _h;
|
||||||
|
});
|
||||||
|
|
||||||
|
function drawContent(panel) {
|
||||||
|
draw_clear_alpha(COLORS.panel_bg_clear, 1);
|
||||||
|
|
||||||
|
content_w = w - ui(200);
|
||||||
|
|
||||||
|
// Lists
|
||||||
|
|
||||||
|
var _pd = padding;
|
||||||
|
var ndx = _pd;
|
||||||
|
var ndy = _pd;
|
||||||
|
var ndw = content_w + ui(16);
|
||||||
|
var ndh = h - _pd * 2;
|
||||||
|
|
||||||
|
draw_sprite_stretched(THEME.ui_panel_bg, 1, ndx, ndy, ndw, ndh);
|
||||||
|
|
||||||
|
sc_content.verify(content_w, ndh - ui(16));
|
||||||
|
sc_content.setFocusHover(pFOCUS, pHOVER);
|
||||||
|
sc_content.drawOffset(ndx + ui(8), ndy + ui(8), mx, my);
|
||||||
|
|
||||||
|
// Button
|
||||||
|
|
||||||
|
var lx = ndx + ndw + ui(8);
|
||||||
|
|
||||||
|
var bw = w - _pd - lx;
|
||||||
|
var bh = TEXTBOX_HEIGHT;
|
||||||
|
var bx = lx;
|
||||||
|
var by = _pd;
|
||||||
|
|
||||||
|
if(buttonInstant(THEME.button_def, bx, by, bw, bh, [ mx, my ], pHOVER, pFOCUS) == 2)
|
||||||
|
__test_load_current_collections(COLLECTIONS);
|
||||||
|
|
||||||
|
draw_set_text(f_p2, fa_center, fa_center, COLORS._main_text);
|
||||||
|
draw_text_add(bx + bw / 2, by + bh / 2, "Load All");
|
||||||
|
|
||||||
|
by += bh + ui(4);
|
||||||
|
if(buttonInstant(THEME.button_def, bx, by, bw, bh, [ mx, my ], pHOVER, pFOCUS) == 2)
|
||||||
|
__test_update_current_collections(COLLECTIONS);
|
||||||
|
|
||||||
|
draw_set_text(f_p2, fa_center, fa_center, COLORS._main_text);
|
||||||
|
draw_text_add(bx + bw / 2, by + bh / 2, "Update All");
|
||||||
|
|
||||||
|
by += bh + ui(4);
|
||||||
|
if(buttonInstant(THEME.button_def, bx, by, bw, bh, [ mx, my ], pHOVER, pFOCUS) == 2)
|
||||||
|
__test_metadata_current_collections(COLLECTIONS);
|
||||||
|
|
||||||
|
draw_set_text(f_p2, fa_center, fa_center, COLORS._main_text);
|
||||||
|
draw_text_add(bx + bw / 2, by + bh / 2, "Update Metadata");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
14
scripts/panel_collection_manager/panel_collection_manager.yy
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
"$GMScript":"v1",
|
||||||
|
"%Name":"panel_collection_manager",
|
||||||
|
"isCompatibility":false,
|
||||||
|
"isDnD":false,
|
||||||
|
"name":"panel_collection_manager",
|
||||||
|
"parent":{
|
||||||
|
"name":"debug",
|
||||||
|
"path":"folders/panels/_others/debug.yy",
|
||||||
|
},
|
||||||
|
"resourceType":"GMScript",
|
||||||
|
"resourceVersion":"2.0",
|
||||||
|
"tags":[],
|
||||||
|
}
|
|
@ -5,8 +5,8 @@
|
||||||
"isDnD":false,
|
"isDnD":false,
|
||||||
"name":"panel_console",
|
"name":"panel_console",
|
||||||
"parent":{
|
"parent":{
|
||||||
"name":"_others",
|
"name":"debug",
|
||||||
"path":"folders/panels/_others.yy",
|
"path":"folders/panels/_others/debug.yy",
|
||||||
},
|
},
|
||||||
"resourceType":"GMScript",
|
"resourceType":"GMScript",
|
||||||
"resourceVersion":"2.0",
|
"resourceVersion":"2.0",
|
||||||
|
|
|
@ -254,21 +254,17 @@ function Panel_Menu() : PanelContent() constructor {
|
||||||
MENU_ITEMS.console_panel,
|
MENU_ITEMS.console_panel,
|
||||||
menuItem(__txtx("panel_debug_overlay", "Debug overlay"), function() /*=>*/ { show_debug_overlay(true); }),
|
menuItem(__txtx("panel_debug_overlay", "Debug overlay"), function() /*=>*/ { show_debug_overlay(true); }),
|
||||||
menuItem(__txtx("panel_menu_profile_render", "Render Profiler"), function() /*=>*/ { dialogPanelCall(new Panel_Profile_Render()); }),
|
menuItem(__txtx("panel_menu_profile_render", "Render Profiler"), function() /*=>*/ { dialogPanelCall(new Panel_Profile_Render()); }),
|
||||||
menuItem(__txtx("panel_menu_resource_monitor", "Resource Monitor"), function() /*=>*/ { dialogPanelCall(new Panel_Resource_Monitor()); }),
|
// menuItem(__txtx("panel_menu_resource_monitor", "Resource Monitor"), () => { dialogPanelCall(new Panel_Resource_Monitor()); }),
|
||||||
-1,
|
-1,
|
||||||
|
|
||||||
menuItem(__txtx("panel_menu_tester", "Save frozen"), function() /*=>*/ { PROJECT.freeze = true; SAVE(); }),
|
menuItem(__txtx("panel_menu_tester", "Save frozen"), function() /*=>*/ { PROJECT.freeze = true; SAVE(); }),
|
||||||
menuItem(__txtx("panel_menu_tester", "Tester"), function() /*=>*/ { dialogPanelCall(new Panel_Test()); }),
|
menuItem(__txtx("panel_menu_tester", "Tester"), function() /*=>*/ { dialogPanelCall(new Panel_Test()); }),
|
||||||
-1,
|
-1,
|
||||||
|
|
||||||
menuItem(__txtx("panel_menu_test_load_all", "Load all current collections"), function() /*=>*/ { __test_load_current_collections(); }),
|
menuItem(__txt("Collection Manager"), function() /*=>*/ { dialogPanelCall(new Panel_Collection_Manager());}),
|
||||||
menuItem(__txtx("panel_menu_test_update_all", "Update all current collections"), function() /*=>*/ { __test_update_current_collections(); }),
|
menuItem(__txtx("panel_menu_test_load_nodes", "Load all nodes"), function() /*=>*/ { __test_load_all_nodes(); }),
|
||||||
menuItem(__txtx("panel_menu_test_add_meta", "Add metadata to current collections"), function() /*=>*/ { __test_metadata_current_collections(); }),
|
// menuItem(__txtx("panel_menu_test_gen_guide", "Generate node guide"), () => { dialogPanelCall(new Panel_Node_Data_Gen()); }),
|
||||||
menuItem(__txtx("panel_menu_test_update_sam", "Update sample projects"), function() /*=>*/ { __test_update_sample_projects(); }),
|
// menuItem(__txtx("panel_menu_test_gen_theme", "Generate theme object"), () => { __test_generate_theme(); }),
|
||||||
-1,
|
|
||||||
menuItem(__txtx("panel_menu_test_load_nodes", "Load all nodes"), function() /*=>*/ { __test_load_all_nodes(); }),
|
|
||||||
menuItem(__txtx("panel_menu_test_gen_guide", "Generate node guide"), function() /*=>*/ { dialogPanelCall(new Panel_Node_Data_Gen()); }),
|
|
||||||
menuItem(__txtx("panel_menu_test_gen_theme", "Generate theme object"), function() /*=>*/ { __test_generate_theme(); }),
|
|
||||||
-1,
|
-1,
|
||||||
menuItem(__txtx("panel_menu_test_warning", "Display Warning"), function() /*=>*/ { noti_warning("Error message") }),
|
menuItem(__txtx("panel_menu_test_warning", "Display Warning"), function() /*=>*/ { noti_warning("Error message") }),
|
||||||
menuItem(__txtx("panel_menu_test_error", "Display Error"), function() /*=>*/ { noti_error("Error message") }),
|
menuItem(__txtx("panel_menu_test_error", "Display Error"), function() /*=>*/ { noti_error("Error message") }),
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
"isDnD":false,
|
"isDnD":false,
|
||||||
"name":"panel_node_data_gen",
|
"name":"panel_node_data_gen",
|
||||||
"parent":{
|
"parent":{
|
||||||
"name":"_others",
|
"name":"debug",
|
||||||
"path":"folders/panels/_others.yy",
|
"path":"folders/panels/_others/debug.yy",
|
||||||
},
|
},
|
||||||
"resourceType":"GMScript",
|
"resourceType":"GMScript",
|
||||||
"resourceVersion":"2.0",
|
"resourceVersion":"2.0",
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
"isDnD":false,
|
"isDnD":false,
|
||||||
"name":"panel_profile_render",
|
"name":"panel_profile_render",
|
||||||
"parent":{
|
"parent":{
|
||||||
"name":"_others",
|
"name":"debug",
|
||||||
"path":"folders/panels/_others.yy",
|
"path":"folders/panels/_others/debug.yy",
|
||||||
},
|
},
|
||||||
"resourceType":"GMScript",
|
"resourceType":"GMScript",
|
||||||
"resourceVersion":"2.0",
|
"resourceVersion":"2.0",
|
||||||
|
|
|
@ -5,10 +5,9 @@
|
||||||
"isDnD":false,
|
"isDnD":false,
|
||||||
"name":"panel_resource_monitor",
|
"name":"panel_resource_monitor",
|
||||||
"parent":{
|
"parent":{
|
||||||
"name":"_others",
|
"name":"debug",
|
||||||
"path":"folders/panels/_others.yy",
|
"path":"folders/panels/_others/debug.yy",
|
||||||
},
|
},
|
||||||
"resourceType":"GMScript",
|
"resourceType":"GMScript",
|
||||||
"resourceVersion":"2.0",
|
"resourceVersion":"2.0",
|
||||||
"tags":[],
|
|
||||||
}
|
}
|
|
@ -5,8 +5,8 @@
|
||||||
"isDnD":false,
|
"isDnD":false,
|
||||||
"name":"panel_test",
|
"name":"panel_test",
|
||||||
"parent":{
|
"parent":{
|
||||||
"name":"_others",
|
"name":"debug",
|
||||||
"path":"folders/panels/_others.yy",
|
"path":"folders/panels/_others/debug.yy",
|
||||||
},
|
},
|
||||||
"resourceType":"GMScript",
|
"resourceType":"GMScript",
|
||||||
"resourceVersion":"2.0",
|
"resourceVersion":"2.0",
|
||||||
|
|
|
@ -33,7 +33,7 @@ function LOAD_FOLDER(list, folder) {
|
||||||
|
|
||||||
function LOAD_SAMPLE() {
|
function LOAD_SAMPLE() {
|
||||||
ds_list_clear(SAMPLE_PROJECTS);
|
ds_list_clear(SAMPLE_PROJECTS);
|
||||||
var zzip = "Welcome files/Welcome files.zip";
|
var zzip = "data/Welcome files/Welcome files.zip";
|
||||||
var targ = $"{DIRECTORY}Welcome files";
|
var targ = $"{DIRECTORY}Welcome files";
|
||||||
|
|
||||||
directory_verify(targ);
|
directory_verify(targ);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
function __test_update_current_collections() {
|
function __test_update_current_collections(dir = COLLECTIONS) {
|
||||||
var st = ds_stack_create();
|
var st = ds_stack_create();
|
||||||
ds_stack_push(st, PANEL_COLLECTION.context);
|
ds_stack_push(st, dir);
|
||||||
|
|
||||||
print("---------- COLLECTION UPDATING STARTED ----------");
|
print("---------- COLLECTION UPDATING STARTED ----------");
|
||||||
|
|
||||||
|
@ -50,9 +50,9 @@ function __test_update_sample_projects() {
|
||||||
print("---------- PROJECT UPDATING ENDED ----------");
|
print("---------- PROJECT UPDATING ENDED ----------");
|
||||||
}
|
}
|
||||||
|
|
||||||
function __test_load_current_collections() {
|
function __test_load_current_collections(dir = COLLECTIONS) {
|
||||||
var st = ds_stack_create();
|
var st = ds_stack_create();
|
||||||
ds_stack_push(st, PANEL_COLLECTION.context);
|
ds_stack_push(st, dir);
|
||||||
|
|
||||||
var xx = 0;
|
var xx = 0;
|
||||||
var yy = 0;
|
var yy = 0;
|
||||||
|
@ -162,9 +162,9 @@ function __test_load_all_nodes() {
|
||||||
LOADING = false;
|
LOADING = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function __test_metadata_current_collections() {
|
function __test_metadata_current_collections(dir = COLLECTIONS) {
|
||||||
var st = ds_stack_create();
|
var st = ds_stack_create();
|
||||||
ds_stack_push(st, PANEL_COLLECTION.context);
|
ds_stack_push(st, dir);
|
||||||
|
|
||||||
print("---------- COLLECTION UPDATING STARTED ----------");
|
print("---------- COLLECTION UPDATING STARTED ----------");
|
||||||
|
|
||||||
|
|