diff --git a/PixelComposer.resource_order b/PixelComposer.resource_order index 8240016f0..e2e47de8f 100644 --- a/PixelComposer.resource_order +++ b/PixelComposer.resource_order @@ -48,18 +48,18 @@ {"name":"fixes","order":5,"path":"folders/nodes/data/filter/fixes.yy",}, {"name":"warps","order":6,"path":"folders/nodes/data/filter/warps.yy",}, {"name":"generator","order":17,"path":"folders/nodes/data/generator.yy",}, - {"name":"blinker","order":9,"path":"folders/nodes/data/generator/blinker.yy",}, - {"name":"cell","order":10,"path":"folders/nodes/data/generator/cell.yy",}, + {"name":"blinker","order":19,"path":"folders/shader/generator/blinker.yy",}, + {"name":"cell","order":20,"path":"folders/shader/generator/cell.yy",}, {"name":"drawer","order":11,"path":"folders/nodes/data/generator/drawer.yy",}, - {"name":"grid","order":12,"path":"folders/nodes/data/generator/grid.yy",}, - {"name":"interpret","order":13,"path":"folders/nodes/data/generator/interpret.yy",}, + {"name":"grid","order":18,"path":"folders/shader/generator/grid.yy",}, + {"name":"interpret","order":17,"path":"folders/shader/generator/interpret.yy",}, {"name":"noise","order":14,"path":"folders/nodes/data/generator/noise.yy",}, {"name":"pattern","order":15,"path":"folders/nodes/data/generator/pattern.yy",}, - {"name":"random_shape","order":16,"path":"folders/nodes/data/generator/random_shape.yy",}, - {"name":"reaction_diffusion","order":17,"path":"folders/nodes/data/generator/reaction_diffusion.yy",}, - {"name":"region","order":18,"path":"folders/nodes/data/generator/region.yy",}, + {"name":"random_shape","order":21,"path":"folders/shader/generator/random_shape.yy",}, + {"name":"reaction_diffusion","order":22,"path":"folders/shader/generator/reaction_diffusion.yy",}, + {"name":"region","order":23,"path":"folders/shader/generator/region.yy",}, {"name":"regions","order":19,"path":"folders/nodes/data/generator/regions.yy",}, - {"name":"vector_mapper","order":20,"path":"folders/nodes/data/generator/vector_mapper.yy",}, + {"name":"vector_mapper","order":24,"path":"folders/shader/generator/vector_mapper.yy",}, {"name":"group","order":18,"path":"folders/nodes/data/group.yy",}, {"name":"io","order":19,"path":"folders/nodes/data/io.yy",}, {"name":"network","order":22,"path":"folders/nodes/data/io/network.yy",}, @@ -143,6 +143,7 @@ {"name":"shape_seperator","order":47,"path":"folders/shader/filter/shape_seperator.yy",}, {"name":"surface_replace","order":48,"path":"folders/shader/filter/surface_replace.yy",}, {"name":"warp","order":49,"path":"folders/shader/filter/warp.yy",}, + {"name":"noise","order":16,"path":"folders/shader/generator/noise.yy",}, {"name":"find_boundary","order":7,"path":"folders/shader/misc/find_boundary.yy",}, {"name":"Flag","order":3,"path":"folders/shader/MK effects/Flag.yy",}, {"name":"Tile","order":4,"path":"folders/shader/MK effects/Tile.yy",}, @@ -752,6 +753,7 @@ {"name":"node_greyscale","order":5,"path":"scripts/node_greyscale/node_greyscale.yy",}, {"name":"node_grid_hex","order":2,"path":"scripts/node_grid_hex/node_grid_hex.yy",}, {"name":"node_grid_noise","order":4,"path":"scripts/node_grid_noise/node_grid_noise.yy",}, + {"name":"node_grid_pentagonal","order":10,"path":"scripts/node_grid_pentagonal/node_grid_pentagonal.yy",}, {"name":"node_grid_tri","order":3,"path":"scripts/node_grid_tri/node_grid_tri.yy",}, {"name":"node_grid","order":1,"path":"scripts/node_grid/node_grid.yy",}, {"name":"node_group_input","order":1,"path":"scripts/node_group_input/node_group_input.yy",}, @@ -1476,6 +1478,7 @@ {"name":"sh_widget_rotator_range","order":5,"path":"shaders/sh_widget_rotator_range/sh_widget_rotator_range.yy",}, {"name":"sh_widget_rotator","order":4,"path":"shaders/sh_widget_rotator/sh_widget_rotator.yy",}, {"name":"sh_zigzag","order":2,"path":"shaders/sh_zigzag/sh_zigzag.yy",}, + {"name":"sh_grid_pentagonal","order":7,"path":"shaders/sh_grid_pentagonal/sh_grid_pentagonal.yy",}, {"name":"credit_badge_popular","order":2,"path":"sprites/credit_badge_popular/credit_badge_popular.yy",}, {"name":"credit_badge_value","order":1,"path":"sprites/credit_badge_value/credit_badge_value.yy",}, {"name":"s_biterator_b_grey_long","order":7,"path":"sprites/s_biterator_b_grey_long/s_biterator_b_grey_long.yy",}, diff --git a/PixelComposer.yyp b/PixelComposer.yyp index 732b018f8..63b92b3bc 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -146,18 +146,18 @@ {"$GMFolder":"","%Name":"fixes","folderPath":"folders/nodes/data/filter/fixes.yy","name":"fixes","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"warps","folderPath":"folders/nodes/data/filter/warps.yy","name":"warps","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"generator","folderPath":"folders/nodes/data/generator.yy","name":"generator","resourceType":"GMFolder","resourceVersion":"2.0",}, - {"$GMFolder":"","%Name":"blinker","folderPath":"folders/nodes/data/generator/blinker.yy","name":"blinker","resourceType":"GMFolder","resourceVersion":"2.0",}, - {"$GMFolder":"","%Name":"cell","folderPath":"folders/nodes/data/generator/cell.yy","name":"cell","resourceType":"GMFolder","resourceVersion":"2.0",}, + {"$GMFolder":"","%Name":"blinker","folderPath":"folders/shader/generator/blinker.yy","name":"blinker","resourceType":"GMFolder","resourceVersion":"2.0",}, + {"$GMFolder":"","%Name":"cell","folderPath":"folders/shader/generator/cell.yy","name":"cell","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"drawer","folderPath":"folders/nodes/data/generator/drawer.yy","name":"drawer","resourceType":"GMFolder","resourceVersion":"2.0",}, - {"$GMFolder":"","%Name":"grid","folderPath":"folders/nodes/data/generator/grid.yy","name":"grid","resourceType":"GMFolder","resourceVersion":"2.0",}, - {"$GMFolder":"","%Name":"interpret","folderPath":"folders/nodes/data/generator/interpret.yy","name":"interpret","resourceType":"GMFolder","resourceVersion":"2.0",}, + {"$GMFolder":"","%Name":"grid","folderPath":"folders/shader/generator/grid.yy","name":"grid","resourceType":"GMFolder","resourceVersion":"2.0",}, + {"$GMFolder":"","%Name":"interpret","folderPath":"folders/shader/generator/interpret.yy","name":"interpret","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"noise","folderPath":"folders/nodes/data/generator/noise.yy","name":"noise","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"pattern","folderPath":"folders/nodes/data/generator/pattern.yy","name":"pattern","resourceType":"GMFolder","resourceVersion":"2.0",}, - {"$GMFolder":"","%Name":"random_shape","folderPath":"folders/nodes/data/generator/random_shape.yy","name":"random_shape","resourceType":"GMFolder","resourceVersion":"2.0",}, - {"$GMFolder":"","%Name":"reaction_diffusion","folderPath":"folders/nodes/data/generator/reaction_diffusion.yy","name":"reaction_diffusion","resourceType":"GMFolder","resourceVersion":"2.0",}, - {"$GMFolder":"","%Name":"region","folderPath":"folders/nodes/data/generator/region.yy","name":"region","resourceType":"GMFolder","resourceVersion":"2.0",}, + {"$GMFolder":"","%Name":"random_shape","folderPath":"folders/shader/generator/random_shape.yy","name":"random_shape","resourceType":"GMFolder","resourceVersion":"2.0",}, + {"$GMFolder":"","%Name":"reaction_diffusion","folderPath":"folders/shader/generator/reaction_diffusion.yy","name":"reaction_diffusion","resourceType":"GMFolder","resourceVersion":"2.0",}, + {"$GMFolder":"","%Name":"region","folderPath":"folders/shader/generator/region.yy","name":"region","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"regions","folderPath":"folders/nodes/data/generator/regions.yy","name":"regions","resourceType":"GMFolder","resourceVersion":"2.0",}, - {"$GMFolder":"","%Name":"vector_mapper","folderPath":"folders/nodes/data/generator/vector_mapper.yy","name":"vector_mapper","resourceType":"GMFolder","resourceVersion":"2.0",}, + {"$GMFolder":"","%Name":"vector_mapper","folderPath":"folders/shader/generator/vector_mapper.yy","name":"vector_mapper","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"group","folderPath":"folders/nodes/data/group.yy","name":"group","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"io","folderPath":"folders/nodes/data/io.yy","name":"io","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"network","folderPath":"folders/nodes/data/io/network.yy","name":"network","resourceType":"GMFolder","resourceVersion":"2.0",}, @@ -274,6 +274,7 @@ {"$GMFolder":"","%Name":"warp","folderPath":"folders/shader/filter/warp.yy","name":"warp","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"flood_fill","folderPath":"folders/shader/flood_fill.yy","name":"flood_fill","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"generator","folderPath":"folders/shader/generator.yy","name":"generator","resourceType":"GMFolder","resourceVersion":"2.0",}, + {"$GMFolder":"","%Name":"noise","folderPath":"folders/shader/generator/noise.yy","name":"noise","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"mask","folderPath":"folders/shader/mask.yy","name":"mask","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"misc","folderPath":"folders/shader/misc.yy","name":"misc","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"find_boundary","folderPath":"folders/shader/misc/find_boundary.yy","name":"find_boundary","resourceType":"GMFolder","resourceVersion":"2.0",}, @@ -1172,6 +1173,7 @@ {"id":{"name":"node_greyscale","path":"scripts/node_greyscale/node_greyscale.yy",},}, {"id":{"name":"node_grid_hex","path":"scripts/node_grid_hex/node_grid_hex.yy",},}, {"id":{"name":"node_grid_noise","path":"scripts/node_grid_noise/node_grid_noise.yy",},}, + {"id":{"name":"node_grid_pentagonal","path":"scripts/node_grid_pentagonal/node_grid_pentagonal.yy",},}, {"id":{"name":"node_grid_tri","path":"scripts/node_grid_tri/node_grid_tri.yy",},}, {"id":{"name":"node_grid","path":"scripts/node_grid/node_grid.yy",},}, {"id":{"name":"node_group_input","path":"scripts/node_group_input/node_group_input.yy",},}, @@ -2013,6 +2015,7 @@ {"id":{"name":"sh_widget_rotator_range","path":"shaders/sh_widget_rotator_range/sh_widget_rotator_range.yy",},}, {"id":{"name":"sh_widget_rotator","path":"shaders/sh_widget_rotator/sh_widget_rotator.yy",},}, {"id":{"name":"sh_zigzag","path":"shaders/sh_zigzag/sh_zigzag.yy",},}, + {"id":{"name":"sh_grid_pentagonal","path":"shaders/sh_grid_pentagonal/sh_grid_pentagonal.yy",},}, {"id":{"name":"credit_badge_popular","path":"sprites/credit_badge_popular/credit_badge_popular.yy",},}, {"id":{"name":"credit_badge_value","path":"sprites/credit_badge_value/credit_badge_value.yy",},}, {"id":{"name":"node_credit","path":"sprites/node_credit/node_credit.yy",},}, diff --git a/objects/o_main/Step_0.gml b/objects/o_main/Step_0.gml index cb9ac79e8..271a3282e 100644 --- a/objects/o_main/Step_0.gml +++ b/objects/o_main/Step_0.gml @@ -4,7 +4,7 @@ winManStep() //print("===== Step start ====="); -if(PROJECT.active && !PROJECT.safeMode) { #region +if(PROJECT.active && !PROJECT.safeMode) { #region node step PROJECT.animator.step(); PROJECT.globalNode.step(); LIVE_UPDATE = false; @@ -19,6 +19,8 @@ if(PROJECT.active && !PROJECT.safeMode) { #region } catch(e) { noti_warning("Step error: " + exception_print(e)); } + + IS_SAVING = false; } #endregion #region hotkey diff --git a/scripts/__canvas_brush/__canvas_brush.gml b/scripts/__canvas_brush/__canvas_brush.gml index b4ea4c7d7..b570b6c80 100644 --- a/scripts/__canvas_brush/__canvas_brush.gml +++ b/scripts/__canvas_brush/__canvas_brush.gml @@ -29,7 +29,6 @@ function canvas_brush() constructor { var _brushRotR = node.getInputData(17); var attr = node.tool_attribute; - var _col = attr.color; var _siz = attr.size; brush_size = _siz; diff --git a/scripts/animation_controller/animation_controller.gml b/scripts/animation_controller/animation_controller.gml index 8f2c7ff39..94451837a 100644 --- a/scripts/animation_controller/animation_controller.gml +++ b/scripts/animation_controller/animation_controller.gml @@ -38,11 +38,11 @@ playback = ANIMATOR_END.loop; - static setFrame = function(frame) { #region + static setFrame = function(frame, _round = true) { #region var _c = current_frame; frame = clamp(frame, 0, frames_total); real_frame = frame; - current_frame = round(frame); + current_frame = _round? round(frame) : frame; frame_progress = _c != current_frame; diff --git a/scripts/buttonPalette/buttonPalette.gml b/scripts/buttonPalette/buttonPalette.gml index a23a1c20b..322ea9d9e 100644 --- a/scripts/buttonPalette/buttonPalette.gml +++ b/scripts/buttonPalette/buttonPalette.gml @@ -148,7 +148,7 @@ function drawPaletteGrid(_pal, _x, _y, _w, _gs = 24, c_color = -1) { #region draw_rectangle(_x0, _y0 + 1, _x0 + _gs, _y0 + _gs, false); - if(c_color == _pal[i]) { + if(color_diff(c_color, _pal[i]) <= 0) { cx = _x0; cy = _y0; } diff --git a/scripts/canvas_flood_fill_functions/canvas_flood_fill_functions.gml b/scripts/canvas_flood_fill_functions/canvas_flood_fill_functions.gml index c1f62d2f6..d036d90ef 100644 --- a/scripts/canvas_flood_fill_functions/canvas_flood_fill_functions.gml +++ b/scripts/canvas_flood_fill_functions/canvas_flood_fill_functions.gml @@ -7,12 +7,12 @@ function canvas_ff_fillable(colorBase, colorFill, _x, _y, _thres) { #region } #endregion function canvas_flood_fill_scanline(_surf, _x, _y, _thres, _corner = false) { #region - var colorFill = tool_attribute.color; + var colorFill = CURRENT_COLOR; var colorBase = surface_getpixel_ext(_surf, _x, _y); if(colorFill == colorBase) return; //Clicking on the same color as the fill color - var _c = tool_attribute.color; + var _c = CURRENT_COLOR; draw_set_color(_c); _ff_w = surface_get_width(_surf); diff --git a/scripts/canvas_tool_extrude/canvas_tool_extrude.gml b/scripts/canvas_tool_extrude/canvas_tool_extrude.gml index 319e329cd..f2bb65594 100644 --- a/scripts/canvas_tool_extrude/canvas_tool_extrude.gml +++ b/scripts/canvas_tool_extrude/canvas_tool_extrude.gml @@ -30,7 +30,7 @@ function canvas_tool_extrude() : canvas_tool_shader() constructor { shader_set_f("dimension", _dim); shader_set_f("shift", _dx, _dy); shader_set_f("itr", round(sqrt(_dx * _dx + _dy * _dy))); - shader_set_color("color", node.tool_attribute.color); + shader_set_color("color", node.CURRENT_COLOR); draw_surface(preview_surface[0], 0, 0); surface_reset_shader(); diff --git a/scripts/canvas_tool_inset/canvas_tool_inset.gml b/scripts/canvas_tool_inset/canvas_tool_inset.gml index 586793bc2..68ebbb4ec 100644 --- a/scripts/canvas_tool_inset/canvas_tool_inset.gml +++ b/scripts/canvas_tool_inset/canvas_tool_inset.gml @@ -30,7 +30,7 @@ function canvas_tool_inset() : canvas_tool_shader() constructor { shader_set_f("dimension", _dim); shader_set_f("shift", _dx, _dy); shader_set_f("itr", round(sqrt(_dx * _dx + _dy * _dy))); - shader_set_color("color", node.tool_attribute.color); + shader_set_color("color", node.CURRENT_COLOR); draw_surface(preview_surface[0], 0, 0); surface_reset_shader(); diff --git a/scripts/canvas_tool_outline/canvas_tool_outline.gml b/scripts/canvas_tool_outline/canvas_tool_outline.gml index 822c2761a..a95f883f1 100644 --- a/scripts/canvas_tool_outline/canvas_tool_outline.gml +++ b/scripts/canvas_tool_outline/canvas_tool_outline.gml @@ -20,7 +20,7 @@ function canvas_tool_outline() : canvas_tool_shader() constructor { shader_set_f("borderSize", _thck, _thck); shader_set_f("borderStart", 0, 0); shader_set_i("side", _side); - shader_set_color("borderColor", node.tool_attribute.color); + shader_set_color("borderColor", node.CURRENT_COLOR); draw_surface(preview_surface[0], 0, 0); surface_reset_shader(); diff --git a/scripts/color_function/color_function.gml b/scripts/color_function/color_function.gml index 580c1ff1b..f5e34bc2a 100644 --- a/scripts/color_function/color_function.gml +++ b/scripts/color_function/color_function.gml @@ -154,25 +154,15 @@ #endregion function color_diff(c1, c2, fast = false, alpha = false) { #region - var _c1_r = color_get_red(c1); - var _c1_g = color_get_green(c1); - var _c1_b = color_get_blue(c1); - var _c1_a = alpha? color_get_alpha(c1) : 255; + var _c1_r = _color_get_red(c1); + var _c1_g = _color_get_green(c1); + var _c1_b = _color_get_blue(c1); + var _c1_a = _color_get_alpha(c1); - _c1_a = _c1_a / 255; - _c1_r = _c1_r / 255 * _c1_a; - _c1_g = _c1_g / 255 * _c1_a; - _c1_b = _c1_b / 255 * _c1_a; - - var _c2_r = color_get_red(c2); - var _c2_g = color_get_green(c2); - var _c2_b = color_get_blue(c2); - var _c2_a = alpha? color_get_alpha(c2) : 255; - - _c2_a = _c2_a / 255; - _c2_r = _c2_r / 255 * _c2_a; - _c2_g = _c2_g / 255 * _c2_a; - _c2_b = _c2_b / 255 * _c2_a; + var _c2_r = _color_get_red(c2); + var _c2_g = _color_get_green(c2); + var _c2_b = _color_get_blue(c2); + var _c2_a = _color_get_alpha(c2); if(fast) return (abs(_c1_r - _c2_r) + abs(_c1_g - _c2_g) + abs(_c1_b - _c2_b)) / 3; return sqrt(sqr(_c1_r - _c2_r) + sqr(_c1_g - _c2_g) + sqr(_c1_b - _c2_b)); diff --git a/scripts/color_loader/color_loader.gml b/scripts/color_loader/color_loader.gml index 7dc3b8a10..613db8f2d 100644 --- a/scripts/color_loader/color_loader.gml +++ b/scripts/color_loader/color_loader.gml @@ -1,13 +1,9 @@ #region colors globalvar CDEF, COLORS, THEME_VALUE; - globalvar COLORS_GLOBAL_GET, COLORS_GLOBAL_SET; CDEF = new ThemeColorDef(); COLORS = new ThemeColor(); THEME_VALUE = new ThemeValue(); - - COLORS_GLOBAL_GET = noone; - COLORS_GLOBAL_SET = noone; #endregion function loadColor(theme = "default") { #region diff --git a/scripts/globals/globals.gml b/scripts/globals/globals.gml index b351abc53..5fa7837ed 100644 --- a/scripts/globals/globals.gml +++ b/scripts/globals/globals.gml @@ -50,6 +50,9 @@ global.KEYS = { download_links: "", }; + + globalvar CURRENT_COLOR; + CURRENT_COLOR = c_white; #endregion #region inputs @@ -189,11 +192,6 @@ function global_project_close() { CALL("project_close"); PANEL_GRAPH.close(); } function global_theme_reload() { CALL("theme_reload"); loadGraphic(PREFERENCES.theme); resetPanel(); } - - function reset_global_getset() { - COLORS_GLOBAL_GET = noone; - COLORS_GLOBAL_SET = noone; - } #endregion #region debug diff --git a/scripts/node_canvas/node_canvas.gml b/scripts/node_canvas/node_canvas.gml index b4ea5afd0..b58cac287 100644 --- a/scripts/node_canvas/node_canvas.gml +++ b/scripts/node_canvas/node_canvas.gml @@ -210,8 +210,6 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor #endregion #region ++++ tools ++++ - tool_attribute.color = cola(c_white); - tool_attribute.channel = [ true, true, true, true ]; tool_channel_edit = new checkBoxGroup(THEME.tools_canvas_channel, function(ind, val) { tool_attribute.channel[ind] = val; }); @@ -369,9 +367,7 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor selection_tool_after = noone; #endregion - function setToolColor(color) { tool_attribute.color = color; } - - function getToolColor() { return tool_attribute.color; } + function setToolColor(color) { CURRENT_COLOR = color; } static drawTools = function(_mx, _my, xx, yy, tool_size, hover, focus) { #region var _sx0 = xx - tool_size / 2; @@ -390,11 +386,11 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor yy += ui(8); hh += ui(8); - drawColor(tool_attribute.color, _cx, yy, _cw, _cw); + drawColor(CURRENT_COLOR, _cx, yy, _cw, _cw); draw_sprite_stretched_ext(THEME.palette_selecting, 0, _cx - _pd, yy - _pd, _cw + _pd * 2, _cw + _pd * 2, c_white, 1); if(point_in_rectangle(_mx, _my, _cx, yy, _cx + _cw, yy + _ch) && mouse_press(mb_left, focus)) - colorSelectorCall(tool_attribute.color, setToolColor); + colorSelectorCall(CURRENT_COLOR, setToolColor); yy += _cw + ui(8); hh += _cw + ui(8); @@ -410,12 +406,12 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor draw_sprite_stretched_ext(THEME.palette_mask, ii, _cx, yy, _cw, _ch, _c, 1); - if(_c == tool_attribute.color) + if(color_diff(_c, CURRENT_COLOR) <= 0) _sel = [ _cx, yy ]; if(hover && point_in_rectangle(_mx, _my, _cx, yy, _cx + _cw, yy + _ch)) { if(mouse_click(mb_left, focus)) - tool_attribute.color = _c; + CURRENT_COLOR = _c; } yy += _ch; @@ -614,7 +610,7 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor shader_set_i("drawLayer", tool_attribute.drawLayer); shader_set_i("eraser", isUsingTool("Eraser")); shader_set_f("channels", tool_attribute.channel); - shader_set_f("alpha", _applyAlpha? _color_get_alpha(tool_attribute.color) : 1); + shader_set_f("alpha", _applyAlpha? _color_get_alpha(CURRENT_COLOR) : 1); shader_set_f("mirror", tool_attribute.mirror); shader_set_color("pickColor", tool_attribute.pickColor, _color_get_alpha(tool_attribute.pickColor)); @@ -641,16 +637,13 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region if(instance_exists(o_dialog_color_picker)) return; - COLORS_GLOBAL_GET = getToolColor; - COLORS_GLOBAL_SET = setToolColor; - brush.node = self; brush.step(hover, active, _x, _y, _s, _mx, _my, _snx, _sny); if(!tool_selection.is_selected && active && key_mod_press(ALT)) { #region color selector var dialog = instance_create(0, 0, o_dialog_color_picker); dialog.onApply = setToolColor; - dialog.def_c = tool_attribute.color; + dialog.def_c = CURRENT_COLOR; } #endregion var _canvas_surface = getCanvasSurface(); @@ -736,9 +729,9 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor #endregion - var _alp = _color_get_alpha(tool_attribute.color); + var _alp = _color_get_alpha(CURRENT_COLOR); - draw_set_color(isUsingTool("Eraser")? c_white : tool_attribute.color); + draw_set_color(isUsingTool("Eraser")? c_white : CURRENT_COLOR); draw_set_alpha(1); if(_tool) { #region tool step @@ -802,7 +795,7 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor } } - draw_set_color(tool_attribute.color); + draw_set_color(CURRENT_COLOR); if(brush.brush_sizing) canvas_draw_point_brush(brush, brush.brush_sizing_dx, brush.brush_sizing_dy); diff --git a/scripts/node_export/node_export.gml b/scripts/node_export/node_export.gml index c4770917f..bd90c6347 100644 --- a/scripts/node_export/node_export.gml +++ b/scripts/node_export/node_export.gml @@ -117,7 +117,7 @@ function Node_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor inputs[| 15] = nodeValue("Custom Range", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false) .rejectArray(); - inputs[| 16] = nodeValue("Auto Export", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false) + inputs[| 16] = nodeValue("Export on Save", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false) outputs[| 0] = nodeValue("Loop exit", self, JUNCTION_CONNECT.output, VALUE_TYPE.any, 0); @@ -738,6 +738,7 @@ function Node_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor var surf = getInputData( 0); var pngf = getInputData(13); + var expo = getInputData(16); if(is_array(surf)) { inputs[| 3].display_data.data = format_array; @@ -753,6 +754,9 @@ function Node_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor var extn = getInputData(9); var user = getInputData(15); + if(expo && anim == NODE_EXPORT_FORMAT.single && IS_SAVING) + doInspectorAction(); + inputs[| 11].setVisible(anim == 1); inputs[| 16].setVisible(anim == 0); @@ -830,10 +834,9 @@ function Node_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor static update = function(frame = CURRENT_FRAME) { #region var anim = getInputData(3); - var expo = getInputData(16); if(anim == NODE_EXPORT_FORMAT.single) { - if(isInLoop() || expo) export(false); + if(isInLoop()) export(false); return; } diff --git a/scripts/node_grid_pentagonal/node_grid_pentagonal.gml b/scripts/node_grid_pentagonal/node_grid_pentagonal.gml new file mode 100644 index 000000000..09c55301b --- /dev/null +++ b/scripts/node_grid_pentagonal/node_grid_pentagonal.gml @@ -0,0 +1,108 @@ +function Node_Grid_Pentagonal(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { + name = "Pentagonal Grid"; + + inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF ) + .setDisplay(VALUE_DISPLAY.vector); + + inputs[| 1] = nodeValue("Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) + .setDisplay(VALUE_DISPLAY.vector) + .setUnitRef(function(index) { return getDimension(index); }); + + inputs[| 2] = nodeValue("Scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 4, 4 ]) + .setDisplay(VALUE_DISPLAY.vector) + .setMappable(11); + + inputs[| 3] = nodeValue("Gap", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.1) + .setDisplay(VALUE_DISPLAY.slider, { range: [0, 0.5, 0.001] }) + .setMappable(12); + + inputs[| 4] = nodeValue("Angle", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0) + .setDisplay(VALUE_DISPLAY.rotation) + .setMappable(13); + + inputs[| 5] = nodeValue("Tile color", self, JUNCTION_CONNECT.input, VALUE_TYPE.gradient, new gradientObject(c_white) ) + .setMappable(14); + + inputs[| 6] = nodeValue("Gap color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_black); + + inputs[| 7] = nodeValue("Texture", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone); + + inputs[| 8] = nodeValue("Render type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) + .setDisplay(VALUE_DISPLAY.enum_scroll, ["Colored tile", "Height map", "Texture grid"]); + + inputs[| 9] = nodeValue("Seed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, irandom_range(10000, 99999)); + + inputs[| 10] = nodeValue("Anti aliasing", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false); + + ///////////////////////////////////////////////////////////////////// + + inputs[| 11] = nodeValueMap("Scale map", self); + + inputs[| 12] = nodeValueMap("Gap map", self); + + inputs[| 13] = nodeValueMap("Angle map", self); + + inputs[| 14] = nodeValueMap("Gradient map", self); + + inputs[| 15] = nodeValueGradientRange("Gradient map range", self, inputs[| 5]); + + ///////////////////////////////////////////////////////////////////// + + input_display_list = [ + ["Output", false], 0, + ["Pattern", false], 1, 4, 13, 2, 11, 3, 12, + ["Render", false], 8, 9, 5, 14, 6, 7, 10, + ]; + + outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); + + attribute_surface_depth(); + + static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { + var a = inputs[| 1].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny); active &= !a; + var a = inputs[| 15].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny, getSingleValue(0)); active &= !a; + } + + static step = function() { #region + inputs[| 2].mappableStep(); + inputs[| 3].mappableStep(); + inputs[| 4].mappableStep(); + inputs[| 5].mappableStep(); + } #endregion + + static processData = function(_outSurf, _data, _output_index, _array_index) { + var _dim = _data[0]; + var _pos = _data[1]; + var _sam = _data[7]; + var _mode = _data[8]; + + var _col_gap = _data[6]; + + inputs[| 5].setVisible(_mode == 0); + inputs[| 6].setVisible(_mode != 1); + inputs[| 7].setVisible(_mode == 2 || _mode == 3); + + _outSurf = surface_verify(_outSurf, _dim[0], _dim[1], attrDepth()); + surface_set_shader(_outSurf, sh_grid_pentagonal); + shader_set_f("position", _pos[0] / _dim[0], _pos[1] / _dim[1]); + shader_set_f("dimension", _dim[0], _dim[1]); + + shader_set_f_map("scale", _data[ 2], _data[11], inputs[| 2]); + shader_set_f_map("width", _data[ 3], _data[12], inputs[| 3]); + shader_set_f_map("angle", _data[ 4], _data[13], inputs[| 4]); + + shader_set_i("mode", _mode); + shader_set_f("seed", _data[ 9]); + shader_set_i("aa", _data[10]); + + shader_set_color("gapCol", _col_gap); + + shader_set_gradient(_data[5], _data[14], _data[15], inputs[| 5]); + + if(is_surface(_sam)) draw_surface_stretched_safe(_sam, 0, 0, _dim[0], _dim[1]); + else draw_sprite_ext(s_fx_pixel, 0, 0, 0, _dim[0], _dim[1], 0, c_white, 1); + surface_reset_shader(); + + return _outSurf; + } +} \ No newline at end of file diff --git a/scripts/node_grid_pentagonal/node_grid_pentagonal.yy b/scripts/node_grid_pentagonal/node_grid_pentagonal.yy new file mode 100644 index 000000000..dc1b9be41 --- /dev/null +++ b/scripts/node_grid_pentagonal/node_grid_pentagonal.yy @@ -0,0 +1,13 @@ +{ + "$GMScript":"", + "%Name":"node_grid_pentagonal", + "isCompatibility":false, + "isDnD":false, + "name":"node_grid_pentagonal", + "parent":{ + "name":"pattern", + "path":"folders/nodes/data/generator/pattern.yy", + }, + "resourceType":"GMScript", + "resourceVersion":"2.0", +} \ No newline at end of file diff --git a/scripts/node_registry/node_registry.gml b/scripts/node_registry/node_registry.gml index 85b75bd29..8d7057288 100644 --- a/scripts/node_registry/node_registry.gml +++ b/scripts/node_registry/node_registry.gml @@ -718,6 +718,7 @@ function __initNodes() { addNodeObject(generator, "Grid", s_node_grid, "Node_Grid", [1, Node_Grid], ["tile"], "Generate grid pattern."); addNodeObject(generator, "Triangular Grid", s_node_grid_tri, "Node_Grid_Tri", [1, Node_Grid_Tri],, "Generate triangular grid pattern."); addNodeObject(generator, "Hexagonal Grid", s_node_grid_hex, "Node_Grid_Hex", [1, Node_Grid_Hex],, "Generate hexagonal grid pattern."); + addNodeObject(generator, "Pentagonal Grid", s_node_grid_pentagonal, "Node_Grid_Pentagonal", [1, Node_Grid_Pentagonal],, "Generate Pentagonal grid pattern.").patreonExtra(); addNodeObject(generator, "Pytagorean Tile", s_node_pytagorean_tile, "Node_Pytagorean_Tile", [1, Node_Pytagorean_Tile],, "Generate Pytagorean tile pattern.").patreonExtra(); addNodeObject(generator, "Herringbone Tile", s_node_herringbone_tile, "Node_Herringbone_Tile", [1, Node_Herringbone_Tile],, "Generate Herringbone tile pattern.").patreonExtra(); addNodeObject(generator, "Random Tile", s_node_random_tile, "Node_Random_Tile", [1, Node_Random_Tile],, "Generate Random tile pattern.").patreonExtra(); diff --git a/scripts/panel_animation/panel_animation.gml b/scripts/panel_animation/panel_animation.gml index 888ab5c0a..922e7241d 100644 --- a/scripts/panel_animation/panel_animation.gml +++ b/scripts/panel_animation/panel_animation.gml @@ -684,7 +684,7 @@ function Panel_Animation() : PanelContent() constructor { if(timeline_scubbing) { var rfrm = (mx - bar_x - timeline_shift) / timeline_scale - 1; - PROJECT.animator.setFrame(clamp(rfrm, 0, TOTAL_FRAMES - 1)); + PROJECT.animator.setFrame(clamp(rfrm, 0, TOTAL_FRAMES - 1), !key_mod_press(ALT)); timeline_show_time = CURRENT_FRAME; if(timeline_show_time != _scrub_frame) { diff --git a/scripts/panel_color/panel_color.gml b/scripts/panel_color/panel_color.gml index 0347e9c1f..ea8ee0583 100644 --- a/scripts/panel_color/panel_color.gml +++ b/scripts/panel_color/panel_color.gml @@ -16,24 +16,27 @@ function Panel_Color() : PanelContent() constructor { sat = 1; val = 1; alp = 1; - color = cola(c_black, 1); drag_con = false; drag_sel = false; colors = []; + hex_tb = new textBox(TEXTBOX_INPUT.text, function(val) { setColor(colorFromHex(val)); }) alpha_slider = slider(0, 1, 0.01, function(val) { alp = val; setHSV(); }) + show_alpha = true; + show_palette = false; + show_hex = true; static setColor = function(color) { - self.color = color; - hue = color_get_hue(color) / 255; - sat = color_get_saturation(color) / 255; - val = color_get_value(color) / 255; - alp = color_get_alpha(color) / 255; - - if(COLORS_GLOBAL_SET != noone) - COLORS_GLOBAL_SET(color); + CURRENT_COLOR = color; + } + + static refreshHSV = function() { + hue = _color_get_hue(CURRENT_COLOR); + sat = _color_get_saturation(CURRENT_COLOR); + val = _color_get_value(CURRENT_COLOR); + alp = _color_get_alpha(CURRENT_COLOR); } static setHSV = function(h = hue, s = sat, v = val, a = alp) { @@ -42,12 +45,9 @@ function Panel_Color() : PanelContent() constructor { val = v; alp = a; - color = make_color_hsva(h * 255, s * 255, v * 255, a * 255); + CURRENT_COLOR = make_color_hsva(h * 255, s * 255, v * 255, a * 255); - if(COLORS_GLOBAL_SET != noone) - COLORS_GLOBAL_SET(color); - } - setHSV(); + } setHSV(); function drawContent(panel) { draw_clear_alpha(COLORS.panel_bg_clear, 0); @@ -59,17 +59,83 @@ function Panel_Color() : PanelContent() constructor { draw_sprite_stretched(THEME.ui_panel_bg, 1, px - ui(8), py - ui(8), pw + ui(16), ph + ui(16)); - if(COLORS_GLOBAL_GET != noone) { - var c = COLORS_GLOBAL_GET(); - if(c != color) setColor(c); + var _y1 = h - ui(padding); + + if(show_palette) { + var amo = min(array_length(colors) + 1, floor((w - ui(padding * 2)) / ui(24 + 4))); + var cy = _y1 - ui(24); + + for( var i = 0; i < amo; i++ ) { + var cx = ui(padding) + ui(24 + 4) * i; + + if(i == 0) { + draw_sprite_stretched_ext(s_ui_base_white, 0, cx + ui(4), cy + ui(4), ui(16), ui(16), CURRENT_COLOR, _color_get_alpha(CURRENT_COLOR)); + draw_sprite_stretched_ext(THEME.ui_panel_active, 0, cx, cy, ui(24), ui(24), c_white, 0.5); + + if(pHOVER && point_in_rectangle(mx, my, cx, cy, cx + ui(24), cy + ui(24))) { + draw_sprite_stretched_ext(THEME.ui_panel_active, 0, cx, cy, ui(24), ui(24), c_white, 1); + if(mouse_press(mb_left, pFOCUS)) { + array_insert(colors, 0, CURRENT_COLOR); + + DRAGGING = { + type: "Color", + data: CURRENT_COLOR + } + MESSAGE = DRAGGING; + } + } + continue; + } + + var c = colors[i - 1]; + draw_sprite_stretched_ext(s_ui_base_white, 0, cx, cy, ui(24), ui(24), c, 1); + + if(mouse_press(mb_left, pFOCUS) && point_in_rectangle(mx, my, cx, cy, cx + ui(24), cy + ui(24))) { + DRAGGING = { + type: "Color", + data: c + } + MESSAGE = DRAGGING; + } + } + + _y1 = cy - ui(8); } - var alp_h = ui(20); + if(show_hex) { + var alp_w = w - ui(padding * 2); + var alp_h = ui(20); + + var alp_x = ui(padding); + var alp_y = _y1 - alp_h; + + hex_tb.setFocusHover(pFOCUS, pHOVER); + hex_tb.setFont(f_p2); + + hex_tb.align = fa_center; + hex_tb.draw(alp_x, alp_y, alp_w, alp_h, color_get_hex(CURRENT_COLOR, show_alpha), [ mx, my ]); + + _y1 = alp_y - ui(8); + } + + if(show_alpha) { + var alp_w = w - ui(padding * 2); + var alp_h = ui(20); + + var alp_x = ui(padding); + var alp_y = _y1 - alp_h; + + alpha_slider.setFocusHover(pFOCUS, pHOVER); + alpha_slider.setFont(f_p1); + alpha_slider.draw(alp_x, alp_y, alp_w, alp_h, alp, [ mx, my ]); + + _y1 = alp_y - ui(8); + } var cont_x = ui(padding); var cont_y = ui(padding); var cont_w = w - ui(padding + padding) - ui(16 + 8); - var cont_h = h - ui(padding + padding) - ui(24 + 8 + 8) - alp_h; + var cont_h = _y1 - cont_y; shader_set(sh_color_select_content); shader_set_i("mode", mode); @@ -88,14 +154,6 @@ function Panel_Color() : PanelContent() constructor { draw_sprite_stretched(s_fx_pixel, 0, sel_x, sel_y, sel_w, sel_h); shader_reset(); - var alp_x = ui(padding); - var alp_y = cont_y + cont_h + ui(8); - var alp_w = w - ui(padding * 2); - - alpha_slider.setFocusHover(pFOCUS, pHOVER); - alpha_slider.setFont(f_p1); - alpha_slider.draw(alp_x, alp_y, alp_w, alp_h, alp, [ mx, my ]); - if(drag_con) { if(mode == 0) { sat = clamp((mx - cont_x) / cont_w, 0, 1); @@ -136,56 +194,14 @@ function Panel_Color() : PanelContent() constructor { var cx = cont_x + sat * cont_w - ui(6); var cy = cont_y + (1 - val) * cont_h - ui(6); draw_sprite_stretched_ext(s_ui_base_white, 0, sel_x - ui(3), hy - ui(6), ui(16 + 6), ui(10), make_color_hsv(hue * 255, 255, 255), 1); - draw_sprite_stretched_ext(s_ui_base_white, 0, cx, cy, ui(12), ui(12), color, 1); + draw_sprite_stretched_ext(s_ui_base_white, 0, cx, cy, ui(12), ui(12), CURRENT_COLOR, 1); } else if(mode == 1) { var vy = sel_y + (1 - val) * sel_h; var cx = cont_x + hue * cont_w - ui(6); var cy = cont_y + (1 - sat) * cont_h - ui(6); draw_sprite_stretched_ext(s_ui_base_white, 0, sel_x - ui(3), vy - ui(6), ui(16 + 6), ui(10), make_color_hsv(hue * 255, 255, val * 255), 1); - draw_sprite_stretched_ext(s_ui_base_white, 0, cx, cy, ui(12), ui(12), color, 1); - } - - var amo = min(array_length(colors) + 1, floor((w - ui(padding * 2)) / ui(24 + 4))); - - for( var i = 0; i < amo; i++ ) { - var cx = ui(padding) + ui(24 + 4) * i; - var cy = h - ui(8 + 24); - - if(i == 0) { - draw_sprite_stretched_ext(s_ui_base_white, 0, cx + ui(4), cy + ui(4), ui(16), ui(16), color, color_get_alpha(color) / 255); - draw_sprite_stretched_ext(THEME.ui_panel_active, 0, cx, cy, ui(24), ui(24), c_white, 0.5); - - if(pHOVER && point_in_rectangle(mx, my, cx, cy, cx + ui(24), cy + ui(24))) { - draw_sprite_stretched_ext(THEME.ui_panel_active, 0, cx, cy, ui(24), ui(24), c_white, 1); - if(mouse_press(mb_left, pFOCUS)) { - array_insert(colors, 0, color); - - if(COLORS_GLOBAL_SET != noone) { - COLORS_GLOBAL_SET(color); - - } else { - DRAGGING = { - type: "Color", - data: color - } - MESSAGE = DRAGGING; - } - } - } - continue; - } - - var c = colors[i - 1]; - draw_sprite_stretched_ext(s_ui_base_white, 0, cx, cy, ui(24), ui(24), c, 1); - - if(mouse_press(mb_left, pFOCUS) && point_in_rectangle(mx, my, cx, cy, cx + ui(24), cy + ui(24))) { - DRAGGING = { - type: "Color", - data: c - } - MESSAGE = DRAGGING; - } + draw_sprite_stretched_ext(s_ui_base_white, 0, cx, cy, ui(12), ui(12), CURRENT_COLOR, 1); } if(DRAGGING && DRAGGING.type == "Color" && pHOVER) { @@ -193,5 +209,15 @@ function Panel_Color() : PanelContent() constructor { if(mouse_release(mb_left)) setColor(DRAGGING.data); } + + if(mouse_press(mb_right, pFOCUS)) { + menuCall("color_window_menu",,, [ + menuItem(__txt("Toggle Alpha"), function() { show_alpha = !show_alpha; }, noone, noone, function() /*=>*/ {return show_alpha} ), + menuItem(__txt("Toggle Palette"), function() { show_palette = !show_palette; }, noone, noone, function() /*=>*/ {return show_palette} ), + menuItem(__txt("Toggle Hex"), function() { show_hex = !show_hex; }, noone, noone, function() /*=>*/ {return show_hex} ), + ]); + } + + refreshHSV(); } } \ No newline at end of file diff --git a/scripts/panel_palette/panel_palette.gml b/scripts/panel_palette/panel_palette.gml index 3b3278e0e..420e59ac8 100644 --- a/scripts/panel_palette/panel_palette.gml +++ b/scripts/panel_palette/panel_palette.gml @@ -25,7 +25,7 @@ function Panel_Palette() : PanelContent() constructor { } var _height; var yy = _y; - var cur = COLORS_GLOBAL_GET != noone? COLORS_GLOBAL_GET() : noone; + var cur = CURRENT_COLOR; for(var i = 0; i < array_length(PALETTES); i++) { var preset = PALETTES[i]; @@ -56,16 +56,13 @@ function Panel_Palette() : PanelContent() constructor { var _index = m_gy * col + m_gx; if(_index < pre_amo && _index >= 0) { - if(COLORS_GLOBAL_SET != noone) { - COLORS_GLOBAL_SET(array_safe_get_fast(preset.palette, _index)); + CURRENT_COLOR = array_safe_get_fast(preset.palette, _index); - } else { - DRAGGING = { - type: "Color", - data: array_safe_get_fast(preset.palette, _index) - } - MESSAGE = DRAGGING; + DRAGGING = { + type: "Color", + data: array_safe_get_fast(preset.palette, _index) } + MESSAGE = DRAGGING; } } else if(point_in_rectangle(_m[0], _m[1], ui(10), yy, ww - ui(10), yy + ui(24))) { DRAGGING = { diff --git a/scripts/panel_preview/panel_preview.gml b/scripts/panel_preview/panel_preview.gml index 0988142e0..348c6bed2 100644 --- a/scripts/panel_preview/panel_preview.gml +++ b/scripts/panel_preview/panel_preview.gml @@ -473,7 +473,7 @@ function Panel_Preview() : PanelContent() constructor { else if(canvas_s > 1) inc = 0.25; if(mouse_wheel_down() && !key_mod_press_any()) canvas_s = max(round(canvas_s / inc) * inc - inc, 0.10); - if(mouse_wheel_up() && !key_mod_press_any()) canvas_s = min(round(canvas_s / inc) * inc + inc, 64); + if(mouse_wheel_up() && !key_mod_press_any()) canvas_s = min(round(canvas_s / inc) * inc + inc, 1024); if(_canvas_s != canvas_s) { var dx = (canvas_s - _canvas_s) * ((mx - canvas_x) / _canvas_s); @@ -1238,8 +1238,6 @@ function Panel_Preview() : PanelContent() constructor { overlayHover &= !key_mod_press(CTRL); var params = { w, h, toolbar_height }; - reset_global_getset(); - if(_node.is_3D) { if(key_mod_press(CTRL) || d3_tool_snap) { _snx = d3_tool_snap_position; @@ -1748,14 +1746,14 @@ function Panel_Preview() : PanelContent() constructor { if(mouse_on_preview && mouse_press(mb_right, pFOCUS) && !key_mod_press(SHIFT)) { menuCall("preview_context_menu",,, [ - menuItem(__txtx("panel_graph_preview_window", "Send to preview window"), function() { create_preview_window(getNodePreview()); }, noone, ["Preview", "Preview window"]), + menuItem(__txtx("panel_graph_preview_window", "Send to preview window"), function() { create_preview_window(getNodePreview()); }, noone, ["Preview", "Preview window"]), -1, - menuItem(__txtx("panel_preview_save", "Save current preview as") + "...", function() { saveCurrentFrame(); }), - menuItem(__txtx("panel_preview_save_all", "Save all current previews as") + "...", function() { saveAllCurrentFrames(); }), + menuItem(__txtx("panel_preview_save", "Save current preview as") + "...", function() { saveCurrentFrame(); }, noone, ["Preview", "Save current frame"]), + menuItem(__txtx("panel_preview_save_all", "Save all current previews as") + "...", function() { saveAllCurrentFrames(); }, noone, ["Preview", "Save all current frame"]), -1, - menuItem(__txtx("panel_preview_copy_image", "Copy image"), function() { copyCurrentFrame(); }, THEME.copy), - menuItem(__txtx("panel_preview_copy_color", "Copy color") + " [" + string(sample_color) + "]", function() { clipboard_set_text(sample_color); }), - menuItem(__txtx("panel_preview_copy_hex", "Copy hex") + " [" + string(color_get_hex(sample_color)) + "]", function() { clipboard_set_text(color_get_hex(sample_color)); }), + menuItem($"{__txtx("panel_preview_copy_image", "Copy image")}", function() { copyCurrentFrame(); }, THEME.copy), + menuItem($"{__txtx("panel_preview_copy_color", "Copy color")} [{sample_color}]", function() { clipboard_set_text(sample_color); }), + menuItem($"{__txtx("panel_preview_copy_hex", "Copy hex")} [{color_get_hex(sample_color)}]", function() { clipboard_set_text(color_get_hex(sample_color)); }), ],, getNodePreview()); } diff --git a/scripts/save_function/save_function.gml b/scripts/save_function/save_function.gml index fd62fee90..fd13b0c9c 100644 --- a/scripts/save_function/save_function.gml +++ b/scripts/save_function/save_function.gml @@ -1,5 +1,6 @@ -globalvar SAVING; -SAVING = false; +globalvar SAVING, IS_SAVING; +SAVING = false; +IS_SAVING = false; function NEW() { #region CALL("new"); @@ -114,7 +115,8 @@ function SAVE_AT(project = PROJECT, path = "", log = "save at ") { #region if(DEMO) return false; - SAVING = true; + IS_SAVING = true; + SAVING = true; //if(TESTING && string_char_at(filename_name(path), 1) != "[") // path = $"{filename_dir(path)}/[{VERSION_STRING}] {filename_name(path)}"; diff --git a/scripts/string_hexadecimal/string_hexadecimal.gml b/scripts/string_hexadecimal/string_hexadecimal.gml index b2ed5b2db..36f38f9cf 100644 --- a/scripts/string_hexadecimal/string_hexadecimal.gml +++ b/scripts/string_hexadecimal/string_hexadecimal.gml @@ -32,14 +32,14 @@ function number_to_hex(val) { return ss; } -function color_get_hex(color) { +function color_get_hex(color, alpha = true) { var arr = is_array(color) && array_length(color) == 4; var r = arr? round(color[0] * 256) : color_get_red(color); var g = arr? round(color[1] * 256) : color_get_green(color); var b = arr? round(color[2] * 256) : color_get_blue(color); var a = arr? round(color[3] * 256) : color_get_alpha(color); - - return number_to_hex(r) + number_to_hex(g) + number_to_hex(b) + (is_int64(color)? number_to_hex(a) : ""); + + return number_to_hex(r) + number_to_hex(g) + number_to_hex(b) + (alpha && is_int64(color)? number_to_hex(a) : ""); } function color_from_rgb(str) { diff --git a/shaders/sh_ani_noise/sh_ani_noise.yy b/shaders/sh_ani_noise/sh_ani_noise.yy index bda4033cc..dceebef4b 100644 --- a/shaders/sh_ani_noise/sh_ani_noise.yy +++ b/shaders/sh_ani_noise/sh_ani_noise.yy @@ -4,7 +4,7 @@ "name":"sh_ani_noise", "parent":{ "name":"noise", - "path":"folders/nodes/data/generator/noise.yy", + "path":"folders/shader/generator/noise.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_blink_expand/sh_blink_expand.yy b/shaders/sh_blink_expand/sh_blink_expand.yy index e0b94020d..5de2544f8 100644 --- a/shaders/sh_blink_expand/sh_blink_expand.yy +++ b/shaders/sh_blink_expand/sh_blink_expand.yy @@ -4,7 +4,7 @@ "name":"sh_blink_expand", "parent":{ "name":"blinker", - "path":"folders/nodes/data/generator/blinker.yy", + "path":"folders/shader/generator/blinker.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_blink_extract/sh_blink_extract.yy b/shaders/sh_blink_extract/sh_blink_extract.yy index 53aa1ce36..5fd7a1b39 100644 --- a/shaders/sh_blink_extract/sh_blink_extract.yy +++ b/shaders/sh_blink_extract/sh_blink_extract.yy @@ -4,7 +4,7 @@ "name":"sh_blink_extract", "parent":{ "name":"blinker", - "path":"folders/nodes/data/generator/blinker.yy", + "path":"folders/shader/generator/blinker.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_blink_replace/sh_blink_replace.yy b/shaders/sh_blink_replace/sh_blink_replace.yy index 419ae8b36..6f0038ee6 100644 --- a/shaders/sh_blink_replace/sh_blink_replace.yy +++ b/shaders/sh_blink_replace/sh_blink_replace.yy @@ -4,7 +4,7 @@ "name":"sh_blink_replace", "parent":{ "name":"blinker", - "path":"folders/nodes/data/generator/blinker.yy", + "path":"folders/shader/generator/blinker.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_cell_noise/sh_cell_noise.yy b/shaders/sh_cell_noise/sh_cell_noise.yy index 1102ab6c9..e35337b95 100644 --- a/shaders/sh_cell_noise/sh_cell_noise.yy +++ b/shaders/sh_cell_noise/sh_cell_noise.yy @@ -4,7 +4,7 @@ "name":"sh_cell_noise", "parent":{ "name":"cell", - "path":"folders/nodes/data/generator/cell.yy", + "path":"folders/shader/generator/cell.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_cell_noise_crystal/sh_cell_noise_crystal.yy b/shaders/sh_cell_noise_crystal/sh_cell_noise_crystal.yy index 66b74a83d..476b17176 100644 --- a/shaders/sh_cell_noise_crystal/sh_cell_noise_crystal.yy +++ b/shaders/sh_cell_noise_crystal/sh_cell_noise_crystal.yy @@ -4,7 +4,7 @@ "name":"sh_cell_noise_crystal", "parent":{ "name":"cell", - "path":"folders/nodes/data/generator/cell.yy", + "path":"folders/shader/generator/cell.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_cell_noise_edge/sh_cell_noise_edge.yy b/shaders/sh_cell_noise_edge/sh_cell_noise_edge.yy index 9cf22ccf4..257d780f6 100644 --- a/shaders/sh_cell_noise_edge/sh_cell_noise_edge.yy +++ b/shaders/sh_cell_noise_edge/sh_cell_noise_edge.yy @@ -4,7 +4,7 @@ "name":"sh_cell_noise_edge", "parent":{ "name":"cell", - "path":"folders/nodes/data/generator/cell.yy", + "path":"folders/shader/generator/cell.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_cell_noise_random/sh_cell_noise_random.yy b/shaders/sh_cell_noise_random/sh_cell_noise_random.yy index 354b42c2c..52dfc5f93 100644 --- a/shaders/sh_cell_noise_random/sh_cell_noise_random.yy +++ b/shaders/sh_cell_noise_random/sh_cell_noise_random.yy @@ -4,7 +4,7 @@ "name":"sh_cell_noise_random", "parent":{ "name":"cell", - "path":"folders/nodes/data/generator/cell.yy", + "path":"folders/shader/generator/cell.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_cell_noise_round/sh_cell_noise_round.yy b/shaders/sh_cell_noise_round/sh_cell_noise_round.yy index 7f7e28519..c17f43cae 100644 --- a/shaders/sh_cell_noise_round/sh_cell_noise_round.yy +++ b/shaders/sh_cell_noise_round/sh_cell_noise_round.yy @@ -4,7 +4,7 @@ "name":"sh_cell_noise_round", "parent":{ "name":"cell", - "path":"folders/nodes/data/generator/cell.yy", + "path":"folders/shader/generator/cell.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_grid/sh_grid.fsh b/shaders/sh_grid/sh_grid.fsh index 08b637da8..2aa492dd4 100644 --- a/shaders/sh_grid/sh_grid.fsh +++ b/shaders/sh_grid/sh_grid.fsh @@ -233,6 +233,7 @@ void main() { #region if(mode == 0) { colr = gradientEval(random(sqSt)); + } else if(mode == 2) { vec2 uv = fract(_pos * sca); @@ -248,6 +249,7 @@ void main() { #region } colr = texture2D( gm_BaseTexture, uv ); + } else if(mode == 3) { vec2 uv = fract(sqSt); colr = texture2D( gm_BaseTexture, uv ); diff --git a/shaders/sh_grid/sh_grid.yy b/shaders/sh_grid/sh_grid.yy index 5d26e5ebf..e6f118299 100644 --- a/shaders/sh_grid/sh_grid.yy +++ b/shaders/sh_grid/sh_grid.yy @@ -4,7 +4,7 @@ "name":"sh_grid", "parent":{ "name":"grid", - "path":"folders/nodes/data/generator/grid.yy", + "path":"folders/shader/generator/grid.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_grid_hex/sh_grid_hex.yy b/shaders/sh_grid_hex/sh_grid_hex.yy index ea73f2831..656ae6a7a 100644 --- a/shaders/sh_grid_hex/sh_grid_hex.yy +++ b/shaders/sh_grid_hex/sh_grid_hex.yy @@ -4,7 +4,7 @@ "name":"sh_grid_hex", "parent":{ "name":"grid", - "path":"folders/nodes/data/generator/grid.yy", + "path":"folders/shader/generator/grid.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_grid_noise/sh_grid_noise.yy b/shaders/sh_grid_noise/sh_grid_noise.yy index 968dd1e2c..d1cbaccc6 100644 --- a/shaders/sh_grid_noise/sh_grid_noise.yy +++ b/shaders/sh_grid_noise/sh_grid_noise.yy @@ -4,7 +4,7 @@ "name":"sh_grid_noise", "parent":{ "name":"grid", - "path":"folders/nodes/data/generator/grid.yy", + "path":"folders/shader/generator/grid.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_grid_pentagonal/sh_grid_pentagonal.fsh b/shaders/sh_grid_pentagonal/sh_grid_pentagonal.fsh new file mode 100644 index 000000000..c56af4dde --- /dev/null +++ b/shaders/sh_grid_pentagonal/sh_grid_pentagonal.fsh @@ -0,0 +1,292 @@ +// +// Simple passthrough fragment shader +// +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +//sqrt of 3 +#define r3 1.73205080757 + +uniform vec2 position; +uniform vec2 dimension; +uniform float seed; +uniform int mode; +uniform int aa; + +uniform vec2 scale; +uniform int scaleUseSurf; +uniform sampler2D scaleSurf; + +uniform vec2 angle; +uniform int angleUseSurf; +uniform sampler2D angleSurf; + +uniform vec2 width; +uniform int widthUseSurf; +uniform sampler2D widthSurf; + +uniform vec4 gapCol; +uniform int gradient_use; + +float random (in vec2 st) { return fract(sin(dot(st.xy + vec2(85.456034, 64.54065), vec2(12.9898, 78.233))) * (43758.5453123 + seed) ); } + +#region //////////////////////////////////// GRADIENT //////////////////////////////////// + #define GRADIENT_LIMIT 128 + + uniform int gradient_blend; + uniform vec4 gradient_color[GRADIENT_LIMIT]; + uniform float gradient_time[GRADIENT_LIMIT]; + uniform int gradient_keys; + uniform int gradient_use_map; + uniform vec4 gradient_map_range; + uniform sampler2D gradient_map; + + vec3 linearToGamma(vec3 c) { return pow(c, vec3( 2.2)); } + vec3 gammaToLinear(vec3 c) { return pow(c, vec3(1. / 2.2)); } + + vec3 rgbMix(vec3 c1, vec3 c2, float t) { #region + vec3 k1 = linearToGamma(c1); + vec3 k2 = linearToGamma(c2); + + return gammaToLinear(mix(k1, k2, t)); + } #endregion + + vec3 rgb2oklab(vec3 c) { #region + const mat3 kCONEtoLMS = mat3( + 0.4121656120, 0.2118591070, 0.0883097947, + 0.5362752080, 0.6807189584, 0.2818474174, + 0.0514575653, 0.1074065790, 0.6302613616); + + c = pow(c, vec3(2.2)); + c = pow( kCONEtoLMS * c, vec3(1.0 / 3.0) ); + + return c; + } #endregion + + vec3 oklab2rgb(vec3 c) { #region + const mat3 kLMStoCONE = mat3( + 4.0767245293, -1.2681437731, -0.0041119885, + -3.3072168827, 2.6093323231, -0.7034763098, + 0.2307590544, -0.3411344290, 1.7068625689); + + c = kLMStoCONE * (c * c * c); + c = pow(c, vec3(1. / 2.2)); + + return c; + } #endregion + + vec3 oklabMax(vec3 c1, vec3 c2, float t) { #region + vec3 k1 = rgb2oklab(c1); + vec3 k2 = rgb2oklab(c2); + + return oklab2rgb(mix(k1, k2, t)); + } #endregion + + vec3 rgb2hsv(vec3 c) { #region + vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g)); + vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r)); + + float d = q.x - min(q.w, q.y); + float e = 0.0000000001; + return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); + } #endregion + + vec3 hsv2rgb(vec3 c) { #region + vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www); + return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y); + } #endregion + + float hueDist(float a0, float a1, float t) { #region + float da = fract(a1 - a0); + float ds = fract(2. * da) - da; + return a0 + ds * t; + } #endregion + + vec3 hsvMix(vec3 c1, vec3 c2, float t) { #region + vec3 h1 = rgb2hsv(c1); + vec3 h2 = rgb2hsv(c2); + + vec3 h = vec3(0.); + h.x = h.x + hueDist(h1.x, h2.x, t); + h.y = mix(h1.y, h2.y, t); + h.z = mix(h1.z, h2.z, t); + + return hsv2rgb(h); + } #endregion + + vec4 gradientEval(in float prog) { #region + if(gradient_use_map == 1) { + vec2 samplePos = mix(gradient_map_range.xy, gradient_map_range.zw, prog); + return texture2D( gradient_map, samplePos ); + } + + vec4 col = vec4(0.); + + for(int i = 0; i < GRADIENT_LIMIT; i++) { + if(gradient_time[i] == prog) { + col = gradient_color[i]; + break; + } else if(gradient_time[i] > prog) { + if(i == 0) + col = gradient_color[i]; + else { + float t = (prog - gradient_time[i - 1]) / (gradient_time[i] - gradient_time[i - 1]); + vec3 c0 = gradient_color[i - 1].rgb; + vec3 c1 = gradient_color[i].rgb; + float a = mix(gradient_color[i - 1].a, gradient_color[i].a, t); + + if(gradient_blend == 0) + col = vec4(mix(c0, c1, t), a); + + else if(gradient_blend == 1) + col = gradient_color[i - 1]; + + else if(gradient_blend == 2) + col = vec4(hsvMix(c0, c1, t), a); + + else if(gradient_blend == 3) + col = vec4(oklabMax(c0, c1, t), a); + + else if(gradient_blend == 4) + col = vec4(rgbMix(c0, c1, t), a); + } + break; + } + if(i >= gradient_keys - 1) { + col = gradient_color[gradient_keys - 1]; + break; + } + } + + return col; + } #endregion + +#endregion //////////////////////////////////// GRADIENT //////////////////////////////////// + +float sdLine(vec2 a, vec2 b, float r, vec2 p){ + vec2 ab = b - a; + float t = dot(p - a, ab) / dot(ab, ab); + vec2 p2 = a + clamp(t, 0.0, 1.0) * ab; + return length(p - p2) - r; +} + +//draws the lines between the pentagons +float pentagrid(vec2 uv) { + vec2 cuv = floor(uv / r3); + uv = fract(uv / r3) * r3; + float d = 9999999.; + + //checkerboard pattern where alternate cells are transposed + if (mod(cuv.x, 2.0) == mod(cuv.y, 2.0)){ + + d = min(d, sdLine(vec2(r3 / 2.0 - 0.5, 0.), vec2(r3 / 2.0 + 0.5, r3), 0.01, uv)); + d = min(d, sdLine(vec2(0., r3 / 2.0 + 0.5), vec2(r3, r3 / 2.0 - 0.5), 0.01, uv)); + d = min(d, sdLine(vec2(0., 0.), vec2(r3 / 2.0 - 0.5, 0.), 0.01, uv)); + d = min(d, sdLine(vec2(r3, r3), vec2(r3 / 2.0 + 0.5, r3), 0.01, uv)); + d = min(d, sdLine(vec2(0., r3), vec2(0., r3 / 2.0 + 0.5), 0.01, uv)); + d = min(d, sdLine(vec2(r3, 0.), vec2(r3, r3 / 2.0 - 0.5), 0.01, uv)); + + } else { + + d = min(d, sdLine(vec2(0., r3 / 2.0 - 0.5),vec2(r3, r3 / 2.0 + 0.5), 0.01, uv)); + d = min(d, sdLine(vec2(r3 / 2.0 + 0.5, 0.),vec2(r3 / 2.0 - 0.5, r3), 0.01, uv)); + d = min(d, sdLine(vec2(0., 0.),vec2(0., r3 / 2.0 - 0.5), 0.01, uv)); + d = min(d, sdLine(vec2(r3, r3),vec2(r3, r3 / 2.0 + 0.5), 0.01, uv)); + d = min(d, sdLine(vec2(r3, 0.),vec2(r3 / 2.0 + 0.5, 0.), 0.01, uv)); + d = min(d, sdLine(vec2(0., r3),vec2(r3 / 2.0 - 0.5, r3), 0.01, uv)); + } + return d; +} + +//returns the incenter of the pentagon a point is in +vec2 pentacoords(vec2 uv){ + vec2 cuv = floor(uv / r3); + uv = fract(uv / r3) * r3; + //checkerboard pattern where alternate cells are transposed + if (mod(cuv.x, 2.0) == mod(cuv.y, 2.0)){ + + vec2 ruv = mat2(-r3, -1., 1., -r3) * (uv - r3 / 2.0) * 0.25; //change of basis to "windmill" basis + cuv *= r3; + + if (ruv.x < 0.0 && ruv.y < 0.0){ + return cuv + vec2(r3, (3.0 * r3 - 3.0) / 2.0); //right + + } else if (ruv.x > 0.0 && ruv.y < 0.0){ + return cuv + vec2((3.0 - r3) / 2.0, r3); //up + + } else if (ruv.x < 0.0 && ruv.y > 0.0){ + return cuv + vec2((3.0 * r3 - 3.0) / 2.0, 0.); //down + + } else { + return cuv + vec2(0., (3.0 - r3) / 2.0); //left + } + } else { + cuv *= r3; + vec2 ruv = mat2(r3, 1., 1., -r3) * (uv - r3 / 2.0) * 0.25; //change of basis to "anti-windmill" basis + + if (ruv.x < 0.0 && ruv.y < 0.0) { + return cuv + vec2(r3, (3.0 * r3 - 3.0) / 2.0) - vec2(r3, 0.); //up + + } else if (ruv.x > 0.0 && ruv.y < 0.0) { + return cuv + vec2((3.0 * r3 - 3.0) / 2.0, 0.) + vec2(0., r3); //left + + } else if (ruv.x < 0.0 && ruv.y > 0.0) { + return cuv + vec2((3.0 - r3) / 2.0, r3) - vec2(0. , r3); //right + + } else { + return cuv + vec2(0., (3.0 - r3) / 2.0) + vec2(r3, 0); //down + } + } +} + +void main() { + #region params + vec2 sca = scale; + if(scaleUseSurf == 1) { + vec4 _vMap = texture2D( scaleSurf, v_vTexcoord ); + sca = vec2(mix(scale.x, scale.y, (_vMap.r + _vMap.g + _vMap.b) / 3.)); + } + + float ang = angle.x; + if(angleUseSurf == 1) { + vec4 _vMap = texture2D( angleSurf, v_vTexcoord ); + ang = mix(angle.x, angle.y, (_vMap.r + _vMap.g + _vMap.b) / 3.); + } + ang = radians(ang); + + float wid = width.x; + if(widthUseSurf == 1) { + vec4 _vMap = texture2D( widthSurf, v_vTexcoord ); + wid = mix(width.x, width.y, (_vMap.r + _vMap.g + _vMap.b) / 3.); + } + + wid -= 0.05; + #endregion + + vec2 pos = (v_vTexcoord - position) * sca; + float ratio = dimension.x / dimension.y; + vec2 _pos; + _pos.x = pos.x * ratio * cos(ang) - pos.y * sin(ang); + _pos.y = pos.x * ratio * sin(ang) + pos.y * cos(ang); + + vec2 coord = pentacoords(_pos); + float dist = pentagrid(_pos); + vec4 colr; + + if(mode == 0) { + colr = gradientEval(random(coord)); + + } else if(mode == 1) { + colr = vec4(vec3(dist), 1.); + + } else if(mode == 2) { + vec2 uv = fract(coord / sca); + colr = texture2D( gm_BaseTexture, uv ); + + } + + float _aa = 4. / max(dimension.x, dimension.y); + gl_FragColor = mix(gapCol, colr, aa == 1? smoothstep(wid - _aa, wid, dist) : step(wid, dist)); +} \ No newline at end of file diff --git a/shaders/sh_grid_pentagonal/sh_grid_pentagonal.vsh b/shaders/sh_grid_pentagonal/sh_grid_pentagonal.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_grid_pentagonal/sh_grid_pentagonal.vsh @@ -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; +} diff --git a/shaders/sh_grid_pentagonal/sh_grid_pentagonal.yy b/shaders/sh_grid_pentagonal/sh_grid_pentagonal.yy new file mode 100644 index 000000000..299f8d327 --- /dev/null +++ b/shaders/sh_grid_pentagonal/sh_grid_pentagonal.yy @@ -0,0 +1,12 @@ +{ + "$GMShader":"", + "%Name":"sh_grid_pentagonal", + "name":"sh_grid_pentagonal", + "parent":{ + "name":"grid", + "path":"folders/shader/generator/grid.yy", + }, + "resourceType":"GMShader", + "resourceVersion":"2.0", + "type":1, +} \ No newline at end of file diff --git a/shaders/sh_grid_tri/sh_grid_tri.yy b/shaders/sh_grid_tri/sh_grid_tri.yy index 0aaf9badc..02541907a 100644 --- a/shaders/sh_grid_tri/sh_grid_tri.yy +++ b/shaders/sh_grid_tri/sh_grid_tri.yy @@ -4,7 +4,7 @@ "name":"sh_grid_tri", "parent":{ "name":"grid", - "path":"folders/nodes/data/generator/grid.yy", + "path":"folders/shader/generator/grid.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_herringbone_tile/sh_herringbone_tile.yy b/shaders/sh_herringbone_tile/sh_herringbone_tile.yy index 298dddcb3..708a81c6c 100644 --- a/shaders/sh_herringbone_tile/sh_herringbone_tile.yy +++ b/shaders/sh_herringbone_tile/sh_herringbone_tile.yy @@ -4,7 +4,7 @@ "name":"sh_herringbone_tile", "parent":{ "name":"grid", - "path":"folders/nodes/data/generator/grid.yy", + "path":"folders/shader/generator/grid.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_interpret_number/sh_interpret_number.yy b/shaders/sh_interpret_number/sh_interpret_number.yy index 066396427..4b68a291c 100644 --- a/shaders/sh_interpret_number/sh_interpret_number.yy +++ b/shaders/sh_interpret_number/sh_interpret_number.yy @@ -4,7 +4,7 @@ "name":"sh_interpret_number", "parent":{ "name":"interpret", - "path":"folders/nodes/data/generator/interpret.yy", + "path":"folders/shader/generator/interpret.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_noise/sh_noise.yy b/shaders/sh_noise/sh_noise.yy index f966cd23b..c61961bb8 100644 --- a/shaders/sh_noise/sh_noise.yy +++ b/shaders/sh_noise/sh_noise.yy @@ -4,7 +4,7 @@ "name":"sh_noise", "parent":{ "name":"noise", - "path":"folders/nodes/data/generator/noise.yy", + "path":"folders/shader/generator/noise.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_noise_bubble/sh_noise_bubble.yy b/shaders/sh_noise_bubble/sh_noise_bubble.yy index 011ece831..e19de5ba6 100644 --- a/shaders/sh_noise_bubble/sh_noise_bubble.yy +++ b/shaders/sh_noise_bubble/sh_noise_bubble.yy @@ -4,7 +4,7 @@ "name":"sh_noise_bubble", "parent":{ "name":"noise", - "path":"folders/nodes/data/generator/noise.yy", + "path":"folders/shader/generator/noise.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_noise_fbm/sh_noise_fbm.yy b/shaders/sh_noise_fbm/sh_noise_fbm.yy index 58d245da4..3e5f37090 100644 --- a/shaders/sh_noise_fbm/sh_noise_fbm.yy +++ b/shaders/sh_noise_fbm/sh_noise_fbm.yy @@ -4,7 +4,7 @@ "name":"sh_noise_fbm", "parent":{ "name":"noise", - "path":"folders/nodes/data/generator/noise.yy", + "path":"folders/shader/generator/noise.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_noise_flow/sh_noise_flow.yy b/shaders/sh_noise_flow/sh_noise_flow.yy index 98508b59c..9e44ed5ad 100644 --- a/shaders/sh_noise_flow/sh_noise_flow.yy +++ b/shaders/sh_noise_flow/sh_noise_flow.yy @@ -4,7 +4,7 @@ "name":"sh_noise_flow", "parent":{ "name":"noise", - "path":"folders/nodes/data/generator/noise.yy", + "path":"folders/shader/generator/noise.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_noise_fold/sh_noise_fold.yy b/shaders/sh_noise_fold/sh_noise_fold.yy index 5107c927a..4672dd01c 100644 --- a/shaders/sh_noise_fold/sh_noise_fold.yy +++ b/shaders/sh_noise_fold/sh_noise_fold.yy @@ -4,7 +4,7 @@ "name":"sh_noise_fold", "parent":{ "name":"noise", - "path":"folders/nodes/data/generator/noise.yy", + "path":"folders/shader/generator/noise.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_noise_gabor/sh_noise_gabor.yy b/shaders/sh_noise_gabor/sh_noise_gabor.yy index c8c1db7d4..9a7984ebc 100644 --- a/shaders/sh_noise_gabor/sh_noise_gabor.yy +++ b/shaders/sh_noise_gabor/sh_noise_gabor.yy @@ -4,7 +4,7 @@ "name":"sh_noise_gabor", "parent":{ "name":"noise", - "path":"folders/nodes/data/generator/noise.yy", + "path":"folders/shader/generator/noise.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_noise_grid_hex/sh_noise_grid_hex.yy b/shaders/sh_noise_grid_hex/sh_noise_grid_hex.yy index b1dead206..29975dc61 100644 --- a/shaders/sh_noise_grid_hex/sh_noise_grid_hex.yy +++ b/shaders/sh_noise_grid_hex/sh_noise_grid_hex.yy @@ -4,7 +4,7 @@ "name":"sh_noise_grid_hex", "parent":{ "name":"noise", - "path":"folders/nodes/data/generator/noise.yy", + "path":"folders/shader/generator/noise.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_noise_grid_tri/sh_noise_grid_tri.yy b/shaders/sh_noise_grid_tri/sh_noise_grid_tri.yy index 32043313c..5059639dd 100644 --- a/shaders/sh_noise_grid_tri/sh_noise_grid_tri.yy +++ b/shaders/sh_noise_grid_tri/sh_noise_grid_tri.yy @@ -4,7 +4,7 @@ "name":"sh_noise_grid_tri", "parent":{ "name":"noise", - "path":"folders/nodes/data/generator/noise.yy", + "path":"folders/shader/generator/noise.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_noise_shard/sh_noise_shard.yy b/shaders/sh_noise_shard/sh_noise_shard.yy index 2c10951e3..a4e7bda0e 100644 --- a/shaders/sh_noise_shard/sh_noise_shard.yy +++ b/shaders/sh_noise_shard/sh_noise_shard.yy @@ -4,7 +4,7 @@ "name":"sh_noise_shard", "parent":{ "name":"noise", - "path":"folders/nodes/data/generator/noise.yy", + "path":"folders/shader/generator/noise.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_noise_strand/sh_noise_strand.yy b/shaders/sh_noise_strand/sh_noise_strand.yy index 1398c1405..91c8cab27 100644 --- a/shaders/sh_noise_strand/sh_noise_strand.yy +++ b/shaders/sh_noise_strand/sh_noise_strand.yy @@ -4,7 +4,7 @@ "name":"sh_noise_strand", "parent":{ "name":"noise", - "path":"folders/nodes/data/generator/noise.yy", + "path":"folders/shader/generator/noise.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_noise_wavelet/sh_noise_wavelet.yy b/shaders/sh_noise_wavelet/sh_noise_wavelet.yy index 4b4ec6c0b..53cf98ff8 100644 --- a/shaders/sh_noise_wavelet/sh_noise_wavelet.yy +++ b/shaders/sh_noise_wavelet/sh_noise_wavelet.yy @@ -4,7 +4,7 @@ "name":"sh_noise_wavelet", "parent":{ "name":"noise", - "path":"folders/nodes/data/generator/noise.yy", + "path":"folders/shader/generator/noise.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_perlin/sh_perlin.yy b/shaders/sh_perlin/sh_perlin.yy index 5c15cc8b6..49187e1af 100644 --- a/shaders/sh_perlin/sh_perlin.yy +++ b/shaders/sh_perlin/sh_perlin.yy @@ -4,7 +4,7 @@ "name":"sh_perlin", "parent":{ "name":"noise", - "path":"folders/nodes/data/generator/noise.yy", + "path":"folders/shader/generator/noise.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_perlin_extra/sh_perlin_extra.yy b/shaders/sh_perlin_extra/sh_perlin_extra.yy index 3a99df5ca..3d584e58c 100644 --- a/shaders/sh_perlin_extra/sh_perlin_extra.yy +++ b/shaders/sh_perlin_extra/sh_perlin_extra.yy @@ -4,7 +4,7 @@ "name":"sh_perlin_extra", "parent":{ "name":"noise", - "path":"folders/nodes/data/generator/noise.yy", + "path":"folders/shader/generator/noise.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_perlin_smear/sh_perlin_smear.yy b/shaders/sh_perlin_smear/sh_perlin_smear.yy index ed3cc64d3..d5aa73ef9 100644 --- a/shaders/sh_perlin_smear/sh_perlin_smear.yy +++ b/shaders/sh_perlin_smear/sh_perlin_smear.yy @@ -4,7 +4,7 @@ "name":"sh_perlin_smear", "parent":{ "name":"noise", - "path":"folders/nodes/data/generator/noise.yy", + "path":"folders/shader/generator/noise.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_perlin_tiled/sh_perlin_tiled.yy b/shaders/sh_perlin_tiled/sh_perlin_tiled.yy index 0d104b09d..98ed1c21e 100644 --- a/shaders/sh_perlin_tiled/sh_perlin_tiled.yy +++ b/shaders/sh_perlin_tiled/sh_perlin_tiled.yy @@ -4,7 +4,7 @@ "name":"sh_perlin_tiled", "parent":{ "name":"noise", - "path":"folders/nodes/data/generator/noise.yy", + "path":"folders/shader/generator/noise.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_pytagorean_tile/sh_pytagorean_tile.yy b/shaders/sh_pytagorean_tile/sh_pytagorean_tile.yy index e50c1f58a..c5914bbcd 100644 --- a/shaders/sh_pytagorean_tile/sh_pytagorean_tile.yy +++ b/shaders/sh_pytagorean_tile/sh_pytagorean_tile.yy @@ -4,7 +4,7 @@ "name":"sh_pytagorean_tile", "parent":{ "name":"grid", - "path":"folders/nodes/data/generator/grid.yy", + "path":"folders/shader/generator/grid.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_random_tile/sh_random_tile.yy b/shaders/sh_random_tile/sh_random_tile.yy index 35e662166..56dbf4805 100644 --- a/shaders/sh_random_tile/sh_random_tile.yy +++ b/shaders/sh_random_tile/sh_random_tile.yy @@ -4,7 +4,7 @@ "name":"sh_random_tile", "parent":{ "name":"grid", - "path":"folders/nodes/data/generator/grid.yy", + "path":"folders/shader/generator/grid.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_rd_add/sh_rd_add.yy b/shaders/sh_rd_add/sh_rd_add.yy index 5bc0c6dca..0d08cd70e 100644 --- a/shaders/sh_rd_add/sh_rd_add.yy +++ b/shaders/sh_rd_add/sh_rd_add.yy @@ -4,7 +4,7 @@ "name":"sh_rd_add", "parent":{ "name":"reaction_diffusion", - "path":"folders/nodes/data/generator/reaction_diffusion.yy", + "path":"folders/shader/generator/reaction_diffusion.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_rd_convert/sh_rd_convert.yy b/shaders/sh_rd_convert/sh_rd_convert.yy index f2e95afa8..11c5de65d 100644 --- a/shaders/sh_rd_convert/sh_rd_convert.yy +++ b/shaders/sh_rd_convert/sh_rd_convert.yy @@ -4,7 +4,7 @@ "name":"sh_rd_convert", "parent":{ "name":"reaction_diffusion", - "path":"folders/nodes/data/generator/reaction_diffusion.yy", + "path":"folders/shader/generator/reaction_diffusion.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_rd_propagate/sh_rd_propagate.yy b/shaders/sh_rd_propagate/sh_rd_propagate.yy index e71b476b9..3b99e0f42 100644 --- a/shaders/sh_rd_propagate/sh_rd_propagate.yy +++ b/shaders/sh_rd_propagate/sh_rd_propagate.yy @@ -4,7 +4,7 @@ "name":"sh_rd_propagate", "parent":{ "name":"reaction_diffusion", - "path":"folders/nodes/data/generator/reaction_diffusion.yy", + "path":"folders/shader/generator/reaction_diffusion.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_rd_render/sh_rd_render.yy b/shaders/sh_rd_render/sh_rd_render.yy index e85b86af2..aa6d73c14 100644 --- a/shaders/sh_rd_render/sh_rd_render.yy +++ b/shaders/sh_rd_render/sh_rd_render.yy @@ -4,7 +4,7 @@ "name":"sh_rd_render", "parent":{ "name":"reaction_diffusion", - "path":"folders/nodes/data/generator/reaction_diffusion.yy", + "path":"folders/shader/generator/reaction_diffusion.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_region_fill_border/sh_region_fill_border.yy b/shaders/sh_region_fill_border/sh_region_fill_border.yy index a01203f0f..9655e2e5c 100644 --- a/shaders/sh_region_fill_border/sh_region_fill_border.yy +++ b/shaders/sh_region_fill_border/sh_region_fill_border.yy @@ -4,7 +4,7 @@ "name":"sh_region_fill_border", "parent":{ "name":"region", - "path":"folders/nodes/data/generator/region.yy", + "path":"folders/shader/generator/region.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_region_fill_color/sh_region_fill_color.yy b/shaders/sh_region_fill_color/sh_region_fill_color.yy index f381e65ab..e78376a30 100644 --- a/shaders/sh_region_fill_color/sh_region_fill_color.yy +++ b/shaders/sh_region_fill_color/sh_region_fill_color.yy @@ -4,7 +4,7 @@ "name":"sh_region_fill_color", "parent":{ "name":"region", - "path":"folders/nodes/data/generator/region.yy", + "path":"folders/shader/generator/region.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_region_fill_coordinate/sh_region_fill_coordinate.yy b/shaders/sh_region_fill_coordinate/sh_region_fill_coordinate.yy index eba41dbd8..27d148364 100644 --- a/shaders/sh_region_fill_coordinate/sh_region_fill_coordinate.yy +++ b/shaders/sh_region_fill_coordinate/sh_region_fill_coordinate.yy @@ -4,7 +4,7 @@ "name":"sh_region_fill_coordinate", "parent":{ "name":"region", - "path":"folders/nodes/data/generator/region.yy", + "path":"folders/shader/generator/region.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_region_fill_coordinate_init/sh_region_fill_coordinate_init.yy b/shaders/sh_region_fill_coordinate_init/sh_region_fill_coordinate_init.yy index e1375ca05..358f1a8c9 100644 --- a/shaders/sh_region_fill_coordinate_init/sh_region_fill_coordinate_init.yy +++ b/shaders/sh_region_fill_coordinate_init/sh_region_fill_coordinate_init.yy @@ -4,7 +4,7 @@ "name":"sh_region_fill_coordinate_init", "parent":{ "name":"region", - "path":"folders/nodes/data/generator/region.yy", + "path":"folders/shader/generator/region.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_region_fill_init/sh_region_fill_init.yy b/shaders/sh_region_fill_init/sh_region_fill_init.yy index 6087952dc..93df39652 100644 --- a/shaders/sh_region_fill_init/sh_region_fill_init.yy +++ b/shaders/sh_region_fill_init/sh_region_fill_init.yy @@ -4,7 +4,7 @@ "name":"sh_region_fill_init", "parent":{ "name":"region", - "path":"folders/nodes/data/generator/region.yy", + "path":"folders/shader/generator/region.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_region_fill_inner/sh_region_fill_inner.yy b/shaders/sh_region_fill_inner/sh_region_fill_inner.yy index 4c3be208f..8e24a84fe 100644 --- a/shaders/sh_region_fill_inner/sh_region_fill_inner.yy +++ b/shaders/sh_region_fill_inner/sh_region_fill_inner.yy @@ -4,7 +4,7 @@ "name":"sh_region_fill_inner", "parent":{ "name":"region", - "path":"folders/nodes/data/generator/region.yy", + "path":"folders/shader/generator/region.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_region_fill_inner_remove/sh_region_fill_inner_remove.yy b/shaders/sh_region_fill_inner_remove/sh_region_fill_inner_remove.yy index 8440c4925..6f6cd179f 100644 --- a/shaders/sh_region_fill_inner_remove/sh_region_fill_inner_remove.yy +++ b/shaders/sh_region_fill_inner_remove/sh_region_fill_inner_remove.yy @@ -4,7 +4,7 @@ "name":"sh_region_fill_inner_remove", "parent":{ "name":"region", - "path":"folders/nodes/data/generator/region.yy", + "path":"folders/shader/generator/region.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_region_fill_map/sh_region_fill_map.yy b/shaders/sh_region_fill_map/sh_region_fill_map.yy index 6f0c9e0d2..b25403bbd 100644 --- a/shaders/sh_region_fill_map/sh_region_fill_map.yy +++ b/shaders/sh_region_fill_map/sh_region_fill_map.yy @@ -4,7 +4,7 @@ "name":"sh_region_fill_map", "parent":{ "name":"region", - "path":"folders/nodes/data/generator/region.yy", + "path":"folders/shader/generator/region.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_region_fill_rg_map/sh_region_fill_rg_map.yy b/shaders/sh_region_fill_rg_map/sh_region_fill_rg_map.yy index 4081e7d38..bfeb27db4 100644 --- a/shaders/sh_region_fill_rg_map/sh_region_fill_rg_map.yy +++ b/shaders/sh_region_fill_rg_map/sh_region_fill_rg_map.yy @@ -4,7 +4,7 @@ "name":"sh_region_fill_rg_map", "parent":{ "name":"region", - "path":"folders/nodes/data/generator/region.yy", + "path":"folders/shader/generator/region.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_rsh_corner/sh_rsh_corner.yy b/shaders/sh_rsh_corner/sh_rsh_corner.yy index a5d1fb409..ec9a119b4 100644 --- a/shaders/sh_rsh_corner/sh_rsh_corner.yy +++ b/shaders/sh_rsh_corner/sh_rsh_corner.yy @@ -4,7 +4,7 @@ "name":"sh_rsh_corner", "parent":{ "name":"random_shape", - "path":"folders/nodes/data/generator/random_shape.yy", + "path":"folders/shader/generator/random_shape.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_rsh_erode/sh_rsh_erode.yy b/shaders/sh_rsh_erode/sh_rsh_erode.yy index adf3cf2f9..2ae5908ad 100644 --- a/shaders/sh_rsh_erode/sh_rsh_erode.yy +++ b/shaders/sh_rsh_erode/sh_rsh_erode.yy @@ -4,7 +4,7 @@ "name":"sh_rsh_erode", "parent":{ "name":"random_shape", - "path":"folders/nodes/data/generator/random_shape.yy", + "path":"folders/shader/generator/random_shape.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_rsh_rotate/sh_rsh_rotate.yy b/shaders/sh_rsh_rotate/sh_rsh_rotate.yy index bae687f0e..a8702fcb4 100644 --- a/shaders/sh_rsh_rotate/sh_rsh_rotate.yy +++ b/shaders/sh_rsh_rotate/sh_rsh_rotate.yy @@ -4,7 +4,7 @@ "name":"sh_rsh_rotate", "parent":{ "name":"random_shape", - "path":"folders/nodes/data/generator/random_shape.yy", + "path":"folders/shader/generator/random_shape.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_simplex/sh_simplex.yy b/shaders/sh_simplex/sh_simplex.yy index 0711b30d6..81ffd46d8 100644 --- a/shaders/sh_simplex/sh_simplex.yy +++ b/shaders/sh_simplex/sh_simplex.yy @@ -4,7 +4,7 @@ "name":"sh_simplex", "parent":{ "name":"noise", - "path":"folders/nodes/data/generator/noise.yy", + "path":"folders/shader/generator/noise.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_vector_diverge/sh_vector_diverge.yy b/shaders/sh_vector_diverge/sh_vector_diverge.yy index 6d39226be..4545d912d 100644 --- a/shaders/sh_vector_diverge/sh_vector_diverge.yy +++ b/shaders/sh_vector_diverge/sh_vector_diverge.yy @@ -4,7 +4,7 @@ "name":"sh_vector_diverge", "parent":{ "name":"vector_mapper", - "path":"folders/nodes/data/generator/vector_mapper.yy", + "path":"folders/shader/generator/vector_mapper.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/shaders/sh_voronoi_extra/sh_voronoi_extra.yy b/shaders/sh_voronoi_extra/sh_voronoi_extra.yy index e60b575e1..66dab6816 100644 --- a/shaders/sh_voronoi_extra/sh_voronoi_extra.yy +++ b/shaders/sh_voronoi_extra/sh_voronoi_extra.yy @@ -4,7 +4,7 @@ "name":"sh_voronoi_extra", "parent":{ "name":"noise", - "path":"folders/nodes/data/generator/noise.yy", + "path":"folders/shader/generator/noise.yy", }, "resourceType":"GMShader", "resourceVersion":"2.0", diff --git a/sprites/s_node_grid/49f5c7e4-1156-4061-aa23-b557d98d6e67.png b/sprites/s_node_grid/49f5c7e4-1156-4061-aa23-b557d98d6e67.png deleted file mode 100644 index 4670792d0..000000000 Binary files a/sprites/s_node_grid/49f5c7e4-1156-4061-aa23-b557d98d6e67.png and /dev/null differ diff --git a/sprites/s_node_grid/62dce31a-20de-4f4f-bab8-11c6138d55b2.png b/sprites/s_node_grid/62dce31a-20de-4f4f-bab8-11c6138d55b2.png new file mode 100644 index 000000000..b8ce256e2 Binary files /dev/null and b/sprites/s_node_grid/62dce31a-20de-4f4f-bab8-11c6138d55b2.png differ diff --git a/sprites/s_node_grid/layers/49f5c7e4-1156-4061-aa23-b557d98d6e67/fd8dfa77-f51c-4a07-939b-6037fd88d1bd.png b/sprites/s_node_grid/layers/49f5c7e4-1156-4061-aa23-b557d98d6e67/fd8dfa77-f51c-4a07-939b-6037fd88d1bd.png deleted file mode 100644 index 4670792d0..000000000 Binary files a/sprites/s_node_grid/layers/49f5c7e4-1156-4061-aa23-b557d98d6e67/fd8dfa77-f51c-4a07-939b-6037fd88d1bd.png and /dev/null differ diff --git a/sprites/s_node_grid/layers/62dce31a-20de-4f4f-bab8-11c6138d55b2/a28bb1b2-ff38-4808-a846-99c95452b3db.png b/sprites/s_node_grid/layers/62dce31a-20de-4f4f-bab8-11c6138d55b2/a28bb1b2-ff38-4808-a846-99c95452b3db.png new file mode 100644 index 000000000..b8ce256e2 Binary files /dev/null and b/sprites/s_node_grid/layers/62dce31a-20de-4f4f-bab8-11c6138d55b2/a28bb1b2-ff38-4808-a846-99c95452b3db.png differ diff --git a/sprites/s_node_grid/s_node_grid.yy b/sprites/s_node_grid/s_node_grid.yy index 8031e5b9b..74fe12eef 100644 --- a/sprites/s_node_grid/s_node_grid.yy +++ b/sprites/s_node_grid/s_node_grid.yy @@ -12,14 +12,14 @@ "edgeFiltering":false, "For3D":false, "frames":[ - {"$GMSpriteFrame":"","%Name":"49f5c7e4-1156-4061-aa23-b557d98d6e67","name":"49f5c7e4-1156-4061-aa23-b557d98d6e67","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"62dce31a-20de-4f4f-bab8-11c6138d55b2","name":"62dce31a-20de-4f4f-bab8-11c6138d55b2","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, ], "gridX":0, "gridY":0, "height":64, "HTile":false, "layers":[ - {"$GMImageLayer":"","%Name":"fd8dfa77-f51c-4a07-939b-6037fd88d1bd","blendMode":0,"displayName":"default","isLocked":false,"name":"fd8dfa77-f51c-4a07-939b-6037fd88d1bd","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, + {"$GMImageLayer":"","%Name":"a28bb1b2-ff38-4808-a846-99c95452b3db","blendMode":0,"displayName":"default","isLocked":false,"name":"a28bb1b2-ff38-4808-a846-99c95452b3db","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, ], "name":"s_node_grid", "nineSlice":null, @@ -69,14 +69,11 @@ "tracks":[ {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore":"","Keyframes":[ {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"49f5c7e4-1156-4061-aa23-b557d98d6e67","path":"sprites/s_node_grid/s_node_grid.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"8714f537-ba6e-494d-b3d2-3426182edcf1","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"62dce31a-20de-4f4f-bab8-11c6138d55b2","path":"sprites/s_node_grid/s_node_grid.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"b1d63183-8ee1-4ba2-9520-42796dbc14e2","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, ],"resourceType":"KeyframeStore","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], - "visibleRange":{ - "x":0.0, - "y":0.0, - }, + "visibleRange":null, "volume":1.0, "xorigin":32, "yorigin":32, diff --git a/sprites/s_node_grid_hex/300b1c8d-d912-46d0-998f-359d85723ca8.png b/sprites/s_node_grid_hex/300b1c8d-d912-46d0-998f-359d85723ca8.png deleted file mode 100644 index 6db8c6143..000000000 Binary files a/sprites/s_node_grid_hex/300b1c8d-d912-46d0-998f-359d85723ca8.png and /dev/null differ diff --git a/sprites/s_node_grid_hex/a23d6afa-5a14-43c0-a0bd-a26ced41a18b.png b/sprites/s_node_grid_hex/a23d6afa-5a14-43c0-a0bd-a26ced41a18b.png new file mode 100644 index 000000000..161c664a4 Binary files /dev/null and b/sprites/s_node_grid_hex/a23d6afa-5a14-43c0-a0bd-a26ced41a18b.png differ diff --git a/sprites/s_node_grid_hex/layers/300b1c8d-d912-46d0-998f-359d85723ca8/c05c1de6-236e-42e9-9a4d-6d6186df411d.png b/sprites/s_node_grid_hex/layers/300b1c8d-d912-46d0-998f-359d85723ca8/c05c1de6-236e-42e9-9a4d-6d6186df411d.png deleted file mode 100644 index 6db8c6143..000000000 Binary files a/sprites/s_node_grid_hex/layers/300b1c8d-d912-46d0-998f-359d85723ca8/c05c1de6-236e-42e9-9a4d-6d6186df411d.png and /dev/null differ diff --git a/sprites/s_node_grid_hex/layers/a23d6afa-5a14-43c0-a0bd-a26ced41a18b/209f7290-19e5-4555-8ca8-271212cd1efb.png b/sprites/s_node_grid_hex/layers/a23d6afa-5a14-43c0-a0bd-a26ced41a18b/209f7290-19e5-4555-8ca8-271212cd1efb.png new file mode 100644 index 000000000..161c664a4 Binary files /dev/null and b/sprites/s_node_grid_hex/layers/a23d6afa-5a14-43c0-a0bd-a26ced41a18b/209f7290-19e5-4555-8ca8-271212cd1efb.png differ diff --git a/sprites/s_node_grid_hex/s_node_grid_hex.yy b/sprites/s_node_grid_hex/s_node_grid_hex.yy index 43cd8a370..0bbfcdf51 100644 --- a/sprites/s_node_grid_hex/s_node_grid_hex.yy +++ b/sprites/s_node_grid_hex/s_node_grid_hex.yy @@ -12,14 +12,14 @@ "edgeFiltering":false, "For3D":false, "frames":[ - {"$GMSpriteFrame":"","%Name":"300b1c8d-d912-46d0-998f-359d85723ca8","name":"300b1c8d-d912-46d0-998f-359d85723ca8","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"a23d6afa-5a14-43c0-a0bd-a26ced41a18b","name":"a23d6afa-5a14-43c0-a0bd-a26ced41a18b","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, ], "gridX":0, "gridY":0, "height":64, "HTile":false, "layers":[ - {"$GMImageLayer":"","%Name":"c05c1de6-236e-42e9-9a4d-6d6186df411d","blendMode":0,"displayName":"default","isLocked":false,"name":"c05c1de6-236e-42e9-9a4d-6d6186df411d","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, + {"$GMImageLayer":"","%Name":"209f7290-19e5-4555-8ca8-271212cd1efb","blendMode":0,"displayName":"default","isLocked":false,"name":"209f7290-19e5-4555-8ca8-271212cd1efb","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, ], "name":"s_node_grid_hex", "nineSlice":null, @@ -69,8 +69,8 @@ "tracks":[ {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore":"","Keyframes":[ {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"300b1c8d-d912-46d0-998f-359d85723ca8","path":"sprites/s_node_grid_hex/s_node_grid_hex.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"16abb3e9-7767-4bd8-9ae0-89d2f9928909","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"a23d6afa-5a14-43c0-a0bd-a26ced41a18b","path":"sprites/s_node_grid_hex/s_node_grid_hex.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"8fd55302-50ac-4215-a12d-4da3ee95b5e5","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, ],"resourceType":"KeyframeStore","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], "visibleRange":null, diff --git a/sprites/s_node_grid_tri/a55fe637-e5a1-47f4-9aa6-68fb5fd21078.png b/sprites/s_node_grid_tri/a55fe637-e5a1-47f4-9aa6-68fb5fd21078.png new file mode 100644 index 000000000..93d2866f6 Binary files /dev/null and b/sprites/s_node_grid_tri/a55fe637-e5a1-47f4-9aa6-68fb5fd21078.png differ diff --git a/sprites/s_node_grid_tri/d667ddb0-a6c7-4893-b4fc-993bc01299cb.png b/sprites/s_node_grid_tri/d667ddb0-a6c7-4893-b4fc-993bc01299cb.png deleted file mode 100644 index 5d074eb72..000000000 Binary files a/sprites/s_node_grid_tri/d667ddb0-a6c7-4893-b4fc-993bc01299cb.png and /dev/null differ diff --git a/sprites/s_node_grid_tri/layers/a55fe637-e5a1-47f4-9aa6-68fb5fd21078/7b898271-070e-45a8-8b09-479dfcd36c2f.png b/sprites/s_node_grid_tri/layers/a55fe637-e5a1-47f4-9aa6-68fb5fd21078/7b898271-070e-45a8-8b09-479dfcd36c2f.png new file mode 100644 index 000000000..93d2866f6 Binary files /dev/null and b/sprites/s_node_grid_tri/layers/a55fe637-e5a1-47f4-9aa6-68fb5fd21078/7b898271-070e-45a8-8b09-479dfcd36c2f.png differ diff --git a/sprites/s_node_grid_tri/layers/d667ddb0-a6c7-4893-b4fc-993bc01299cb/85eff2e7-5aad-40d1-91b9-18aedd27f8a4.png b/sprites/s_node_grid_tri/layers/d667ddb0-a6c7-4893-b4fc-993bc01299cb/85eff2e7-5aad-40d1-91b9-18aedd27f8a4.png deleted file mode 100644 index 5d074eb72..000000000 Binary files a/sprites/s_node_grid_tri/layers/d667ddb0-a6c7-4893-b4fc-993bc01299cb/85eff2e7-5aad-40d1-91b9-18aedd27f8a4.png and /dev/null differ diff --git a/sprites/s_node_grid_tri/s_node_grid_tri.yy b/sprites/s_node_grid_tri/s_node_grid_tri.yy index 344077ec6..a617dbcea 100644 --- a/sprites/s_node_grid_tri/s_node_grid_tri.yy +++ b/sprites/s_node_grid_tri/s_node_grid_tri.yy @@ -12,14 +12,14 @@ "edgeFiltering":false, "For3D":false, "frames":[ - {"$GMSpriteFrame":"","%Name":"d667ddb0-a6c7-4893-b4fc-993bc01299cb","name":"d667ddb0-a6c7-4893-b4fc-993bc01299cb","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + {"$GMSpriteFrame":"","%Name":"a55fe637-e5a1-47f4-9aa6-68fb5fd21078","name":"a55fe637-e5a1-47f4-9aa6-68fb5fd21078","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, ], "gridX":0, "gridY":0, "height":64, "HTile":false, "layers":[ - {"$GMImageLayer":"","%Name":"85eff2e7-5aad-40d1-91b9-18aedd27f8a4","blendMode":0,"displayName":"default","isLocked":false,"name":"85eff2e7-5aad-40d1-91b9-18aedd27f8a4","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, + {"$GMImageLayer":"","%Name":"7b898271-070e-45a8-8b09-479dfcd36c2f","blendMode":0,"displayName":"default","isLocked":false,"name":"7b898271-070e-45a8-8b09-479dfcd36c2f","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, ], "name":"s_node_grid_tri", "nineSlice":null, @@ -69,8 +69,8 @@ "tracks":[ {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore":"","Keyframes":[ {"$Keyframe":"","Channels":{ - "0":{"$SpriteFrameKeyframe":"","Id":{"name":"d667ddb0-a6c7-4893-b4fc-993bc01299cb","path":"sprites/s_node_grid_tri/s_node_grid_tri.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, - },"Disabled":false,"id":"ed528229-b665-4fc6-84b7-f52b7eaebbfa","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"a55fe637-e5a1-47f4-9aa6-68fb5fd21078","path":"sprites/s_node_grid_tri/s_node_grid_tri.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"c5f91b15-3ef9-4b5d-8ea8-dd44ca25fd8c","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, ],"resourceType":"KeyframeStore","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], "visibleRange":null,