0.9.1 Panel tool bar, edge detect, etc.

This commit is contained in:
MakhamDev 2022-08-30 12:36:37 +07:00
parent 39981743bd
commit 1a8f2553a3
65 changed files with 1477 additions and 138 deletions

View file

@ -54,6 +54,7 @@
{"id":{"name":"node_outline","path":"scripts/node_outline/node_outline.yy",},"order":0,}, {"id":{"name":"node_outline","path":"scripts/node_outline/node_outline.yy",},"order":0,},
{"id":{"name":"math_function","path":"scripts/math_function/math_function.yy",},"order":7,}, {"id":{"name":"math_function","path":"scripts/math_function/math_function.yy",},"order":7,},
{"id":{"name":"scrollBox","path":"scripts/scrollBox/scrollBox.yy",},"order":13,}, {"id":{"name":"scrollBox","path":"scripts/scrollBox/scrollBox.yy",},"order":13,},
{"id":{"name":"colToVec4","path":"scripts/colToVec4/colToVec4.yy",},"order":0,},
{"id":{"name":"draw_surface_blend","path":"scripts/draw_surface_blend/draw_surface_blend.yy",},"order":1,}, {"id":{"name":"draw_surface_blend","path":"scripts/draw_surface_blend/draw_surface_blend.yy",},"order":1,},
{"id":{"name":"blurSurface","path":"scripts/blurSurface/blurSurface.yy",},"order":0,}, {"id":{"name":"blurSurface","path":"scripts/blurSurface/blurSurface.yy",},"order":0,},
{"id":{"name":"s_animate_node_go","path":"sprites/s_animate_node_go/s_animate_node_go.yy",},"order":26,}, {"id":{"name":"s_animate_node_go","path":"sprites/s_animate_node_go/s_animate_node_go.yy",},"order":26,},
@ -206,6 +207,7 @@
{"id":{"name":"node_crop","path":"scripts/node_crop/node_crop.yy",},"order":8,}, {"id":{"name":"node_crop","path":"scripts/node_crop/node_crop.yy",},"order":8,},
{"id":{"name":"buttonPalette","path":"scripts/buttonPalette/buttonPalette.yy",},"order":6,}, {"id":{"name":"buttonPalette","path":"scripts/buttonPalette/buttonPalette.yy",},"order":6,},
{"id":{"name":"s_node_zigzag","path":"sprites/s_node_zigzag/s_node_zigzag.yy",},"order":0,}, {"id":{"name":"s_node_zigzag","path":"sprites/s_node_zigzag/s_node_zigzag.yy",},"order":0,},
{"id":{"name":"sh_edge_detect","path":"shaders/sh_edge_detect/sh_edge_detect.yy",},"order":35,},
{"id":{"name":"s_node_timeline_preview","path":"sprites/s_node_timeline_preview/s_node_timeline_preview.yy",},"order":99,}, {"id":{"name":"s_node_timeline_preview","path":"sprites/s_node_timeline_preview/s_node_timeline_preview.yy",},"order":99,},
{"id":{"name":"type_conversion","path":"scripts/type_conversion/type_conversion.yy",},"order":8,}, {"id":{"name":"type_conversion","path":"scripts/type_conversion/type_conversion.yy",},"order":8,},
{"id":{"name":"node_keyframe","path":"scripts/node_keyframe/node_keyframe.yy",},"order":7,}, {"id":{"name":"node_keyframe","path":"scripts/node_keyframe/node_keyframe.yy",},"order":7,},
@ -248,6 +250,7 @@
{"id":{"name":"sh_blend_screen_alpha","path":"shaders/sh_blend_screen_alpha/sh_blend_screen_alpha.yy",},"order":6,}, {"id":{"name":"sh_blend_screen_alpha","path":"shaders/sh_blend_screen_alpha/sh_blend_screen_alpha.yy",},"order":6,},
{"id":{"name":"node_color_remove","path":"scripts/node_color_remove/node_color_remove.yy",},"order":38,}, {"id":{"name":"node_color_remove","path":"scripts/node_color_remove/node_color_remove.yy",},"order":38,},
{"id":{"name":"s_node_3d_cylinder","path":"sprites/s_node_3d_cylinder/s_node_3d_cylinder.yy",},"order":3,}, {"id":{"name":"s_node_3d_cylinder","path":"sprites/s_node_3d_cylinder/s_node_3d_cylinder.yy",},"order":3,},
{"id":{"name":"s_panel_active_split","path":"sprites/s_panel_active_split/s_panel_active_split.yy",},"order":2,},
{"id":{"name":"node_perlin","path":"scripts/node_perlin/node_perlin.yy",},"order":2,}, {"id":{"name":"node_perlin","path":"scripts/node_perlin/node_perlin.yy",},"order":2,},
{"id":{"name":"s_node_transform","path":"sprites/s_node_transform/s_node_transform.yy",},"order":101,}, {"id":{"name":"s_node_transform","path":"sprites/s_node_transform/s_node_transform.yy",},"order":101,},
{"id":{"name":"o_dialog_add_multiple_images","path":"objects/o_dialog_add_multiple_images/o_dialog_add_multiple_images.yy",},"order":18,}, {"id":{"name":"o_dialog_add_multiple_images","path":"objects/o_dialog_add_multiple_images/o_dialog_add_multiple_images.yy",},"order":18,},
@ -324,6 +327,7 @@
{"id":{"name":"collection_data","path":"scripts/collection_data/collection_data.yy",},"order":1,}, {"id":{"name":"collection_data","path":"scripts/collection_data/collection_data.yy",},"order":1,},
{"id":{"name":"safe_operation","path":"scripts/safe_operation/safe_operation.yy",},"order":6,}, {"id":{"name":"safe_operation","path":"scripts/safe_operation/safe_operation.yy",},"order":6,},
{"id":{"name":"node_shadow","path":"scripts/node_shadow/node_shadow.yy",},"order":17,}, {"id":{"name":"node_shadow","path":"scripts/node_shadow/node_shadow.yy",},"order":17,},
{"id":{"name":"s_node_edge_detect","path":"sprites/s_node_edge_detect/s_node_edge_detect.yy",},"order":116,},
{"id":{"name":"s_group_24","path":"sprites/s_group_24/s_group_24.yy",},"order":30,}, {"id":{"name":"s_group_24","path":"sprites/s_group_24/s_group_24.yy",},"order":30,},
{"id":{"name":"s_prop_on_end","path":"sprites/s_prop_on_end/s_prop_on_end.yy",},"order":5,}, {"id":{"name":"s_prop_on_end","path":"sprites/s_prop_on_end/s_prop_on_end.yy",},"order":5,},
{"id":{"name":"s_node_warp_mesh","path":"sprites/s_node_warp_mesh/s_node_warp_mesh.yy",},"order":109,}, {"id":{"name":"s_node_warp_mesh","path":"sprites/s_node_warp_mesh/s_node_warp_mesh.yy",},"order":109,},
@ -333,6 +337,7 @@
{"id":{"name":"node_glow","path":"scripts/node_glow/node_glow.yy",},"order":14,}, {"id":{"name":"node_glow","path":"scripts/node_glow/node_glow.yy",},"order":14,},
{"id":{"name":"sh_blend_min","path":"shaders/sh_blend_min/sh_blend_min.yy",},"order":9,}, {"id":{"name":"sh_blend_min","path":"shaders/sh_blend_min/sh_blend_min.yy",},"order":9,},
{"id":{"name":"s_animation_timing","path":"sprites/s_animation_timing/s_animation_timing.yy",},"order":27,}, {"id":{"name":"s_animation_timing","path":"sprites/s_animation_timing/s_animation_timing.yy",},"order":27,},
{"id":{"name":"s_node_val","path":"sprites/s_node_val/s_node_val.yy",},"order":16,},
{"id":{"name":"s_node_RGB","path":"sprites/s_node_RGB/s_node_RGB.yy",},"order":84,}, {"id":{"name":"s_node_RGB","path":"sprites/s_node_RGB/s_node_RGB.yy",},"order":84,},
{"id":{"name":"node_polar","path":"scripts/node_polar/node_polar.yy",},"order":5,}, {"id":{"name":"node_polar","path":"scripts/node_polar/node_polar.yy",},"order":5,},
{"id":{"name":"s_node_name","path":"sprites/s_node_name/s_node_name.yy",},"order":3,}, {"id":{"name":"s_node_name","path":"sprites/s_node_name/s_node_name.yy",},"order":3,},
@ -369,6 +374,7 @@
{"id":{"name":"panel_collection","path":"scripts/panel_collection/panel_collection.yy",},"order":0,}, {"id":{"name":"panel_collection","path":"scripts/panel_collection/panel_collection.yy",},"order":0,},
{"id":{"name":"lerp_float","path":"scripts/lerp_float/lerp_float.yy",},"order":1,}, {"id":{"name":"lerp_float","path":"scripts/lerp_float/lerp_float.yy",},"order":1,},
{"id":{"name":"vectorRangeBox","path":"scripts/vectorRangeBox/vectorRangeBox.yy",},"order":19,}, {"id":{"name":"vectorRangeBox","path":"scripts/vectorRangeBox/vectorRangeBox.yy",},"order":19,},
{"id":{"name":"s_node_error","path":"sprites/s_node_error/s_node_error.yy",},"order":17,},
{"id":{"name":"sh_draw_vertex_aa","path":"shaders/sh_draw_vertex_aa/sh_draw_vertex_aa.yy",},"order":0,}, {"id":{"name":"sh_draw_vertex_aa","path":"shaders/sh_draw_vertex_aa/sh_draw_vertex_aa.yy",},"order":0,},
{"id":{"name":"sh_outline_only","path":"shaders/sh_outline_only/sh_outline_only.yy",},"order":25,}, {"id":{"name":"sh_outline_only","path":"shaders/sh_outline_only/sh_outline_only.yy",},"order":25,},
{"id":{"name":"node_color_sampler","path":"scripts/node_color_sampler/node_color_sampler.yy",},"order":1,}, {"id":{"name":"node_color_sampler","path":"scripts/node_color_sampler/node_color_sampler.yy",},"order":1,},
@ -407,6 +413,7 @@
{"id":{"name":"s_node_export","path":"sprites/s_node_export/s_node_export.yy",},"order":44,}, {"id":{"name":"s_node_export","path":"sprites/s_node_export/s_node_export.yy",},"order":44,},
{"id":{"name":"s_node_text","path":"sprites/s_node_text/s_node_text.yy",},"order":96,}, {"id":{"name":"s_node_text","path":"sprites/s_node_text/s_node_text.yy",},"order":96,},
{"id":{"name":"node_group_input","path":"scripts/node_group_input/node_group_input.yy",},"order":1,}, {"id":{"name":"node_group_input","path":"scripts/node_group_input/node_group_input.yy",},"order":1,},
{"id":{"name":"s_icon_split_view","path":"sprites/s_icon_split_view/s_icon_split_view.yy",},"order":3,},
{"id":{"name":"draw_rect_border","path":"scripts/draw_rect_border/draw_rect_border.yy",},"order":6,}, {"id":{"name":"draw_rect_border","path":"scripts/draw_rect_border/draw_rect_border.yy",},"order":6,},
{"id":{"name":"s_node_particle_effector","path":"sprites/s_node_particle_effector/s_node_particle_effector.yy",},"order":78,}, {"id":{"name":"s_node_particle_effector","path":"sprites/s_node_particle_effector/s_node_particle_effector.yy",},"order":78,},
{"id":{"name":"node_composite","path":"scripts/node_composite/node_composite.yy",},"order":4,}, {"id":{"name":"node_composite","path":"scripts/node_composite/node_composite.yy",},"order":4,},
@ -429,6 +436,7 @@
{"id":{"name":"compat_path_array","path":"scripts/compat_path_array/compat_path_array.yy",},"order":0,}, {"id":{"name":"compat_path_array","path":"scripts/compat_path_array/compat_path_array.yy",},"order":0,},
{"id":{"name":"node_export","path":"scripts/node_export/node_export.yy",},"order":1,}, {"id":{"name":"node_export","path":"scripts/node_export/node_export.yy",},"order":1,},
{"id":{"name":"s_timeline_keyframe","path":"sprites/s_timeline_keyframe/s_timeline_keyframe.yy",},"order":24,}, {"id":{"name":"s_timeline_keyframe","path":"sprites/s_timeline_keyframe/s_timeline_keyframe.yy",},"order":24,},
{"id":{"name":"s_toolbar_shadow","path":"sprites/s_toolbar_shadow/s_toolbar_shadow.yy",},"order":6,},
{"id":{"name":"s_node_sepearte_shape","path":"sprites/s_node_sepearte_shape/s_node_sepearte_shape.yy",},"order":89,}, {"id":{"name":"s_node_sepearte_shape","path":"sprites/s_node_sepearte_shape/s_node_sepearte_shape.yy",},"order":89,},
{"id":{"name":"s_group_16","path":"sprites/s_group_16/s_group_16.yy",},"order":12,}, {"id":{"name":"s_group_16","path":"sprites/s_group_16/s_group_16.yy",},"order":12,},
{"id":{"name":"s_ui_panel_bg","path":"sprites/s_ui_panel_bg/s_ui_panel_bg.yy",},"order":1,}, {"id":{"name":"s_ui_panel_bg","path":"sprites/s_ui_panel_bg/s_ui_panel_bg.yy",},"order":1,},
@ -446,7 +454,9 @@
{"id":{"name":"string_cut","path":"scripts/string_cut/string_cut.yy",},"order":4,}, {"id":{"name":"string_cut","path":"scripts/string_cut/string_cut.yy",},"order":4,},
{"id":{"name":"node_3d_prim_cylinder","path":"scripts/node_3d_prim_cylinder/node_3d_prim_cylinder.yy",},"order":7,}, {"id":{"name":"node_3d_prim_cylinder","path":"scripts/node_3d_prim_cylinder/node_3d_prim_cylinder.yy",},"order":7,},
{"id":{"name":"node_grid","path":"scripts/node_grid/node_grid.yy",},"order":20,}, {"id":{"name":"node_grid","path":"scripts/node_grid/node_grid.yy",},"order":20,},
{"id":{"name":"node_edge_detect","path":"scripts/node_edge_detect/node_edge_detect.yy",},"order":44,},
{"id":{"name":"s_texture_default","path":"sprites/s_texture_default/s_texture_default.yy",},"order":1,}, {"id":{"name":"s_texture_default","path":"sprites/s_texture_default/s_texture_default.yy",},"order":1,},
{"id":{"name":"s_icon_reset_when_preview","path":"sprites/s_icon_reset_when_preview/s_icon_reset_when_preview.yy",},"order":1,},
{"id":{"name":"node_dilate","path":"scripts/node_dilate/node_dilate.yy",},"order":34,}, {"id":{"name":"node_dilate","path":"scripts/node_dilate/node_dilate.yy",},"order":34,},
{"id":{"name":"s_node_statistic","path":"sprites/s_node_statistic/s_node_statistic.yy",},"order":115,}, {"id":{"name":"s_node_statistic","path":"sprites/s_node_statistic/s_node_statistic.yy",},"order":115,},
{"id":{"name":"sh_stripe","path":"shaders/sh_stripe/sh_stripe.yy",},"order":10,}, {"id":{"name":"sh_stripe","path":"shaders/sh_stripe/sh_stripe.yy",},"order":10,},
@ -511,6 +521,7 @@
{"id":{"name":"node_group_output","path":"scripts/node_group_output/node_group_output.yy",},"order":2,}, {"id":{"name":"node_group_output","path":"scripts/node_group_output/node_group_output.yy",},"order":2,},
{"id":{"name":"s_node_junctions_array","path":"sprites/s_node_junctions_array/s_node_junctions_array.yy",},"order":1,}, {"id":{"name":"s_node_junctions_array","path":"sprites/s_node_junctions_array/s_node_junctions_array.yy",},"order":1,},
{"id":{"name":"f_p2","path":"fonts/f_p2/f_p2.yy",},"order":4,}, {"id":{"name":"f_p2","path":"fonts/f_p2/f_p2.yy",},"order":4,},
{"id":{"name":"s_button_path_not_found_icon","path":"sprites/s_button_path_not_found_icon/s_button_path_not_found_icon.yy",},"order":41,},
{"id":{"name":"button","path":"scripts/button/button.yy",},"order":2,}, {"id":{"name":"button","path":"scripts/button/button.yy",},"order":2,},
{"id":{"name":"sh_blur_gaussian","path":"shaders/sh_blur_gaussian/sh_blur_gaussian.yy",},"order":1,}, {"id":{"name":"sh_blur_gaussian","path":"shaders/sh_blur_gaussian/sh_blur_gaussian.yy",},"order":1,},
{"id":{"name":"paddingBox","path":"scripts/paddingBox/paddingBox.yy",},"order":9,}, {"id":{"name":"paddingBox","path":"scripts/paddingBox/paddingBox.yy",},"order":9,},
@ -573,6 +584,7 @@
{"id":{"name":"sh_perlin_tiled","path":"shaders/sh_perlin_tiled/sh_perlin_tiled.yy",},"order":2,}, {"id":{"name":"sh_perlin_tiled","path":"shaders/sh_perlin_tiled/sh_perlin_tiled.yy",},"order":2,},
{"id":{"name":"sh_time_remap","path":"shaders/sh_time_remap/sh_time_remap.yy",},"order":33,}, {"id":{"name":"sh_time_remap","path":"shaders/sh_time_remap/sh_time_remap.yy",},"order":33,},
{"id":{"name":"s_node_array","path":"sprites/s_node_array/s_node_array.yy",},"order":10,}, {"id":{"name":"s_node_array","path":"sprites/s_node_array/s_node_array.yy",},"order":10,},
{"id":{"name":"s_icon_center_canvas","path":"sprites/s_icon_center_canvas/s_icon_center_canvas.yy",},"order":0,},
{"id":{"name":"rm_main","path":"rooms/rm_main/rm_main.yy",},"order":0,}, {"id":{"name":"rm_main","path":"rooms/rm_main/rm_main.yy",},"order":0,},
], ],
"Options": [ "Options": [
@ -667,6 +679,8 @@
{"folderPath":"folders/nodes/data/iterate.yy","order":19,"resourceVersion":"1.0","name":"iterate","tags":[],"resourceType":"GMFolder",}, {"folderPath":"folders/nodes/data/iterate.yy","order":19,"resourceVersion":"1.0","name":"iterate","tags":[],"resourceType":"GMFolder",},
{"folderPath":"folders/nodes/data/node.yy","order":20,"resourceVersion":"1.0","name":"node","tags":[],"resourceType":"GMFolder",}, {"folderPath":"folders/nodes/data/node.yy","order":20,"resourceVersion":"1.0","name":"node","tags":[],"resourceType":"GMFolder",},
{"folderPath":"folders/sprites/nodes/pin.yy","order":15,"resourceVersion":"1.0","name":"pin","tags":[],"resourceType":"GMFolder",}, {"folderPath":"folders/sprites/nodes/pin.yy","order":15,"resourceVersion":"1.0","name":"pin","tags":[],"resourceType":"GMFolder",},
{"folderPath":"folders/functions/shader.yy","order":17,"resourceVersion":"1.0","name":"shader","tags":[],"resourceType":"GMFolder",},
{"folderPath":"folders/sprites/panels/preview.yy","order":9,"resourceVersion":"1.0","name":"preview","tags":[],"resourceType":"GMFolder",},
], ],
"AudioGroups": [ "AudioGroups": [
{"targets":-1,"resourceVersion":"1.3","name":"audiogroup_default","resourceType":"GMAudioGroup",}, {"targets":-1,"resourceVersion":"1.3","name":"audiogroup_default","resourceType":"GMAudioGroup",},
@ -737,7 +751,7 @@
{"CopyToMask":-1,"filePath":"datafiles/Getting started","resourceVersion":"1.0","name":"4 Looping operation.png","resourceType":"GMIncludedFile",}, {"CopyToMask":-1,"filePath":"datafiles/Getting started","resourceVersion":"1.0","name":"4 Looping operation.png","resourceType":"GMIncludedFile",},
], ],
"MetaData": { "MetaData": {
"IDEVersion": "2022.3.0.625", "IDEVersion": "2022.6.1.26",
}, },
"resourceVersion": "1.5", "resourceVersion": "1.5",
"name": "Pixels Composer", "name": "Pixels Composer",

View file

@ -2,6 +2,7 @@
"spriteId": null, "spriteId": null,
"solid": false, "solid": false,
"visible": true, "visible": true,
"managed": true,
"spriteMaskId": null, "spriteMaskId": null,
"persistent": false, "persistent": false,
"parentObjectId": null, "parentObjectId": null,

View file

@ -14,25 +14,34 @@ function buttonClass(_onClick) constructor {
onClick = _onClick; onClick = _onClick;
static setIcon = function(_icon, _index = 0) { icon = _icon; icon_index = _index return self; } static setIcon = function(_icon, _index = 0) {
static setText = function(_text) { text = _text; return self; } icon = _icon; icon_index = _index
static setTooltip = function(_tip) { tooltip = _tip; return self; } return self;
}
static draw = function(_x, _y, _w, _h, _m) { static setText = function(_text) {
var spr = argument_count > 5? argument[5] : s_button; text = _text;
return self;
}
static setTooltip = function(_tip) {
tooltip = _tip;
return self;
}
static draw = function(_x, _y, _w, _h, _m, spr = s_button, blend = c_white) {
var click = false; var click = false;
if(hover && point_in_rectangle(_m[0], _m[1], _x, _y, _x + _w, _y + _h)) { if(hover && point_in_rectangle(_m[0], _m[1], _x, _y, _x + _w, _y + _h)) {
draw_sprite_stretched(spr, 1, _x, _y, _w, _h); draw_sprite_stretched_ext(spr, 1, _x, _y, _w, _h, blend, 1);
if(active && mouse_check_button_pressed(mb_left)) { if(active && mouse_check_button_pressed(mb_left)) {
if(onClick) onClick(); if(onClick) onClick();
click = true; click = true;
} }
if(mouse_check_button(mb_left)) if(mouse_check_button(mb_left))
draw_sprite_stretched(spr, 2, _x, _y, _w, _h); draw_sprite_stretched_ext(spr, 2, _x, _y, _w, _h, blend, 1);
if(tooltip != "") TOOLTIP = tooltip; if(tooltip != "") TOOLTIP = tooltip;
} else { } else {
draw_sprite_stretched(spr, 0, _x, _y, _w, _h); draw_sprite_stretched_ext(spr, 0, _x, _y, _w, _h, blend, 1);
} }
if(icon) draw_sprite(icon, icon_index, _x + _w / 2, _y + _h / 2); if(icon) draw_sprite(icon, icon_index, _x + _w / 2, _y + _h / 2);
if(text != "") { if(text != "") {

View file

@ -57,13 +57,18 @@ function DirectoryObject(name, path) constructor {
var hh = 0; var hh = 0;
if(path == PANEL_COLLECTION.context.path) if(path == PANEL_COLLECTION.context.path)
draw_sprite_stretched_ext(s_ui_panel_bg, 0, _x, _y, _w, hg, c_ui_blue_ltgrey, 1); draw_sprite_stretched_ext(s_ui_panel_bg, 0, _x + 28, _y, _w - 28, hg, c_ui_blue_ltgrey, 1);
if(HOVER == PANEL_COLLECTION.panel && point_in_rectangle(_m[0], _m[1], 0, _y, _w, _y + hg - 1)) { if(!ds_list_empty(subDir) && HOVER == PANEL_COLLECTION.panel && point_in_rectangle(_m[0], _m[1], _x, _y, 32, _y + hg - 1)) {
draw_sprite_stretched_ext(s_ui_panel_bg, 0, _x, _y, _w, hg, c_ui_blue_white, 1); draw_sprite_stretched_ext(s_ui_panel_bg, 0, _x, _y, 32, hg, c_ui_blue_white, 1);
if(FOCUS == PANEL_COLLECTION.panel && mouse_check_button_pressed(mb_left)) { if(FOCUS == PANEL_COLLECTION.panel && mouse_check_button_pressed(mb_left)) {
open = !open; open = !open;
}
}
if(HOVER == PANEL_COLLECTION.panel && point_in_rectangle(_m[0], _m[1], _x + 32, _y, _w, _y + hg - 1)) {
draw_sprite_stretched_ext(s_ui_panel_bg, 0, _x + 28, _y, _w - 28, hg, c_ui_blue_white, 1);
if(FOCUS == PANEL_COLLECTION.panel && mouse_check_button_pressed(mb_left)) {
if(PANEL_COLLECTION.context == self) if(PANEL_COLLECTION.context == self)
PANEL_COLLECTION.setContext(COLLECTIONS); PANEL_COLLECTION.setContext(COLLECTIONS);
else else

View file

@ -0,0 +1,3 @@
function colToVec4(color, alpha = 1) {
return [ color_get_red(color) / 255, color_get_green(color) / 255, color_get_blue(color) / 255, alpha ];
}

View file

@ -0,0 +1,12 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "shader",
"path": "folders/functions/shader.yy",
},
"resourceVersion": "1.0",
"name": "colToVec4",
"tags": [],
"resourceType": "GMScript",
}

View file

@ -113,9 +113,13 @@ function Node_Canvas(_x, _y) : Node(_x, _y) constructor {
draw_point_size(_x0, _y0, _siz, _brush); draw_point_size(_x0, _y0, _siz, _brush);
return; return;
} else if(_x0 == _x1) { } else if(_x0 == _x1) {
draw_point_size(_x0, _y0, _siz, _brush);
draw_point_size(_x1, _y1, _siz, _brush);
draw_line_size(_x0, _y0, _x0, _y1, _siz, _brush); draw_line_size(_x0, _y0, _x0, _y1, _siz, _brush);
return; return;
} else if(_y0 == _y1) { } else if(_y0 == _y1) {
draw_point_size(_x0, _y0, _siz, _brush);
draw_point_size(_x1, _y1, _siz, _brush);
draw_line_size(_x0, _y0, _x1, _y0, _siz, _brush); draw_line_size(_x0, _y0, _x1, _y0, _siz, _brush);
return; return;
} }
@ -142,23 +146,28 @@ function Node_Canvas(_x, _y) : Node(_x, _y) constructor {
draw_point_size(_x0, _y0, _siz, _brush); draw_point_size(_x0, _y0, _siz, _brush);
return; return;
} else if(_x0 == _x1) { } else if(_x0 == _x1) {
draw_point_size(_x0, _y0, _siz, _brush);
draw_point_size(_x1, _y1, _siz, _brush);
draw_line_size(_x0, _y0, _x0, _y1, _siz, _brush); draw_line_size(_x0, _y0, _x0, _y1, _siz, _brush);
return; return;
} else if(_y0 == _y1) { } else if(_y0 == _y1) {
draw_point_size(_x0, _y0, _siz, _brush);
draw_point_size(_x1, _y1, _siz, _brush);
draw_line_size(_x0, _y0, _x1, _y0, _siz, _brush); draw_line_size(_x0, _y0, _x1, _y0, _siz, _brush);
return; return;
} }
var _min_x = min(_x0, _x1); var _min_x = min(_x0, _x1) - 1;
var _max_x = max(_x0, _x1); var _max_x = max(_x0, _x1);
var _min_y = min(_y0, _y1); var _min_y = min(_y0, _y1) - 1;
var _may_y = max(_y0, _y1); var _max_y = max(_y0, _y1);
draw_point_size(_min_x, _min_y, _siz, _brush);
draw_point_size(_max_x, _max_y, _siz, _brush);
if(_fill) { if(_fill) {
draw_ellipse(_min_x, _min_y, _max_x, _may_y, 0); draw_ellipse(_min_x, _min_y, _max_x, _max_y, 0);
} else if(_siz == 1 && _brush == -1) } else {
draw_ellipse(_min_x + 1, _min_y + 1, _max_x - 1, _may_y - 1, 1);
else {
var samp = 64; var samp = 64;
var cx = (_x0 + _x1) / 2; var cx = (_x0 + _x1) / 2;
var cy = (_y0 + _y1) / 2; var cy = (_y0 + _y1) / 2;

View file

@ -34,7 +34,7 @@ function Node(_x, _y) constructor {
always_output = false; always_output = false;
inspecting = false; inspecting = false;
previewing = false; previewing = 0;
previewable = true; previewable = true;
preview_speed = 0; preview_speed = 0;
@ -57,6 +57,8 @@ function Node(_x, _y) constructor {
anim_show = true; anim_show = true;
value_validation = [0, 0];
static setHeight = function() { static setHeight = function() {
var _hi = 32, _ho = 32; var _hi = 32, _ho = 32;
for( var i = 0; i < ds_list_size(inputs); i++ ) { for( var i = 0; i < ds_list_size(inputs); i++ ) {
@ -378,6 +380,11 @@ function Node(_x, _y) constructor {
var xx = x * _s + _x; var xx = x * _s + _x;
var yy = y * _s + _y; var yy = y * _s + _y;
if(value_validation[1]) {
draw_sprite_stretched(s_node_error, 0, xx - 9, yy - 9, w * _s + 18, h * _s + 18);
}
drawNodeBase(xx, yy, _s); drawNodeBase(xx, yy, _s);
if(previewable && ds_list_size(outputs) > 0) if(previewable && ds_list_size(outputs) > 0)
drawPreview(outputs[| preview_channel], xx, yy, _s); drawPreview(outputs[| preview_channel], xx, yy, _s);
@ -385,7 +392,7 @@ function Node(_x, _y) constructor {
onDrawNode(xx, yy, _mx, _my, _s); onDrawNode(xx, yy, _mx, _my, _s);
if(active_draw_index > -1) { if(active_draw_index > -1) {
draw_sprite_stretched(bg_sel_spr, active_draw_index, x * _s + _x, y * _s + _y, w * _s, h * _s); draw_sprite_stretched(bg_sel_spr, active_draw_index, xx, yy, w * _s, h * _s);
active_draw_index = -1; active_draw_index = -1;
} }
@ -406,7 +413,7 @@ function Node(_x, _y) constructor {
} }
inspecting = false; inspecting = false;
previewing = false; previewing = 0;
} }
active_draw_index = -1; active_draw_index = -1;
@ -418,10 +425,11 @@ function Node(_x, _y) constructor {
static destroy = function(_merge = false) { static destroy = function(_merge = false) {
active = false; active = false;
if(PANEL_GRAPH.node_hover == self) PANEL_GRAPH.node_hover = noone; if(PANEL_GRAPH.node_hover == self) PANEL_GRAPH.node_hover = noone;
if(PANEL_GRAPH.node_focus == self) PANEL_GRAPH.node_focus = noone; if(PANEL_GRAPH.node_focus == self) PANEL_GRAPH.node_focus = noone;
if(PANEL_GRAPH.node_previewing == self) PANEL_GRAPH.node_previewing = noone; if(PANEL_PREVIEW.preview_node[0] == self) PANEL_PREVIEW.preview_node[0] = noone;
if(PANEL_INSPECTOR.inspecting == self) PANEL_INSPECTOR.inspecting = noone; if(PANEL_PREVIEW.preview_node[1] == self) PANEL_PREVIEW.preview_node[1] = noone;
if(PANEL_INSPECTOR.inspecting == self) PANEL_INSPECTOR.inspecting = noone;
PANEL_ANIMATION.updatePropertyList(); PANEL_ANIMATION.updatePropertyList();
for(var i = 0; i < ds_list_size(outputs); i++) { for(var i = 0; i < ds_list_size(outputs); i++) {
@ -447,6 +455,17 @@ function Node(_x, _y) constructor {
onDestroy(); onDestroy();
} }
static onValidate = function() {
value_validation[0] = 0;
value_validation[1] = 0;
for( var i = 0; i < ds_list_size(inputs); i++ ) {
var jun = inputs[| i];
if(jun.value_validation)
value_validation[jun.value_validation - 1]++;
}
}
static onDestroy = function() {} static onDestroy = function() {}
static cacheCurrentFrame = function(_frame) { static cacheCurrentFrame = function(_frame) {

View file

@ -0,0 +1,12 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "filter",
"path": "folders/nodes/data/filter.yy",
},
"resourceVersion": "1.0",
"name": "node_alpha_to_grey",
"tags": [],
"resourceType": "GMScript",
}

View file

@ -0,0 +1,12 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "filter",
"path": "folders/nodes/data/filter.yy",
},
"resourceVersion": "1.0",
"name": "node_bw",
"tags": [],
"resourceType": "GMScript",
}

View file

@ -0,0 +1,12 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "filter",
"path": "folders/nodes/data/filter.yy",
},
"resourceVersion": "1.0",
"name": "node_color_adjustment",
"tags": [],
"resourceType": "GMScript",
}

View file

@ -0,0 +1,12 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "process",
"path": "folders/nodes/data/process.yy",
},
"resourceVersion": "1.0",
"name": "node_color_replacement",
"tags": [],
"resourceType": "GMScript",
}

View file

@ -0,0 +1,37 @@
function Node_create_Edge_Detect(_x, _y) {
var node = new Node_Edge_Detect(_x, _y);
ds_list_add(PANEL_GRAPH.nodes_list, node);
return node;
}
function Node_Edge_Detect(_x, _y) : Node_Processor(_x, _y) constructor {
name = "Edge detect";
uniform_dim = shader_get_uniform(sh_edge_detect, "dimension");
uniform_filter = shader_get_uniform(sh_edge_detect, "filter");
inputs[| 0] = nodeValue(0, "Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
inputs[| 1] = nodeValue(1, "Filter", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, ["Sobel", "Prewitt", "Laplacian"] );
outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, surface_create(1, 1));
static process_data = function(_outSurf, _data, _output_index) {
var ft = _data[1];
surface_set_target(_outSurf);
draw_clear_alpha(0, 0);
BLEND_ADD
shader_set(sh_edge_detect);
shader_set_uniform_f_array(uniform_dim, [surface_get_width(_data[0]), surface_get_height(_data[0])]);
shader_set_uniform_i(uniform_filter, ft);
draw_surface_safe(_data[0], 0, 0);
shader_reset();
BLEND_NORMAL
surface_reset_target();
return _outSurf;
}
}

View file

@ -0,0 +1,12 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "filter",
"path": "folders/nodes/data/filter.yy",
},
"resourceVersion": "1.0",
"name": "node_edge_detect",
"tags": [],
"resourceType": "GMScript",
}

View file

@ -0,0 +1,12 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "filter",
"path": "folders/nodes/data/filter.yy",
},
"resourceVersion": "1.0",
"name": "node_greyscale",
"tags": [],
"resourceType": "GMScript",
}

View file

@ -0,0 +1,12 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "process",
"path": "folders/nodes/data/process.yy",
},
"resourceVersion": "1.0",
"name": "node_outline",
"tags": [],
"resourceType": "GMScript",
}

View file

@ -44,7 +44,6 @@ function NodeObject(_name, _spr, _create, tags = []) constructor {
var _node = nodeFind(_name).build(_x, _y); var _node = nodeFind(_name).build(_x, _y);
if(!_node) return noone; if(!_node) return noone;
PANEL_GRAPH.node_focus = _node; PANEL_GRAPH.node_focus = _node;
PANEL_GRAPH.previewing = _node;
return _node; return _node;
} }
@ -122,6 +121,7 @@ function NodeObject(_name, _spr, _create, tags = []) constructor {
addNodeObject(filter, "Atlas", s_node_atlas, "Node_Atlas", Node_create_Atlas); addNodeObject(filter, "Atlas", s_node_atlas, "Node_Atlas", Node_create_Atlas);
addNodeObject(filter, "Scale algorithm", s_node_scale_algo, "Node_Scale_Algo", Node_create_Scale_Algo, ["scale2x", "scale3x"]); addNodeObject(filter, "Scale algorithm", s_node_scale_algo, "Node_Scale_Algo", Node_create_Scale_Algo, ["scale2x", "scale3x"]);
addNodeObject(filter, "Pixel cloud", s_node_pixel_cloud, "Node_Pixel_Cloud", Node_create_Pixel_Cloud); addNodeObject(filter, "Pixel cloud", s_node_pixel_cloud, "Node_Pixel_Cloud", Node_create_Pixel_Cloud);
addNodeObject(filter, "Edge detect", s_node_edge_detect, "Node_Edge_Detect", Node_create_Edge_Detect);
//addNodeObject(filter, "Corner", s_node_corner, "Node_Corner", Node_create_Corner); //addNodeObject(filter, "Corner", s_node_corner, "Node_Corner", Node_create_Corner);
var threeD = ds_list_create(); var threeD = ds_list_create();

View file

@ -25,9 +25,9 @@ function Node_Shape(_x, _y) : Node_Processor(_x, _y) constructor {
uniform_inner = shader_get_uniform(shader, "inner"); uniform_inner = shader_get_uniform(shader, "inner");
uniform_corner = shader_get_uniform(shader, "corner"); uniform_corner = shader_get_uniform(shader, "corner");
uniform_arange = shader_get_uniform(shader, "angle_range"); uniform_arange = shader_get_uniform(shader, "angle_range");
uniform_bg = shader_get_uniform(shader, "bg");
uniform_aa = shader_get_uniform(shader, "aa"); uniform_aa = shader_get_uniform(shader, "aa");
uniform_dim = shader_get_uniform(shader, "dimension"); uniform_dim = shader_get_uniform(shader, "dimension");
uniform_bgCol = shader_get_uniform(shader, "bgColor");
inputs[| 0] = nodeValue(0, "Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, def_surf_size2, VALUE_TAG.dimension_2d ) inputs[| 0] = nodeValue(0, "Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, def_surf_size2, VALUE_TAG.dimension_2d )
.setDisplay(VALUE_DISPLAY.vector); .setDisplay(VALUE_DISPLAY.vector);
@ -58,14 +58,16 @@ function Node_Shape(_x, _y) : Node_Processor(_x, _y) constructor {
inputs[| 9] = nodeValue(9, "Corner radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0) inputs[| 9] = nodeValue(9, "Corner radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0)
.setDisplay(VALUE_DISPLAY.slider, [0, 0.5, 0.01]); .setDisplay(VALUE_DISPLAY.slider, [0, 0.5, 0.01]);
inputs[| 10] = nodeValue(10, "Color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white); inputs[| 10] = nodeValue(10, "Shape color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white);
inputs[| 11] = nodeValue(11, "Background color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_black);
outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, surface_create(1, 1)); outputs[| 0] = nodeValue(0, "Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, surface_create(1, 1));
input_display_list = [ input_display_list = [
["Surface", false], 0, 6, ["Surface", false], 0, 6,
["Shape", false], 2, 3, 9, 4, 5, 7, 8, ["Shape", false], 2, 3, 9, 4, 5, 7, 8,
["Render", true], 1, 10 ["Render", true], 10, 1, 11
]; ];
static drawOverlay = function(_active, _x, _y, _s, _mx, _my) { static drawOverlay = function(_active, _x, _y, _s, _mx, _my) {
@ -79,7 +81,10 @@ function Node_Shape(_x, _y) : Node_Processor(_x, _y) constructor {
var _posit = _data[3]; var _posit = _data[3];
var _aa = _data[6]; var _aa = _data[6];
var _corner = _data[9]; var _corner = _data[9];
var _color = _data[10] var _color = _data[10];
var _bgcol = _bg? colToVec4(_data[11]) : [0, 0, 0, 0];
inputs[| 11].setVisible(_bg);
if(!is_surface(_outSurf)) { if(!is_surface(_outSurf)) {
_outSurf = surface_create(surface_valid(_dim[0]), surface_valid(_dim[1])); _outSurf = surface_create(surface_valid(_dim[0]), surface_valid(_dim[1]));
@ -147,7 +152,7 @@ function Node_Shape(_x, _y) : Node_Processor(_x, _y) constructor {
shader_set_uniform_f_array(uniform_dim, _dim); shader_set_uniform_f_array(uniform_dim, _dim);
shader_set_uniform_i(uniform_shape, _shape); shader_set_uniform_i(uniform_shape, _shape);
shader_set_uniform_i(uniform_bg, _bg); shader_set_uniform_f_array(uniform_bgCol, _bgcol);
shader_set_uniform_i(uniform_aa, _aa); shader_set_uniform_i(uniform_aa, _aa);
shader_set_uniform_f(uniform_corner, _corner); shader_set_uniform_f(uniform_corner, _corner);

View file

@ -124,6 +124,12 @@ enum KEYFRAME_END {
ping ping
} }
enum VALIDATION {
pass,
warning,
error
}
function isGraphable(type) { function isGraphable(type) {
switch(type) { switch(type) {
case VALUE_TYPE.integer : case VALUE_TYPE.integer :
@ -163,6 +169,8 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T
display_type = VALUE_DISPLAY._default; display_type = VALUE_DISPLAY._default;
display_data = -1; display_data = -1;
value_validation = VALIDATION.pass;
static setVisible = function(inspector) { static setVisible = function(inspector) {
show_in_inspector = inspector; show_in_inspector = inspector;
visible = argument_count > 1? argument[1] : visible; visible = argument_count > 1? argument[1] : visible;
@ -369,6 +377,35 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T
} }
resetDisplay(); resetDisplay();
static onValidate = function() {
value_validation = VALIDATION.pass;
switch(type) {
case VALUE_TYPE.path:
switch(display_type) {
case VALUE_DISPLAY.path_load:
var path = value.getValue();
if(!file_exists(path))
value_validation = VALIDATION.error;
break;
case VALUE_DISPLAY.path_array:
var paths = value.getValue();
if(isArray(paths)) {
for( var i = 0; i < array_length(paths); i++ ) {
if(!file_exists(paths[i]))
value_validation = VALIDATION.error;
}
} else
value_validation = VALIDATION.error;
break;
}
break;
}
node.onValidate();
return self;
}
static getValue = function() { static getValue = function() {
var _val = getValueRecursive(); var _val = getValueRecursive();
var val = _val[0]; var val = _val[0];
@ -477,6 +514,7 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T
node.onValueUpdate(index); node.onValueUpdate(index);
} }
onValidate();
return updated; return updated;
} }
@ -1005,6 +1043,8 @@ function NodeValue(_index, _name, _node, _connect, _type, _value, _tag = VALUE_T
if(ds_map_exists(_map, "data")) if(ds_map_exists(_map, "data"))
ds_list_copy(extra_data, _map[? "data"]); ds_list_copy(extra_data, _map[? "data"]);
onValidate();
} }
static connect = function() { static connect = function() {

View file

@ -45,7 +45,6 @@ function Panel_Graph(_panel) : PanelContent(_panel) constructor {
node_hovering = noone; node_hovering = noone;
node_hover = noone; node_hover = noone;
node_focus = noone; node_focus = noone;
node_previewing = noone;
junction_hovering = noone; junction_hovering = noone;
@ -265,9 +264,7 @@ function Panel_Graph(_panel) : PanelContent(_panel) constructor {
} }
ds_list_add(nodes_select_list, node_focus); ds_list_add(nodes_select_list, node_focus);
} else if(node_focus.previewable && DOUBLE_CLICK) { } else if(node_focus.previewable && DOUBLE_CLICK) {
node_previewing = node_focus; PANEL_PREVIEW.setNodePreview(node_focus);
if(PREF_MAP[? "reset_display"])
PANEL_PREVIEW.do_fullView = true;
} else { } else {
var hover_selected = false; var hover_selected = false;
for( var i = 0; i < ds_list_size(nodes_select_list); i++ ) { for( var i = 0; i < ds_list_size(nodes_select_list); i++ ) {
@ -689,11 +686,9 @@ function Panel_Graph(_panel) : PanelContent(_panel) constructor {
} }
function setCurrentPreview(_node = node_focus) { function setCurrentPreview(_node = node_focus) {
if(_node) { if(!_node) return;
node_previewing = _node;
if(PREF_MAP[? "reset_display"]) PANEL_PREVIEW.setNodePreview(_node);
PANEL_PREVIEW.do_fullView = true;
}
} }
function setCurrentExport(_node = node_focus) { function setCurrentExport(_node = node_focus) {
@ -861,7 +856,8 @@ function Panel_Graph(_panel) : PanelContent(_panel) constructor {
nodes_list = NODES; nodes_list = NODES;
node_hover = noone; node_hover = noone;
node_focus = noone; node_focus = noone;
node_previewing = noone; PANEL_PREVIEW.preview_node[0] = noone;
PANEL_PREVIEW.preview_node[1] = noone;
toOrigin(); toOrigin();
PANEL_ANIMATION.updatePropertyList(); PANEL_ANIMATION.updatePropertyList();
@ -871,7 +867,8 @@ function Panel_Graph(_panel) : PanelContent(_panel) constructor {
nodes_list = node_context[| i].nodes; nodes_list = node_context[| i].nodes;
node_hover = noone; node_hover = noone;
node_focus = noone; node_focus = noone;
node_previewing = noone; PANEL_PREVIEW.preview_node[0] = noone;
PANEL_PREVIEW.preview_node[1] = noone;
toOrigin(); toOrigin();
PANEL_ANIMATION.updatePropertyList(); PANEL_ANIMATION.updatePropertyList();

View file

@ -267,18 +267,24 @@ function Panel_Inspector(_panel) : PanelContent(_panel) constructor {
hh += 34 + padd; hh += 34 + padd;
break; break;
case VALUE_TYPE.path : case VALUE_TYPE.path :
jun.editWidget.draw(32, _hsy, w - 80, 34, _m);
draw_sprite_ext(s_button_path_icon, 0, w - 72, _hsy + 17, 1, 1, 0, c_white, 1);
draw_set_text(f_p0, fa_left, fa_center, c_white);
var val = jun.showValue(), txt; var val = jun.showValue(), txt;
var pathExist = jun.value_validation == VALIDATION.pass;
if(is_array(val)) { if(is_array(val)) {
txt = "[" + string(array_length(val)) + "] " + val[0]; txt = "[" + string(array_length(val)) + "] " + val[0];
} else } else {
txt = val; txt = val;
}
jun.editWidget.draw(32, _hsy, w - 80, 34, _m,, pathExist? c_white : c_ui_red);
draw_sprite_ext(pathExist? s_button_path_icon : s_button_path_not_found_icon, 0, w - 72, _hsy + 17, 1, 1, 0, c_white, 1);
draw_set_text(f_p0, fa_left, fa_center, c_white);
draw_text_cut(40, _hsy + 17, txt, w - 140); draw_text_cut(40, _hsy + 17, txt, w - 140);
if(!pathExist && point_in_rectangle(_m[0], _m[1], w - 72 - 17, _hsy, w - 72 + 17, _hsy + 34)) {
TOOLTIP = "File not exist";
}
_hey = _hsy + 34; _hey = _hsy + 34;
hh += 34 + padd; hh += 34 + padd;
break; break;

View file

@ -20,14 +20,15 @@ function Panel_Preview(_panel) : PanelContent(_panel) constructor {
canvas_drag_sx = 0; canvas_drag_sx = 0;
canvas_drag_sy = 0; canvas_drag_sy = 0;
preview_channel = 0; preview_node = [ noone, noone ];
preview_surface = 0; preview_channel = [ 0, 0 ];
preview_surface = [ 0, 0 ];
preview_x = 0; preview_x = 0;
preview_x_to = 0; preview_x_to = 0;
preview_x_max = 0; preview_x_max = 0;
preview_sequence = 0; preview_sequence = [ 0, 0 ];
_preview_sequence = 0; _preview_sequence = preview_sequence;
preview_rate = 10; preview_rate = 10;
grid_show = false; grid_show = false;
@ -38,6 +39,48 @@ function Panel_Preview(_panel) : PanelContent(_panel) constructor {
tool_sub_index = 0; tool_sub_index = 0;
right_menu_y = 8; right_menu_y = 8;
mouse_on_preview = false;
resetViewOnDoubleClick = true;
splitView = 0;
splitPosition = 0.5;
splitSelection = 0;
splitViewDragging = false;
splitViewStart = 0;
splitViewMouse = 0;
toolbar_height = 40;
toolbars = [
[
s_icon_reset_when_preview,
function() { return resetViewOnDoubleClick; },
function() { return resetViewOnDoubleClick? "Center canvas on preview" : "Keep canvas on preview" },
function() { resetViewOnDoubleClick = !resetViewOnDoubleClick; }
],
[
s_icon_split_view,
function() { return splitView; },
function() {
switch(splitView) {
case 0 : return "Split view off";
case 1 : return "Horizontal split view";
case 2 : return "Vertical split view";
}
return "Split view";
},
function() { splitView = (splitView + 1) % 3; }
],
];
actions = [
[
s_icon_center_canvas,
"Center canvas",
function() { fullView(); }
],
]
tb_framerate = new textBox(TEXTBOX_INPUT.number, function(val) { preview_rate = real(val); }) tb_framerate = new textBox(TEXTBOX_INPUT.number, function(val) { preview_rate = real(val); })
@ -46,6 +89,50 @@ function Panel_Preview(_panel) : PanelContent(_panel) constructor {
addHotkey("Preview", "Toggle grid", "G", MOD_KEY.ctrl, function() { grid_show = !grid_show; }); addHotkey("Preview", "Toggle grid", "G", MOD_KEY.ctrl, function() { grid_show = !grid_show; });
function setNodePreview(node) {
if(resetViewOnDoubleClick)
do_fullView = true;
preview_node[splitView? splitSelection : 0] = node;
}
function getNodePreview() { return preview_node[splitView? splitSelection : 0]; }
function getNodePreviewSurface() { return preview_surface[splitView? splitSelection : 0]; }
function getNodePreviewSequence() { return preview_sequence[splitView? splitSelection : 0]; }
function getPreviewData() {
preview_surface = [ 0, 0 ];
preview_sequence = [ 0, 0 ];
for( var i = 0; i < 2; i++ ) {
var node = preview_node[i];
if(node == noone) continue;
if(node.preview_channel >= ds_list_size(node.outputs)) continue;
var _prev_val = node.outputs[| node.preview_channel];
if(_prev_val.type != VALUE_TYPE.surface) return;
var value = _prev_val.getValue();
if(is_array(value))
preview_sequence[i] = value;
else
preview_surface[i] = value;
if(preview_sequence[i] != 0) {
if(array_length(preview_sequence[i]) == 0) return;
preview_surface[i] = preview_sequence[i][safe_mod(node.preview_index, array_length(preview_sequence[i]))];
}
}
var prevS = getNodePreviewSurface();
if(is_surface(prevS)) {
canvas_w = surface_get_width(prevS);
canvas_h = surface_get_height(prevS);
}
}
function dragCanvas() { function dragCanvas() {
if(canvas_dragging) { if(canvas_dragging) {
var dx = mx - canvas_drag_mx; var dx = mx - canvas_drag_mx;
@ -87,10 +174,12 @@ function Panel_Preview(_panel) : PanelContent(_panel) constructor {
} }
function fullView() { function fullView() {
if(!is_surface(preview_surface)) return; var prevS = getNodePreviewSurface();
if(!is_surface(prevS)) return;
canvas_w = surface_get_width(prevS);
canvas_h = surface_get_height(prevS);
canvas_w = surface_get_width(preview_surface);
canvas_h = surface_get_height(preview_surface);
var ss = min((w - 32) / canvas_w, (h - 32) / canvas_h); var ss = min((w - 32) / canvas_w, (h - 32) / canvas_h);
canvas_s = ss; canvas_s = ss;
@ -103,13 +192,22 @@ function Panel_Preview(_panel) : PanelContent(_panel) constructor {
} }
} }
sbChannel = new scrollBox([], function(index) { PANEL_GRAPH.node_previewing.preview_channel = index; }); sbChannel = new scrollBox([], function(index) {
var node = getNodePreview();
if(node == noone) return;
node.preview_channel = index;
});
sbChannel.align = fa_left; sbChannel.align = fa_left;
function drawNodeChannel(_node) { function drawNodeChannel(_x, _y) {
var _node = getNodePreview();
if(_node == noone) return;
if(ds_list_size(_node.outputs) < 2) return; if(ds_list_size(_node.outputs) < 2) return;
var chName = []; var chName = [];
var ww = 40; var ww = 40;
var hh = 28;
draw_set_text(f_p0, fa_center, fa_center, c_white); draw_set_text(f_p0, fa_center, fa_center, c_white);
for( var i = 0; i < ds_list_size(_node.outputs); i++ ) { for( var i = 0; i < ds_list_size(_node.outputs); i++ ) {
@ -120,57 +218,94 @@ function Panel_Preview(_panel) : PanelContent(_panel) constructor {
sbChannel.hover = HOVER == panel; sbChannel.hover = HOVER == panel;
sbChannel.active = FOCUS == panel; sbChannel.active = FOCUS == panel;
sbChannel.draw(w - 8 - ww, right_menu_y, ww, 34, _node.outputs[| _node.preview_channel].name, [mx, my], panel.x, panel.y); sbChannel.draw(_x - ww, _y - hh / 2, ww, hh, _node.outputs[| _node.preview_channel].name, [mx, my], panel.x, panel.y);
right_menu_y += 40; right_menu_y += 40;
} }
function drawNodePreview(_node) { function drawNodePreview() {
preview_surface = 0; var ss = canvas_s;
preview_sequence = 0;
if(_node.preview_channel >= ds_list_size(_node.outputs)) return;
var _prev_val = _node.outputs[| _node.preview_channel]; if(is_surface(preview_surface[0])) {
if(_prev_val.type != VALUE_TYPE.surface) return; var psx = canvas_x + preview_node[0].preview_x * ss;
var psy = canvas_y + preview_node[0].preview_y * ss;
var value = _prev_val.getValue(); var psw = surface_get_width(preview_surface[0]);
var psh = surface_get_height(preview_surface[0]);
var pswd = psw * ss;
var pshd = psh * ss;
if(is_array(value)) { var psx1 = psx + pswd;
preview_sequence = value; var psy1 = psy + pshd;
} else {
preview_surface = value;
canvas_w = surface_get_width(preview_surface);
canvas_h = surface_get_height(preview_surface);
} }
if(preview_sequence != 0) { if(is_surface(preview_surface[1])) {
if(array_length(preview_sequence) == 0) return; var ssx = canvas_x + preview_node[1].preview_x * ss;
preview_surface = preview_sequence[safe_mod(_node.preview_index, array_length(preview_sequence))]; var ssy = canvas_y + preview_node[1].preview_y * ss;
canvas_w = surface_get_width(preview_surface); var ssw = surface_get_width(preview_surface[1]);
canvas_h = surface_get_height(preview_surface); var ssh = surface_get_height(preview_surface[1]);
} }
if(is_surface(preview_surface)) { switch(splitView) {
draw_surface_ext_safe(preview_surface, canvas_x + _node.preview_x * canvas_s, canvas_y + _node.preview_y * canvas_s, canvas_s, canvas_s, 0, c_white, 1); case 0 :
if(is_surface(preview_surface[0])) {
if(FOCUS == panel) { preview_node[0].previewing = 1;
if(mouse_check_button_pressed(mb_right)) { draw_surface_ext_safe(preview_surface[0], psx, psy, ss, ss, 0, c_white, 1);
var dia = dialogCall(o_dialog_menubox, mouse_mx + 8, mouse_my + 8);
dia.setMenu([
[ "Save current preview as...", function() { PANEL_PREVIEW.saveCurrentFrame(); } ],
[ "Save all current previews as...", function() { PANEL_PREVIEW.saveAllCurrentFrames(); } ],
]);
} }
} break;
case 1 :
var sp = splitPosition * w;
if(do_fullView) { if(is_surface(preview_surface[0])) {
do_fullView = false; preview_node[0].previewing = 2;
fullView(); var maxX = min(sp, psx1);
} var sW = min(psw, (maxX - psx) / ss);
if(sW > 0)
draw_surface_part_ext_safe(preview_surface[0], 0, 0, sW, psh, psx, psy, ss, ss, 0, c_white, 1);
}
if(is_surface(preview_surface[1])) {
preview_node[1].previewing = 3;
var minX = max(ssx, sp);
var sX = (minX - ssx) / ss;
var spx = max(sp, ssx);
if(sX >= 0 && sX < ssw)
draw_surface_part_ext_safe(preview_surface[1], sX, 0, ssw - sX, ssh, spx, ssy, ss, ss, 0, c_white, 1);
}
break;
case 2 :
var sp = splitPosition * h;
if(is_surface(preview_surface[0])) {
preview_node[0].previewing = 4;
var maxY = min(sp, psy1);
var sH = min(psh, (maxY - psy) / ss);
if(sH > 0)
draw_surface_part_ext_safe(preview_surface[0], 0, 0, psw, sH, psx, psy, ss, ss, 0, c_white, 1);
}
if(is_surface(preview_surface[1])) {
preview_node[1].previewing = 5;
var minY = max(ssy, sp);
var sY = (minY - ssy) / ss;
var spy = max(sp, ssy);
if(sY >= 0 && sY < ssh)
draw_surface_part_ext_safe(preview_surface[1], 0, sY, ssw, ssh - sY, ssx, spy, ss, ss, 0, c_white, 1);
}
break;
} }
} }
function drawPreviewOverlay(_node) { function drawPreviewOverlay(_node) {
right_menu_y = 8;
draw_set_text(f_p0, fa_right, fa_top, c_ui_blue_ltgrey);
draw_text(w - 8, right_menu_y, "fps " + string(fps));
right_menu_y += 20;
draw_set_text(f_p0, fa_right, fa_top, c_ui_blue_ltgrey); draw_set_text(f_p0, fa_right, fa_top, c_ui_blue_ltgrey);
draw_text(w - 8, right_menu_y, "frame " + string(ANIMATOR.current_frame) + "/" + string(ANIMATOR.frames_total)); draw_text(w - 8, right_menu_y, "frame " + string(ANIMATOR.current_frame) + "/" + string(ANIMATOR.frames_total));
right_menu_y += 20; right_menu_y += 20;
@ -182,9 +317,10 @@ function Panel_Preview(_panel) : PanelContent(_panel) constructor {
var prev_size = 48; var prev_size = 48;
preview_x = lerp_float(preview_x, preview_x_to, 5); preview_x = lerp_float(preview_x, preview_x_to, 5);
if(preview_sequence != 0) { var pseq = getNodePreviewSequence();
if(preview_sequence != _preview_sequence) { if(pseq != 0) {
_preview_sequence = preview_sequence; if(pseq != _preview_sequence) {
_preview_sequence = pseq;
preview_x = 0; preview_x = 0;
preview_x_to = 0; preview_x_to = 0;
} }
@ -196,11 +332,11 @@ function Panel_Preview(_panel) : PanelContent(_panel) constructor {
} }
preview_x_max = 0; preview_x_max = 0;
for(var i = 0; i < array_length(preview_sequence); i++) { for(var i = 0; i < array_length(pseq); i++) {
var xx = preview_x + 8 + (prev_size + 8) * i; var xx = preview_x + 8 + (prev_size + 8) * i;
var yy = h - prev_size - 8; var yy = h - prev_size - 8;
var prev = preview_sequence[i]; var prev = pseq[i];
if(!is_surface(prev)) continue; if(!is_surface(prev)) continue;
var prev_w = surface_get_width(prev); var prev_w = surface_get_width(prev);
@ -282,12 +418,15 @@ function Panel_Preview(_panel) : PanelContent(_panel) constructor {
function drawNodeOverlay(_active, _node) { function drawNodeOverlay(_active, _node) {
var active = _active; var active = _active;
var _mx = mouse_on_preview? mx : -99999;
var _my = mouse_on_preview? my : -99999;
if(_node.tools != -1) { if(_node.tools != -1) {
var xx = 16; var xx = 16;
var yy = 16; var yy = 16;
for(var i = 0; i < array_length(_node.tools); i++) { for(var i = 0; i < array_length(_node.tools); i++) {
var b = buttonInstant(s_button, xx, yy, 40, 40, [mx, my], FOCUS == panel, HOVER == panel); var b = buttonInstant(s_button, xx, yy, 40, 40, [_mx, _my], FOCUS == panel, HOVER == panel);
var toggle = false; var toggle = false;
if(b == 1) { if(b == 1) {
TOOLTIP = _node.tools[i][0]; TOOLTIP = _node.tools[i][0];
@ -321,11 +460,115 @@ function Panel_Preview(_panel) : PanelContent(_panel) constructor {
} }
} }
_node.drawOverlay(active, canvas_x + _node.preview_x * canvas_s, canvas_y + _node.preview_y * canvas_s, canvas_s, mx, my); _node.drawOverlay(active, canvas_x + _node.preview_x * canvas_s, canvas_y + _node.preview_y * canvas_s, canvas_s, _mx, _my);
}
function drawToolBar() {
var ty = h - toolbar_height;
//draw_sprite_stretched_ext(s_toolbar_shadow, 0, 0, ty - 12 + 4, w, 12, c_white, 0.5);
draw_set_color(c_ui_blue_black);
draw_rectangle(0, ty, w, h, false);
draw_set_color(c_ui_blue_dkgrey);
draw_line(0, ty, w, ty);
var tbx = toolbar_height / 2;
var tby = ty + toolbar_height / 2;
for( var i = 0; i < array_length(toolbars); i++ ) {
var tb = toolbars[i];
var tbSpr = tb[0];
var tbInd = tb[1]();
var tbTooltip = tb[2]();
var b = buttonInstant(s_button_hide, tbx - 14, tby - 14, 28, 28, [mx, my], FOCUS == panel, HOVER == panel, tbTooltip, tbSpr, tbInd);
if(b == 2) tb[3]();
tbx += 32;
}
tbx = w - toolbar_height / 2;
for( var i = 0; i < array_length(actions); i++ ) {
var tb = actions[i];
var tbSpr = tb[0];
var tbTooltip = tb[1];
var b = buttonInstant(s_button_hide, tbx - 14, tby - 14, 28, 28, [mx, my], FOCUS == panel, HOVER == panel, tbTooltip, tbSpr, 0);
if(b == 2) tb[2]();
tbx -= 32;
}
draw_set_color(c_ui_blue_dkblack);
draw_line_width(tbx + 12, tby - toolbar_height / 2 + 8, tbx + 12, tby + toolbar_height / 2 - 8, 2);
drawNodeChannel(tbx, tby);
}
function drawSplitView() {
if(splitView == 0) return;
draw_set_color(c_ui_blue_grey);
if(splitViewDragging) {
if(splitView == 1) {
var cx = splitViewStart + (mx - splitViewMouse);
splitPosition = clamp(cx / w, .1, .9);
} else if(splitView == 2) {
var cy = splitViewStart + (my - splitViewMouse);
splitPosition = clamp(cy / h, .1, .9);
}
if(mouse_check_button_released(mb_left))
splitViewDragging = false;
}
if(splitView == 1) {
var sx = w * splitPosition;
if(mouse_on_preview && point_in_rectangle(mx, my, sx - 2, 0, sx + 2, h)) {
draw_line_width(sx, 0, sx, h, 2);
if(mouse_check_button_pressed(mb_left)) {
splitViewDragging = true;
splitViewStart = sx;
splitViewMouse = mx;
}
} else
draw_line_width(sx, 0, sx, h, 1);
draw_sprite(s_panel_active_split, 0, splitSelection? sx + 16 : sx - 16, 16);
if(mouse_on_preview && mouse_check_button_pressed(mb_left)) {
if(point_in_rectangle(mx, my, 0, 0, sx, h))
splitSelection = 0;
else if(point_in_rectangle(mx, my, sx, 0, w, h))
splitSelection = 1;
}
} else {
var sy = h * splitPosition;
if(mouse_on_preview && point_in_rectangle(mx, my, 0, sy - 2, w, sy + 2)) {
draw_line_width(0, sy, w, sy, 2);
if(mouse_check_button_pressed(mb_left)) {
splitViewDragging = true;
splitViewStart = sy;
splitViewMouse = my;
}
} else
draw_line_width(0, sy, w, sy, 1);
draw_sprite(s_panel_active_split, 0, 16, splitSelection? sy + 16 : sy - 16);
if(mouse_on_preview && mouse_check_button_pressed(mb_left)) {
if(point_in_rectangle(mx, my, 0, 0, w, sy))
splitSelection = 0;
else if(point_in_rectangle(mx, my, 0, sy, w, h))
splitSelection = 1;
}
}
} }
function drawContent() { function drawContent() {
right_menu_y = 8; mouse_on_preview = point_in_rectangle(mx, my, 0, 0, w, h - toolbar_height);
draw_clear(c_ui_blue_black); draw_clear(c_ui_blue_black);
if(canvas_bg == -1) { if(canvas_bg == -1) {
@ -335,38 +578,51 @@ function Panel_Preview(_panel) : PanelContent(_panel) constructor {
} }
dragCanvas(); dragCanvas();
if(PANEL_GRAPH.node_previewing) {
PANEL_GRAPH.node_previewing.previewing = true;
drawNodePreview(PANEL_GRAPH.node_previewing);
drawNodeChannel(PANEL_GRAPH.node_previewing);
}
draw_set_text(f_p0, fa_right, fa_top, c_ui_blue_ltgrey); getPreviewData();
draw_text(w - 8, right_menu_y, "fps " + string(fps)); drawNodePreview();
right_menu_y += 20;
if(PANEL_GRAPH.node_previewing) { if(PANEL_GRAPH.node_focus)
drawPreviewOverlay(PANEL_GRAPH.node_previewing);
}
if(PANEL_GRAPH.node_focus) {
drawNodeOverlay(FOCUS == panel, PANEL_GRAPH.node_focus); drawNodeOverlay(FOCUS == panel, PANEL_GRAPH.node_focus);
var viewNode = getNodePreview();
if(viewNode) {
drawPreviewOverlay(viewNode);
} }
if(last_focus != PANEL_GRAPH.node_focus) { if(last_focus != PANEL_GRAPH.node_focus) {
last_focus = PANEL_GRAPH.node_focus; last_focus = PANEL_GRAPH.node_focus;
tool_index = -1; tool_index = -1;
} }
if(do_fullView) {
do_fullView = false;
fullView();
}
if(FOCUS == panel) {
if(mouse_check_button_pressed(mb_right)) {
var dia = dialogCall(o_dialog_menubox, mouse_mx + 8, mouse_my + 8);
dia.setMenu([
[ "Save current preview as...", function() { PANEL_PREVIEW.saveCurrentFrame(); } ],
[ "Save all current previews as...", function() { PANEL_PREVIEW.saveAllCurrentFrames(); } ],
]);
}
}
drawSplitView();
drawToolBar();
} }
function saveCurrentFrame() { function saveCurrentFrame() {
if(!is_surface(preview_surface)) return; var prevS = getNodePreviewSurface();
if(!is_surface(prevS)) return;
var path = get_save_filename(".png", "export"); var path = get_save_filename(".png", "export");
if(path == "") return; if(path == "") return;
if(filename_ext(path) == "") path += ".png"; if(filename_ext(path) == "") path += ".png";
surface_save(preview_surface, path); surface_save(prevS, path);
} }
function saveAllCurrentFrames() { function saveAllCurrentFrames() {
@ -378,8 +634,9 @@ function Panel_Preview(_panel) : PanelContent(_panel) constructor {
var name = string_replace_all(path, ext, ""); var name = string_replace_all(path, ext, "");
var ind = 0; var ind = 0;
for(var i = 0; i < array_length(preview_sequence); i++) { var pseq = getNodePreviewSequence();
var prev = preview_sequence[i]; for(var i = 0; i < array_length(pseq); i++) {
var prev = pseq[i];
if(!is_surface(prev)) continue; if(!is_surface(prev)) continue;
var _name = name + string(ind) + ext; var _name = name + string(ind) + ext;
surface_save(prev, _name); surface_save(prev, _name);

View file

@ -7,6 +7,9 @@ function draw_surface_ext_safe(surface, _x, _y, _xs, _ys, _rot, _col, _alpha) {
function draw_surface_tiled_ext_safe(surface, _x, _y, _xs, _ys, _col, _alpha) { function draw_surface_tiled_ext_safe(surface, _x, _y, _xs, _ys, _col, _alpha) {
if(is_surface(surface)) draw_surface_tiled_ext(surface, _x, _y, _xs, _ys, _col, _alpha); if(is_surface(surface)) draw_surface_tiled_ext(surface, _x, _y, _xs, _ys, _col, _alpha);
} }
function draw_surface_part_ext_safe(surface, _l, _t, _w, _h, _x, _y, _xs, _ys, _rot, _col, _alpha) {
if(is_surface(surface)) draw_surface_part_ext(surface, _l, _t, _w, _h, _x, _y, _xs, _ys, _col, _alpha);
}
function surface_size_to(surface, width, height) { function surface_size_to(surface, width, height) {
if(width <= 1 || height <= 1) return false; if(width <= 1 || height <= 1) return false;

View file

@ -0,0 +1,58 @@
//
// Simple passthrough fragment shader
//
varying vec2 v_vTexcoord;
varying vec4 v_vColour;
uniform vec2 dimension;
uniform int filter;
const mat3 sobel = mat3( -1., -2., -1.,
0., 0., 0.,
1., 2., 1);
const mat3 prewit = mat3( -1., -1., -1.,
0., 0., 0.,
1., 1., 1);
const mat3 laplac = mat3( 1., 1., 1.,
1., -8., 1.,
1., 1., 1);
#define TAU 6.28318
float bright(in vec4 col) {
return dot(col.rgb, vec3(0.2126, 0.7152, 0.0722)) * col.a;
}
void main() {
vec2 texel = vec2(1.) / dimension;
vec4 point = texture2D( gm_BaseTexture, v_vTexcoord );
vec4 hColor = vec4(0.);
vec4 vColor = vec4(0.);
for(float i = -1.; i <= 1.; i++) {
for(float j = -1.; j <= 1.; j++) {
vec2 pxs = v_vTexcoord + vec2(texel.x * i, texel.y * j);
pxs = clamp(pxs, vec2(0.), vec2(1.));
int ii = int(1. + i);
int jj = int(1. + j);
if(filter == 0) {
hColor += texture2D( gm_BaseTexture, pxs ) * sobel[jj][ii];
vColor += texture2D( gm_BaseTexture, pxs ) * sobel[ii][jj];
} else if(filter == 1) {
hColor += texture2D( gm_BaseTexture, pxs ) * prewit[jj][ii];
vColor += texture2D( gm_BaseTexture, pxs ) * prewit[ii][jj];
} else if(filter == 2) {
hColor += texture2D( gm_BaseTexture, pxs ) * laplac[jj][ii];
}
}
}
if(filter == 2)
gl_FragColor = vec4(vec3(hColor), point.a);
else
gl_FragColor = vec4(vec3(distance(hColor, vColor)), point.a);
}

View file

@ -0,0 +1,19 @@
//
// Simple passthrough vertex shader
//
attribute vec3 in_Position; // (x,y,z)
//attribute vec3 in_Normal; // (x,y,z) unused in this shader.
attribute vec4 in_Colour; // (r,g,b,a)
attribute vec2 in_TextureCoord; // (u,v)
varying vec2 v_vTexcoord;
varying vec4 v_vColour;
void main()
{
vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0);
gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos;
v_vColour = in_Colour;
v_vTexcoord = in_TextureCoord;
}

View file

@ -0,0 +1,11 @@
{
"type": 1,
"parent": {
"name": "filter",
"path": "folders/shader/filter.yy",
},
"resourceVersion": "1.0",
"name": "sh_edge_detect",
"tags": [],
"resourceType": "GMShader",
}

View file

@ -19,6 +19,8 @@ uniform vec2 dimension;
uniform vec2 center; uniform vec2 center;
uniform vec2 scale; uniform vec2 scale;
uniform vec4 bgColor;
#define PI 3.14159265359 #define PI 3.14159265359
#define TAU 6.28318530718 #define TAU 6.28318530718
@ -125,8 +127,5 @@ void main() {
color = smoothstep(0.05, 0., d); color = smoothstep(0.05, 0., d);
} }
if(bg == 0) gl_FragColor = mix(bgColor, v_vColour, color);
gl_FragColor = vec4(vec3(1.), color);
else
gl_FragColor = vec4(vec3(v_vColour.rgb * color), 1.0);
} }

View file

@ -8,5 +8,5 @@ uniform sampler2D map;
void main() { void main() {
vec2 pos = texture2D( map, v_vTexcoord ).rg; vec2 pos = texture2D( map, v_vTexcoord ).rg;
gl_FragColor = texture2D( gm_BaseTexture, pos ); gl_FragColor = texture2D( gm_BaseTexture, vec2(1. - pos.x, pos.y) );
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 B

View file

@ -0,0 +1,79 @@
{
"bboxMode": 0,
"collisionKind": 1,
"type": 0,
"origin": 4,
"preMultiplyAlpha": false,
"edgeFiltering": false,
"collisionTolerance": 0,
"swfPrecision": 2.525,
"bbox_left": 2,
"bbox_right": 23,
"bbox_top": 3,
"bbox_bottom": 22,
"HTile": false,
"VTile": false,
"For3D": false,
"width": 24,
"height": 24,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"swatchColours": null,
"gridX": 0,
"gridY": 0,
"frames": [
{"compositeImage":{"FrameId":{"name":"20bf0b30-087f-41ea-9f65-bab0ad8f6cf6","path":"sprites/s_button_path_not_found_icon/s_button_path_not_found_icon.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"20bf0b30-087f-41ea-9f65-bab0ad8f6cf6","path":"sprites/s_button_path_not_found_icon/s_button_path_not_found_icon.yy",},"LayerId":{"name":"43bd08bf-5a27-4723-8af6-0df84c346384","path":"sprites/s_button_path_not_found_icon/s_button_path_not_found_icon.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"s_button_path_not_found_icon","path":"sprites/s_button_path_not_found_icon/s_button_path_not_found_icon.yy",},"resourceVersion":"1.0","name":"20bf0b30-087f-41ea-9f65-bab0ad8f6cf6","tags":[],"resourceType":"GMSpriteFrame",},
],
"sequence": {
"spriteId": {"name":"s_button_path_not_found_icon","path":"sprites/s_button_path_not_found_icon/s_button_path_not_found_icon.yy",},
"timeUnits": 1,
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"autoRecord": true,
"volume": 1.0,
"length": 1.0,
"events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"MessageEventKeyframe",},
"moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"MomentsEventKeyframe",},
"tracks": [
{"name":"frames","spriteId":null,"keyframes":{"Keyframes":[
{"id":"fcd0eae0-37d1-464b-8779-bdd09d91ae56","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"20bf0b30-087f-41ea-9f65-bab0ad8f6cf6","path":"sprites/s_button_path_not_found_icon/s_button_path_not_found_icon.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe`1","elementType":"SpriteFrameKeyframe",},
],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"SpriteFrameKeyframe",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"resourceVersion":"1.0","tags":[],"resourceType":"GMSpriteFramesTrack","modifiers":[],},
],
"visibleRange": {"x":0.0,"y":0.0,},
"lockOrigin": false,
"showBackdrop": true,
"showBackdropImage": false,
"backdropImagePath": "",
"backdropImageOpacity": 0.5,
"backdropWidth": 1366,
"backdropHeight": 768,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"xorigin": 12,
"yorigin": 12,
"eventToFunction": {},
"eventStubScript": null,
"parent": {"name":"s_button_path_not_found_icon","path":"sprites/s_button_path_not_found_icon/s_button_path_not_found_icon.yy",},
"resourceVersion": "1.4",
"name": "s_button_path_not_found_icon",
"tags": [],
"resourceType": "GMSequence",
},
"layers": [
{"visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default","resourceVersion":"1.0","name":"43bd08bf-5a27-4723-8af6-0df84c346384","tags":[],"resourceType":"GMImageLayer",},
],
"nineSlice": null,
"parent": {
"name": "icon",
"path": "folders/sprites/icon.yy",
},
"resourceVersion": "1.0",
"name": "s_button_path_not_found_icon",
"tags": [],
"resourceType": "GMSprite",
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

View file

@ -0,0 +1,79 @@
{
"bboxMode": 0,
"collisionKind": 1,
"type": 0,
"origin": 4,
"preMultiplyAlpha": false,
"edgeFiltering": false,
"collisionTolerance": 0,
"swfPrecision": 2.525,
"bbox_left": 1,
"bbox_right": 22,
"bbox_top": 1,
"bbox_bottom": 22,
"HTile": false,
"VTile": false,
"For3D": false,
"width": 24,
"height": 24,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"swatchColours": null,
"gridX": 0,
"gridY": 0,
"frames": [
{"compositeImage":{"FrameId":{"name":"531efc3e-504c-45a6-9725-1ba64f8e23ac","path":"sprites/s_icon_center_canvas/s_icon_center_canvas.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"531efc3e-504c-45a6-9725-1ba64f8e23ac","path":"sprites/s_icon_center_canvas/s_icon_center_canvas.yy",},"LayerId":{"name":"6ce7236a-cc07-4536-8c2e-8a75a8a043b5","path":"sprites/s_icon_center_canvas/s_icon_center_canvas.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"s_icon_center_canvas","path":"sprites/s_icon_center_canvas/s_icon_center_canvas.yy",},"resourceVersion":"1.0","name":"531efc3e-504c-45a6-9725-1ba64f8e23ac","tags":[],"resourceType":"GMSpriteFrame",},
],
"sequence": {
"spriteId": {"name":"s_icon_center_canvas","path":"sprites/s_icon_center_canvas/s_icon_center_canvas.yy",},
"timeUnits": 1,
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"autoRecord": true,
"volume": 1.0,
"length": 1.0,
"events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"MessageEventKeyframe",},
"moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"MomentsEventKeyframe",},
"tracks": [
{"name":"frames","spriteId":null,"keyframes":{"Keyframes":[
{"id":"cee1e1ce-dd41-4fd7-8d63-9d8a4ff2c878","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"531efc3e-504c-45a6-9725-1ba64f8e23ac","path":"sprites/s_icon_center_canvas/s_icon_center_canvas.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe`1","elementType":"SpriteFrameKeyframe",},
],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"SpriteFrameKeyframe",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"resourceVersion":"1.0","tags":[],"resourceType":"GMSpriteFramesTrack","modifiers":[],},
],
"visibleRange": {"x":0.0,"y":0.0,},
"lockOrigin": false,
"showBackdrop": true,
"showBackdropImage": false,
"backdropImagePath": "",
"backdropImageOpacity": 0.5,
"backdropWidth": 1366,
"backdropHeight": 768,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"xorigin": 12,
"yorigin": 12,
"eventToFunction": {},
"eventStubScript": null,
"parent": {"name":"s_icon_center_canvas","path":"sprites/s_icon_center_canvas/s_icon_center_canvas.yy",},
"resourceVersion": "1.4",
"name": "s_icon_center_canvas",
"tags": [],
"resourceType": "GMSequence",
},
"layers": [
{"visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default","resourceVersion":"1.0","name":"6ce7236a-cc07-4536-8c2e-8a75a8a043b5","tags":[],"resourceType":"GMImageLayer",},
],
"nineSlice": null,
"parent": {
"name": "preview",
"path": "folders/sprites/panels/preview.yy",
},
"resourceVersion": "1.0",
"name": "s_icon_center_canvas",
"tags": [],
"resourceType": "GMSprite",
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

View file

@ -0,0 +1,83 @@
{
"bboxMode": 0,
"collisionKind": 1,
"type": 0,
"origin": 4,
"preMultiplyAlpha": false,
"edgeFiltering": false,
"collisionTolerance": 0,
"swfPrecision": 2.525,
"bbox_left": 3,
"bbox_right": 23,
"bbox_top": 3,
"bbox_bottom": 22,
"HTile": false,
"VTile": false,
"For3D": false,
"width": 24,
"height": 24,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"swatchColours": null,
"gridX": 0,
"gridY": 0,
"frames": [
{"compositeImage":{"FrameId":{"name":"bc00b74e-b598-40aa-91a5-2cc0057c98f3","path":"sprites/s_icon_reset_when_preview/s_icon_reset_when_preview.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"bc00b74e-b598-40aa-91a5-2cc0057c98f3","path":"sprites/s_icon_reset_when_preview/s_icon_reset_when_preview.yy",},"LayerId":{"name":"3edb7d08-3473-4cdf-988b-26184f73125e","path":"sprites/s_icon_reset_when_preview/s_icon_reset_when_preview.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"s_icon_reset_when_preview","path":"sprites/s_icon_reset_when_preview/s_icon_reset_when_preview.yy",},"resourceVersion":"1.0","name":"bc00b74e-b598-40aa-91a5-2cc0057c98f3","tags":[],"resourceType":"GMSpriteFrame",},
{"compositeImage":{"FrameId":{"name":"47100fae-7582-4a97-81bb-508596d10bae","path":"sprites/s_icon_reset_when_preview/s_icon_reset_when_preview.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"47100fae-7582-4a97-81bb-508596d10bae","path":"sprites/s_icon_reset_when_preview/s_icon_reset_when_preview.yy",},"LayerId":{"name":"3edb7d08-3473-4cdf-988b-26184f73125e","path":"sprites/s_icon_reset_when_preview/s_icon_reset_when_preview.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"s_icon_reset_when_preview","path":"sprites/s_icon_reset_when_preview/s_icon_reset_when_preview.yy",},"resourceVersion":"1.0","name":"47100fae-7582-4a97-81bb-508596d10bae","tags":[],"resourceType":"GMSpriteFrame",},
],
"sequence": {
"spriteId": {"name":"s_icon_reset_when_preview","path":"sprites/s_icon_reset_when_preview/s_icon_reset_when_preview.yy",},
"timeUnits": 1,
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"autoRecord": true,
"volume": 1.0,
"length": 2.0,
"events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"MessageEventKeyframe",},
"moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"MomentsEventKeyframe",},
"tracks": [
{"name":"frames","spriteId":null,"keyframes":{"Keyframes":[
{"id":"fd5bc833-4317-4010-ade6-876d4cf12410","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"bc00b74e-b598-40aa-91a5-2cc0057c98f3","path":"sprites/s_icon_reset_when_preview/s_icon_reset_when_preview.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe`1","elementType":"SpriteFrameKeyframe",},
{"id":"815424db-cc84-41ae-937d-efebb7f1799b","Key":1.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"47100fae-7582-4a97-81bb-508596d10bae","path":"sprites/s_icon_reset_when_preview/s_icon_reset_when_preview.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe`1","elementType":"SpriteFrameKeyframe",},
],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"SpriteFrameKeyframe",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"resourceVersion":"1.0","tags":[],"resourceType":"GMSpriteFramesTrack","modifiers":[],},
],
"visibleRange": null,
"lockOrigin": false,
"showBackdrop": true,
"showBackdropImage": false,
"backdropImagePath": "",
"backdropImageOpacity": 0.5,
"backdropWidth": 1366,
"backdropHeight": 768,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"xorigin": 12,
"yorigin": 12,
"eventToFunction": {},
"eventStubScript": null,
"parent": {"name":"s_icon_reset_when_preview","path":"sprites/s_icon_reset_when_preview/s_icon_reset_when_preview.yy",},
"resourceVersion": "1.4",
"name": "s_icon_reset_when_preview",
"tags": [],
"resourceType": "GMSequence",
},
"layers": [
{"visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default","resourceVersion":"1.0","name":"3edb7d08-3473-4cdf-988b-26184f73125e","tags":[],"resourceType":"GMImageLayer",},
],
"nineSlice": null,
"parent": {
"name": "preview",
"path": "folders/sprites/panels/preview.yy",
},
"resourceVersion": "1.0",
"name": "s_icon_reset_when_preview",
"tags": [],
"resourceType": "GMSprite",
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

View file

@ -0,0 +1,87 @@
{
"bboxMode": 0,
"collisionKind": 1,
"type": 0,
"origin": 4,
"preMultiplyAlpha": false,
"edgeFiltering": false,
"collisionTolerance": 0,
"swfPrecision": 2.525,
"bbox_left": 1,
"bbox_right": 22,
"bbox_top": 1,
"bbox_bottom": 22,
"HTile": false,
"VTile": false,
"For3D": false,
"width": 24,
"height": 24,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"swatchColours": null,
"gridX": 0,
"gridY": 0,
"frames": [
{"compositeImage":{"FrameId":{"name":"ec4f9441-8a68-4767-98e2-fcb8b1e4b808","path":"sprites/s_icon_split_view/s_icon_split_view.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"ec4f9441-8a68-4767-98e2-fcb8b1e4b808","path":"sprites/s_icon_split_view/s_icon_split_view.yy",},"LayerId":{"name":"4e82b6b0-c703-47fb-a44b-7cbec89788b7","path":"sprites/s_icon_split_view/s_icon_split_view.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"s_icon_split_view","path":"sprites/s_icon_split_view/s_icon_split_view.yy",},"resourceVersion":"1.0","name":"ec4f9441-8a68-4767-98e2-fcb8b1e4b808","tags":[],"resourceType":"GMSpriteFrame",},
{"compositeImage":{"FrameId":{"name":"d1fe4196-5f92-4cb6-81d4-14e195d537f0","path":"sprites/s_icon_split_view/s_icon_split_view.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"d1fe4196-5f92-4cb6-81d4-14e195d537f0","path":"sprites/s_icon_split_view/s_icon_split_view.yy",},"LayerId":{"name":"4e82b6b0-c703-47fb-a44b-7cbec89788b7","path":"sprites/s_icon_split_view/s_icon_split_view.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"s_icon_split_view","path":"sprites/s_icon_split_view/s_icon_split_view.yy",},"resourceVersion":"1.0","name":"d1fe4196-5f92-4cb6-81d4-14e195d537f0","tags":[],"resourceType":"GMSpriteFrame",},
{"compositeImage":{"FrameId":{"name":"bc27d796-84c8-44f4-aa64-6435547b8859","path":"sprites/s_icon_split_view/s_icon_split_view.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"bc27d796-84c8-44f4-aa64-6435547b8859","path":"sprites/s_icon_split_view/s_icon_split_view.yy",},"LayerId":{"name":"4e82b6b0-c703-47fb-a44b-7cbec89788b7","path":"sprites/s_icon_split_view/s_icon_split_view.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"s_icon_split_view","path":"sprites/s_icon_split_view/s_icon_split_view.yy",},"resourceVersion":"1.0","name":"bc27d796-84c8-44f4-aa64-6435547b8859","tags":[],"resourceType":"GMSpriteFrame",},
],
"sequence": {
"spriteId": {"name":"s_icon_split_view","path":"sprites/s_icon_split_view/s_icon_split_view.yy",},
"timeUnits": 1,
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"autoRecord": true,
"volume": 1.0,
"length": 3.0,
"events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"MessageEventKeyframe",},
"moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"MomentsEventKeyframe",},
"tracks": [
{"name":"frames","spriteId":null,"keyframes":{"Keyframes":[
{"id":"25a1854a-56f0-49f7-a98c-01bd26245b05","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"ec4f9441-8a68-4767-98e2-fcb8b1e4b808","path":"sprites/s_icon_split_view/s_icon_split_view.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe`1","elementType":"SpriteFrameKeyframe",},
{"id":"694d489a-3042-40ba-aa6f-a361520578a5","Key":1.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"d1fe4196-5f92-4cb6-81d4-14e195d537f0","path":"sprites/s_icon_split_view/s_icon_split_view.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe`1","elementType":"SpriteFrameKeyframe",},
{"id":"7e82c627-a6c0-468f-a4b7-e645269d86d3","Key":2.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"bc27d796-84c8-44f4-aa64-6435547b8859","path":"sprites/s_icon_split_view/s_icon_split_view.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe`1","elementType":"SpriteFrameKeyframe",},
],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"SpriteFrameKeyframe",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"resourceVersion":"1.0","tags":[],"resourceType":"GMSpriteFramesTrack","modifiers":[],},
],
"visibleRange": {"x":0.0,"y":0.0,},
"lockOrigin": false,
"showBackdrop": true,
"showBackdropImage": false,
"backdropImagePath": "",
"backdropImageOpacity": 0.5,
"backdropWidth": 1366,
"backdropHeight": 768,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"xorigin": 12,
"yorigin": 12,
"eventToFunction": {},
"eventStubScript": null,
"parent": {"name":"s_icon_split_view","path":"sprites/s_icon_split_view/s_icon_split_view.yy",},
"resourceVersion": "1.4",
"name": "s_icon_split_view",
"tags": [],
"resourceType": "GMSequence",
},
"layers": [
{"visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default","resourceVersion":"1.0","name":"4e82b6b0-c703-47fb-a44b-7cbec89788b7","tags":[],"resourceType":"GMImageLayer",},
],
"nineSlice": null,
"parent": {
"name": "preview",
"path": "folders/sprites/panels/preview.yy",
},
"resourceVersion": "1.0",
"name": "s_icon_split_view",
"tags": [],
"resourceType": "GMSprite",
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 921 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 921 B

View file

@ -0,0 +1,79 @@
{
"bboxMode": 0,
"collisionKind": 1,
"type": 0,
"origin": 4,
"preMultiplyAlpha": false,
"edgeFiltering": false,
"collisionTolerance": 0,
"swfPrecision": 2.525,
"bbox_left": 3,
"bbox_right": 29,
"bbox_top": 3,
"bbox_bottom": 26,
"HTile": false,
"VTile": false,
"For3D": false,
"width": 32,
"height": 32,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"swatchColours": null,
"gridX": 0,
"gridY": 0,
"frames": [
{"compositeImage":{"FrameId":{"name":"73c31b10-c743-452c-bbde-8561c3d7c7e5","path":"sprites/s_node_edge_detect/s_node_edge_detect.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"73c31b10-c743-452c-bbde-8561c3d7c7e5","path":"sprites/s_node_edge_detect/s_node_edge_detect.yy",},"LayerId":{"name":"83e03dba-03e5-4450-aae1-595c8fbfadb3","path":"sprites/s_node_edge_detect/s_node_edge_detect.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"s_node_edge_detect","path":"sprites/s_node_edge_detect/s_node_edge_detect.yy",},"resourceVersion":"1.0","name":"73c31b10-c743-452c-bbde-8561c3d7c7e5","tags":[],"resourceType":"GMSpriteFrame",},
],
"sequence": {
"spriteId": {"name":"s_node_edge_detect","path":"sprites/s_node_edge_detect/s_node_edge_detect.yy",},
"timeUnits": 1,
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"autoRecord": true,
"volume": 1.0,
"length": 1.0,
"events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"MessageEventKeyframe",},
"moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"MomentsEventKeyframe",},
"tracks": [
{"name":"frames","spriteId":null,"keyframes":{"Keyframes":[
{"id":"e45a69fe-359d-4a7b-8750-d52f2a06bcc1","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"73c31b10-c743-452c-bbde-8561c3d7c7e5","path":"sprites/s_node_edge_detect/s_node_edge_detect.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe`1","elementType":"SpriteFrameKeyframe",},
],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"SpriteFrameKeyframe",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"resourceVersion":"1.0","tags":[],"resourceType":"GMSpriteFramesTrack","modifiers":[],},
],
"visibleRange": {"x":0.0,"y":0.0,},
"lockOrigin": false,
"showBackdrop": true,
"showBackdropImage": false,
"backdropImagePath": "",
"backdropImageOpacity": 0.5,
"backdropWidth": 1366,
"backdropHeight": 768,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"xorigin": 16,
"yorigin": 16,
"eventToFunction": {},
"eventStubScript": null,
"parent": {"name":"s_node_edge_detect","path":"sprites/s_node_edge_detect/s_node_edge_detect.yy",},
"resourceVersion": "1.4",
"name": "s_node_edge_detect",
"tags": [],
"resourceType": "GMSequence",
},
"layers": [
{"visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default","resourceVersion":"1.0","name":"83e03dba-03e5-4450-aae1-595c8fbfadb3","tags":[],"resourceType":"GMImageLayer",},
],
"nineSlice": null,
"parent": {
"name": "icons",
"path": "folders/nodes/icons.yy",
},
"resourceVersion": "1.0",
"name": "s_node_edge_detect",
"tags": [],
"resourceType": "GMSprite",
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 828 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 828 B

View file

@ -0,0 +1,103 @@
{
"bboxMode": 0,
"collisionKind": 1,
"type": 0,
"origin": 4,
"preMultiplyAlpha": false,
"edgeFiltering": false,
"collisionTolerance": 0,
"swfPrecision": 2.525,
"bbox_left": 0,
"bbox_right": 31,
"bbox_top": 0,
"bbox_bottom": 31,
"HTile": false,
"VTile": false,
"For3D": false,
"width": 32,
"height": 32,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"swatchColours": null,
"gridX": 0,
"gridY": 0,
"frames": [
{"compositeImage":{"FrameId":{"name":"b19f5ed9-3e7e-4707-a86e-2cd903191a15","path":"sprites/s_node_error/s_node_error.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"b19f5ed9-3e7e-4707-a86e-2cd903191a15","path":"sprites/s_node_error/s_node_error.yy",},"LayerId":{"name":"4dbd65a2-8ab2-46af-83dc-299a290af3a8","path":"sprites/s_node_error/s_node_error.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"s_node_error","path":"sprites/s_node_error/s_node_error.yy",},"resourceVersion":"1.0","name":"b19f5ed9-3e7e-4707-a86e-2cd903191a15","tags":[],"resourceType":"GMSpriteFrame",},
],
"sequence": {
"spriteId": {"name":"s_node_error","path":"sprites/s_node_error/s_node_error.yy",},
"timeUnits": 1,
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"autoRecord": true,
"volume": 1.0,
"length": 1.0,
"events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"MessageEventKeyframe",},
"moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"MomentsEventKeyframe",},
"tracks": [
{"name":"frames","spriteId":null,"keyframes":{"Keyframes":[
{"id":"794c0a9c-4899-4a98-a7f1-fdd0f61e7a67","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"b19f5ed9-3e7e-4707-a86e-2cd903191a15","path":"sprites/s_node_error/s_node_error.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe`1","elementType":"SpriteFrameKeyframe",},
],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"SpriteFrameKeyframe",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"resourceVersion":"1.0","tags":[],"resourceType":"GMSpriteFramesTrack","modifiers":[],},
],
"visibleRange": null,
"lockOrigin": false,
"showBackdrop": true,
"showBackdropImage": false,
"backdropImagePath": "",
"backdropImageOpacity": 0.5,
"backdropWidth": 1366,
"backdropHeight": 768,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"xorigin": 16,
"yorigin": 16,
"eventToFunction": {},
"eventStubScript": null,
"parent": {"name":"s_node_error","path":"sprites/s_node_error/s_node_error.yy",},
"resourceVersion": "1.4",
"name": "s_node_error",
"tags": [],
"resourceType": "GMSequence",
},
"layers": [
{"visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default","resourceVersion":"1.0","name":"4dbd65a2-8ab2-46af-83dc-299a290af3a8","tags":[],"resourceType":"GMImageLayer",},
],
"nineSlice": {
"left": 15,
"top": 15,
"right": 15,
"bottom": 15,
"guideColour": [
4294902015,
4294902015,
4294902015,
4294902015,
],
"highlightColour": 1728023040,
"highlightStyle": 0,
"enabled": true,
"tileMode": [
0,
0,
0,
0,
0,
],
"resourceVersion": "1.0",
"loadedVersion": null,
"resourceType": "GMNineSliceData",
},
"parent": {
"name": "nodes",
"path": "folders/sprites/nodes.yy",
},
"resourceVersion": "1.0",
"name": "s_node_error",
"tags": [],
"resourceType": "GMSprite",
}

View file

@ -37,14 +37,14 @@
"autoRecord": true, "autoRecord": true,
"volume": 1.0, "volume": 1.0,
"length": 1.0, "length": 1.0,
"events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore<MessageEventKeyframe>",}, "events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"MessageEventKeyframe",},
"moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore<MomentsEventKeyframe>",}, "moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"MomentsEventKeyframe",},
"tracks": [ "tracks": [
{"name":"frames","spriteId":null,"keyframes":{"Keyframes":[ {"name":"frames","spriteId":null,"keyframes":{"Keyframes":[
{"id":"d27ecddf-066e-43e9-9c26-57ec1e936289","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"1ec8ab99-b9e9-4b28-8dd0-9494d6b1f07e","path":"sprites/s_node_shape/s_node_shape.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe<SpriteFrameKeyframe>",}, {"id":"d27ecddf-066e-43e9-9c26-57ec1e936289","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"1ec8ab99-b9e9-4b28-8dd0-9494d6b1f07e","path":"sprites/s_node_shape/s_node_shape.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe`1","elementType":"SpriteFrameKeyframe",},
],"resourceVersion":"1.0","resourceType":"KeyframeStore<SpriteFrameKeyframe>",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"resourceVersion":"1.0","tags":[],"resourceType":"GMSpriteFramesTrack","modifiers":[],}, ],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"SpriteFrameKeyframe",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"resourceVersion":"1.0","tags":[],"resourceType":"GMSpriteFramesTrack","modifiers":[],},
], ],
"visibleRange": {"x":0.0,"y":0.0,}, "visibleRange": null,
"lockOrigin": false, "lockOrigin": false,
"showBackdrop": true, "showBackdrop": true,
"showBackdropImage": false, "showBackdropImage": false,

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 B

View file

@ -0,0 +1,83 @@
{
"bboxMode": 0,
"collisionKind": 1,
"type": 0,
"origin": 4,
"preMultiplyAlpha": false,
"edgeFiltering": false,
"collisionTolerance": 0,
"swfPrecision": 2.525,
"bbox_left": 0,
"bbox_right": 15,
"bbox_top": 0,
"bbox_bottom": 15,
"HTile": false,
"VTile": false,
"For3D": false,
"width": 16,
"height": 16,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"swatchColours": null,
"gridX": 0,
"gridY": 0,
"frames": [
{"compositeImage":{"FrameId":{"name":"e7831c37-1aa9-4d98-aee9-be99c7a88c0d","path":"sprites/s_node_val/s_node_val.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"e7831c37-1aa9-4d98-aee9-be99c7a88c0d","path":"sprites/s_node_val/s_node_val.yy",},"LayerId":{"name":"bcf8f0af-39e1-47ae-8330-c997b5275637","path":"sprites/s_node_val/s_node_val.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"s_node_val","path":"sprites/s_node_val/s_node_val.yy",},"resourceVersion":"1.0","name":"e7831c37-1aa9-4d98-aee9-be99c7a88c0d","tags":[],"resourceType":"GMSpriteFrame",},
{"compositeImage":{"FrameId":{"name":"0903a56b-a604-44e6-9f20-66b30b67e2df","path":"sprites/s_node_val/s_node_val.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"0903a56b-a604-44e6-9f20-66b30b67e2df","path":"sprites/s_node_val/s_node_val.yy",},"LayerId":{"name":"bcf8f0af-39e1-47ae-8330-c997b5275637","path":"sprites/s_node_val/s_node_val.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"s_node_val","path":"sprites/s_node_val/s_node_val.yy",},"resourceVersion":"1.0","name":"0903a56b-a604-44e6-9f20-66b30b67e2df","tags":[],"resourceType":"GMSpriteFrame",},
],
"sequence": {
"spriteId": {"name":"s_node_val","path":"sprites/s_node_val/s_node_val.yy",},
"timeUnits": 1,
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"autoRecord": true,
"volume": 1.0,
"length": 2.0,
"events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"MessageEventKeyframe",},
"moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"MomentsEventKeyframe",},
"tracks": [
{"name":"frames","spriteId":null,"keyframes":{"Keyframes":[
{"id":"9c64e0d5-6473-4830-88bc-c943fc66d388","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"e7831c37-1aa9-4d98-aee9-be99c7a88c0d","path":"sprites/s_node_val/s_node_val.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe`1","elementType":"SpriteFrameKeyframe",},
{"id":"b6aa06c9-c04f-4cb6-ae92-4026e8bcc91e","Key":1.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"0903a56b-a604-44e6-9f20-66b30b67e2df","path":"sprites/s_node_val/s_node_val.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe`1","elementType":"SpriteFrameKeyframe",},
],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"SpriteFrameKeyframe",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"resourceVersion":"1.0","tags":[],"resourceType":"GMSpriteFramesTrack","modifiers":[],},
],
"visibleRange": null,
"lockOrigin": false,
"showBackdrop": true,
"showBackdropImage": false,
"backdropImagePath": "",
"backdropImageOpacity": 0.5,
"backdropWidth": 1366,
"backdropHeight": 768,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"xorigin": 8,
"yorigin": 8,
"eventToFunction": {},
"eventStubScript": null,
"parent": {"name":"s_node_val","path":"sprites/s_node_val/s_node_val.yy",},
"resourceVersion": "1.4",
"name": "s_node_val",
"tags": [],
"resourceType": "GMSequence",
},
"layers": [
{"visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default","resourceVersion":"1.0","name":"bcf8f0af-39e1-47ae-8330-c997b5275637","tags":[],"resourceType":"GMImageLayer",},
],
"nineSlice": null,
"parent": {
"name": "nodes",
"path": "folders/sprites/nodes.yy",
},
"resourceVersion": "1.0",
"name": "s_node_val",
"tags": [],
"resourceType": "GMSprite",
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

View file

@ -0,0 +1,79 @@
{
"bboxMode": 0,
"collisionKind": 1,
"type": 0,
"origin": 4,
"preMultiplyAlpha": false,
"edgeFiltering": false,
"collisionTolerance": 0,
"swfPrecision": 2.525,
"bbox_left": 0,
"bbox_right": 11,
"bbox_top": 0,
"bbox_bottom": 11,
"HTile": false,
"VTile": false,
"For3D": false,
"width": 12,
"height": 12,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"swatchColours": null,
"gridX": 0,
"gridY": 0,
"frames": [
{"compositeImage":{"FrameId":{"name":"7642bca8-ad08-4054-afe3-57f6f31ffbd3","path":"sprites/s_panel_active_split/s_panel_active_split.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"7642bca8-ad08-4054-afe3-57f6f31ffbd3","path":"sprites/s_panel_active_split/s_panel_active_split.yy",},"LayerId":{"name":"c7806bd3-2a3d-4425-9830-87c7beac5e59","path":"sprites/s_panel_active_split/s_panel_active_split.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"s_panel_active_split","path":"sprites/s_panel_active_split/s_panel_active_split.yy",},"resourceVersion":"1.0","name":"7642bca8-ad08-4054-afe3-57f6f31ffbd3","tags":[],"resourceType":"GMSpriteFrame",},
],
"sequence": {
"spriteId": {"name":"s_panel_active_split","path":"sprites/s_panel_active_split/s_panel_active_split.yy",},
"timeUnits": 1,
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"autoRecord": true,
"volume": 1.0,
"length": 1.0,
"events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"MessageEventKeyframe",},
"moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"MomentsEventKeyframe",},
"tracks": [
{"name":"frames","spriteId":null,"keyframes":{"Keyframes":[
{"id":"0269079e-6dff-438f-b137-987059ae3c1f","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"7642bca8-ad08-4054-afe3-57f6f31ffbd3","path":"sprites/s_panel_active_split/s_panel_active_split.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe`1","elementType":"SpriteFrameKeyframe",},
],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"SpriteFrameKeyframe",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"resourceVersion":"1.0","tags":[],"resourceType":"GMSpriteFramesTrack","modifiers":[],},
],
"visibleRange": {"x":0.0,"y":0.0,},
"lockOrigin": false,
"showBackdrop": true,
"showBackdropImage": false,
"backdropImagePath": "",
"backdropImageOpacity": 0.5,
"backdropWidth": 1366,
"backdropHeight": 768,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"xorigin": 6,
"yorigin": 6,
"eventToFunction": {},
"eventStubScript": null,
"parent": {"name":"s_panel_active_split","path":"sprites/s_panel_active_split/s_panel_active_split.yy",},
"resourceVersion": "1.4",
"name": "s_panel_active_split",
"tags": [],
"resourceType": "GMSequence",
},
"layers": [
{"visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default","resourceVersion":"1.0","name":"c7806bd3-2a3d-4425-9830-87c7beac5e59","tags":[],"resourceType":"GMImageLayer",},
],
"nineSlice": null,
"parent": {
"name": "preview",
"path": "folders/sprites/panels/preview.yy",
},
"resourceVersion": "1.0",
"name": "s_panel_active_split",
"tags": [],
"resourceType": "GMSprite",
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

View file

@ -0,0 +1,79 @@
{
"bboxMode": 0,
"collisionKind": 1,
"type": 0,
"origin": 4,
"preMultiplyAlpha": false,
"edgeFiltering": false,
"collisionTolerance": 0,
"swfPrecision": 2.525,
"bbox_left": 0,
"bbox_right": 11,
"bbox_top": 1,
"bbox_bottom": 11,
"HTile": false,
"VTile": false,
"For3D": false,
"width": 12,
"height": 12,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"swatchColours": null,
"gridX": 0,
"gridY": 0,
"frames": [
{"compositeImage":{"FrameId":{"name":"1e22b6d2-03c6-43ce-9309-853a1c4dc37e","path":"sprites/s_toolbar_shadow/s_toolbar_shadow.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"1e22b6d2-03c6-43ce-9309-853a1c4dc37e","path":"sprites/s_toolbar_shadow/s_toolbar_shadow.yy",},"LayerId":{"name":"3f73e0a2-39cf-4a1c-bcf9-9b8a04ac11f6","path":"sprites/s_toolbar_shadow/s_toolbar_shadow.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"s_toolbar_shadow","path":"sprites/s_toolbar_shadow/s_toolbar_shadow.yy",},"resourceVersion":"1.0","name":"1e22b6d2-03c6-43ce-9309-853a1c4dc37e","tags":[],"resourceType":"GMSpriteFrame",},
],
"sequence": {
"spriteId": {"name":"s_toolbar_shadow","path":"sprites/s_toolbar_shadow/s_toolbar_shadow.yy",},
"timeUnits": 1,
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"autoRecord": true,
"volume": 1.0,
"length": 1.0,
"events": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"MessageEventKeyframe",},
"moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"MomentsEventKeyframe",},
"tracks": [
{"name":"frames","spriteId":null,"keyframes":{"Keyframes":[
{"id":"29c729d2-ee39-4e03-82e9-ad5ede09fb39","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"1e22b6d2-03c6-43ce-9309-853a1c4dc37e","path":"sprites/s_toolbar_shadow/s_toolbar_shadow.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe`1","elementType":"SpriteFrameKeyframe",},
],"resourceVersion":"1.0","resourceType":"KeyframeStore`1","elementType":"SpriteFrameKeyframe",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"isCreationTrack":false,"resourceVersion":"1.0","tags":[],"resourceType":"GMSpriteFramesTrack","modifiers":[],},
],
"visibleRange": null,
"lockOrigin": false,
"showBackdrop": true,
"showBackdropImage": false,
"backdropImagePath": "",
"backdropImageOpacity": 0.5,
"backdropWidth": 1366,
"backdropHeight": 768,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"xorigin": 6,
"yorigin": 6,
"eventToFunction": {},
"eventStubScript": null,
"parent": {"name":"s_toolbar_shadow","path":"sprites/s_toolbar_shadow/s_toolbar_shadow.yy",},
"resourceVersion": "1.4",
"name": "s_toolbar_shadow",
"tags": [],
"resourceType": "GMSequence",
},
"layers": [
{"visible":true,"isLocked":false,"blendMode":0,"opacity":100.0,"displayName":"default","resourceVersion":"1.0","name":"3f73e0a2-39cf-4a1c-bcf9-9b8a04ac11f6","tags":[],"resourceType":"GMImageLayer",},
],
"nineSlice": null,
"parent": {
"name": "panels",
"path": "folders/sprites/panels.yy",
},
"resourceVersion": "1.0",
"name": "s_toolbar_shadow",
"tags": [],
"resourceType": "GMSprite",
}