This commit is contained in:
Tanasart 2024-06-11 10:06:42 +07:00
parent 79baea6a2f
commit 85919c6912
25 changed files with 416 additions and 71 deletions

View file

@ -27,6 +27,8 @@
{"name":"dynamic_surface","order":8,"path":"folders/functions/surface/dynamic_surface.yy",}, {"name":"dynamic_surface","order":8,"path":"folders/functions/surface/dynamic_surface.yy",},
{"name":"svg","order":47,"path":"folders/functions/svg.yy",}, {"name":"svg","order":47,"path":"folders/functions/svg.yy",},
{"name":"__base__","order":11,"path":"folders/nodes/data/__base__.yy",}, {"name":"__base__","order":11,"path":"folders/nodes/data/__base__.yy",},
{"name":"collections","order":21,"path":"folders/nodes/data/__base__/collections.yy",},
{"name":"values","order":20,"path":"folders/nodes/data/__base__/values.yy",},
{"name":"3D","order":12,"path":"folders/nodes/data/3D.yy",}, {"name":"3D","order":12,"path":"folders/nodes/data/3D.yy",},
{"name":"2d_effects","order":1,"path":"folders/nodes/data/3D/2d_effects.yy",}, {"name":"2d_effects","order":1,"path":"folders/nodes/data/3D/2d_effects.yy",},
{"name":"d3d_camera","order":2,"path":"folders/nodes/data/3D/d3d_camera.yy",}, {"name":"d3d_camera","order":2,"path":"folders/nodes/data/3D/d3d_camera.yy",},
@ -165,7 +167,6 @@
{"name":"cell","order":20,"path":"folders/shader/generator/cell.yy",}, {"name":"cell","order":20,"path":"folders/shader/generator/cell.yy",},
{"name":"grid","order":18,"path":"folders/shader/generator/grid.yy",}, {"name":"grid","order":18,"path":"folders/shader/generator/grid.yy",},
{"name":"interpret","order":17,"path":"folders/shader/generator/interpret.yy",}, {"name":"interpret","order":17,"path":"folders/shader/generator/interpret.yy",},
{"name":"noise","order":19,"path":"folders/shader/noise.yy",},
{"name":"random_shape","order":21,"path":"folders/shader/generator/random_shape.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":"reaction_diffusion","order":22,"path":"folders/shader/generator/reaction_diffusion.yy",},
{"name":"region","order":23,"path":"folders/shader/generator/region.yy",}, {"name":"region","order":23,"path":"folders/shader/generator/region.yy",},
@ -176,6 +177,7 @@
{"name":"MK effects","order":12,"path":"folders/shader/MK effects.yy",}, {"name":"MK effects","order":12,"path":"folders/shader/MK effects.yy",},
{"name":"Flag","order":3,"path":"folders/shader/MK effects/Flag.yy",}, {"name":"Flag","order":3,"path":"folders/shader/MK effects/Flag.yy",},
{"name":"Tile","order":4,"path":"folders/shader/MK effects/Tile.yy",}, {"name":"Tile","order":4,"path":"folders/shader/MK effects/Tile.yy",},
{"name":"noise","order":19,"path":"folders/shader/noise.yy",},
{"name":"pixel_builder","order":13,"path":"folders/shader/pixel_builder.yy",}, {"name":"pixel_builder","order":13,"path":"folders/shader/pixel_builder.yy",},
{"name":"ray march","order":17,"path":"folders/shader/ray march.yy",}, {"name":"ray march","order":17,"path":"folders/shader/ray march.yy",},
{"name":"sprites","order":14,"path":"folders/shader/sprites.yy",}, {"name":"sprites","order":14,"path":"folders/shader/sprites.yy",},
@ -714,10 +716,12 @@
{"name":"node_cache_base","order":18,"path":"scripts/node_cache_base/node_cache_base.yy",}, {"name":"node_cache_base","order":18,"path":"scripts/node_cache_base/node_cache_base.yy",},
{"name":"node_cache","order":9,"path":"scripts/node_cache/node_cache.yy",}, {"name":"node_cache","order":9,"path":"scripts/node_cache/node_cache.yy",},
{"name":"node_camera","order":3,"path":"scripts/node_camera/node_camera.yy",}, {"name":"node_camera","order":3,"path":"scripts/node_camera/node_camera.yy",},
{"name":"node_canvas_group","order":10,"path":"scripts/node_canvas_group/node_canvas_group.yy",},
{"name":"node_caustic","order":1,"path":"scripts/node_caustic/node_caustic.yy",}, {"name":"node_caustic","order":1,"path":"scripts/node_caustic/node_caustic.yy",},
{"name":"node_cellular","order":2,"path":"scripts/node_cellular/node_cellular.yy",}, {"name":"node_cellular","order":2,"path":"scripts/node_cellular/node_cellular.yy",},
{"name":"node_chromatic_aberration","order":3,"path":"scripts/node_chromatic_aberration/node_chromatic_aberration.yy",}, {"name":"node_chromatic_aberration","order":3,"path":"scripts/node_chromatic_aberration/node_chromatic_aberration.yy",},
{"name":"node_collection_inline","order":16,"path":"scripts/node_collection_inline/node_collection_inline.yy",}, {"name":"node_collection_inline","order":1,"path":"scripts/node_collection_inline/node_collection_inline.yy",},
{"name":"node_collection_managed","order":2,"path":"scripts/node_collection_managed/node_collection_managed.yy",},
{"name":"node_color_adjust","order":1,"path":"scripts/node_color_adjust/node_color_adjust.yy",}, {"name":"node_color_adjust","order":1,"path":"scripts/node_color_adjust/node_color_adjust.yy",},
{"name":"node_color_data","order":6,"path":"scripts/node_color_data/node_color_data.yy",}, {"name":"node_color_data","order":6,"path":"scripts/node_color_data/node_color_data.yy",},
{"name":"node_color_hsv","order":8,"path":"scripts/node_color_hsv/node_color_hsv.yy",}, {"name":"node_color_hsv","order":8,"path":"scripts/node_color_hsv/node_color_hsv.yy",},
@ -1079,10 +1083,9 @@
{"name":"node_tunnel_out","order":1,"path":"scripts/node_tunnel_out/node_tunnel_out.yy",}, {"name":"node_tunnel_out","order":1,"path":"scripts/node_tunnel_out/node_tunnel_out.yy",},
{"name":"node_twirl","order":4,"path":"scripts/node_twirl/node_twirl.yy",}, {"name":"node_twirl","order":4,"path":"scripts/node_twirl/node_twirl.yy",},
{"name":"node_unicode","order":1,"path":"scripts/node_unicode/node_unicode.yy",}, {"name":"node_unicode","order":1,"path":"scripts/node_unicode/node_unicode.yy",},
{"name":"node_value_base","order":17,"path":"scripts/node_value_base/node_value_base.yy",}, {"name":"node_value_base","order":1,"path":"scripts/node_value_base/node_value_base.yy",},
{"name":"node_value_types","order":18,"path":"scripts/node_value_types/node_value_types.yy",}, {"name":"node_value_types","order":2,"path":"scripts/node_value_types/node_value_types.yy",},
{"name":"node_value_validators","order":19,"path":"scripts/node_value_validators/node_value_validators.yy",}, {"name":"node_value_validators","order":3,"path":"scripts/node_value_validators/node_value_validators.yy",},
{"name":"node_value","order":5,"path":"scripts/node_value/node_value.yy",},
{"name":"node_vector_cross_2D","order":11,"path":"scripts/node_vector_cross_2D/node_vector_cross_2D.yy",}, {"name":"node_vector_cross_2D","order":11,"path":"scripts/node_vector_cross_2D/node_vector_cross_2D.yy",},
{"name":"node_vector_cross_3D","order":10,"path":"scripts/node_vector_cross_3D/node_vector_cross_3D.yy",}, {"name":"node_vector_cross_3D","order":10,"path":"scripts/node_vector_cross_3D/node_vector_cross_3D.yy",},
{"name":"node_vector_dot","order":9,"path":"scripts/node_vector_dot/node_vector_dot.yy",}, {"name":"node_vector_dot","order":9,"path":"scripts/node_vector_dot/node_vector_dot.yy",},
@ -1791,6 +1794,7 @@
{"name":"s_node_gui_out","order":36,"path":"sprites/s_node_gui_out/s_node_gui_out.yy",}, {"name":"s_node_gui_out","order":36,"path":"sprites/s_node_gui_out/s_node_gui_out.yy",},
{"name":"s_node_herringbone_tile","order":39,"path":"sprites/s_node_herringbone_tile/s_node_herringbone_tile.yy",}, {"name":"s_node_herringbone_tile","order":39,"path":"sprites/s_node_herringbone_tile/s_node_herringbone_tile.yy",},
{"name":"s_node_hlsl","order":32,"path":"sprites/s_node_hlsl/s_node_hlsl.yy",}, {"name":"s_node_hlsl","order":32,"path":"sprites/s_node_hlsl/s_node_hlsl.yy",},
{"name":"s_node_honey","order":66,"path":"sprites/s_node_honey/s_node_honey.yy",},
{"name":"s_node_HSV_combine","order":28,"path":"sprites/s_node_HSV_combine/s_node_HSV_combine.yy",}, {"name":"s_node_HSV_combine","order":28,"path":"sprites/s_node_HSV_combine/s_node_HSV_combine.yy",},
{"name":"s_node_HSV","order":27,"path":"sprites/s_node_HSV/s_node_HSV.yy",}, {"name":"s_node_HSV","order":27,"path":"sprites/s_node_HSV/s_node_HSV.yy",},
{"name":"s_node_image_animation","order":2,"path":"sprites/s_node_image_animation/s_node_image_animation.yy",}, {"name":"s_node_image_animation","order":2,"path":"sprites/s_node_image_animation/s_node_image_animation.yy",},

View file

@ -121,6 +121,8 @@
{"$GMFolder":"","%Name":"nodes","folderPath":"folders/nodes.yy","name":"nodes","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"nodes","folderPath":"folders/nodes.yy","name":"nodes","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"data","folderPath":"folders/nodes/data.yy","name":"data","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"data","folderPath":"folders/nodes/data.yy","name":"data","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"__base__","folderPath":"folders/nodes/data/__base__.yy","name":"__base__","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"__base__","folderPath":"folders/nodes/data/__base__.yy","name":"__base__","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"collections","folderPath":"folders/nodes/data/__base__/collections.yy","name":"collections","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"values","folderPath":"folders/nodes/data/__base__/values.yy","name":"values","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"3D","folderPath":"folders/nodes/data/3D.yy","name":"3D","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"3D","folderPath":"folders/nodes/data/3D.yy","name":"3D","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"__legacy","folderPath":"folders/nodes/data/3D/__legacy.yy","name":"__legacy","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"__legacy","folderPath":"folders/nodes/data/3D/__legacy.yy","name":"__legacy","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"primitive","folderPath":"folders/nodes/data/3D/__legacy/primitive.yy","name":"primitive","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"primitive","folderPath":"folders/nodes/data/3D/__legacy/primitive.yy","name":"primitive","resourceType":"GMFolder","resourceVersion":"2.0",},
@ -287,7 +289,6 @@
{"$GMFolder":"","%Name":"cell","folderPath":"folders/shader/generator/cell.yy","name":"cell","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"cell","folderPath":"folders/shader/generator/cell.yy","name":"cell","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"grid","folderPath":"folders/shader/generator/grid.yy","name":"grid","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":"interpret","folderPath":"folders/shader/generator/interpret.yy","name":"interpret","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"noise","folderPath":"folders/shader/noise.yy","name":"noise","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":"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":"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":"region","folderPath":"folders/shader/generator/region.yy","name":"region","resourceType":"GMFolder","resourceVersion":"2.0",},
@ -298,6 +299,7 @@
{"$GMFolder":"","%Name":"MK effects","folderPath":"folders/shader/MK effects.yy","name":"MK effects","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"MK effects","folderPath":"folders/shader/MK effects.yy","name":"MK effects","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"Flag","folderPath":"folders/shader/MK effects/Flag.yy","name":"Flag","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"Flag","folderPath":"folders/shader/MK effects/Flag.yy","name":"Flag","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"Tile","folderPath":"folders/shader/MK effects/Tile.yy","name":"Tile","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"Tile","folderPath":"folders/shader/MK effects/Tile.yy","name":"Tile","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"noise","folderPath":"folders/shader/noise.yy","name":"noise","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"pixel_builder","folderPath":"folders/shader/pixel_builder.yy","name":"pixel_builder","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"pixel_builder","folderPath":"folders/shader/pixel_builder.yy","name":"pixel_builder","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"ray march","folderPath":"folders/shader/ray march.yy","name":"ray march","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"ray march","folderPath":"folders/shader/ray march.yy","name":"ray march","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"sprites","folderPath":"folders/shader/sprites.yy","name":"sprites","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"sprites","folderPath":"folders/shader/sprites.yy","name":"sprites","resourceType":"GMFolder","resourceVersion":"2.0",},
@ -1105,12 +1107,14 @@
{"id":{"name":"node_cache_base","path":"scripts/node_cache_base/node_cache_base.yy",},}, {"id":{"name":"node_cache_base","path":"scripts/node_cache_base/node_cache_base.yy",},},
{"id":{"name":"node_cache","path":"scripts/node_cache/node_cache.yy",},}, {"id":{"name":"node_cache","path":"scripts/node_cache/node_cache.yy",},},
{"id":{"name":"node_camera","path":"scripts/node_camera/node_camera.yy",},}, {"id":{"name":"node_camera","path":"scripts/node_camera/node_camera.yy",},},
{"id":{"name":"node_canvas_group","path":"scripts/node_canvas_group/node_canvas_group.yy",},},
{"id":{"name":"node_canvas","path":"scripts/node_canvas/node_canvas.yy",},}, {"id":{"name":"node_canvas","path":"scripts/node_canvas/node_canvas.yy",},},
{"id":{"name":"node_caustic","path":"scripts/node_caustic/node_caustic.yy",},}, {"id":{"name":"node_caustic","path":"scripts/node_caustic/node_caustic.yy",},},
{"id":{"name":"node_cellular","path":"scripts/node_cellular/node_cellular.yy",},}, {"id":{"name":"node_cellular","path":"scripts/node_cellular/node_cellular.yy",},},
{"id":{"name":"node_checker","path":"scripts/node_checker/node_checker.yy",},}, {"id":{"name":"node_checker","path":"scripts/node_checker/node_checker.yy",},},
{"id":{"name":"node_chromatic_aberration","path":"scripts/node_chromatic_aberration/node_chromatic_aberration.yy",},}, {"id":{"name":"node_chromatic_aberration","path":"scripts/node_chromatic_aberration/node_chromatic_aberration.yy",},},
{"id":{"name":"node_collection_inline","path":"scripts/node_collection_inline/node_collection_inline.yy",},}, {"id":{"name":"node_collection_inline","path":"scripts/node_collection_inline/node_collection_inline.yy",},},
{"id":{"name":"node_collection_managed","path":"scripts/node_collection_managed/node_collection_managed.yy",},},
{"id":{"name":"node_collection","path":"scripts/node_collection/node_collection.yy",},}, {"id":{"name":"node_collection","path":"scripts/node_collection/node_collection.yy",},},
{"id":{"name":"node_color_adjust","path":"scripts/node_color_adjust/node_color_adjust.yy",},}, {"id":{"name":"node_color_adjust","path":"scripts/node_color_adjust/node_color_adjust.yy",},},
{"id":{"name":"node_color_data","path":"scripts/node_color_data/node_color_data.yy",},}, {"id":{"name":"node_color_data","path":"scripts/node_color_data/node_color_data.yy",},},
@ -2348,6 +2352,7 @@
{"id":{"name":"s_node_gui_out","path":"sprites/s_node_gui_out/s_node_gui_out.yy",},}, {"id":{"name":"s_node_gui_out","path":"sprites/s_node_gui_out/s_node_gui_out.yy",},},
{"id":{"name":"s_node_herringbone_tile","path":"sprites/s_node_herringbone_tile/s_node_herringbone_tile.yy",},}, {"id":{"name":"s_node_herringbone_tile","path":"sprites/s_node_herringbone_tile/s_node_herringbone_tile.yy",},},
{"id":{"name":"s_node_hlsl","path":"sprites/s_node_hlsl/s_node_hlsl.yy",},}, {"id":{"name":"s_node_hlsl","path":"sprites/s_node_hlsl/s_node_hlsl.yy",},},
{"id":{"name":"s_node_honey","path":"sprites/s_node_honey/s_node_honey.yy",},},
{"id":{"name":"s_node_HSV_combine","path":"sprites/s_node_HSV_combine/s_node_HSV_combine.yy",},}, {"id":{"name":"s_node_HSV_combine","path":"sprites/s_node_HSV_combine/s_node_HSV_combine.yy",},},
{"id":{"name":"s_node_HSV","path":"sprites/s_node_HSV/s_node_HSV.yy",},}, {"id":{"name":"s_node_HSV","path":"sprites/s_node_HSV/s_node_HSV.yy",},},
{"id":{"name":"s_node_image_animation","path":"sprites/s_node_image_animation/s_node_image_animation.yy",},}, {"id":{"name":"s_node_image_animation","path":"sprites/s_node_image_animation/s_node_image_animation.yy",},},

Binary file not shown.

View file

@ -36,10 +36,10 @@
globalvar VERSION, SAVE_VERSION, VERSION_STRING, BUILD_NUMBER, LATEST_VERSION; globalvar VERSION, SAVE_VERSION, VERSION_STRING, BUILD_NUMBER, LATEST_VERSION;
LATEST_VERSION = 11700; LATEST_VERSION = 11700;
VERSION = 11730; VERSION = 11740;
SAVE_VERSION = 11700; SAVE_VERSION = 11700;
VERSION_STRING = "1.17.3.001"; VERSION_STRING = "1.17.4";
BUILD_NUMBER = 11730; BUILD_NUMBER = 11740;
globalvar HOTKEYS, HOTKEY_CONTEXT; globalvar HOTKEYS, HOTKEY_CONTEXT;
HOTKEYS = ds_map_create(); HOTKEYS = ds_map_create();

View file

@ -899,6 +899,25 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
} }
#endregion #endregion
if(DRAGGING && hover&& mouse_release(mb_left)) { #region drag n drop
if(DRAGGING.type == "Color") {
var mouse_cur_x = round((_mx - _x) / _s - 0.5);
var mouse_cur_y = round((_my - _y) / _s - 0.5);
var _filType = tool_attribute.fillType;
var _filThres = tool_attribute.thres;
storeAction();
surface_set_target(_canvas_surface);
switch(_filType) {
case 0 :
case 1 : canvas_flood_fill_scanline(_canvas_surface, mouse_cur_x, mouse_cur_y, _filThres, _filType); break;
case 2 : canvas_flood_fill_all( _canvas_surface, mouse_cur_x, mouse_cur_y, _filThres); break;
}
surface_reset_target();
surface_store_buffer();
}
} #endregion
} #endregion } #endregion
static step = function() { #region static step = function() { #region

View file

@ -0,0 +1,141 @@
function Node_Canvas_Group(_x, _y, _group) : Node_Collection_Inline(_x, _y, _group) constructor {
name = "Canvas Group";
color = COLORS.node_blend_canvas;
modifiable = false;
inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF )
.setDisplay(VALUE_DISPLAY.vector);
canvases = [];
composite = noone;
canvas_sel = noone;
layer_height = 0;
layer_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) {
var _h = ui(4);
var _yy = _y;
if(composite == noone) return _h;
composite.canvas_draw = true;
var _layer_ren = composite.layer_renderer;
_layer_ren.register(layer_renderer.parent);
_layer_ren.rx = layer_renderer.rx;
_layer_ren.ry = layer_renderer.ry;
var bx = _x;
var by = _y;
var bs = ui(24);
if(buttonInstant(THEME.button_hide, bx, by, bs, bs, _m, _focus, _hover, "", THEME.add_16, 0, COLORS._main_value_positive) == 2)
layerAdd();
_h += ui(32);
_yy += ui(32);
var _wdh = _layer_ren.draw(_x, _yy, _w, _m, _hover, _focus);
if(!is_undefined(_wdh)) _h += _wdh;
return _h;
});
input_display_list = [ 0,
["Layers", false], layer_renderer,
];
static refreshNodes = function() {
canvases = [];
composite = noone;
for (var i = 0, n = array_length(nodes); i < n; i++) {
var _node = nodes[i];
if(is_instanceof(_node, Node_Canvas))
array_push(canvases, _node);
else if(is_instanceof(_node, Node_Composite))
composite = _node;
}
}
static onAddNode = function(node) {
node.modifiable = false;
node.modify_parent = self;
refreshNodes();
}
static layerAdd = function() {
var _l = undefined;
var _b = undefined;
if(array_empty(nodes)) {
_l = x;
_b = y;
}
for (var i = 0, n = array_length(nodes); i < n; i++) {
var _node = nodes[i];
_l = _l == undefined? _node.x : min(_l, _node.x);
_b = _b == undefined? _node.y + _node.h : max(_b, _node.y + _node.h);
}
_b += 32;
var _canvas = nodeBuild("Node_Canvas", _l, _b);
composite.dummy_input.setFrom(_canvas.outputs[| 0]);
addNode(_canvas);
return _canvas;
}
if(NODE_NEW_MANUAL) {
var _canvas = nodeBuild("Node_Canvas", x, y);
var _compose = nodeBuild("Node_Composite", x + 160, y);
_compose.dummy_input.setFrom(_canvas.outputs[| 0]);
addNode(_canvas);
addNode(_compose);
}
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
if(canvas_sel) canvas_sel.drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
}
static step = function() {
tools = -1;
tool_settings = [];
rightTools = -1;
drawTools = -1;
canvas_sel = noone;
if(composite == noone) return;
if(composite.getInputAmount()) {
var _ind = composite.surface_selecting;
if(_ind == noone)
_ind = composite.input_fix_len;
var _can = composite.inputs[| _ind].value_from;
if(_can) {
var _nod = _can.node;
canvas_sel = _nod;
}
}
if(canvas_sel) {
tools = canvas_sel.tools;
tool_settings = canvas_sel.tool_settings;
rightTools = canvas_sel.rightTools;
drawTools = canvas_sel.drawTools;
}
}
static getPreviewValues = function() { return composite == noone? noone : composite.getPreviewValues(); }
static postDeserialize = function() {
refreshMember();
refreshNodes();
}
}

View file

@ -0,0 +1,13 @@
{
"$GMScript":"",
"%Name":"node_canvas_group",
"isCompatibility":false,
"isDnD":false,
"name":"node_canvas_group",
"parent":{
"name":"canvas",
"path":"folders/nodes/data/canvas.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",
}

View file

@ -5,8 +5,8 @@
"isDnD":false, "isDnD":false,
"name":"node_collection", "name":"node_collection",
"parent":{ "parent":{
"name":"__base__", "name":"collections",
"path":"folders/nodes/data/__base__.yy", "path":"folders/nodes/data/__base__/collections.yy",
}, },
"resourceType":"GMScript", "resourceType":"GMScript",
"resourceVersion":"2.0", "resourceVersion":"2.0",

View file

@ -5,6 +5,7 @@ function Node_Collection_Inline(_x, _y, _group = noone) : Node(_x, _y, _group) c
group_dragging = false; group_dragging = false;
group_adding = false; group_adding = false;
vertex_hash = ""; vertex_hash = "";
modifiable = true;
managedRenderOrder = false; managedRenderOrder = false;
group_hovering = false; group_hovering = false;
@ -178,6 +179,8 @@ function Node_Collection_Inline(_x, _y, _group = noone) : Node(_x, _y, _group) c
static groupCheck = function(_x, _y, _s, _mx, _my) { #region static groupCheck = function(_x, _y, _s, _mx, _my) { #region
if(array_length(group_vertex) < 3) return; if(array_length(group_vertex) < 3) return;
if(!modifiable) return;
var _m = [ _mx / _s - _x, _my / _s - _y ]; var _m = [ _mx / _s - _x, _my / _s - _y ];
group_adding = false; group_adding = false;

View file

@ -5,8 +5,8 @@
"isDnD":false, "isDnD":false,
"name":"node_collection_inline", "name":"node_collection_inline",
"parent":{ "parent":{
"name":"__base__", "name":"collections",
"path":"folders/nodes/data/__base__.yy", "path":"folders/nodes/data/__base__/collections.yy",
}, },
"resourceType":"GMScript", "resourceType":"GMScript",
"resourceVersion":"2.0", "resourceVersion":"2.0",

View file

@ -0,0 +1,6 @@
function Node_Collection_Managed(_x, _y, _group) : Node_Collection_Inline(_x, _y, _group) constructor {
name = "Managed Collection";
color = COLORS.node_blend_canvas;
modifiable = false;
}

View file

@ -0,0 +1,13 @@
{
"$GMScript":"",
"%Name":"node_collection_managed",
"isCompatibility":false,
"isDnD":false,
"name":"node_collection_managed",
"parent":{
"name":"collections",
"path":"folders/nodes/data/__base__/collections.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",
}

View file

@ -34,19 +34,38 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
hold_select = true; hold_select = true;
layer_dragging = noone; layer_dragging = noone;
layer_remove = -1; layer_remove = -1;
canvas_draw = false;
renaming = noone;
rename_text = "";
renaming_index = noone;
tb_rename = new textBox(TEXTBOX_INPUT.text, function(_name) {
if(renaming == noone) return;
if(is_real(renaming))
inputs[| renaming].setName(_name);
else if(is_struct(renaming) && is_instanceof(renaming, Node))
renaming.setDisplayName(_name)
renaming = noone;
renaming_index = noone;
});
tb_rename.font = f_p1;
tb_rename.hide = true;
layer_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) { #region layer_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) { #region
PROCESSOR_OVERLAY_CHECK PROCESSOR_OVERLAY_CHECK
var amo = getInputAmount(); var amo = getInputAmount();
var lh = 28; var lh = ui(28);
var eh = 36; var eh = ui(36);
properties_expand = array_verify(properties_expand, amo); properties_expand = array_verify(properties_expand, amo);
var _h = 4; var _h = ui(4);
for(var i = 0; i < amo; i++) for(var i = 0; i < amo; i++)
_h += lh + 4 + properties_expand[i] * eh; _h += lh + ui(4) + properties_expand[i] * eh;
_h = max(16, _h); _h = max(ui(16), _h);
layer_renderer.h = _h; layer_renderer.h = _h;
@ -54,8 +73,8 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
var _vis = attributes.layer_visible; var _vis = attributes.layer_visible;
var _sel = attributes.layer_selectable; var _sel = attributes.layer_selectable;
var ly = _y + 4; var ly = _y + ui(4);
var ssh = lh - 4; var ssh = lh - ui(4);
var hoverIndex = noone; var hoverIndex = noone;
var _cy = ly; var _cy = ly;
@ -66,8 +85,9 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
var index = input_fix_len + ind * data_length; var index = input_fix_len + ind * data_length;
var _surf = current_data[index + 0]; var _surf = current_data[index + 0];
var _pos = current_data[index + 1]; var _pos = current_data[index + 1];
var _inp = inputs[| index];
var _bx = _x + _w - 24; var _bx = _x + _w - ui(24);
var aa = (ind != layer_dragging || layer_dragging == noone)? 1 : 0.5; var aa = (ind != layer_dragging || layer_dragging == noone)? 1 : 0.5;
var vis = _vis[ind]; var vis = _vis[ind];
var sel = _sel[ind]; var sel = _sel[ind];
@ -76,13 +96,13 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
var _lh = lh + 4 + _exp * eh; var _lh = lh + 4 + _exp * eh;
if(_exp) { #region extended if(_exp) { #region extended
var _px = _x + 4; var _px = _x + ui(4);
var _py = _cy + lh + 4; var _py = _cy + lh + ui(4);
var _pw = _w - 8; var _pw = _w - ui(8);
var _ph = eh - 4; var _ph = eh - ui(4);
var _pww = (_pw - 8) / 2 - 8; var _pww = (_pw - ui(8)) / 2 - ui(8);
var _pwh = _ph - 8; var _pwh = _ph - ui(8);
draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, _px, _py, _pw, _ph, COLORS.node_composite_bg_blend, 1); draw_sprite_stretched_ext(THEME.ui_panel_bg, 0, _px, _py, _pw, _ph, COLORS.node_composite_bg_blend, 1);
@ -92,20 +112,20 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
var wd_bld = jn_bld.editWidget; var wd_bld = jn_bld.editWidget;
var wd_alp = jn_alp.editWidget; var wd_alp = jn_alp.editWidget;
var _param = new widgetParam(_px + 4, _py + 4, _pww, _pwh, jn_bld.showValue(), jn_bld.display_data, _m, layer_renderer.rx, layer_renderer.ry); var _param = new widgetParam(_px + ui(4), _py + ui(4), _pww, _pwh, jn_bld.showValue(), jn_bld.display_data, _m, layer_renderer.rx, layer_renderer.ry);
_param.font = f_p2; _param.font = f_p2;
wd_bld.setFocusHover(_focus, _hover); wd_bld.setFocusHover(_focus, _hover);
wd_bld.drawParam(_param); wd_bld.drawParam(_param);
var _param = new widgetParam(_px + 4 + _pww + 8, _py + 4, _pww, _pwh, jn_alp.showValue(), jn_alp.display_data, _m, layer_renderer.rx, layer_renderer.ry); var _param = new widgetParam(_px + ui(4) + _pww + ui(8), _py + ui(4), _pww, _pwh, jn_alp.showValue(), jn_alp.display_data, _m, layer_renderer.rx, layer_renderer.ry);
_param.font = f_p2; _param.font = f_p2;
wd_alp.setFocusHover(_focus, _hover); wd_alp.setFocusHover(_focus, _hover);
wd_alp.drawParam(_param); wd_alp.drawParam(_param);
} #endregion } #endregion
if(point_in_circle(_m[0], _m[1], _bx, _cy + lh / 2, 16)) { if(point_in_circle(_m[0], _m[1], _bx, _cy + lh / 2, ui(16))) {
draw_sprite_ui_uniform(THEME.icon_delete, 3, _bx, _cy + lh / 2, 1, COLORS._main_value_negative); draw_sprite_ui_uniform(THEME.icon_delete, 3, _bx, _cy + lh / 2, 1, COLORS._main_value_negative);
if(mouse_press(mb_left, _focus)) if(mouse_press(mb_left, _focus))
@ -115,8 +135,8 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
if(!is_surface(_surf)) continue; if(!is_surface(_surf)) continue;
var _bx = _x + 16 + 24; var _bx = _x + ui(16 + 24);
if(point_in_circle(_m[0], _m[1], _bx, _cy + lh / 2, 12)) { if(point_in_circle(_m[0], _m[1], _bx, _cy + lh / 2, ui(12))) {
draw_sprite_ui_uniform(THEME.junc_visible, vis, _bx, _cy + lh / 2, 1, c_white); draw_sprite_ui_uniform(THEME.junc_visible, vis, _bx, _cy + lh / 2, 1, c_white);
if(mouse_press(mb_left, _focus)) if(mouse_press(mb_left, _focus))
@ -129,8 +149,8 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
} else } else
draw_sprite_ui_uniform(THEME.junc_visible, vis, _bx, _cy + lh / 2, 1, COLORS._main_icon, 0.5 + 0.5 * vis); draw_sprite_ui_uniform(THEME.junc_visible, vis, _bx, _cy + lh / 2, 1, COLORS._main_icon, 0.5 + 0.5 * vis);
_bx += 12 + 1 + 12; _bx += ui(12 + 1 + 12);
if(point_in_circle(_m[0], _m[1], _bx, _cy + lh / 2, 12)) { if(point_in_circle(_m[0], _m[1], _bx, _cy + lh / 2, ui(12))) {
draw_sprite_ui_uniform(THEME.cursor_select, sel, _bx, _cy + lh / 2, 1, c_white); draw_sprite_ui_uniform(THEME.cursor_select, sel, _bx, _cy + lh / 2, 1, c_white);
if(mouse_press(mb_left, _focus)) if(mouse_press(mb_left, _focus))
@ -141,11 +161,11 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
} else } else
draw_sprite_ui_uniform(THEME.cursor_select, sel, _bx, _cy + lh / 2, 1, COLORS._main_icon, 0.5 + 0.5 * sel); draw_sprite_ui_uniform(THEME.cursor_select, sel, _bx, _cy + lh / 2, 1, COLORS._main_icon, 0.5 + 0.5 * sel);
var hover = point_in_rectangle(_m[0], _m[1], _bx + 12 + 6, _cy, _x + _w - 48, _cy + lh - 1); var hover = point_in_rectangle(_m[0], _m[1], _bx + ui(12 + 6), _cy, _x + _w - ui(48), _cy + lh - 1);
var _sx0 = _bx + 12 + 6; var _sx0 = _bx + ui(12 + 6);
var _sx1 = _sx0 + ssh; var _sx1 = _sx0 + ssh;
var _sy0 = _cy + 3; var _sy0 = _cy + ui(3);
var _sy1 = _sy0 + ssh; var _sy1 = _sy0 + ssh;
var _ssw = surface_get_width_safe(_surf); var _ssw = surface_get_width_safe(_surf);
@ -154,9 +174,21 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
draw_surface_ext_safe(_surf, _sx0, _sy0, _sss, _sss, 0, c_white, 1); draw_surface_ext_safe(_surf, _sx0, _sy0, _sss, _sss, 0, c_white, 1);
draw_set_text(f_p1, fa_left, fa_center, hover? COLORS._main_text_accent : COLORS._main_text); draw_set_text(f_p1, fa_left, fa_center, hover? COLORS._main_text_accent : COLORS._main_text);
var _txt = inputs[| index].name; var _txt = _inp.name;
var _txx = _sx1 + 12;
var _txy = _cy + lh / 2 + 2; if(canvas_draw) {
if(_inp.value_from && is_instanceof(_inp.value_from.node, Node_Canvas))
_txt = _inp.value_from.node.display_name;
}
var _txx = _sx1 + ui(12);
var _txy = _cy + lh / 2 + ui(2);
if(renaming_index == index) {
tb_rename.setFocusHover(_focus, _hover);
tb_rename.draw(_txx, _cy, _w - ui(172), lh, rename_text, _m);
} else {
var _txw = string_width(_txt); var _txw = string_width(_txt);
var _txh = string_height(_txt); var _txh = string_height(_txt);
draw_set_alpha(aa); draw_set_alpha(aa);
@ -165,21 +197,22 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
if(surface_selecting == index) if(surface_selecting == index)
draw_sprite_stretched_add(THEME.menu_button_mask, 1, _txx - ui(8), _txy - _txh / 2 - ui(2), _txw + ui(16), _txh + ui(4), COLORS._main_icon, 0.3); draw_sprite_stretched_add(THEME.menu_button_mask, 1, _txx - ui(8), _txy - _txh / 2 - ui(2), _txw + ui(16), _txh + ui(4), COLORS._main_icon, 0.3);
}
if(_hover && point_in_rectangle(_m[0], _m[1], _x, _cy, _x + _w, _cy + lh)) { if(_hover && point_in_rectangle(_m[0], _m[1], _x, _cy, _x + _w, _cy + lh)) {
hoverIndex = ind; hoverIndex = ind;
if(layer_dragging != noone) { if(layer_dragging != noone) {
draw_set_color(COLORS._main_accent); draw_set_color(COLORS._main_accent);
if(layer_dragging > ind) if(layer_dragging > ind)
draw_line_width(_x + 16, _cy + lh + 2, _x + _w - 16, _cy + lh + 2, 2); draw_line_width(_x + ui(16), _cy + lh + 2, _x + _w - ui(16), _cy + lh + ui(2), 2);
else if(layer_dragging < ind) else if(layer_dragging < ind)
draw_line_width(_x + 16, _cy - 2, _x + _w - 16, _cy - 2, 2); draw_line_width(_x + ui(16), _cy - 2, _x + _w - ui(16), _cy - ui(2), 2);
} }
} }
var _bx = _x + 8 + 8; var _bx = _x + ui(8 + 8);
var cc = COLORS._main_icon; var cc = COLORS._main_icon;
if(point_in_rectangle(_m[0], _m[1], _bx - 8, _cy + 4, _bx + 8, _cy + lh - 4)) { if(point_in_rectangle(_m[0], _m[1], _bx - ui(8), _cy + ui(4), _bx + ui(8), _cy + lh - ui(4))) {
cc = c_white; cc = c_white;
if(mouse_press(mb_left, _focus)) if(mouse_press(mb_left, _focus))
@ -189,6 +222,18 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
draw_sprite_ui_uniform(THEME.arrow, _exp? 3 : 0, _bx, _cy + lh / 2 + _exp * 2, 1, cc); draw_sprite_ui_uniform(THEME.arrow, _exp? 3 : 0, _bx, _cy + lh / 2 + _exp * 2, 1, cc);
if(hover && layer_dragging == noone || layer_dragging == ind) { if(hover && layer_dragging == noone || layer_dragging == ind) {
if(DOUBLE_CLICK) {
renaming_index = index;
renaming = index;
rename_text = _txt;
if(canvas_draw && _inp.value_from && is_instanceof(_inp.value_from.node, Node_Canvas))
renaming = _inp.value_from.node;
tb_rename._current_text = _txt;
tb_rename.activate();
}
if(mouse_press(mb_left, _focus)) { if(mouse_press(mb_left, _focus)) {
layer_dragging = ind; layer_dragging = ind;
surface_selecting = index; surface_selecting = index;
@ -261,7 +306,7 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
var index = ds_list_size(inputs); var index = ds_list_size(inputs);
var _s = floor((index - input_fix_len) / data_length); var _s = floor((index - input_fix_len) / data_length);
inputs[| index + 0] = nodeValue(_s? ($"Surface {_s}") : "Background", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone); inputs[| index + 0] = nodeValue($"Surface {_s}", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| index + 0].hover_effect = 0; inputs[| index + 0].hover_effect = 0;
inputs[| index + 1] = nodeValue($"Position {_s}", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] ) inputs[| index + 1] = nodeValue($"Position {_s}", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ] )
@ -304,6 +349,7 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
temp_surface = [ surface_create(1, 1), surface_create(1, 1), surface_create(1, 1) ]; temp_surface = [ surface_create(1, 1), surface_create(1, 1), surface_create(1, 1) ];
blend_temp_surface = temp_surface[2]; blend_temp_surface = temp_surface[2];
surface_selecting = noone;
surf_dragging = -1; surf_dragging = -1;
input_dragging = -1; input_dragging = -1;
drag_type = 0; drag_type = 0;
@ -320,8 +366,6 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
atlas_data = []; atlas_data = [];
surface_selecting = noone;
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
PROCESSOR_OVERLAY_CHECK PROCESSOR_OVERLAY_CHECK

View file

@ -37,6 +37,9 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
inline_context = noone; inline_context = noone;
inline_parent_object = ""; inline_parent_object = "";
modifiable = true;
modify_parent = noone;
#endregion #endregion
static resetInternalName = function() { #region static resetInternalName = function() { #region
@ -1921,7 +1924,7 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
isTool = true; isTool = true;
} #endregion } #endregion
static drawTools = function(_mx, _my, xx, yy, tool_size, hover, focus) { return 0; } static drawTools = noone;
/////=========== SERIALIZE =========== /////=========== SERIALIZE ===========

View file

@ -490,6 +490,7 @@ function __initNodes() {
addNodeCatagory("IO", input); addNodeCatagory("IO", input);
ds_list_add(input, "Images"); ds_list_add(input, "Images");
addNodeObject(input, "Canvas", s_node_canvas, "Node_Canvas", [1, Node_Canvas], ["draw"], "Draw on surface using brush, eraser, etc."); addNodeObject(input, "Canvas", s_node_canvas, "Node_Canvas", [1, Node_Canvas], ["draw"], "Draw on surface using brush, eraser, etc.");
addNodeObject(input, "Canvas Group", s_node_canvas, "Node_Canvas_Group", [1, Node_Canvas_Group]);
addNodeObject(input, "Active Canvas", s_node_active_canvas, "Node_Active_Canvas", [1, Node_Active_Canvas], ["draw"], "Draw using parameterized brush.").setVersion(11570); addNodeObject(input, "Active Canvas", s_node_active_canvas, "Node_Active_Canvas", [1, Node_Active_Canvas], ["draw"], "Draw using parameterized brush.").setVersion(11570);
addNodeObject(input, "Image", s_node_image, "Node_Image", [0, Node_create_Image],, "Load a single image from your computer."); addNodeObject(input, "Image", s_node_image, "Node_Image", [0, Node_create_Image],, "Load a single image from your computer.");
addNodeObject(input, "Image GIF", s_node_image_gif, "Node_Image_gif", [0, Node_create_Image_gif],, "Load animated .gif from your computer."); addNodeObject(input, "Image GIF", s_node_image_gif, "Node_Image_gif", [0, Node_create_Image_gif],, "Load animated .gif from your computer.");

View file

@ -5,8 +5,8 @@
"isDnD":false, "isDnD":false,
"name":"node_value", "name":"node_value",
"parent":{ "parent":{
"name":"__base__", "name":"values",
"path":"folders/nodes/data/__base__.yy", "path":"folders/nodes/data/__base__/values.yy",
}, },
"resourceType":"GMScript", "resourceType":"GMScript",
"resourceVersion":"2.0", "resourceVersion":"2.0",

View file

@ -5,8 +5,8 @@
"isDnD":false, "isDnD":false,
"name":"node_value_base", "name":"node_value_base",
"parent":{ "parent":{
"name":"__base__", "name":"values",
"path":"folders/nodes/data/__base__.yy", "path":"folders/nodes/data/__base__/values.yy",
}, },
"resourceType":"GMScript", "resourceType":"GMScript",
"resourceVersion":"2.0", "resourceVersion":"2.0",

View file

@ -5,8 +5,8 @@
"isDnD":false, "isDnD":false,
"name":"node_value_types", "name":"node_value_types",
"parent":{ "parent":{
"name":"__base__", "name":"values",
"path":"folders/nodes/data/__base__.yy", "path":"folders/nodes/data/__base__/values.yy",
}, },
"resourceType":"GMScript", "resourceType":"GMScript",
"resourceVersion":"2.0", "resourceVersion":"2.0",

View file

@ -5,8 +5,8 @@
"isDnD":false, "isDnD":false,
"name":"node_value_validators", "name":"node_value_validators",
"parent":{ "parent":{
"name":"__base__", "name":"values",
"path":"folders/nodes/data/__base__.yy", "path":"folders/nodes/data/__base__/values.yy",
}, },
"resourceType":"GMScript", "resourceType":"GMScript",
"resourceVersion":"2.0", "resourceVersion":"2.0",

View file

@ -1044,7 +1044,7 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
var _node = nodes_list[i]; var _node = nodes_list[i];
_node.branch_drawing = false; _node.branch_drawing = false;
if(_node.pointIn(gr_x, gr_y, mx, my, graph_s)) if(_node.pointIn(gr_x, gr_y, mx, my, graph_s))
node_hovering = _node; node_hovering = _node.modify_parent == noone? _node : _node.modify_parent;
} }
if(node_hovering != noone) if(node_hovering != noone)
@ -1674,6 +1674,9 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
_inline_ctx = noone; _inline_ctx = noone;
else if(is_instanceof(value_dragging.node, _inline_ctx.output_node_type) && value_dragging.connect_type == JUNCTION_CONNECT.output) else if(is_instanceof(value_dragging.node, _inline_ctx.output_node_type) && value_dragging.connect_type == JUNCTION_CONNECT.output)
_inline_ctx = noone; _inline_ctx = noone;
if(!_inline_ctx.modifiable)
_inline_ctx = noone;
} }
if(_inline_ctx && !key_mod_press(SHIFT)) if(_inline_ctx && !key_mod_press(SHIFT))

View file

@ -663,7 +663,7 @@ function Panel_Inspector() : PanelContent() constructor {
continue; continue;
} else if(is_struct(jun_disp) && instanceof(jun_disp) == "Inspector_Custom_Renderer") { } else if(is_struct(jun_disp) && is_instanceof(jun_disp, Inspector_Custom_Renderer)) {
jun_disp.register(contentPane); jun_disp.register(contentPane);
jun_disp.rx = ui(16) + x; jun_disp.rx = ui(16) + x;
jun_disp.ry = top_bar_h + y; jun_disp.ry = top_bar_h + y;

View file

@ -1572,7 +1572,7 @@ function Panel_Preview() : PanelContent() constructor {
tool_y_max += tool_size; tool_y_max += tool_size;
} #endregion } #endregion
var _h = _node.drawTools(_mx, _my, xx, yy - tool_size / 2, tool_size, thov, pFOCUS); var _h = _node.drawTools == noone? 0 : _node.drawTools(_mx, _my, xx, yy - tool_size / 2, tool_size, thov, pFOCUS);
yy += _h; yy += _h;
tool_y_max += _h; tool_y_max += _h;
@ -1933,6 +1933,8 @@ function Panel_Preview() : PanelContent() constructor {
var inspect_node = PANEL_INSPECTOR.getInspecting(); var inspect_node = PANEL_INSPECTOR.getInspecting();
drawViewController();
tool_side_draw_l = false; tool_side_draw_l = false;
tool_side_draw_r = false; tool_side_draw_r = false;
@ -1943,8 +1945,6 @@ function Panel_Preview() : PanelContent() constructor {
} else } else
tool_current = noone; tool_current = noone;
drawViewController();
if(mouse_on_preview && mouse_press(mb_right, pFOCUS) && !key_mod_press(SHIFT)) { if(mouse_on_preview && mouse_press(mb_right, pFOCUS) && !key_mod_press(SHIFT)) {
menuCall("preview_context_menu",,, [ 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"]),

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View file

@ -0,0 +1,90 @@
{
"$GMSprite":"",
"%Name":"s_node_honey",
"bboxMode":0,
"bbox_bottom":63,
"bbox_left":0,
"bbox_right":63,
"bbox_top":0,
"collisionKind":1,
"collisionTolerance":0,
"DynamicTexturePage":false,
"edgeFiltering":false,
"For3D":false,
"frames":[
{"$GMSpriteFrame":"","%Name":"881e6e2b-86b0-497b-9e17-c975c2fec27b","name":"881e6e2b-86b0-497b-9e17-c975c2fec27b","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
],
"gridX":0,
"gridY":0,
"height":64,
"HTile":false,
"layers":[
{"$GMImageLayer":"","%Name":"e7af6edd-3442-45c5-8d59-e9bdf5b1c349","blendMode":0,"displayName":"default","isLocked":false,"name":"e7af6edd-3442-45c5-8d59-e9bdf5b1c349","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
],
"name":"s_node_honey",
"nineSlice":null,
"origin":4,
"parent":{
"name":"filter",
"path":"folders/nodes/icons/filter.yy",
},
"preMultiplyAlpha":false,
"resourceType":"GMSprite",
"resourceVersion":"2.0",
"sequence":{
"$GMSequence":"",
"%Name":"s_node_honey",
"autoRecord":true,
"backdropHeight":768,
"backdropImageOpacity":0.5,
"backdropImagePath":"",
"backdropWidth":1366,
"backdropXOffset":0.0,
"backdropYOffset":0.0,
"events":{
"$KeyframeStore<MessageEventKeyframe>":"",
"Keyframes":[],
"resourceType":"KeyframeStore<MessageEventKeyframe>",
"resourceVersion":"2.0",
},
"eventStubScript":null,
"eventToFunction":{},
"length":1.0,
"lockOrigin":false,
"moments":{
"$KeyframeStore<MomentsEventKeyframe>":"",
"Keyframes":[],
"resourceType":"KeyframeStore<MomentsEventKeyframe>",
"resourceVersion":"2.0",
},
"name":"s_node_honey",
"playback":1,
"playbackSpeed":30.0,
"playbackSpeedType":0,
"resourceType":"GMSequence",
"resourceVersion":"2.0",
"showBackdrop":true,
"showBackdropImage":false,
"timeUnits":1,
"tracks":[
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"881e6e2b-86b0-497b-9e17-c975c2fec27b","path":"sprites/s_node_honey/s_node_honey.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
},"Disabled":false,"id":"0700f570-4c7a-4d02-93ab-3081bae6a8c8","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
],
"visibleRange":null,
"volume":1.0,
"xorigin":32,
"yorigin":32,
},
"swatchColours":null,
"swfPrecision":0.5,
"textureGroupId":{
"name":"Default",
"path":"texturegroups/Default",
},
"type":0,
"VTile":false,
"width":64,
}