From b9bcf3360f455fa47876d82d328f2e1c5bb27cfb Mon Sep 17 00:00:00 2001 From: Tanasart Date: Thu, 16 Jan 2025 10:39:54 +0700 Subject: [PATCH] weight in other path nodes --- PixelComposer.resource_order | 33 ++--- PixelComposer.yyp | 65 +--------- datafiles/data/Nodes/Internal.zip | Bin 9092560 -> 9092560 bytes .../Getting started/0 Introduction.png | Bin .../Getting started/0 Introduction.pxc | 0 .../Getting started/1 Image import.png | Bin .../Getting started/1 Image import.pxc | 0 .../Getting started/10 Audio.png | Bin .../Getting started/11 Optimization.png | Bin .../Getting started/2 Animation.png | Bin .../Getting started/2 Animation.pxc | 0 .../Welcome files/Getting started/3 Group.png | Bin .../Welcome files/Getting started/3 Group.pxc | 0 .../Welcome files/Getting started/4 Loop.png | Bin .../Welcome files/Getting started/4 Loop.pxc | 0 .../Getting started/5 Particles.png | Bin .../Getting started/5 Particles.pxc | 0 .../Getting started/6 Organization.png | Bin .../Getting started/6 Organization.pxc | 0 .../Getting started/7 Composing.png | Bin .../Getting started/7 Composing.pxc | 0 .../Welcome files/Getting started/8 Path.png | Bin .../Welcome files/Getting started/8 Path.pxc | 0 .../Getting started/9 Expression.png | Bin .../Getting started/9 Expression.pxc | 0 .../Getting started/arrowRight.png | Bin .../Getting started/card_back.png | Bin .../Getting started/card_clubs_02.png | Bin .../Getting started/card_clubs_03.png | Bin .../Getting started/card_clubs_04.png | Bin .../Getting started/card_clubs_05.png | Bin .../Welcome files/Getting started/dice_1.png | Bin .../Welcome files/Getting started/dice_2.png | Bin .../Welcome files/Getting started/dice_3.png | Bin .../Welcome files/Getting started/dice_4.png | Bin .../Welcome files/Getting started/dice_5.png | Bin .../Welcome files/Getting started/dice_6.png | Bin .../Getting started/driver_dialog.png | Bin .../Getting started/multi file dialog.png | Bin .../Getting started/node_clutter.png | Bin .../Getting started/tile_0044.png | Bin .../Getting started/tile_0067.png | Bin .../Getting started/tile_0126.png | Bin .../Sample Projects/Broken heart.png | Bin .../Sample Projects/Broken heart.pxc | 0 .../Welcome files/Sample Projects/Dice.png | Bin .../Welcome files/Sample Projects/Dice.pxc | 0 .../Sample Projects/Shiny gem.png | Bin .../Sample Projects/Shiny gem.pxc | 0 .../Sample Projects/Space cloud.png | Bin .../Sample Projects/Space cloud.pxc | 0 .../Sample Projects/Tree sway.png | Bin .../Sample Projects/Tree sway.pxc | 0 .../Welcome files/Sample Projects/dice_1.png | Bin .../Welcome files/Sample Projects/dice_2.png | Bin .../Welcome files/Sample Projects/dice_3.png | Bin .../Welcome files/Sample Projects/dice_4.png | Bin .../Welcome files/Sample Projects/dice_5.png | Bin .../Welcome files/Sample Projects/dice_6.png | Bin .../Welcome files/Sample Projects/spark.png | Bin .../Sample Projects/tile_0044.png | Bin .../Sample Projects/tile_0067.png | Bin .../Sample Projects/tile_0126.png | Bin .../Welcome files/Templates/Canvas.png | Bin .../Welcome files/Templates/Canvas.pxc | 0 .../Welcome files/Welcome files.zip | Bin scripts/node_line/node_line.gml | 2 +- scripts/node_path_array/node_path_array.gml | 67 +++++----- scripts/node_path_blend/node_path_blend.gml | 116 +++++++----------- scripts/node_path_bridge/node_path_bridge.gml | 69 ++++++----- .../node_path_from_mask.gml | 29 +++-- .../node_path_l_system/node_path_l_system.gml | 14 --- scripts/node_path_plot/node_path_plot.gml | 12 +- scripts/node_path_repeat/node_path_repeat.gml | 3 +- .../node_path_reverse/node_path_reverse.gml | 45 +++---- scripts/node_path_sample/node_path_sample.gml | 47 ++++--- .../node_path_scatter/node_path_scatter.gml | 4 +- scripts/node_path_shift/node_path_shift.gml | 67 ++++------ .../node_path_transform.gml | 2 +- scripts/node_path_trim/node_path_trim.gml | 62 ++++------ scripts/node_path_wave/node_path_wave.gml | 51 ++++---- .../node_path_weight_adjust.gml | 53 ++++++-- scripts/node_registry/node_registry.gml | 10 +- .../panel_collection_manager.gml | 99 +++++++++++++++ .../panel_collection_manager.yy | 14 +++ scripts/panel_console/panel_console.yy | 4 +- scripts/panel_menu/panel_menu.gml | 14 +-- .../panel_node_data_gen.yy | 4 +- .../panel_profile_render.yy | 4 +- .../panel_resource_monitor.yy | 5 +- scripts/panel_test/panel_test.yy | 4 +- scripts/sample_projects/sample_projects.gml | 2 +- scripts/testing_script/testing_script.gml | 12 +- 93 files changed, 459 insertions(+), 454 deletions(-) rename datafiles/{ => data}/Welcome files/Getting started/0 Introduction.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/0 Introduction.pxc (100%) rename datafiles/{ => data}/Welcome files/Getting started/1 Image import.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/1 Image import.pxc (100%) rename datafiles/{ => data}/Welcome files/Getting started/10 Audio.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/11 Optimization.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/2 Animation.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/2 Animation.pxc (100%) rename datafiles/{ => data}/Welcome files/Getting started/3 Group.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/3 Group.pxc (100%) rename datafiles/{ => data}/Welcome files/Getting started/4 Loop.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/4 Loop.pxc (100%) rename datafiles/{ => data}/Welcome files/Getting started/5 Particles.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/5 Particles.pxc (100%) rename datafiles/{ => data}/Welcome files/Getting started/6 Organization.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/6 Organization.pxc (100%) rename datafiles/{ => data}/Welcome files/Getting started/7 Composing.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/7 Composing.pxc (100%) rename datafiles/{ => data}/Welcome files/Getting started/8 Path.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/8 Path.pxc (100%) rename datafiles/{ => data}/Welcome files/Getting started/9 Expression.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/9 Expression.pxc (100%) rename datafiles/{ => data}/Welcome files/Getting started/arrowRight.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/card_back.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/card_clubs_02.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/card_clubs_03.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/card_clubs_04.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/card_clubs_05.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/dice_1.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/dice_2.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/dice_3.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/dice_4.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/dice_5.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/dice_6.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/driver_dialog.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/multi file dialog.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/node_clutter.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/tile_0044.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/tile_0067.png (100%) rename datafiles/{ => data}/Welcome files/Getting started/tile_0126.png (100%) rename datafiles/{ => data}/Welcome files/Sample Projects/Broken heart.png (100%) rename datafiles/{ => data}/Welcome files/Sample Projects/Broken heart.pxc (100%) rename datafiles/{ => data}/Welcome files/Sample Projects/Dice.png (100%) rename datafiles/{ => data}/Welcome files/Sample Projects/Dice.pxc (100%) rename datafiles/{ => data}/Welcome files/Sample Projects/Shiny gem.png (100%) rename datafiles/{ => data}/Welcome files/Sample Projects/Shiny gem.pxc (100%) rename datafiles/{ => data}/Welcome files/Sample Projects/Space cloud.png (100%) rename datafiles/{ => data}/Welcome files/Sample Projects/Space cloud.pxc (100%) rename datafiles/{ => data}/Welcome files/Sample Projects/Tree sway.png (100%) rename datafiles/{ => data}/Welcome files/Sample Projects/Tree sway.pxc (100%) rename datafiles/{ => data}/Welcome files/Sample Projects/dice_1.png (100%) rename datafiles/{ => data}/Welcome files/Sample Projects/dice_2.png (100%) rename datafiles/{ => data}/Welcome files/Sample Projects/dice_3.png (100%) rename datafiles/{ => data}/Welcome files/Sample Projects/dice_4.png (100%) rename datafiles/{ => data}/Welcome files/Sample Projects/dice_5.png (100%) rename datafiles/{ => data}/Welcome files/Sample Projects/dice_6.png (100%) rename datafiles/{ => data}/Welcome files/Sample Projects/spark.png (100%) rename datafiles/{ => data}/Welcome files/Sample Projects/tile_0044.png (100%) rename datafiles/{ => data}/Welcome files/Sample Projects/tile_0067.png (100%) rename datafiles/{ => data}/Welcome files/Sample Projects/tile_0126.png (100%) rename datafiles/{ => data}/Welcome files/Templates/Canvas.png (100%) rename datafiles/{ => data}/Welcome files/Templates/Canvas.pxc (100%) rename datafiles/{ => data}/Welcome files/Welcome files.zip (100%) create mode 100644 scripts/panel_collection_manager/panel_collection_manager.gml create mode 100644 scripts/panel_collection_manager/panel_collection_manager.yy diff --git a/PixelComposer.resource_order b/PixelComposer.resource_order index 8e1fd4c31..b251f7020 100644 --- a/PixelComposer.resource_order +++ b/PixelComposer.resource_order @@ -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",}, diff --git a/PixelComposer.yyp b/PixelComposer.yyp index 73e5d2963..b660bbd14 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -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",},}, diff --git a/datafiles/data/Nodes/Internal.zip b/datafiles/data/Nodes/Internal.zip index c79aa4c2faf8d7983aa0fcf52e8830de7d878c69..dd56c1612776bf9849efa2c66c6ddecd086d35a5 100644 GIT binary patch delta 1357 zcmZA0U2Icj7zc2q8y%B<$cD&{Z0p9@_bB6IY@@KTW7l?0*&K7O8=@jAC?W_VNIT`v zDesB*Z$cnwT=!w%21$x?x6PPQG`sM^=*5gN#*lcSi5EsM`1jd4Vr=qD{?GG%p3`>W z?@zN9XbcZwIXuWhHderk9IQkx9>yxrQbhIJ@`fyc2Pr6@x= ze5gPrHlPX{QH>hZq7LDZ;vOdcv1wBDQ>ZTBdDMCH;B=yo$^fc|IKI*4uXn^+7AU#V% z^c)RSltyTj_S5rpfL@>%=_NWyFVi71dnTkhZ{wC%TK~+T-JN9U zZ@xtFf4+vy;#0F|lL?>ABH%8mPn6DqE~HB5tgo`A{p-B7SpvUMpI-RM^8Rn9zB`ux z!36*BmRDc9W93SVV?JHJGLfwp-4?gmpbOJhzPqMb!iSmN_g5rxbUf`WW^0Q($)~T@ zC%lP!X^Rr6d+Cd}zLTF>a$L1YSR7ZoB$Ovrn}pG%+9~03QngF?KB)q3$I#m*RJl|` z6Kc1FOB2pG_b~LI6RJ$wYbTvE`X*JYbQlahHK|Ianx9lVBm`o%q06S!(m#Z!8T#Oq zs*o|M#@&jyHT2I@s#3V=Y3NCbgD+}QE^iD%M%C=W2cr)ogb+jGgC;&0eBj$3=LoUMC;9$<|Lf^#C!cVX$qXCUrie*@i6$-k@3Sh9dn%(9DEY-5#<_ytpa8W~kU|uu4tkS1=`Gqso2iSsX$x(ox2cETp>6ao z^-_fTsGqjed$fag(k^t1R7dmAkhILXjI z-9_O`uOYqW^f;Pj!gu5FyGv@~#dkoTB#ZA@_cEpZ`-HVr0$-?4Pd>D~|J$kSzSa0* zLgSy7S6{ntl%8`m~%Nb=4_tcAUQRr7GIOMUmf9D_9psulCq28PfW#*Y1$OnIQ?MB6e89?TFp!&M}g8efES;%6~4{trGYkZ4z=~JmqTC uu5jCieh{@Q-LVZ4I%CdkdH!!=&iKMXuKg=!SIHz+8~@uR86C8{{m%ebXVbX= diff --git a/datafiles/Welcome files/Getting started/0 Introduction.png b/datafiles/data/Welcome files/Getting started/0 Introduction.png similarity index 100% rename from datafiles/Welcome files/Getting started/0 Introduction.png rename to datafiles/data/Welcome files/Getting started/0 Introduction.png diff --git a/datafiles/Welcome files/Getting started/0 Introduction.pxc b/datafiles/data/Welcome files/Getting started/0 Introduction.pxc similarity index 100% rename from datafiles/Welcome files/Getting started/0 Introduction.pxc rename to datafiles/data/Welcome files/Getting started/0 Introduction.pxc diff --git a/datafiles/Welcome files/Getting started/1 Image import.png b/datafiles/data/Welcome files/Getting started/1 Image import.png similarity index 100% rename from datafiles/Welcome files/Getting started/1 Image import.png rename to datafiles/data/Welcome files/Getting started/1 Image import.png diff --git a/datafiles/Welcome files/Getting started/1 Image import.pxc b/datafiles/data/Welcome files/Getting started/1 Image import.pxc similarity index 100% rename from datafiles/Welcome files/Getting started/1 Image import.pxc rename to datafiles/data/Welcome files/Getting started/1 Image import.pxc diff --git a/datafiles/Welcome files/Getting started/10 Audio.png b/datafiles/data/Welcome files/Getting started/10 Audio.png similarity index 100% rename from datafiles/Welcome files/Getting started/10 Audio.png rename to datafiles/data/Welcome files/Getting started/10 Audio.png diff --git a/datafiles/Welcome files/Getting started/11 Optimization.png b/datafiles/data/Welcome files/Getting started/11 Optimization.png similarity index 100% rename from datafiles/Welcome files/Getting started/11 Optimization.png rename to datafiles/data/Welcome files/Getting started/11 Optimization.png diff --git a/datafiles/Welcome files/Getting started/2 Animation.png b/datafiles/data/Welcome files/Getting started/2 Animation.png similarity index 100% rename from datafiles/Welcome files/Getting started/2 Animation.png rename to datafiles/data/Welcome files/Getting started/2 Animation.png diff --git a/datafiles/Welcome files/Getting started/2 Animation.pxc b/datafiles/data/Welcome files/Getting started/2 Animation.pxc similarity index 100% rename from datafiles/Welcome files/Getting started/2 Animation.pxc rename to datafiles/data/Welcome files/Getting started/2 Animation.pxc diff --git a/datafiles/Welcome files/Getting started/3 Group.png b/datafiles/data/Welcome files/Getting started/3 Group.png similarity index 100% rename from datafiles/Welcome files/Getting started/3 Group.png rename to datafiles/data/Welcome files/Getting started/3 Group.png diff --git a/datafiles/Welcome files/Getting started/3 Group.pxc b/datafiles/data/Welcome files/Getting started/3 Group.pxc similarity index 100% rename from datafiles/Welcome files/Getting started/3 Group.pxc rename to datafiles/data/Welcome files/Getting started/3 Group.pxc diff --git a/datafiles/Welcome files/Getting started/4 Loop.png b/datafiles/data/Welcome files/Getting started/4 Loop.png similarity index 100% rename from datafiles/Welcome files/Getting started/4 Loop.png rename to datafiles/data/Welcome files/Getting started/4 Loop.png diff --git a/datafiles/Welcome files/Getting started/4 Loop.pxc b/datafiles/data/Welcome files/Getting started/4 Loop.pxc similarity index 100% rename from datafiles/Welcome files/Getting started/4 Loop.pxc rename to datafiles/data/Welcome files/Getting started/4 Loop.pxc diff --git a/datafiles/Welcome files/Getting started/5 Particles.png b/datafiles/data/Welcome files/Getting started/5 Particles.png similarity index 100% rename from datafiles/Welcome files/Getting started/5 Particles.png rename to datafiles/data/Welcome files/Getting started/5 Particles.png diff --git a/datafiles/Welcome files/Getting started/5 Particles.pxc b/datafiles/data/Welcome files/Getting started/5 Particles.pxc similarity index 100% rename from datafiles/Welcome files/Getting started/5 Particles.pxc rename to datafiles/data/Welcome files/Getting started/5 Particles.pxc diff --git a/datafiles/Welcome files/Getting started/6 Organization.png b/datafiles/data/Welcome files/Getting started/6 Organization.png similarity index 100% rename from datafiles/Welcome files/Getting started/6 Organization.png rename to datafiles/data/Welcome files/Getting started/6 Organization.png diff --git a/datafiles/Welcome files/Getting started/6 Organization.pxc b/datafiles/data/Welcome files/Getting started/6 Organization.pxc similarity index 100% rename from datafiles/Welcome files/Getting started/6 Organization.pxc rename to datafiles/data/Welcome files/Getting started/6 Organization.pxc diff --git a/datafiles/Welcome files/Getting started/7 Composing.png b/datafiles/data/Welcome files/Getting started/7 Composing.png similarity index 100% rename from datafiles/Welcome files/Getting started/7 Composing.png rename to datafiles/data/Welcome files/Getting started/7 Composing.png diff --git a/datafiles/Welcome files/Getting started/7 Composing.pxc b/datafiles/data/Welcome files/Getting started/7 Composing.pxc similarity index 100% rename from datafiles/Welcome files/Getting started/7 Composing.pxc rename to datafiles/data/Welcome files/Getting started/7 Composing.pxc diff --git a/datafiles/Welcome files/Getting started/8 Path.png b/datafiles/data/Welcome files/Getting started/8 Path.png similarity index 100% rename from datafiles/Welcome files/Getting started/8 Path.png rename to datafiles/data/Welcome files/Getting started/8 Path.png diff --git a/datafiles/Welcome files/Getting started/8 Path.pxc b/datafiles/data/Welcome files/Getting started/8 Path.pxc similarity index 100% rename from datafiles/Welcome files/Getting started/8 Path.pxc rename to datafiles/data/Welcome files/Getting started/8 Path.pxc diff --git a/datafiles/Welcome files/Getting started/9 Expression.png b/datafiles/data/Welcome files/Getting started/9 Expression.png similarity index 100% rename from datafiles/Welcome files/Getting started/9 Expression.png rename to datafiles/data/Welcome files/Getting started/9 Expression.png diff --git a/datafiles/Welcome files/Getting started/9 Expression.pxc b/datafiles/data/Welcome files/Getting started/9 Expression.pxc similarity index 100% rename from datafiles/Welcome files/Getting started/9 Expression.pxc rename to datafiles/data/Welcome files/Getting started/9 Expression.pxc diff --git a/datafiles/Welcome files/Getting started/arrowRight.png b/datafiles/data/Welcome files/Getting started/arrowRight.png similarity index 100% rename from datafiles/Welcome files/Getting started/arrowRight.png rename to datafiles/data/Welcome files/Getting started/arrowRight.png diff --git a/datafiles/Welcome files/Getting started/card_back.png b/datafiles/data/Welcome files/Getting started/card_back.png similarity index 100% rename from datafiles/Welcome files/Getting started/card_back.png rename to datafiles/data/Welcome files/Getting started/card_back.png diff --git a/datafiles/Welcome files/Getting started/card_clubs_02.png b/datafiles/data/Welcome files/Getting started/card_clubs_02.png similarity index 100% rename from datafiles/Welcome files/Getting started/card_clubs_02.png rename to datafiles/data/Welcome files/Getting started/card_clubs_02.png diff --git a/datafiles/Welcome files/Getting started/card_clubs_03.png b/datafiles/data/Welcome files/Getting started/card_clubs_03.png similarity index 100% rename from datafiles/Welcome files/Getting started/card_clubs_03.png rename to datafiles/data/Welcome files/Getting started/card_clubs_03.png diff --git a/datafiles/Welcome files/Getting started/card_clubs_04.png b/datafiles/data/Welcome files/Getting started/card_clubs_04.png similarity index 100% rename from datafiles/Welcome files/Getting started/card_clubs_04.png rename to datafiles/data/Welcome files/Getting started/card_clubs_04.png diff --git a/datafiles/Welcome files/Getting started/card_clubs_05.png b/datafiles/data/Welcome files/Getting started/card_clubs_05.png similarity index 100% rename from datafiles/Welcome files/Getting started/card_clubs_05.png rename to datafiles/data/Welcome files/Getting started/card_clubs_05.png diff --git a/datafiles/Welcome files/Getting started/dice_1.png b/datafiles/data/Welcome files/Getting started/dice_1.png similarity index 100% rename from datafiles/Welcome files/Getting started/dice_1.png rename to datafiles/data/Welcome files/Getting started/dice_1.png diff --git a/datafiles/Welcome files/Getting started/dice_2.png b/datafiles/data/Welcome files/Getting started/dice_2.png similarity index 100% rename from datafiles/Welcome files/Getting started/dice_2.png rename to datafiles/data/Welcome files/Getting started/dice_2.png diff --git a/datafiles/Welcome files/Getting started/dice_3.png b/datafiles/data/Welcome files/Getting started/dice_3.png similarity index 100% rename from datafiles/Welcome files/Getting started/dice_3.png rename to datafiles/data/Welcome files/Getting started/dice_3.png diff --git a/datafiles/Welcome files/Getting started/dice_4.png b/datafiles/data/Welcome files/Getting started/dice_4.png similarity index 100% rename from datafiles/Welcome files/Getting started/dice_4.png rename to datafiles/data/Welcome files/Getting started/dice_4.png diff --git a/datafiles/Welcome files/Getting started/dice_5.png b/datafiles/data/Welcome files/Getting started/dice_5.png similarity index 100% rename from datafiles/Welcome files/Getting started/dice_5.png rename to datafiles/data/Welcome files/Getting started/dice_5.png diff --git a/datafiles/Welcome files/Getting started/dice_6.png b/datafiles/data/Welcome files/Getting started/dice_6.png similarity index 100% rename from datafiles/Welcome files/Getting started/dice_6.png rename to datafiles/data/Welcome files/Getting started/dice_6.png diff --git a/datafiles/Welcome files/Getting started/driver_dialog.png b/datafiles/data/Welcome files/Getting started/driver_dialog.png similarity index 100% rename from datafiles/Welcome files/Getting started/driver_dialog.png rename to datafiles/data/Welcome files/Getting started/driver_dialog.png diff --git a/datafiles/Welcome files/Getting started/multi file dialog.png b/datafiles/data/Welcome files/Getting started/multi file dialog.png similarity index 100% rename from datafiles/Welcome files/Getting started/multi file dialog.png rename to datafiles/data/Welcome files/Getting started/multi file dialog.png diff --git a/datafiles/Welcome files/Getting started/node_clutter.png b/datafiles/data/Welcome files/Getting started/node_clutter.png similarity index 100% rename from datafiles/Welcome files/Getting started/node_clutter.png rename to datafiles/data/Welcome files/Getting started/node_clutter.png diff --git a/datafiles/Welcome files/Getting started/tile_0044.png b/datafiles/data/Welcome files/Getting started/tile_0044.png similarity index 100% rename from datafiles/Welcome files/Getting started/tile_0044.png rename to datafiles/data/Welcome files/Getting started/tile_0044.png diff --git a/datafiles/Welcome files/Getting started/tile_0067.png b/datafiles/data/Welcome files/Getting started/tile_0067.png similarity index 100% rename from datafiles/Welcome files/Getting started/tile_0067.png rename to datafiles/data/Welcome files/Getting started/tile_0067.png diff --git a/datafiles/Welcome files/Getting started/tile_0126.png b/datafiles/data/Welcome files/Getting started/tile_0126.png similarity index 100% rename from datafiles/Welcome files/Getting started/tile_0126.png rename to datafiles/data/Welcome files/Getting started/tile_0126.png diff --git a/datafiles/Welcome files/Sample Projects/Broken heart.png b/datafiles/data/Welcome files/Sample Projects/Broken heart.png similarity index 100% rename from datafiles/Welcome files/Sample Projects/Broken heart.png rename to datafiles/data/Welcome files/Sample Projects/Broken heart.png diff --git a/datafiles/Welcome files/Sample Projects/Broken heart.pxc b/datafiles/data/Welcome files/Sample Projects/Broken heart.pxc similarity index 100% rename from datafiles/Welcome files/Sample Projects/Broken heart.pxc rename to datafiles/data/Welcome files/Sample Projects/Broken heart.pxc diff --git a/datafiles/Welcome files/Sample Projects/Dice.png b/datafiles/data/Welcome files/Sample Projects/Dice.png similarity index 100% rename from datafiles/Welcome files/Sample Projects/Dice.png rename to datafiles/data/Welcome files/Sample Projects/Dice.png diff --git a/datafiles/Welcome files/Sample Projects/Dice.pxc b/datafiles/data/Welcome files/Sample Projects/Dice.pxc similarity index 100% rename from datafiles/Welcome files/Sample Projects/Dice.pxc rename to datafiles/data/Welcome files/Sample Projects/Dice.pxc diff --git a/datafiles/Welcome files/Sample Projects/Shiny gem.png b/datafiles/data/Welcome files/Sample Projects/Shiny gem.png similarity index 100% rename from datafiles/Welcome files/Sample Projects/Shiny gem.png rename to datafiles/data/Welcome files/Sample Projects/Shiny gem.png diff --git a/datafiles/Welcome files/Sample Projects/Shiny gem.pxc b/datafiles/data/Welcome files/Sample Projects/Shiny gem.pxc similarity index 100% rename from datafiles/Welcome files/Sample Projects/Shiny gem.pxc rename to datafiles/data/Welcome files/Sample Projects/Shiny gem.pxc diff --git a/datafiles/Welcome files/Sample Projects/Space cloud.png b/datafiles/data/Welcome files/Sample Projects/Space cloud.png similarity index 100% rename from datafiles/Welcome files/Sample Projects/Space cloud.png rename to datafiles/data/Welcome files/Sample Projects/Space cloud.png diff --git a/datafiles/Welcome files/Sample Projects/Space cloud.pxc b/datafiles/data/Welcome files/Sample Projects/Space cloud.pxc similarity index 100% rename from datafiles/Welcome files/Sample Projects/Space cloud.pxc rename to datafiles/data/Welcome files/Sample Projects/Space cloud.pxc diff --git a/datafiles/Welcome files/Sample Projects/Tree sway.png b/datafiles/data/Welcome files/Sample Projects/Tree sway.png similarity index 100% rename from datafiles/Welcome files/Sample Projects/Tree sway.png rename to datafiles/data/Welcome files/Sample Projects/Tree sway.png diff --git a/datafiles/Welcome files/Sample Projects/Tree sway.pxc b/datafiles/data/Welcome files/Sample Projects/Tree sway.pxc similarity index 100% rename from datafiles/Welcome files/Sample Projects/Tree sway.pxc rename to datafiles/data/Welcome files/Sample Projects/Tree sway.pxc diff --git a/datafiles/Welcome files/Sample Projects/dice_1.png b/datafiles/data/Welcome files/Sample Projects/dice_1.png similarity index 100% rename from datafiles/Welcome files/Sample Projects/dice_1.png rename to datafiles/data/Welcome files/Sample Projects/dice_1.png diff --git a/datafiles/Welcome files/Sample Projects/dice_2.png b/datafiles/data/Welcome files/Sample Projects/dice_2.png similarity index 100% rename from datafiles/Welcome files/Sample Projects/dice_2.png rename to datafiles/data/Welcome files/Sample Projects/dice_2.png diff --git a/datafiles/Welcome files/Sample Projects/dice_3.png b/datafiles/data/Welcome files/Sample Projects/dice_3.png similarity index 100% rename from datafiles/Welcome files/Sample Projects/dice_3.png rename to datafiles/data/Welcome files/Sample Projects/dice_3.png diff --git a/datafiles/Welcome files/Sample Projects/dice_4.png b/datafiles/data/Welcome files/Sample Projects/dice_4.png similarity index 100% rename from datafiles/Welcome files/Sample Projects/dice_4.png rename to datafiles/data/Welcome files/Sample Projects/dice_4.png diff --git a/datafiles/Welcome files/Sample Projects/dice_5.png b/datafiles/data/Welcome files/Sample Projects/dice_5.png similarity index 100% rename from datafiles/Welcome files/Sample Projects/dice_5.png rename to datafiles/data/Welcome files/Sample Projects/dice_5.png diff --git a/datafiles/Welcome files/Sample Projects/dice_6.png b/datafiles/data/Welcome files/Sample Projects/dice_6.png similarity index 100% rename from datafiles/Welcome files/Sample Projects/dice_6.png rename to datafiles/data/Welcome files/Sample Projects/dice_6.png diff --git a/datafiles/Welcome files/Sample Projects/spark.png b/datafiles/data/Welcome files/Sample Projects/spark.png similarity index 100% rename from datafiles/Welcome files/Sample Projects/spark.png rename to datafiles/data/Welcome files/Sample Projects/spark.png diff --git a/datafiles/Welcome files/Sample Projects/tile_0044.png b/datafiles/data/Welcome files/Sample Projects/tile_0044.png similarity index 100% rename from datafiles/Welcome files/Sample Projects/tile_0044.png rename to datafiles/data/Welcome files/Sample Projects/tile_0044.png diff --git a/datafiles/Welcome files/Sample Projects/tile_0067.png b/datafiles/data/Welcome files/Sample Projects/tile_0067.png similarity index 100% rename from datafiles/Welcome files/Sample Projects/tile_0067.png rename to datafiles/data/Welcome files/Sample Projects/tile_0067.png diff --git a/datafiles/Welcome files/Sample Projects/tile_0126.png b/datafiles/data/Welcome files/Sample Projects/tile_0126.png similarity index 100% rename from datafiles/Welcome files/Sample Projects/tile_0126.png rename to datafiles/data/Welcome files/Sample Projects/tile_0126.png diff --git a/datafiles/Welcome files/Templates/Canvas.png b/datafiles/data/Welcome files/Templates/Canvas.png similarity index 100% rename from datafiles/Welcome files/Templates/Canvas.png rename to datafiles/data/Welcome files/Templates/Canvas.png diff --git a/datafiles/Welcome files/Templates/Canvas.pxc b/datafiles/data/Welcome files/Templates/Canvas.pxc similarity index 100% rename from datafiles/Welcome files/Templates/Canvas.pxc rename to datafiles/data/Welcome files/Templates/Canvas.pxc diff --git a/datafiles/Welcome files/Welcome files.zip b/datafiles/data/Welcome files/Welcome files.zip similarity index 100% rename from datafiles/Welcome files/Welcome files.zip rename to datafiles/data/Welcome files/Welcome files.zip diff --git a/scripts/node_line/node_line.gml b/scripts/node_line/node_line.gml index eb0dd96cd..29160c715 100644 --- a/scripts/node_line/node_line.gml +++ b/scripts/node_line/node_line.gml @@ -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]; diff --git a/scripts/node_path_array/node_path_array.gml b/scripts/node_path_array/node_path_array.gml index a13e7d600..5e864da72 100644 --- a/scripts/node_path_array/node_path_array.gml +++ b/scripts/node_path_array/node_path_array.gml @@ -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); + } } } \ No newline at end of file diff --git a/scripts/node_path_blend/node_path_blend.gml b/scripts/node_path_blend/node_path_blend.gml index 89f31fcbd..a9129fa05 100644 --- a/scripts/node_path_blend/node_path_blend.gml +++ b/scripts/node_path_blend/node_path_blend.gml @@ -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); } diff --git a/scripts/node_path_bridge/node_path_bridge.gml b/scripts/node_path_bridge/node_path_bridge.gml index 7d7cf5993..733e07f11 100644 --- a/scripts/node_path_bridge/node_path_bridge.gml +++ b/scripts/node_path_bridge/node_path_bridge.gml @@ -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 ]; diff --git a/scripts/node_path_from_mask/node_path_from_mask.gml b/scripts/node_path_from_mask/node_path_from_mask.gml index 2f34a4af4..aac6025ef 100644 --- a/scripts/node_path_from_mask/node_path_from_mask.gml +++ b/scripts/node_path_from_mask/node_path_from_mask.gml @@ -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); } diff --git a/scripts/node_path_l_system/node_path_l_system.gml b/scripts/node_path_l_system/node_path_l_system.gml index 9a5b6f0af..81a44e3d6 100644 --- a/scripts/node_path_l_system/node_path_l_system.gml +++ b/scripts/node_path_l_system/node_path_l_system.gml @@ -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; } diff --git a/scripts/node_path_plot/node_path_plot.gml b/scripts/node_path_plot/node_path_plot.gml index 0cb9a0475..ac7a99737 100644 --- a/scripts/node_path_plot/node_path_plot.gml +++ b/scripts/node_path_plot/node_path_plot.gml @@ -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); diff --git a/scripts/node_path_repeat/node_path_repeat.gml b/scripts/node_path_repeat/node_path_repeat.gml index 58e6946cc..1ae725a36 100644 --- a/scripts/node_path_repeat/node_path_repeat.gml +++ b/scripts/node_path_repeat/node_path_repeat.gml @@ -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 ); } } diff --git a/scripts/node_path_reverse/node_path_reverse.gml b/scripts/node_path_reverse/node_path_reverse.gml index 9cbe19b30..015f33d0d 100644 --- a/scripts/node_path_reverse/node_path_reverse.gml +++ b/scripts/node_path_reverse/node_path_reverse.gml @@ -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); } diff --git a/scripts/node_path_sample/node_path_sample.gml b/scripts/node_path_sample/node_path_sample.gml index 9c682938c..d5dbbed17 100644 --- a/scripts/node_path_sample/node_path_sample.gml +++ b/scripts/node_path_sample/node_path_sample.gml @@ -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) { diff --git a/scripts/node_path_scatter/node_path_scatter.gml b/scripts/node_path_scatter/node_path_scatter.gml index bb5abe77b..1683ac684 100644 --- a/scripts/node_path_scatter/node_path_scatter.gml +++ b/scripts/node_path_scatter/node_path_scatter.gml @@ -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 ); } } diff --git a/scripts/node_path_shift/node_path_shift.gml b/scripts/node_path_shift/node_path_shift.gml index 130c17139..dd9ea90a6 100644 --- a/scripts/node_path_shift/node_path_shift.gml +++ b/scripts/node_path_shift/node_path_shift.gml @@ -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); } diff --git a/scripts/node_path_transform/node_path_transform.gml b/scripts/node_path_transform/node_path_transform.gml index a2721dbd1..c73920e8c 100644 --- a/scripts/node_path_transform/node_path_transform.gml +++ b/scripts/node_path_transform/node_path_transform.gml @@ -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(); diff --git a/scripts/node_path_trim/node_path_trim.gml b/scripts/node_path_trim/node_path_trim.gml index e0ceddf1f..15f3caa05 100644 --- a/scripts/node_path_trim/node_path_trim.gml +++ b/scripts/node_path_trim/node_path_trim.gml @@ -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); } diff --git a/scripts/node_path_wave/node_path_wave.gml b/scripts/node_path_wave/node_path_wave.gml index fd045b782..3cd3101a2 100644 --- a/scripts/node_path_wave/node_path_wave.gml +++ b/scripts/node_path_wave/node_path_wave.gml @@ -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); diff --git a/scripts/node_path_weight_adjust/node_path_weight_adjust.gml b/scripts/node_path_weight_adjust/node_path_weight_adjust.gml index 289d50961..ea9618773 100644 --- a/scripts/node_path_weight_adjust/node_path_weight_adjust.gml +++ b/scripts/node_path_weight_adjust/node_path_weight_adjust.gml @@ -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); } diff --git a/scripts/node_registry/node_registry.gml b/scripts/node_registry/node_registry.gml index 963658acd..3ab98489a 100644 --- a/scripts/node_registry/node_registry.gml +++ b/scripts/node_registry/node_registry.gml @@ -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; } } diff --git a/scripts/panel_collection_manager/panel_collection_manager.gml b/scripts/panel_collection_manager/panel_collection_manager.gml new file mode 100644 index 000000000..15d6d6406 --- /dev/null +++ b/scripts/panel_collection_manager/panel_collection_manager.gml @@ -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"); + + } + +} \ No newline at end of file diff --git a/scripts/panel_collection_manager/panel_collection_manager.yy b/scripts/panel_collection_manager/panel_collection_manager.yy new file mode 100644 index 000000000..f4d1ae956 --- /dev/null +++ b/scripts/panel_collection_manager/panel_collection_manager.yy @@ -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":[], +} \ No newline at end of file diff --git a/scripts/panel_console/panel_console.yy b/scripts/panel_console/panel_console.yy index 618698087..7f1dfc435 100644 --- a/scripts/panel_console/panel_console.yy +++ b/scripts/panel_console/panel_console.yy @@ -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", diff --git a/scripts/panel_menu/panel_menu.gml b/scripts/panel_menu/panel_menu.gml index 3832678cd..ea6a5015a 100644 --- a/scripts/panel_menu/panel_menu.gml +++ b/scripts/panel_menu/panel_menu.gml @@ -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") }), diff --git a/scripts/panel_node_data_gen/panel_node_data_gen.yy b/scripts/panel_node_data_gen/panel_node_data_gen.yy index eba0d9916..c148f3c7e 100644 --- a/scripts/panel_node_data_gen/panel_node_data_gen.yy +++ b/scripts/panel_node_data_gen/panel_node_data_gen.yy @@ -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", diff --git a/scripts/panel_profile_render/panel_profile_render.yy b/scripts/panel_profile_render/panel_profile_render.yy index 21af486b3..15a961c34 100644 --- a/scripts/panel_profile_render/panel_profile_render.yy +++ b/scripts/panel_profile_render/panel_profile_render.yy @@ -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", diff --git a/scripts/panel_resource_monitor/panel_resource_monitor.yy b/scripts/panel_resource_monitor/panel_resource_monitor.yy index bc67cf75d..651a4969b 100644 --- a/scripts/panel_resource_monitor/panel_resource_monitor.yy +++ b/scripts/panel_resource_monitor/panel_resource_monitor.yy @@ -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":[], } \ No newline at end of file diff --git a/scripts/panel_test/panel_test.yy b/scripts/panel_test/panel_test.yy index f2bc6cff3..9918f27d8 100644 --- a/scripts/panel_test/panel_test.yy +++ b/scripts/panel_test/panel_test.yy @@ -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", diff --git a/scripts/sample_projects/sample_projects.gml b/scripts/sample_projects/sample_projects.gml index 3d41a1a71..e357b3ee9 100644 --- a/scripts/sample_projects/sample_projects.gml +++ b/scripts/sample_projects/sample_projects.gml @@ -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); diff --git a/scripts/testing_script/testing_script.gml b/scripts/testing_script/testing_script.gml index 1e5c953c9..9d1708d41 100644 --- a/scripts/testing_script/testing_script.gml +++ b/scripts/testing_script/testing_script.gml @@ -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 ----------");