weight in other path nodes
|
@ -232,6 +232,7 @@
|
|||
{"name":"colors","order":2,"path":"folders/nodes/values/types/colors.yy",},
|
||||
{"name":"object","order":3,"path":"folders/nodes/values/types/object.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":"animation","order":1,"path":"folders/panels/animation.yy",},
|
||||
{"name":"collection","order":2,"path":"folders/panels/collection.yy",},
|
||||
|
@ -1312,18 +1313,18 @@
|
|||
{"name":"paddingBox","order":7,"path":"scripts/paddingBox/paddingBox.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_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","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_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_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_data","order":2,"path":"scripts/panel_data/panel_data.yy",},
|
||||
{"name":"panel_display_additional","order":12,"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_function","order":3,"path":"scripts/panel_function/panel_function.yy",},
|
||||
{"name":"panel_data","order":3,"path":"scripts/panel_data/panel_data.yy",},
|
||||
{"name":"panel_display_additional","order":13,"path":"scripts/panel_display_additional/panel_display_additional.yy",},
|
||||
{"name":"panel_file_explorer","order":14,"path":"scripts/panel_file_explorer/panel_file_explorer.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_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",},
|
||||
|
@ -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_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_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_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_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_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_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_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_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",},
|
||||
|
@ -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_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_profile_render","order":14,"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_test","order":10,"path":"scripts/panel_test/panel_test.yy",},
|
||||
{"name":"panel_text_editor","order":11,"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_profile_render","order":3,"path":"scripts/panel_profile_render/panel_profile_render.yy",},
|
||||
{"name":"panel_resource_monitor","order":4,"path":"scripts/panel_resource_monitor/panel_resource_monitor.yy",},
|
||||
{"name":"panel_test","order":2,"path":"scripts/panel_test/panel_test.yy",},
|
||||
{"name":"panel_text_editor","order":12,"path":"scripts/panel_text_editor/panel_text_editor.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_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_parser","order":3,"path":"scripts/path_parser/path_parser.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":"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":"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":"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",},
|
||||
|
@ -1284,69 +1285,6 @@
|
|||
{"$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":"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",},
|
||||
],
|
||||
"isEcma":false,
|
||||
|
@ -2544,6 +2482,7 @@
|
|||
{"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_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_collections_settings","path":"scripts/panel_collections_settings/panel_collections_settings.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;
|
||||
_ny = p.y;
|
||||
// print($"{_nx}, {_ny}");
|
||||
|
||||
if(_total < _pathEnd) { //Do not wiggle the last point.
|
||||
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 _col_base = dat == noone? _colb.eval(random(1)) : dat.color;
|
||||
_ow = 1;
|
||||
|
||||
for( var j = 0, m = array_length(points); j < m; 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));
|
||||
|
||||
curr_path = [];
|
||||
|
||||
static createNewInput = function() {
|
||||
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() {
|
||||
var l = 0;
|
||||
for( var i = input_fix_len; i < array_length(inputs); i += data_length ) {
|
||||
var _path = getInputData(i);
|
||||
l += struct_has(_path, "getLineCount")? _path.getLineCount() : 1;
|
||||
}
|
||||
for( var i = 0, n = array_length(curr_path); i < n; i++ )
|
||||
l += curr_path[i].getLineCount();
|
||||
|
||||
return l;
|
||||
}
|
||||
|
||||
static getSegmentCount = function(ind = 0) {
|
||||
for( var i = input_fix_len; i < array_length(inputs); i += data_length ) {
|
||||
var _path = getInputData(i);
|
||||
var lc = struct_has(_path, "getLineCount")? _path.getLineCount() : 1;
|
||||
for( var i = 0, n = array_length(curr_path); i < n; i++ ) {
|
||||
var lc = curr_path[i].getLineCount()
|
||||
|
||||
if(ind < lc) return _path.getSegmentCount(ind);
|
||||
if(ind < lc) return curr_path[i].getSegmentCount(ind);
|
||||
ind -= lc;
|
||||
}
|
||||
|
||||
|
@ -37,11 +37,10 @@ function Node_Path_Array(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
|||
}
|
||||
|
||||
static getLength = function(ind = 0) {
|
||||
for( var i = input_fix_len; i < array_length(inputs); i += data_length ) {
|
||||
var _path = getInputData(i);
|
||||
var lc = struct_has(_path, "getLineCount")? _path.getLineCount() : 1;
|
||||
for( var i = 0, n = array_length(curr_path); i < n; i++ ) {
|
||||
var lc = curr_path[i].getLineCount();
|
||||
|
||||
if(ind < lc) return _path.getLength(ind);
|
||||
if(ind < lc) return curr_path[i].getLength(ind);
|
||||
ind -= lc;
|
||||
}
|
||||
|
||||
|
@ -49,11 +48,10 @@ function Node_Path_Array(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
|||
}
|
||||
|
||||
static getAccuLength = function(ind = 0) {
|
||||
for( var i = input_fix_len; i < array_length(inputs); i += data_length ) {
|
||||
var _path = getInputData(i);
|
||||
var lc = struct_has(_path, "getLineCount")? _path.getLineCount() : 1;
|
||||
for( var i = 0, n = array_length(curr_path); i < n; i++ ) {
|
||||
var lc = curr_path[i].getLineCount();
|
||||
|
||||
if(ind < lc) return _path.getAccuLength(ind);
|
||||
if(ind < lc) return curr_path[i].getAccuLength(ind);
|
||||
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) {
|
||||
for( var i = input_fix_len; i < array_length(inputs); i += data_length ) {
|
||||
var _path = getInputData(i);
|
||||
var lc = struct_has(_path, "getLineCount")? _path.getLineCount() : 1;
|
||||
for( var i = 0, n = array_length(curr_path); i < n; i++ ) {
|
||||
var lc = curr_path[i].getLineCount();
|
||||
|
||||
if(ind < lc) return _path.getPointRatio(_rat, ind).clone();
|
||||
if(ind < lc) return curr_path[i].getPointRatio(_rat, ind);
|
||||
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) {
|
||||
for( var i = input_fix_len; i < array_length(inputs); i += data_length ) {
|
||||
var _path = getInputData(i);
|
||||
var lc = struct_has(_path, "getLineCount")? _path.getLineCount() : 1;
|
||||
for( var i = 0, n = array_length(curr_path); i < n; i++ ) {
|
||||
var lc = curr_path[i].getLineCount();
|
||||
|
||||
if(ind < lc) return _path.getPointDistance(_dist, ind).clone();
|
||||
if(ind < lc) return curr_path[i].getPointDistance(_dist, ind);
|
||||
ind -= lc;
|
||||
}
|
||||
|
||||
|
@ -85,11 +81,10 @@ function Node_Path_Array(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
|||
}
|
||||
|
||||
static getBoundary = function(ind = 0) {
|
||||
for( var i = input_fix_len; i < array_length(inputs); i += data_length ) {
|
||||
var _path = getInputData(i);
|
||||
var lc = struct_has(_path, "getLineCount")? _path.getLineCount() : 1;
|
||||
for( var i = 0, n = array_length(curr_path); i < n; i++ ) {
|
||||
var lc = curr_path[i].getLineCount();
|
||||
|
||||
if(ind < lc) return _path.getBoundary(ind);
|
||||
if(ind < lc) return curr_path[i].getBoundary(ind);
|
||||
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) {
|
||||
for( var i = input_fix_len; i < array_length(inputs); i += data_length ) {
|
||||
var _path = getInputData(i);
|
||||
if(!struct_has(_path, "drawOverlay")) continue;
|
||||
for( var i = 0, n = array_length(curr_path); i < n; i++ ) {
|
||||
if(!struct_has(curr_path[i], "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) {
|
||||
ds_map_clear(cached_pos);
|
||||
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();
|
||||
|
||||
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) {
|
||||
var _p0 = getInputData(0);
|
||||
var _p1 = getInputData(1);
|
||||
|
||||
if(_p0) _p0.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_path1 && struct_has(curr_path1, "drawOverlay")) curr_path1.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);
|
||||
|
||||
|
@ -48,58 +53,37 @@ function Node_Path_Blend(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
|||
}
|
||||
}
|
||||
|
||||
static getLineCount = function() {
|
||||
var _path = getInputData(0);
|
||||
return struct_has(_path, "getLineCount")? _path.getLineCount() : 1;
|
||||
}
|
||||
static getLineCount = function() { return is_path1? curr_path1.getLineCount() : 1; }
|
||||
|
||||
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");
|
||||
var p2 = _path2 != noone && struct_has(_path2, "getSegmentCount");
|
||||
if(!is_path1 && !is_path2) return 0;
|
||||
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;
|
||||
if( p1 && !p2) return _path1.getSegmentCount(ind);
|
||||
if(!p1 && p2) return _path2.getSegmentCount(ind);
|
||||
|
||||
return max(_path1.getSegmentCount(ind), _path2.getSegmentCount(ind));
|
||||
return max(curr_path1.getSegmentCount(ind), curr_path2.getSegmentCount(ind));
|
||||
}
|
||||
|
||||
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");
|
||||
var p2 = _path2 != noone && struct_has(_path2, "getLength");
|
||||
|
||||
if(!p1 && !p2) return 0;
|
||||
if( p1 && !p2) return _path1.getLength(ind);
|
||||
if(!p1 && p2) return _path2.getLength(ind);
|
||||
if(!is_path1 && !is_path2) return 0;
|
||||
if( is_path1 && !is_path2) return curr_path1.getLength(ind);
|
||||
if(!is_path1 && is_path2) return curr_path2.getLength(ind);
|
||||
|
||||
var _p1 = _path1.getLength(ind);
|
||||
var _p2 = _path2.getLength(ind);
|
||||
var _p1 = curr_path1.getLength(ind);
|
||||
var _p2 = curr_path2.getLength(ind);
|
||||
|
||||
return lerp(_p1, _p2, _lerp);
|
||||
return lerp(_p1, _p2, curr_lerp);
|
||||
}
|
||||
|
||||
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");
|
||||
var p2 = _path2 != noone && struct_has(_path2, "getAccuLength");
|
||||
|
||||
if(!p1 && !p2) return 0;
|
||||
if( p1 && !p2) return _path1.getAccuLength(ind);
|
||||
if(!p1 && p2) return _path2.getAccuLength(ind);
|
||||
if(!is_path1 && !is_path2) return 0;
|
||||
if( is_path1 && !is_path2) return curr_path1.getAccuLength(ind);
|
||||
if(!is_path1 && is_path2) return curr_path2.getAccuLength(ind);
|
||||
|
||||
var _p1 = _path1.getAccuLength(ind);
|
||||
var _p2 = _path2.getAccuLength(ind);
|
||||
var _p1 = curr_path1.getAccuLength(ind);
|
||||
var _p2 = curr_path2.getAccuLength(ind);
|
||||
|
||||
var len = max(array_length(_p1), array_length(_p2));
|
||||
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 _l2 = array_get_decimal(_p2, i);
|
||||
|
||||
res[i] = lerp(_l1, _l2, _lerp);
|
||||
res[i] = lerp(_l1, _l2, curr_lerp);
|
||||
}
|
||||
|
||||
return res;
|
||||
|
@ -126,23 +110,16 @@ function Node_Path_Blend(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
|||
return out;
|
||||
}
|
||||
|
||||
var _path1 = getInputData(0);
|
||||
var _path2 = getInputData(1);
|
||||
var _lerp = getInputData(2);
|
||||
if(!is_path1 && !is_path2) return out;
|
||||
if( is_path1 && !is_path2) return curr_path1.getPointRatio(_rat, ind, out);
|
||||
if(!is_path1 && is_path2) return curr_path2.getPointRatio(_rat, ind, out);
|
||||
|
||||
var p1 = _path1 != noone && struct_has(_path1, "getPointRatio");
|
||||
var p2 = _path2 != noone && struct_has(_path2, "getPointRatio");
|
||||
|
||||
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 = curr_path1.getPointRatio(_rat, ind);
|
||||
var _p2 = curr_path2.getPointRatio(_rat, ind);
|
||||
|
||||
var _p1 = _path1.getPointRatio(_rat, ind);
|
||||
var _p2 = _path2.getPointRatio(_rat, ind);
|
||||
|
||||
out.x = lerp(_p1.x, _p2.x, _lerp);
|
||||
out.y = lerp(_p1.y, _p2.y, _lerp);
|
||||
out.weight = lerp(_p1.weight, _p2.weight, _lerp);
|
||||
out.x = lerp(_p1.x, _p2.x, curr_lerp);
|
||||
out.y = lerp(_p1.y, _p2.y, curr_lerp);
|
||||
out.weight = lerp(_p1.weight, _p2.weight, curr_lerp);
|
||||
|
||||
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 getBoundary = function(ind = 0) {
|
||||
var _path1 = getInputData(0);
|
||||
var _path2 = getInputData(1);
|
||||
var _lerp = getInputData(2);
|
||||
|
||||
var p1 = _path1 != noone && struct_has(_path1, "getPointRatio");
|
||||
var p2 = _path2 != noone && struct_has(_path2, "getPointRatio");
|
||||
|
||||
if(!p1 && !p2) return new BoundingBox();
|
||||
if( p1 && !p2) return _path1.getBoundary(ind);
|
||||
if(!p1 && p2) return _path2.getBoundary(ind);
|
||||
if(!is_path1 && !is_path2) return new BoundingBox();
|
||||
if( is_path1 && !is_path2) return curr_path1.getBoundary(ind);
|
||||
if(!is_path1 && is_path2) return curr_path2.getBoundary(ind);
|
||||
|
||||
var _p1 = _path1.getBoundary(ind);
|
||||
var _p2 = _path2.getBoundary(ind);
|
||||
var _p1 = curr_path1.getBoundary(ind);
|
||||
var _p2 = curr_path2.getBoundary(ind);
|
||||
|
||||
return _p1.lerpTo(_p2, _lerp);
|
||||
return _p1.lerpTo(_p2, curr_lerp);
|
||||
}
|
||||
|
||||
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);
|
||||
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();
|
||||
|
||||
curr_path = noone;
|
||||
is_path = false;
|
||||
|
||||
curr_amount = noone;
|
||||
curr_smooth = noone;
|
||||
|
||||
#region ---- path ----
|
||||
anchors = [];
|
||||
controls = [];
|
||||
|
@ -32,9 +38,9 @@ function Node_Path_Bridge(_x, _y, _group = noone) : Node(_x, _y, _group) constru
|
|||
#endregion
|
||||
|
||||
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
|
||||
var _path = getInputData(0);
|
||||
var _smt = getInputData(2);
|
||||
if(_path && struct_has(_path, "drawOverlay")) _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);
|
||||
|
||||
var _amo = array_length(anchors);
|
||||
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++ ) {
|
||||
var _a = anchors[i];
|
||||
|
||||
if(_smt) {
|
||||
if(curr_smooth) {
|
||||
var _smp = 1 / 32;
|
||||
for( var j = 0; j <= 1; j += _smp ) {
|
||||
_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 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 getBoundary = function(ind = 0) { return array_safe_get_fast(boundary, ind); }
|
||||
static getLineCount = function( ) /*=>*/ {return getInputData(1)};
|
||||
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 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); }
|
||||
|
||||
|
@ -95,14 +97,14 @@ function Node_Path_Bridge(_x, _y, _group = noone) : Node(_x, _y, _group) constru
|
|||
return out;
|
||||
}
|
||||
|
||||
var _smt = getInputData(2);
|
||||
var _a = anchors[ind];
|
||||
var _la = lengthAccs[ind];
|
||||
|
||||
if(_dist == 0) {
|
||||
var _p = _a[0];
|
||||
out.x = _p[0];
|
||||
out.y = _p[1];
|
||||
out.x = _p[0];
|
||||
out.y = _p[1];
|
||||
out.weight = _p[2];
|
||||
|
||||
cached_pos[? _cKey] = new __vec2P(out.x, out.y, out.weight);
|
||||
return out;
|
||||
|
@ -117,6 +119,7 @@ function Node_Path_Bridge(_x, _y, _group = noone) : Node(_x, _y, _group) constru
|
|||
var _p = _a[_ind];
|
||||
out.x = _p[0];
|
||||
out.y = _p[1];
|
||||
out.weight = _p[2];
|
||||
|
||||
cached_pos[? _cKey] = new __vec2P(out.x, out.y, out.weight);
|
||||
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 p0 = _a[_ind];
|
||||
var p1 = _a[_ind + 1];
|
||||
|
||||
if(_smt) {
|
||||
|
||||
if(curr_smooth) {
|
||||
var _cnt = controls[ind];
|
||||
var _c0x = _cnt[_ind][0];
|
||||
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.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 {
|
||||
out.x = lerp(p0[0], p1[0], _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);
|
||||
|
@ -150,33 +155,35 @@ function Node_Path_Bridge(_x, _y, _group = noone) : Node(_x, _y, _group) constru
|
|||
static update = function() {
|
||||
ds_map_clear(cached_pos);
|
||||
|
||||
var _path = getInputData(0);
|
||||
var _amo = getInputData(1);
|
||||
var _smt = getInputData(2);
|
||||
curr_path = getInputData(0);
|
||||
is_path = curr_path != noone && struct_has(curr_path, "getPointRatio");
|
||||
|
||||
if(_path == noone) return;
|
||||
curr_amount = getInputData(1);
|
||||
curr_smooth = getInputData(2);
|
||||
|
||||
if(!is_path) return;
|
||||
|
||||
#region bridge
|
||||
var _lines = _path.getLineCount();
|
||||
var _lines = curr_path.getLineCount();
|
||||
var _p = new __vec2P();
|
||||
var _rat;
|
||||
|
||||
anchors = array_create(_amo);
|
||||
lengths = array_create(_amo);
|
||||
lengthAccs = array_create(_amo);
|
||||
anchors = array_create(curr_amount);
|
||||
lengths = array_create(curr_amount);
|
||||
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);
|
||||
_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++ ) {
|
||||
_p = _path.getPointRatio(clamp(_rat, 0, 0.999), j, _p);
|
||||
_a[j] = [ _p.x, _p.y ];
|
||||
_p = curr_path.getPointRatio(clamp(_rat, 0, 0.999), j, _p);
|
||||
_a[j] = [ _p.x, _p.y, _p.weight ];
|
||||
}
|
||||
|
||||
anchors[i] = _a;
|
||||
|
||||
if(_smt) {
|
||||
if(curr_smooth) {
|
||||
var _cnt = array_create(_lines - 1);
|
||||
|
||||
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; },
|
||||
new textBox(TEXTBOX_INPUT.number, function(val) { attributes.maximum_dim = clamp(val, 8, 8192); })]);
|
||||
|
||||
static getBoundary = function() { return boundary; }
|
||||
static getAccuLength = function() { return lengthAccs; }
|
||||
static getLength = function() { return lengthTotal; }
|
||||
static getSegmentCount = function() { return 1; }
|
||||
static getLineCount = function() { return 1; }
|
||||
static getBoundary = function() /*=>*/ {return boundary};
|
||||
static getAccuLength = function() /*=>*/ {return lengthAccs};
|
||||
static getLength = function() /*=>*/ {return lengthTotal};
|
||||
static getSegmentCount = 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; }
|
||||
|
||||
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);
|
||||
|
||||
return out;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static getPointRatio = function(_rat, _ind = 0, out = undefined) { #region
|
||||
var pix = frac(_rat) * lengthTotal;
|
||||
return getPointDistance(pix, _ind, out);
|
||||
} #endregion
|
||||
static getPointRatio = function(_rat, _ind = 0, out = undefined) {
|
||||
return getPointDistance(frac(_rat) * lengthTotal, _ind, out);
|
||||
}
|
||||
|
||||
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);
|
||||
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;
|
||||
oy = ny;
|
||||
}
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static update = function(frame = CURRENT_FRAME) { #region
|
||||
static update = function(frame = CURRENT_FRAME) {
|
||||
ds_map_clear(cached_pos);
|
||||
var _surf = getInputData(0);
|
||||
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($"Lengths : {lengths}");
|
||||
// print($"Len Accs : {lengthAccs}");
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static getGraphPreviewSurface = 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 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) {
|
||||
if(out == undefined) out = path_3d? new __vec3() : new __vec2P();
|
||||
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);
|
||||
}
|
||||
|
||||
static getLineCount = function() { return 1; }
|
||||
static getSegmentCount = function() { return 1; }
|
||||
|
||||
static getLength = function(ind = 0) { return length; }
|
||||
static getAccuLength = function(ind = 0) { return [ length ]; }
|
||||
static getLineCount = function() /*=>*/ {return 1};
|
||||
static getSegmentCount = function() /*=>*/ {return 1};
|
||||
static getLength = function() /*=>*/ {return length};
|
||||
static getAccuLength = function() /*=>*/ {return [ length ]};
|
||||
static getBoundary = function() /*=>*/ {return boundary};
|
||||
|
||||
static getPointRatio = function(_rat, ind = 0, out = undefined) {
|
||||
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 getBoundary = function() { return boundary; }
|
||||
|
||||
static step = function() {
|
||||
var _coor = getInputData(1);
|
||||
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 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 );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,48 +9,33 @@ function Node_Path_Reverse(_x, _y, _group = noone) : Node(_x, _y, _group) constr
|
|||
|
||||
cached_pos = ds_map_create();
|
||||
|
||||
curr_path = noone;
|
||||
is_path = false;
|
||||
|
||||
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
|
||||
var _path = getInputData(0);
|
||||
if(_path && struct_has(_path, "drawOverlay")) _path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
||||
if(curr_path && struct_has(curr_path, "drawOverlay"))
|
||||
curr_path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
||||
}
|
||||
|
||||
static getLineCount = function() {
|
||||
var _path = getInputData(0);
|
||||
return struct_has(_path, "getLineCount")? _path.getLineCount() : 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 getLineCount = function( ) /*=>*/ {return is_path? curr_path.getLineCount() : 1};
|
||||
static getSegmentCount = function(ind = 0) /*=>*/ {return is_path? curr_path.getSegmentCount(ind) : 0};
|
||||
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 getPointRatio = function(_rat, ind = 0, out = undefined) {
|
||||
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 out;
|
||||
return _path.getPointRatio(1 - _rat, ind, out);
|
||||
return curr_path.getPointRatio(1 - _rat, ind, out);
|
||||
}
|
||||
|
||||
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(), ind, out); }
|
||||
|
||||
static update = function() {
|
||||
curr_path = getInputData(0);
|
||||
is_path = curr_path != noone && struct_has(curr_path, "getPointRatio");
|
||||
|
||||
ds_map_clear(cached_pos);
|
||||
outputs[0].setValue(self);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
function Node_Path_Sample(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
||||
name = "Sample Path";
|
||||
batch_output = false;
|
||||
setDimension(96, 48);
|
||||
|
||||
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(2, nodeValue_Output("Weight", self, VALUE_TYPE.float, 0));
|
||||
|
||||
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
|
||||
var _path = getInputData(0);
|
||||
if(_path && struct_has(_path, "drawOverlay")) _path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
||||
|
@ -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) {
|
||||
var _path = _data[0];
|
||||
var _rat = _data[1];
|
||||
var _mod = _data[2];
|
||||
|
||||
if(_path == noone) return [ 0, 0 ];
|
||||
if(!struct_has(_path, "getPointRatio")) return [ 0, 0 ];
|
||||
if(!is_real(_rat)) return [ 0, 0 ];
|
||||
if(_path == noone) return _output;
|
||||
if(!struct_has(_path, "getPointRatio")) return _output;
|
||||
if(!is_real(_rat)) return _output;
|
||||
var inv = false;
|
||||
|
||||
switch(_mod) {
|
||||
|
@ -56,19 +61,27 @@ function Node_Path_Sample(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou
|
|||
_rat = fr;
|
||||
break;
|
||||
}
|
||||
|
||||
if(_output_index == 0)
|
||||
return _path.getPointRatio(_rat).toArray();
|
||||
else if(_output_index == 1) {
|
||||
var r0 = clamp(_rat - 0.0001, 0, 1);
|
||||
var r1 = clamp(_rat + 0.0001, 0, 1);
|
||||
|
||||
var p0 = _path.getPointRatio(r0);
|
||||
var p1 = _path.getPointRatio(r1);
|
||||
|
||||
var dir = inv? p1.directionTo(p0) : p0.directionTo(p1);
|
||||
return dir;
|
||||
}
|
||||
|
||||
_path.getPointRatio(_rat, 0, __temp_p);
|
||||
|
||||
var _px = __temp_p.x;
|
||||
var _py = __temp_p.y;
|
||||
var _pw = __temp_p.weight;
|
||||
|
||||
var r0 = clamp(_rat - 0.0001, 0, 1);
|
||||
var r1 = clamp(_rat + 0.0001, 0, 1);
|
||||
|
||||
_path.getPointRatio(r0, 0, __temp_p0);
|
||||
_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) {
|
||||
|
|
|
@ -102,9 +102,11 @@ function Node_Path_Scatter(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro
|
|||
|
||||
return out;
|
||||
}
|
||||
|
||||
static getPointDistance = function(_dist, ind = 0, out = undefined) { return getPointRatio(_dist / getLength(ind), ind, out); }
|
||||
|
||||
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 );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,18 +11,24 @@ function Node_Path_Shift(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
|||
|
||||
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) {
|
||||
var _path = getInputData(0);
|
||||
if(_path && struct_has(_path, "drawOverlay")) _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);
|
||||
|
||||
draw_set_color(COLORS._main_icon);
|
||||
|
||||
var _amo = getLineCount();
|
||||
var _p = new __vec2P();
|
||||
|
||||
for( var i = 0; i < _amo; i++ ) {
|
||||
var _len = getLength(_amo);
|
||||
var _stp = 1 / clamp(_len * _s, 1, 64);
|
||||
var ox, oy, nx, ny;
|
||||
var _p = new __vec2P();
|
||||
|
||||
for( var j = 0; j < 1; j += _stp ) {
|
||||
_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() {
|
||||
var _path = getInputData(0);
|
||||
return struct_has(_path, "getLineCount")? _path.getLineCount() : 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 getLineCount = function( ) /*=>*/ {return is_path? curr_path.getLineCount() : 1};
|
||||
static getSegmentCount = function(ind = 0) /*=>*/ {return is_path? curr_path.getSegmentCount(ind) : 0};
|
||||
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 getPointRatio = function(_rat, ind = 0, out = undefined) {
|
||||
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;
|
||||
}
|
||||
|
||||
var _path = getInputData(0);
|
||||
var _shf = getInputData(1);
|
||||
if(!is_path) return out;
|
||||
|
||||
if(is_array(_path)) {
|
||||
_path = array_safe_get_fast(_path, ind);
|
||||
ind = 0;
|
||||
}
|
||||
|
||||
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 _p0 = curr_path.getPointRatio(clamp(_rat - 0.001, 0, 0.999999), ind);
|
||||
var _p = curr_path.getPointRatio(_rat, ind);
|
||||
var _p1 = curr_path.getPointRatio(clamp(_rat + 0.001, 0, 0.999999), ind);
|
||||
|
||||
var dir = point_direction(_p0.x, _p0.y, _p1.x, _p1.y) + 90;
|
||||
|
||||
out.x += _p.x + lengthdir_x(_shf, dir);
|
||||
out.y += _p.y + lengthdir_y(_shf, dir);
|
||||
out.x += _p.x + lengthdir_x(curr_shift, dir);
|
||||
out.y += _p.y + lengthdir_y(curr_shift, dir);
|
||||
out.weight = _p.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 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() {
|
||||
curr_path = getInputData(0);
|
||||
is_path = curr_path != noone && struct_has(curr_path, "getPointRatio");
|
||||
|
||||
curr_shift = getInputData(1);
|
||||
|
||||
ds_map_clear(cached_pos);
|
||||
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 ]))
|
||||
.setUnitRef(function() /*=>*/ {return DEF_SURF}, VALUE_UNIT.reference);
|
||||
|
||||
|
||||
newOutput(0, nodeValue_Output("Path", self, VALUE_TYPE.pathnode, self));
|
||||
|
||||
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();
|
||||
|
||||
curr_path = noone;
|
||||
is_path = false;
|
||||
|
||||
curr_range = noone;
|
||||
|
||||
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
|
||||
var _path = getInputData(0);
|
||||
if(_path && struct_has(_path, "drawOverlay")) _path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
||||
if(curr_path && struct_has(curr_path, "drawOverlay"))
|
||||
curr_path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
||||
|
||||
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() {
|
||||
var _path = getInputData(0);
|
||||
return struct_has(_path, "getLineCount")? _path.getLineCount() : 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 getLineCount = function( ) /*=>*/ {return is_path? curr_path.getLineCount() : 1};
|
||||
static getSegmentCount = function(ind = 0) /*=>*/ {return is_path? curr_path.getSegmentCount(ind) : 0};
|
||||
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 getPointRatio = function(_rat, ind = 0, out = undefined) {
|
||||
if(out == undefined) out = new __vec2P(); else { out.x = 0; out.y = 0; }
|
||||
if(!is_path) return out;
|
||||
|
||||
var _path = getInputData(0);
|
||||
var _rng = getInputData(1);
|
||||
|
||||
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);
|
||||
_rat = lerp(curr_range[0], curr_range[1], _rat);
|
||||
return curr_path.getPointRatio(_rat, 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() {
|
||||
curr_path = getInputData(0);
|
||||
is_path = curr_path != noone && struct_has(curr_path, "getPointRatio");
|
||||
|
||||
curr_range = getInputData(1);
|
||||
|
||||
ds_map_clear(cached_pos);
|
||||
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,
|
||||
];
|
||||
|
||||
path = 0;
|
||||
fre = 0;
|
||||
amp = 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();
|
||||
|
||||
curr_path = noone;
|
||||
is_path = false;
|
||||
|
||||
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
|
||||
var _path = getInputData(0);
|
||||
if(_path && struct_has(_path, "drawOverlay")) _path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
||||
if(curr_path && struct_has(curr_path, "drawOverlay"))
|
||||
curr_path.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
||||
|
||||
draw_set_color(COLORS._main_icon);
|
||||
var _amo = getLineCount();
|
||||
|
@ -78,31 +80,29 @@ function Node_Path_Wave(_x, _y, _group = noone) : Node(_x, _y, _group) construct
|
|||
}
|
||||
}
|
||||
|
||||
static getLineCount = function() {
|
||||
return struct_has(path, "getLineCount")? path.getLineCount() : 1;
|
||||
}
|
||||
|
||||
static getSegmentCount = function(ind = 0) {
|
||||
return struct_has(path, "getSegmentCount")? path.getSegmentCount(ind) : 0;
|
||||
}
|
||||
static getLineCount = function( ) /*=>*/ {return is_path? curr_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 getLength = function(ind = 0) {
|
||||
var _fre = fre ; _fre = max(_fre[0], _fre[1]);
|
||||
var _amo = amp ; _amo = max(_amo[0], _amo[1]);
|
||||
if(!is_path) return 0;
|
||||
|
||||
var _fre = fre; _fre = max(_fre[0], _fre[1]);
|
||||
var _amo = amp; _amo = max(_amo[0], _amo[1]);
|
||||
|
||||
_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);
|
||||
|
||||
return _len;
|
||||
}
|
||||
|
||||
static getAccuLength = function(ind = 0) {
|
||||
var _fre = fre ; _fre = max(_fre[0], _fre[1]);
|
||||
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));
|
||||
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);
|
||||
|
||||
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) {
|
||||
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}";
|
||||
if(ds_map_exists(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;
|
||||
}
|
||||
|
||||
var _path = path;
|
||||
var _path = curr_path;
|
||||
var _fre = fre;
|
||||
var _amp = amp;
|
||||
var _shf = shf;
|
||||
|
@ -145,14 +146,6 @@ function Node_Path_Wave(_x, _y, _group = noone) : Node(_x, _y, _group) construct
|
|||
_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);
|
||||
p = _path.getPointRatio(_rat, ind, p);
|
||||
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 getBoundary = function(ind = 0) {
|
||||
return struct_has(path, "getBoundary")? path.getBoundary(ind) : new BoundingBox( 0, 0, 1, 1 );
|
||||
}
|
||||
|
||||
static update = function() {
|
||||
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);
|
||||
amp = getInputData(2);
|
||||
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(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));
|
||||
|
||||
input_display_list = [ 0,
|
||||
["Adjustment", false], 1, 2,
|
||||
["Adjustment", false], 1, 4, 2, 3, 5,
|
||||
];
|
||||
|
||||
curr_path = noone;
|
||||
is_path = false;
|
||||
curr_mode = 0;
|
||||
curr_type = 0;
|
||||
curr_value = 0;
|
||||
curr_curve = noone;
|
||||
curr_curve_range = [ 0, 1 ];
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
static getLineCount = function( ) /*=>*/ {return struct_has(curr_path, "getLineCount")? curr_path.getLineCount() : 1};
|
||||
static getSegmentCount = function(ind = 0) /*=>*/ {return struct_has(curr_path, "getSegmentCount")? curr_path.getSegmentCount(ind) : 0};
|
||||
static getLength = function(ind = 0) /*=>*/ {return struct_has(curr_path, "getLength")? curr_path.getLength(ind) : 0};
|
||||
static getAccuLength = function(ind = 0) /*=>*/ {return struct_has(curr_path, "getAccuLength")? 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 getLineCount = function( ) /*=>*/ {return is_path? curr_path.getLineCount() : 1};
|
||||
static getSegmentCount = function(ind = 0) /*=>*/ {return is_path? curr_path.getSegmentCount(ind) : 0};
|
||||
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 getPointRatio = function(_rat, ind = 0, out = undefined) {
|
||||
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);
|
||||
out.x = temp_p.x;
|
||||
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) {
|
||||
case 0 : out.weight = max(0, temp_p.weight + curr_value); break;
|
||||
case 1 : out.weight = temp_p.weight * curr_value; break;
|
||||
case 0 : out.weight = max(0, temp_p.weight + _v); break;
|
||||
case 1 : out.weight = temp_p.weight * _v; break;
|
||||
}
|
||||
|
||||
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 update = function() {
|
||||
curr_path = getInputData(0);
|
||||
curr_mode = getInputData(1);
|
||||
curr_value = getInputData(2);
|
||||
var _path = getInputData(0);
|
||||
var _mode = getInputData(1);
|
||||
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);
|
||||
}
|
||||
|
|
|
@ -318,16 +318,18 @@ function NodeObject(_name, _node, _tooltip = "") constructor {
|
|||
var _ispr = _data[$ "spr"];
|
||||
_spr = asset_get_index(_ispr);
|
||||
|
||||
if(sprite_exists(_spr))
|
||||
spr = _spr;
|
||||
else
|
||||
print($"Node icon not found {_ispr}");
|
||||
if(sprite_exists(_spr)) spr = _spr;
|
||||
else print($"Node icon not found {_ispr}");
|
||||
|
||||
} else {
|
||||
var pth = $"{sourceDir}/icon.png";
|
||||
|
||||
if(file_exists_empty(pth)) {
|
||||
spr = sprite_add(pth, 0, false, false, 0, 0);
|
||||
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,
|
||||
"name":"panel_console",
|
||||
"parent":{
|
||||
"name":"_others",
|
||||
"path":"folders/panels/_others.yy",
|
||||
"name":"debug",
|
||||
"path":"folders/panels/_others/debug.yy",
|
||||
},
|
||||
"resourceType":"GMScript",
|
||||
"resourceVersion":"2.0",
|
||||
|
|
|
@ -254,21 +254,17 @@ function Panel_Menu() : PanelContent() constructor {
|
|||
MENU_ITEMS.console_panel,
|
||||
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_resource_monitor", "Resource Monitor"), function() /*=>*/ { dialogPanelCall(new Panel_Resource_Monitor()); }),
|
||||
// menuItem(__txtx("panel_menu_resource_monitor", "Resource Monitor"), () => { dialogPanelCall(new Panel_Resource_Monitor()); }),
|
||||
-1,
|
||||
|
||||
menuItem(__txtx("panel_menu_tester", "Save frozen"), function() /*=>*/ { PROJECT.freeze = true; SAVE(); }),
|
||||
menuItem(__txtx("panel_menu_tester", "Tester"), function() /*=>*/ { dialogPanelCall(new Panel_Test()); }),
|
||||
-1,
|
||||
|
||||
menuItem(__txtx("panel_menu_test_load_all", "Load all current collections"), function() /*=>*/ { __test_load_current_collections(); }),
|
||||
menuItem(__txtx("panel_menu_test_update_all", "Update all current collections"), function() /*=>*/ { __test_update_current_collections(); }),
|
||||
menuItem(__txtx("panel_menu_test_add_meta", "Add metadata to current collections"), function() /*=>*/ { __test_metadata_current_collections(); }),
|
||||
menuItem(__txtx("panel_menu_test_update_sam", "Update sample projects"), function() /*=>*/ { __test_update_sample_projects(); }),
|
||||
-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(); }),
|
||||
menuItem(__txt("Collection Manager"), function() /*=>*/ { dialogPanelCall(new Panel_Collection_Manager());}),
|
||||
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"), () => { dialogPanelCall(new Panel_Node_Data_Gen()); }),
|
||||
// menuItem(__txtx("panel_menu_test_gen_theme", "Generate theme object"), () => { __test_generate_theme(); }),
|
||||
-1,
|
||||
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") }),
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"isDnD":false,
|
||||
"name":"panel_node_data_gen",
|
||||
"parent":{
|
||||
"name":"_others",
|
||||
"path":"folders/panels/_others.yy",
|
||||
"name":"debug",
|
||||
"path":"folders/panels/_others/debug.yy",
|
||||
},
|
||||
"resourceType":"GMScript",
|
||||
"resourceVersion":"2.0",
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"isDnD":false,
|
||||
"name":"panel_profile_render",
|
||||
"parent":{
|
||||
"name":"_others",
|
||||
"path":"folders/panels/_others.yy",
|
||||
"name":"debug",
|
||||
"path":"folders/panels/_others/debug.yy",
|
||||
},
|
||||
"resourceType":"GMScript",
|
||||
"resourceVersion":"2.0",
|
||||
|
|
|
@ -5,10 +5,9 @@
|
|||
"isDnD":false,
|
||||
"name":"panel_resource_monitor",
|
||||
"parent":{
|
||||
"name":"_others",
|
||||
"path":"folders/panels/_others.yy",
|
||||
"name":"debug",
|
||||
"path":"folders/panels/_others/debug.yy",
|
||||
},
|
||||
"resourceType":"GMScript",
|
||||
"resourceVersion":"2.0",
|
||||
"tags":[],
|
||||
}
|
|
@ -5,8 +5,8 @@
|
|||
"isDnD":false,
|
||||
"name":"panel_test",
|
||||
"parent":{
|
||||
"name":"_others",
|
||||
"path":"folders/panels/_others.yy",
|
||||
"name":"debug",
|
||||
"path":"folders/panels/_others/debug.yy",
|
||||
},
|
||||
"resourceType":"GMScript",
|
||||
"resourceVersion":"2.0",
|
||||
|
|
|
@ -33,7 +33,7 @@ function LOAD_FOLDER(list, folder) {
|
|||
|
||||
function LOAD_SAMPLE() {
|
||||
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";
|
||||
|
||||
directory_verify(targ);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
function __test_update_current_collections() {
|
||||
function __test_update_current_collections(dir = COLLECTIONS) {
|
||||
var st = ds_stack_create();
|
||||
ds_stack_push(st, PANEL_COLLECTION.context);
|
||||
ds_stack_push(st, dir);
|
||||
|
||||
print("---------- COLLECTION UPDATING STARTED ----------");
|
||||
|
||||
|
@ -50,9 +50,9 @@ function __test_update_sample_projects() {
|
|||
print("---------- PROJECT UPDATING ENDED ----------");
|
||||
}
|
||||
|
||||
function __test_load_current_collections() {
|
||||
function __test_load_current_collections(dir = COLLECTIONS) {
|
||||
var st = ds_stack_create();
|
||||
ds_stack_push(st, PANEL_COLLECTION.context);
|
||||
ds_stack_push(st, dir);
|
||||
|
||||
var xx = 0;
|
||||
var yy = 0;
|
||||
|
@ -162,9 +162,9 @@ function __test_load_all_nodes() {
|
|||
LOADING = false;
|
||||
}
|
||||
|
||||
function __test_metadata_current_collections() {
|
||||
function __test_metadata_current_collections(dir = COLLECTIONS) {
|
||||
var st = ds_stack_create();
|
||||
ds_stack_push(st, PANEL_COLLECTION.context);
|
||||
ds_stack_push(st, dir);
|
||||
|
||||
print("---------- COLLECTION UPDATING STARTED ----------");
|
||||
|
||||
|
|