mirror of
https://github.com/Ttanasart-pt/Pixel-Composer.git
synced 2025-01-25 20:38:07 +01:00
y snap
This commit is contained in:
parent
85919c6912
commit
e09089b3b2
15 changed files with 422 additions and 145 deletions
|
@ -1695,6 +1695,7 @@
|
||||||
{"name":"s_node_cache","order":27,"path":"sprites/s_node_cache/s_node_cache.yy",},
|
{"name":"s_node_cache","order":27,"path":"sprites/s_node_cache/s_node_cache.yy",},
|
||||||
{"name":"s_node_camera_repeat","order":19,"path":"sprites/s_node_camera_repeat/s_node_camera_repeat.yy",},
|
{"name":"s_node_camera_repeat","order":19,"path":"sprites/s_node_camera_repeat/s_node_camera_repeat.yy",},
|
||||||
{"name":"s_node_camera","order":3,"path":"sprites/s_node_camera/s_node_camera.yy",},
|
{"name":"s_node_camera","order":3,"path":"sprites/s_node_camera/s_node_camera.yy",},
|
||||||
|
{"name":"s_node_canvas_group","order":39,"path":"sprites/s_node_canvas_group/s_node_canvas_group.yy",},
|
||||||
{"name":"s_node_caustic","order":35,"path":"sprites/s_node_caustic/s_node_caustic.yy",},
|
{"name":"s_node_caustic","order":35,"path":"sprites/s_node_caustic/s_node_caustic.yy",},
|
||||||
{"name":"s_node_chromatic_abarration","order":10,"path":"sprites/s_node_chromatic_abarration/s_node_chromatic_abarration.yy",},
|
{"name":"s_node_chromatic_abarration","order":10,"path":"sprites/s_node_chromatic_abarration/s_node_chromatic_abarration.yy",},
|
||||||
{"name":"s_node_color_adjust","order":1,"path":"sprites/s_node_color_adjust/s_node_color_adjust.yy",},
|
{"name":"s_node_color_adjust","order":1,"path":"sprites/s_node_color_adjust/s_node_color_adjust.yy",},
|
||||||
|
|
|
@ -2241,6 +2241,7 @@
|
||||||
{"id":{"name":"s_node_cache","path":"sprites/s_node_cache/s_node_cache.yy",},},
|
{"id":{"name":"s_node_cache","path":"sprites/s_node_cache/s_node_cache.yy",},},
|
||||||
{"id":{"name":"s_node_camera_repeat","path":"sprites/s_node_camera_repeat/s_node_camera_repeat.yy",},},
|
{"id":{"name":"s_node_camera_repeat","path":"sprites/s_node_camera_repeat/s_node_camera_repeat.yy",},},
|
||||||
{"id":{"name":"s_node_camera","path":"sprites/s_node_camera/s_node_camera.yy",},},
|
{"id":{"name":"s_node_camera","path":"sprites/s_node_camera/s_node_camera.yy",},},
|
||||||
|
{"id":{"name":"s_node_canvas_group","path":"sprites/s_node_canvas_group/s_node_canvas_group.yy",},},
|
||||||
{"id":{"name":"s_node_canvas","path":"sprites/s_node_canvas/s_node_canvas.yy",},},
|
{"id":{"name":"s_node_canvas","path":"sprites/s_node_canvas/s_node_canvas.yy",},},
|
||||||
{"id":{"name":"s_node_caustic","path":"sprites/s_node_caustic/s_node_caustic.yy",},},
|
{"id":{"name":"s_node_caustic","path":"sprites/s_node_caustic/s_node_caustic.yy",},},
|
||||||
{"id":{"name":"s_node_character","path":"sprites/s_node_character/s_node_character.yy",},},
|
{"id":{"name":"s_node_character","path":"sprites/s_node_character/s_node_character.yy",},},
|
||||||
|
|
Binary file not shown.
|
@ -6,6 +6,8 @@ event_inherited();
|
||||||
|
|
||||||
node_target_x = 0;
|
node_target_x = 0;
|
||||||
node_target_y = 0;
|
node_target_y = 0;
|
||||||
|
node_target_x_raw = 0;
|
||||||
|
node_target_y_raw = 0;
|
||||||
node_called = noone;
|
node_called = noone;
|
||||||
junction_hovering = noone;
|
junction_hovering = noone;
|
||||||
|
|
||||||
|
@ -241,7 +243,6 @@ event_inherited();
|
||||||
|
|
||||||
for( var i = 0; i < ds_list_size(_inputs); i++ ) {
|
for( var i = 0; i < ds_list_size(_inputs); i++ ) {
|
||||||
var _in = _inputs[| i];
|
var _in = _inputs[| i];
|
||||||
|
|
||||||
if(_in.auto_connect && _in.isConnectable(from)) {
|
if(_in.auto_connect && _in.isConnectable(from)) {
|
||||||
_in.setFrom(from);
|
_in.setFrom(from);
|
||||||
break;
|
break;
|
||||||
|
@ -255,6 +256,22 @@ event_inherited();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(_new_node) {
|
||||||
|
var _fx = from.node.x, _fy = from.node.y;
|
||||||
|
var _tx = to.node.x, _ty = to.node.y;
|
||||||
|
var _ny = node_target_y_raw;
|
||||||
|
|
||||||
|
if(_tx > _fx) {
|
||||||
|
var _rt = abs((_ny - _fy) / (_ty - _fy));
|
||||||
|
|
||||||
|
if(_rt < 0.3) _new_node.y = _fy;
|
||||||
|
else if(_rt > 0.7) {
|
||||||
|
_new_node.y = _ty;
|
||||||
|
// _new_node.x = min(_new_node.x, _tx - _new_node.w - 32);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
|
|
|
@ -162,8 +162,7 @@ function buttonInstant(spr, _x, _y, _w, _h, _m, _act, _hvr, _tip = "", _icon = n
|
||||||
} else if(spr)
|
} else if(spr)
|
||||||
draw_sprite_stretched(spr, 0, _x, _y, _w, _h);
|
draw_sprite_stretched(spr, 0, _x, _y, _w, _h);
|
||||||
|
|
||||||
if(_icon)
|
if(_icon) draw_sprite_ui_uniform(_icon, _icon_index, _x + _w / 2, _y + _h / 2, _icon_scale, cc, _icon_alpha);
|
||||||
draw_sprite_ui_uniform(_icon, _icon_index, _x + _w / 2, _y + _h / 2, _icon_scale, cc, _icon_alpha);
|
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,6 +57,7 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
|
||||||
var _h = 64;
|
var _h = 64;
|
||||||
_y += 8;
|
_y += 8;
|
||||||
|
|
||||||
|
var _anim = getInputData(12);
|
||||||
var _cnt_hover = false;
|
var _cnt_hover = false;
|
||||||
|
|
||||||
draw_sprite_stretched(THEME.button_def, 0, _x, _y, _w, _h);
|
draw_sprite_stretched(THEME.button_def, 0, _x, _y, _w, _h);
|
||||||
|
@ -66,11 +67,12 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
|
||||||
_cnt_hover = _hover;
|
_cnt_hover = _hover;
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ww = _w - 4 - 40;
|
var _aw = ui(32);
|
||||||
var _hh = _h - 4 - 4;
|
var _ww = _w - ui(4) - _aw;
|
||||||
|
var _hh = _h - ui(4) - ui(4);
|
||||||
|
|
||||||
var _x0 = _x + 4;
|
var _x0 = _x + ui(4);
|
||||||
var _y0 = _y + 4;
|
var _y0 = _y + ui(4);
|
||||||
var _x1 = _x0 + _ww;
|
var _x1 = _x0 + _ww;
|
||||||
var _y1 = _y0 + _hh;
|
var _y1 = _y0 + _hh;
|
||||||
|
|
||||||
|
@ -119,7 +121,10 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
|
||||||
if(mouse_press(mb_left, _focus))
|
if(mouse_press(mb_left, _focus))
|
||||||
_del = i;
|
_del = i;
|
||||||
} else if(point_in_rectangle(_msx, _msy, _sx, _sy, _sx + _sw * _ss, _sy + _sh * _ss)) {
|
} else if(point_in_rectangle(_msx, _msy, _sx, _sy, _sx + _sw * _ss, _sy + _sh * _ss)) {
|
||||||
if(mouse_press(mb_left, _focus)) preview_index = i;
|
if(mouse_press(mb_left, _focus)) {
|
||||||
|
if(_anim) PROJECT.animator.setFrame(i);
|
||||||
|
else preview_index = i;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,11 +146,11 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
|
||||||
if(mouse_wheel_up()) frame_renderer_x_to = clamp(frame_renderer_x_to - 80, 0, frame_renderer_x_max);
|
if(mouse_wheel_up()) frame_renderer_x_to = clamp(frame_renderer_x_to - 80, 0, frame_renderer_x_max);
|
||||||
}
|
}
|
||||||
|
|
||||||
var _bs = 32;
|
var _bs = _aw - ui(8);
|
||||||
var _bx = _x1 + ui(20) - _bs / 2;
|
var _bx = _x1 + _aw / 2 - _bs / 2;
|
||||||
var _by = _y + _h / 2 - _bs / 2;
|
var _by = _y + _h / 2 - _bs / 2;
|
||||||
|
|
||||||
if(buttonInstant(THEME.button_hide, _bx, _by, _bs, _bs, _m, _focus, _hover,, THEME.add,, COLORS._main_value_positive) == 2) {
|
if(buttonInstant(THEME.button_hide, _bx, _by, _bs, _bs, _m, _focus, _hover, "", THEME.add_16, 0, COLORS._main_value_positive) == 2) {
|
||||||
attributes.frames++;
|
attributes.frames++;
|
||||||
refreshFrames();
|
refreshFrames();
|
||||||
update();
|
update();
|
||||||
|
|
|
@ -7,6 +7,7 @@ function Node_Canvas_Group(_x, _y, _group) : Node_Collection_Inline(_x, _y, _gro
|
||||||
inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF )
|
inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF )
|
||||||
.setDisplay(VALUE_DISPLAY.vector);
|
.setDisplay(VALUE_DISPLAY.vector);
|
||||||
|
|
||||||
|
layers = {};
|
||||||
canvases = [];
|
canvases = [];
|
||||||
composite = noone;
|
composite = noone;
|
||||||
canvas_sel = noone;
|
canvas_sel = noone;
|
||||||
|
@ -14,24 +15,23 @@ function Node_Canvas_Group(_x, _y, _group) : Node_Collection_Inline(_x, _y, _gro
|
||||||
layer_height = 0;
|
layer_height = 0;
|
||||||
layer_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) {
|
layer_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) {
|
||||||
var _h = ui(4);
|
var _h = ui(4);
|
||||||
var _yy = _y;
|
|
||||||
|
|
||||||
if(composite == noone) return _h;
|
if(composite == noone) return _h;
|
||||||
|
|
||||||
composite.canvas_draw = true;
|
composite.canvas_draw = self;
|
||||||
var _layer_ren = composite.layer_renderer;
|
var _layer_ren = composite.layer_renderer;
|
||||||
_layer_ren.register(layer_renderer.parent);
|
_layer_ren.register(layer_renderer.parent);
|
||||||
_layer_ren.rx = layer_renderer.rx;
|
_layer_ren.rx = layer_renderer.rx;
|
||||||
_layer_ren.ry = layer_renderer.ry;
|
_layer_ren.ry = layer_renderer.ry;
|
||||||
|
|
||||||
|
var _yy = _y + _h;
|
||||||
var bx = _x;
|
var bx = _x;
|
||||||
var by = _y;
|
var by = _yy;
|
||||||
var bs = ui(24);
|
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)
|
if(buttonInstant(THEME.button_hide, bx, by, bs, bs, _m, _focus, _hover, "", THEME.add_16, 0, COLORS._main_value_positive) == 2)
|
||||||
layerAdd();
|
layerAdd();
|
||||||
|
|
||||||
_h += ui(32);
|
_h += bs + ui(8);
|
||||||
_yy += ui(32);
|
_yy += bs + ui(8);
|
||||||
|
|
||||||
var _wdh = _layer_ren.draw(_x, _yy, _w, _m, _hover, _focus);
|
var _wdh = _layer_ren.draw(_x, _yy, _w, _m, _hover, _focus);
|
||||||
if(!is_undefined(_wdh)) _h += _wdh;
|
if(!is_undefined(_wdh)) _h += _wdh;
|
||||||
|
@ -39,8 +39,31 @@ function Node_Canvas_Group(_x, _y, _group) : Node_Collection_Inline(_x, _y, _gro
|
||||||
return _h;
|
return _h;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
frame_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) {
|
||||||
|
var _h = ui(4);
|
||||||
|
var _yy = _y;
|
||||||
|
|
||||||
|
for (var i = 0, n = array_length(canvases); i < n; i++) {
|
||||||
|
var _canvas = canvases[i];
|
||||||
|
|
||||||
|
var _frame_render = _canvas.frame_renderer;
|
||||||
|
_frame_render.register(frame_renderer.parent);
|
||||||
|
_frame_render.rx = frame_renderer.rx;
|
||||||
|
_frame_render.ry = frame_renderer.ry;
|
||||||
|
|
||||||
|
var _wdh = _frame_render.draw(_x, _yy, _w, _m, _hover, _focus);
|
||||||
|
if(!is_undefined(_wdh)) {
|
||||||
|
_h += _wdh;
|
||||||
|
_yy += _wdh;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return _h;
|
||||||
|
});
|
||||||
|
|
||||||
input_display_list = [ 0,
|
input_display_list = [ 0,
|
||||||
["Layers", false], layer_renderer,
|
["Layers", false], layer_renderer,
|
||||||
|
["Frames", false], frame_renderer,
|
||||||
];
|
];
|
||||||
|
|
||||||
static refreshNodes = function() {
|
static refreshNodes = function() {
|
||||||
|
@ -54,13 +77,61 @@ function Node_Canvas_Group(_x, _y, _group) : Node_Collection_Inline(_x, _y, _gro
|
||||||
array_push(canvases, _node);
|
array_push(canvases, _node);
|
||||||
else if(is_instanceof(_node, Node_Composite))
|
else if(is_instanceof(_node, Node_Composite))
|
||||||
composite = _node;
|
composite = _node;
|
||||||
|
|
||||||
|
_node.modifiable = false;
|
||||||
|
_node.modify_parent = self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
refreshLayer();
|
||||||
|
}
|
||||||
|
|
||||||
|
static refreshLayer = function() {
|
||||||
|
layers = {};
|
||||||
|
if(composite == noone) return;
|
||||||
|
|
||||||
|
var _amo = composite.getInputAmount();
|
||||||
|
for(var i = 0; i < _amo; i++) {
|
||||||
|
var index = composite.input_fix_len + i * composite.data_length;
|
||||||
|
|
||||||
|
var _can = composite.inputs[| index].value_from;
|
||||||
|
if(_can == noone) continue;
|
||||||
|
|
||||||
|
var _nod = _can.node;
|
||||||
|
var _lay = _can.node;
|
||||||
|
var _modStack = [ _nod ];
|
||||||
|
|
||||||
|
while(!is_instanceof(_nod, Node_Canvas)) {
|
||||||
|
if(_nod.inputs[| 0].type != VALUE_TYPE.surface)
|
||||||
|
break;
|
||||||
|
if(_nod.inputs[| 0].value_from == noone)
|
||||||
|
break;
|
||||||
|
|
||||||
|
_nod = _nod.inputs[| 0].value_from.node;
|
||||||
|
array_push(_modStack, _nod);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!is_instanceof(_nod, Node_Canvas)) continue;
|
||||||
|
array_pop(_modStack);
|
||||||
|
|
||||||
|
layers[$ _lay.node_id] = {
|
||||||
|
input : _lay,
|
||||||
|
canvas : _nod,
|
||||||
|
modifier : _modStack,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static onAddNode = function(node) {
|
static onAddNode = function(node) {
|
||||||
node.modifiable = false;
|
node.modifiable = false;
|
||||||
node.modify_parent = self;
|
node.modify_parent = self;
|
||||||
refreshNodes();
|
|
||||||
|
if(is_instanceof(node, Node_Canvas))
|
||||||
|
array_push(canvases, node);
|
||||||
|
else if(is_instanceof(node, Node_Composite))
|
||||||
|
composite = node;
|
||||||
|
|
||||||
|
refreshLayer();
|
||||||
}
|
}
|
||||||
|
|
||||||
static layerAdd = function() {
|
static layerAdd = function() {
|
||||||
|
@ -81,16 +152,30 @@ function Node_Canvas_Group(_x, _y, _group) : Node_Collection_Inline(_x, _y, _gro
|
||||||
|
|
||||||
_b += 32;
|
_b += 32;
|
||||||
var _canvas = nodeBuild("Node_Canvas", _l, _b);
|
var _canvas = nodeBuild("Node_Canvas", _l, _b);
|
||||||
|
_canvas.inputs[| 12].setValue(true);
|
||||||
|
|
||||||
composite.dummy_input.setFrom(_canvas.outputs[| 0]);
|
composite.dummy_input.setFrom(_canvas.outputs[| 0]);
|
||||||
|
|
||||||
addNode(_canvas);
|
addNode(_canvas);
|
||||||
return _canvas;
|
return _canvas;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static deleteLayer = function(index) {
|
||||||
|
if(composite == noone) return;
|
||||||
|
|
||||||
|
var idx = composite.input_fix_len + index * composite.data_length;
|
||||||
|
var inp = composite.inputs[| idx];
|
||||||
|
var nod = inp.value_from? inp.value_from.node : noone;
|
||||||
|
if(!nod) return;
|
||||||
|
|
||||||
|
nod.destroy();
|
||||||
|
}
|
||||||
|
|
||||||
if(NODE_NEW_MANUAL) {
|
if(NODE_NEW_MANUAL) {
|
||||||
var _canvas = nodeBuild("Node_Canvas", x, y);
|
var _canvas = nodeBuild("Node_Canvas", x, y);
|
||||||
var _compose = nodeBuild("Node_Composite", x + 160, y);
|
_canvas.inputs[| 12].setValue(true);
|
||||||
|
|
||||||
|
var _compose = nodeBuild("Node_Composite", x + 160, y);
|
||||||
_compose.dummy_input.setFrom(_canvas.outputs[| 0]);
|
_compose.dummy_input.setFrom(_canvas.outputs[| 0]);
|
||||||
|
|
||||||
addNode(_canvas);
|
addNode(_canvas);
|
||||||
|
@ -110,6 +195,7 @@ function Node_Canvas_Group(_x, _y, _group) : Node_Collection_Inline(_x, _y, _gro
|
||||||
canvas_sel = noone;
|
canvas_sel = noone;
|
||||||
|
|
||||||
if(composite == noone) return;
|
if(composite == noone) return;
|
||||||
|
composite.deleteLayer = deleteLayer;
|
||||||
|
|
||||||
if(composite.getInputAmount()) {
|
if(composite.getInputAmount()) {
|
||||||
var _ind = composite.surface_selecting;
|
var _ind = composite.surface_selecting;
|
||||||
|
@ -117,11 +203,8 @@ function Node_Canvas_Group(_x, _y, _group) : Node_Collection_Inline(_x, _y, _gro
|
||||||
_ind = composite.input_fix_len;
|
_ind = composite.input_fix_len;
|
||||||
|
|
||||||
var _can = composite.inputs[| _ind].value_from;
|
var _can = composite.inputs[| _ind].value_from;
|
||||||
|
if(_can && struct_has(layers, _can.node.node_id))
|
||||||
if(_can) {
|
canvas_sel = layers[$ _can.node.node_id].canvas;
|
||||||
var _nod = _can.node;
|
|
||||||
canvas_sel = _nod;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(canvas_sel) {
|
if(canvas_sel) {
|
||||||
|
@ -132,6 +215,10 @@ function Node_Canvas_Group(_x, _y, _group) : Node_Collection_Inline(_x, _y, _gro
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static update = function() {
|
||||||
|
refreshLayer();
|
||||||
|
}
|
||||||
|
|
||||||
static getPreviewValues = function() { return composite == noone? noone : composite.getPreviewValues(); }
|
static getPreviewValues = function() { return composite == noone? noone : composite.getPreviewValues(); }
|
||||||
|
|
||||||
static postDeserialize = function() {
|
static postDeserialize = function() {
|
||||||
|
|
|
@ -34,7 +34,7 @@ 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;
|
canvas_draw = noone;
|
||||||
|
|
||||||
renaming = noone;
|
renaming = noone;
|
||||||
rename_text = "";
|
rename_text = "";
|
||||||
|
@ -54,6 +54,7 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||||
tb_rename.font = f_p1;
|
tb_rename.font = f_p1;
|
||||||
tb_rename.hide = true;
|
tb_rename.hide = true;
|
||||||
|
|
||||||
|
layer_height = 0;
|
||||||
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
|
||||||
|
|
||||||
|
@ -63,13 +64,8 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||||
|
|
||||||
properties_expand = array_verify(properties_expand, amo);
|
properties_expand = array_verify(properties_expand, amo);
|
||||||
var _h = ui(4);
|
var _h = ui(4);
|
||||||
for(var i = 0; i < amo; i++)
|
|
||||||
_h += lh + ui(4) + properties_expand[i] * eh;
|
|
||||||
_h = max(ui(16), _h);
|
|
||||||
|
|
||||||
layer_renderer.h = _h;
|
draw_sprite_stretched_ext(THEME.ui_panel_bg, 1, _x, _y, _w, layer_height, COLORS.node_composite_bg_blend, 1);
|
||||||
|
|
||||||
draw_sprite_stretched_ext(THEME.ui_panel_bg, 1, _x, _y, _w, _h, COLORS.node_composite_bg_blend, 1);
|
|
||||||
|
|
||||||
var _vis = attributes.layer_visible;
|
var _vis = attributes.layer_visible;
|
||||||
var _sel = attributes.layer_selectable;
|
var _sel = attributes.layer_selectable;
|
||||||
|
@ -86,6 +82,7 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||||
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 _inp = inputs[| index];
|
||||||
|
var _junc = _inp.value_from? _inp.value_from.node : noone;
|
||||||
|
|
||||||
var _bx = _x + _w - ui(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;
|
||||||
|
@ -93,9 +90,11 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||||
var sel = _sel[ind];
|
var sel = _sel[ind];
|
||||||
|
|
||||||
var _exp = properties_expand[i];
|
var _exp = properties_expand[i];
|
||||||
var _lh = lh + 4 + _exp * eh;
|
var _lh = lh + ui(4) + _exp * eh;
|
||||||
|
_h += _lh;
|
||||||
|
|
||||||
if(_exp) { #region extended
|
#region extended
|
||||||
|
if(_exp) {
|
||||||
var _px = _x + ui(4);
|
var _px = _x + ui(4);
|
||||||
var _py = _cy + lh + ui(4);
|
var _py = _cy + lh + ui(4);
|
||||||
var _pw = _w - ui(8);
|
var _pw = _w - ui(8);
|
||||||
|
@ -123,8 +122,10 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||||
|
|
||||||
wd_alp.setFocusHover(_focus, _hover);
|
wd_alp.setFocusHover(_focus, _hover);
|
||||||
wd_alp.drawParam(_param);
|
wd_alp.drawParam(_param);
|
||||||
} #endregion
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region draw buttons
|
||||||
if(point_in_circle(_m[0], _m[1], _bx, _cy + lh / 2, ui(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);
|
||||||
|
|
||||||
|
@ -162,7 +163,9 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||||
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 + ui(12 + 6), _cy, _x + _w - ui(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);
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region draw surface
|
||||||
var _sx0 = _bx + ui(12 + 6);
|
var _sx0 = _bx + ui(12 + 6);
|
||||||
var _sx1 = _sx0 + ssh;
|
var _sx1 = _sx0 + ssh;
|
||||||
var _sy0 = _cy + ui(3);
|
var _sy0 = _cy + ui(3);
|
||||||
|
@ -173,17 +176,28 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||||
var _sss = min(ssh / _ssw, ssh / _ssh);
|
var _sss = min(ssh / _ssw, ssh / _ssh);
|
||||||
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);
|
||||||
|
|
||||||
|
if(surface_selecting == index) draw_sprite_stretched_add(THEME.menu_button_mask, 1, _sx0, _sy0, ssh, ssh, COLORS._main_accent, 1);
|
||||||
|
else draw_sprite_stretched_add(THEME.menu_button_mask, 1, _sx0, _sy0, ssh, ssh, COLORS._main_icon, 0.3);
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region layers
|
||||||
|
var _junc_canvas = noone;
|
||||||
|
var _jun_layer = noone;
|
||||||
|
if(canvas_draw != noone && _junc && struct_has(canvas_draw.layers, _junc.node_id)) {
|
||||||
|
_jun_layer = canvas_draw.layers[$ _junc.node_id];
|
||||||
|
_junc_canvas = _jun_layer.canvas;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region draw title
|
||||||
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 = _inp.name;
|
var _txt = _inp.name;
|
||||||
|
|
||||||
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 _txx = _sx1 + ui(12);
|
||||||
var _txy = _cy + lh / 2 + ui(2);
|
var _txy = _cy + lh / 2 + ui(2);
|
||||||
|
|
||||||
|
if(canvas_draw != noone && _junc_canvas)
|
||||||
|
_txt = _junc_canvas.display_name;
|
||||||
|
|
||||||
if(renaming_index == index) {
|
if(renaming_index == index) {
|
||||||
tb_rename.setFocusHover(_focus, _hover);
|
tb_rename.setFocusHover(_focus, _hover);
|
||||||
tb_rename.draw(_txx, _cy, _w - ui(172), lh, rename_text, _m);
|
tb_rename.draw(_txx, _cy, _w - ui(172), lh, rename_text, _m);
|
||||||
|
@ -191,13 +205,59 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||||
} else {
|
} else {
|
||||||
var _txw = string_width(_txt);
|
var _txw = string_width(_txt);
|
||||||
var _txh = string_height(_txt);
|
var _txh = string_height(_txt);
|
||||||
|
|
||||||
|
if(_junc_canvas) {
|
||||||
|
draw_sprite_ui_uniform(THEME.icon_canvas, 0, _txx + ui(12), _txy - ui(1), 1, COLORS._main_icon, aa * .8);
|
||||||
|
|
||||||
|
draw_set_alpha(aa);
|
||||||
|
draw_text(_txx + ui(28), _txy, _txt);
|
||||||
|
draw_set_alpha(1);
|
||||||
|
} else {
|
||||||
draw_set_alpha(aa);
|
draw_set_alpha(aa);
|
||||||
draw_text(_txx, _txy, _txt);
|
draw_text(_txx, _txy, _txt);
|
||||||
draw_set_alpha(1);
|
draw_set_alpha(1);
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region modifiers
|
||||||
|
if(_jun_layer) {
|
||||||
|
var _modis = _jun_layer.modifier;
|
||||||
|
var _mdx = _txx - ui(23);
|
||||||
|
var _mdy = _cy + _lh;
|
||||||
|
var mh = ui(24);
|
||||||
|
|
||||||
|
for (var j = array_length(_modis) - 1; j >= 0; j--) {
|
||||||
|
var _modi = _modis[j];
|
||||||
|
var _mtx = _mdx;
|
||||||
|
|
||||||
|
if(_modi.active_index != -1) {
|
||||||
|
var _bx = _mtx + ui(12);
|
||||||
|
var _by = _mdy + mh / 2;
|
||||||
|
|
||||||
|
var _acti = _modi.inputs[| _modi.active_index].getValue();
|
||||||
|
|
||||||
|
if(_hover && point_in_circle(_m[0], _m[1], _bx, _by, ui(12))) {
|
||||||
|
draw_sprite_ui_uniform(THEME.visible_12, _acti, _bx, _by - ui(2), 1, c_white);
|
||||||
|
|
||||||
|
if(mouse_press(mb_left, _focus))
|
||||||
|
_modi.inputs[| _modi.active_index].setValue(!_acti);
|
||||||
|
} else
|
||||||
|
draw_sprite_ui_uniform(THEME.visible_12, _acti, _bx, _by - ui(2), 1, COLORS._main_icon);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
_mtx += ui(24);
|
||||||
|
var _mhov = _hover && point_in_rectangle(_m[0], _m[1], _mtx, _mdy, _x + _w, _mdy + mh - 1);
|
||||||
|
draw_set_text(f_p2, fa_left, fa_center, _mhov? COLORS._main_text : COLORS._main_text_sub);
|
||||||
|
draw_text_add(_mtx, _mdy + mh / 2 - ui(2), _modi.display_name);
|
||||||
|
|
||||||
|
_h += mh;
|
||||||
|
_lh += mh;
|
||||||
|
_mdy += mh;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
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;
|
||||||
|
@ -227,8 +287,8 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||||
renaming = index;
|
renaming = index;
|
||||||
rename_text = _txt;
|
rename_text = _txt;
|
||||||
|
|
||||||
if(canvas_draw && _inp.value_from && is_instanceof(_inp.value_from.node, Node_Canvas))
|
if(canvas_draw != noone && _junc_canvas)
|
||||||
renaming = _inp.value_from.node;
|
renaming = _junc_canvas;
|
||||||
|
|
||||||
tb_rename._current_text = _txt;
|
tb_rename._current_text = _txt;
|
||||||
tb_rename.activate();
|
tb_rename.activate();
|
||||||
|
@ -273,7 +333,10 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||||
layer_dragging = noone;
|
layer_dragging = noone;
|
||||||
}
|
}
|
||||||
|
|
||||||
return _h;
|
layer_height = max(ui(16), _h);
|
||||||
|
layer_renderer.h = layer_height;
|
||||||
|
|
||||||
|
return layer_height;
|
||||||
}); #endregion
|
}); #endregion
|
||||||
|
|
||||||
input_display_list = [
|
input_display_list = [
|
||||||
|
@ -646,6 +709,9 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||||
var _dim_type = getSingleValue(1);
|
var _dim_type = getSingleValue(1);
|
||||||
|
|
||||||
inputs[| 2].setVisible(_dim_type == COMPOSE_OUTPUT_SCALING.constant);
|
inputs[| 2].setVisible(_dim_type == COMPOSE_OUTPUT_SCALING.constant);
|
||||||
|
|
||||||
|
if(canvas_draw != noone && surface_selecting == noone && getInputAmount())
|
||||||
|
surface_selecting = input_fix_len;
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
static processData = function(_outSurf, _data, _output_index, _array_index) { #region
|
static processData = function(_outSurf, _data, _output_index, _array_index) { #region
|
||||||
|
|
|
@ -40,6 +40,8 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
||||||
|
|
||||||
modifiable = true;
|
modifiable = true;
|
||||||
modify_parent = noone;
|
modify_parent = noone;
|
||||||
|
|
||||||
|
onDoubleClick = -1;
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
static resetInternalName = function() { #region
|
static resetInternalName = function() { #region
|
||||||
|
|
|
@ -490,7 +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, "Canvas Group", s_node_canvas_group, "Node_Canvas_Group", [1, Node_Canvas_Group]).setVersion(11740);
|
||||||
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.");
|
||||||
|
|
|
@ -1043,14 +1043,15 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||||
for(var i = 0; i < array_length(nodes_list); i++) {
|
for(var i = 0; i < array_length(nodes_list); i++) {
|
||||||
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.modify_parent == noone? _node : _node.modify_parent;
|
node_hovering = _node;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(node_hovering != noone)
|
if(node_hovering != noone)
|
||||||
_HOVERING_ELEMENT = node_hovering;
|
_HOVERING_ELEMENT = node_hovering;
|
||||||
|
|
||||||
if(node_hovering != noone && _focus && DOUBLE_CLICK && struct_has(node_hovering, "onDoubleClick")) {
|
if(node_hovering != noone && _focus && DOUBLE_CLICK && node_hovering.onDoubleClick != -1) {
|
||||||
|
|
||||||
if(node_hovering.onDoubleClick(self)) {
|
if(node_hovering.onDoubleClick(self)) {
|
||||||
DOUBLE_CLICK = false;
|
DOUBLE_CLICK = false;
|
||||||
|
@ -1111,6 +1112,7 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||||
}
|
}
|
||||||
} else if(DOUBLE_CLICK) {
|
} else if(DOUBLE_CLICK) {
|
||||||
PANEL_PREVIEW.setNodePreview(node_hovering);
|
PANEL_PREVIEW.setNodePreview(node_hovering);
|
||||||
|
|
||||||
if(PREFERENCES.inspector_focus_on_double_click) {
|
if(PREFERENCES.inspector_focus_on_double_click) {
|
||||||
if(PANEL_INSPECTOR.panel && struct_has(PANEL_INSPECTOR.panel, "switchContent"))
|
if(PANEL_INSPECTOR.panel && struct_has(PANEL_INSPECTOR.panel, "switchContent"))
|
||||||
PANEL_INSPECTOR.panel.switchContent(PANEL_INSPECTOR);
|
PANEL_INSPECTOR.panel.switchContent(PANEL_INSPECTOR);
|
||||||
|
@ -1252,6 +1254,9 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||||
|
|
||||||
if(is_instanceof(frame_hovering, Node_Collection_Inline) && DOUBLE_CLICK && array_empty(nodes_selecting)) { #region
|
if(is_instanceof(frame_hovering, Node_Collection_Inline) && DOUBLE_CLICK && array_empty(nodes_selecting)) { #region
|
||||||
nodes_selecting = [ frame_hovering ];
|
nodes_selecting = [ frame_hovering ];
|
||||||
|
|
||||||
|
if(frame_hovering.onDoubleClick != -1) frame_hovering.onDoubleClick(self)
|
||||||
|
if(frame_hovering.previewable) PANEL_PREVIEW.setNodePreview(frame_hovering);
|
||||||
} #endregion
|
} #endregion
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -1563,6 +1568,8 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||||
with(dialogCall(o_dialog_add_node, mouse_mx + 8, mouse_my + 8, { context: ctx })) {
|
with(dialogCall(o_dialog_add_node, mouse_mx + 8, mouse_my + 8, { context: ctx })) {
|
||||||
node_target_x = other.mouse_grid_x;
|
node_target_x = other.mouse_grid_x;
|
||||||
node_target_y = other.mouse_grid_y;
|
node_target_y = other.mouse_grid_y;
|
||||||
|
node_target_x_raw = other.mouse_grid_x;
|
||||||
|
node_target_y_raw = other.mouse_grid_y;
|
||||||
node_called = other.value_dragging;
|
node_called = other.value_dragging;
|
||||||
|
|
||||||
alarm[0] = 1;
|
alarm[0] = 1;
|
||||||
|
@ -1761,6 +1768,8 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||||
with(_dia) {
|
with(_dia) {
|
||||||
node_target_x = other.mouse_grid_x;
|
node_target_x = other.mouse_grid_x;
|
||||||
node_target_y = other.mouse_grid_y;
|
node_target_y = other.mouse_grid_y;
|
||||||
|
node_target_x_raw = other.mouse_grid_x;
|
||||||
|
node_target_y_raw = other.mouse_grid_y;
|
||||||
junction_hovering = other.junction_hovering;
|
junction_hovering = other.junction_hovering;
|
||||||
|
|
||||||
resetPosition();
|
resetPosition();
|
||||||
|
|
|
@ -1898,7 +1898,7 @@ function Panel_Preview() : PanelContent() constructor {
|
||||||
function drawContent(panel) { #region >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> MAIN DRAW <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
function drawContent(panel) { #region >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> MAIN DRAW <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||||||
mouse_on_preview = pHOVER && point_in_rectangle(mx, my, 0, topbar_height, w, h - toolbar_height);
|
mouse_on_preview = pHOVER && point_in_rectangle(mx, my, 0, topbar_height, w, h - toolbar_height);
|
||||||
|
|
||||||
if(do_fullView) fullView();
|
if(do_fullView) run_in(1, fullView);
|
||||||
do_fullView = false;
|
do_fullView = false;
|
||||||
|
|
||||||
var _prev_node = getNodePreview();
|
var _prev_node = getNodePreview();
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
90
sprites/s_node_canvas_group/s_node_canvas_group.yy
Normal file
90
sprites/s_node_canvas_group/s_node_canvas_group.yy
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
{
|
||||||
|
"$GMSprite":"",
|
||||||
|
"%Name":"s_node_canvas_group",
|
||||||
|
"bboxMode":0,
|
||||||
|
"bbox_bottom":63,
|
||||||
|
"bbox_left":2,
|
||||||
|
"bbox_right":63,
|
||||||
|
"bbox_top":2,
|
||||||
|
"collisionKind":1,
|
||||||
|
"collisionTolerance":0,
|
||||||
|
"DynamicTexturePage":false,
|
||||||
|
"edgeFiltering":false,
|
||||||
|
"For3D":false,
|
||||||
|
"frames":[
|
||||||
|
{"$GMSpriteFrame":"","%Name":"f9dbf063-7abe-47a2-bc35-983ff7f9e83e","name":"f9dbf063-7abe-47a2-bc35-983ff7f9e83e","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||||
|
],
|
||||||
|
"gridX":0,
|
||||||
|
"gridY":0,
|
||||||
|
"height":64,
|
||||||
|
"HTile":false,
|
||||||
|
"layers":[
|
||||||
|
{"$GMImageLayer":"","%Name":"6c3c616c-af55-430e-99da-29a0fd5aab17","blendMode":0,"displayName":"default","isLocked":false,"name":"6c3c616c-af55-430e-99da-29a0fd5aab17","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
||||||
|
],
|
||||||
|
"name":"s_node_canvas_group",
|
||||||
|
"nineSlice":null,
|
||||||
|
"origin":4,
|
||||||
|
"parent":{
|
||||||
|
"name":"IO",
|
||||||
|
"path":"folders/nodes/icons/IO.yy",
|
||||||
|
},
|
||||||
|
"preMultiplyAlpha":false,
|
||||||
|
"resourceType":"GMSprite",
|
||||||
|
"resourceVersion":"2.0",
|
||||||
|
"sequence":{
|
||||||
|
"$GMSequence":"",
|
||||||
|
"%Name":"s_node_canvas_group",
|
||||||
|
"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_canvas_group",
|
||||||
|
"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":"f9dbf063-7abe-47a2-bc35-983ff7f9e83e","path":"sprites/s_node_canvas_group/s_node_canvas_group.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||||
|
},"Disabled":false,"id":"0ff72cb6-ecd8-47ca-a671-b475834f3bdd","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,
|
||||||
|
}
|
Loading…
Reference in a new issue