[Group Input] Now copy some value type on first connection.
|
@ -160,14 +160,16 @@ event_inherited();
|
|||
|
||||
array_push(node_list, "Favourites");
|
||||
var _favs = struct_get_names(global.FAV_NODES);
|
||||
var _fvnd = [];
|
||||
for( var i = 0, n = array_length(_favs); i < n; i++ ) {
|
||||
var _nodeIndex = _favs[i];
|
||||
if(!struct_has(ALL_NODES, _nodeIndex)) continue;
|
||||
|
||||
var _node = ALL_NODES[$ _nodeIndex];
|
||||
if(_node.show_in_recent)
|
||||
array_push(node_list, _node);
|
||||
if(_node.show_in_recent) array_push(_fvnd, _node);
|
||||
}
|
||||
array_sort(_fvnd, function(v1, v2) /*=>*/ {return string_compare(v1.name, v2.name)});
|
||||
for( var i = 0, n = array_length(_fvnd); i < n; i++ ) array_push(node_list, _fvnd[i]);
|
||||
|
||||
array_push(node_list, "Recents");
|
||||
if(is_array(global.RECENT_NODES))
|
||||
|
|
|
@ -37,7 +37,7 @@ event_inherited();
|
|||
|
||||
#region content
|
||||
sc_group = new scrollPane(dialog_w - ui(padding + padding), dialog_h - ui(title_height + padding), function(_y, _m) {
|
||||
draw_clear_alpha(COLORS.panel_bg_clear, 0);
|
||||
draw_clear_alpha(COLORS.panel_bg_clear_inner, 1);
|
||||
if(node == noone) return 0;
|
||||
|
||||
var _h = 0;
|
||||
|
|
|
@ -22,7 +22,7 @@ event_inherited();
|
|||
|
||||
#region content
|
||||
sc_group = new scrollPane(dialog_w - ui(padding + padding), dialog_h - ui(title_height + padding), function(_y, _m) {
|
||||
draw_clear_alpha(COLORS.panel_bg_clear, 0);
|
||||
draw_clear_alpha(COLORS.panel_bg_clear_inner, 1);
|
||||
if(node == noone) return 0;
|
||||
|
||||
var _h = 0;
|
||||
|
|
|
@ -139,7 +139,6 @@ function __part(_node) : __particleObject() constructor {
|
|||
INLINE
|
||||
|
||||
surf = noone;
|
||||
|
||||
prevx = undefined;
|
||||
prevy = undefined;
|
||||
}
|
||||
|
@ -247,13 +246,13 @@ function __part(_node) : __particleObject() constructor {
|
|||
node.onPartDestroy(self);
|
||||
}
|
||||
|
||||
static step = function(frame = 0) {
|
||||
static step = function(_frame = 0) {
|
||||
INLINE
|
||||
trailLife++;
|
||||
|
||||
if(!active) return;
|
||||
x += speedx;
|
||||
self.frame = frame;
|
||||
frame = _frame;
|
||||
|
||||
random_set_seed(seed + life);
|
||||
|
||||
|
@ -361,10 +360,12 @@ function __part(_node) : __particleObject() constructor {
|
|||
case ANIM_END_ACTION.loop:
|
||||
ss = surf[safe_mod(ind, anim_len)];
|
||||
break;
|
||||
|
||||
case ANIM_END_ACTION.pingpong:
|
||||
var ping = safe_mod(ind, (anim_len - 1) * 2 + 1);
|
||||
ss = surf[ping >= anim_len? (anim_len - 1) * 2 - ping : ping];
|
||||
break;
|
||||
|
||||
case ANIM_END_ACTION.destroy:
|
||||
if(ind >= anim_len) {
|
||||
kill();
|
||||
|
@ -435,9 +436,8 @@ function __part(_node) : __particleObject() constructor {
|
|||
var _s = shader_current();
|
||||
shader_reset();
|
||||
|
||||
draw_set_color(cc);
|
||||
draw_set_alpha(alp_draw);
|
||||
dynaSurf_circle_fill(_xx, _yy, exact? round(ss) : ss);
|
||||
draw_set_color_alpha(cc, alp_draw);
|
||||
dynaSurf_circle_fill(round(_xx), round(_yy), exact? round(ss) : ss);
|
||||
draw_set_alpha(1);
|
||||
|
||||
shader_set(_s);
|
||||
|
|
|
@ -6,21 +6,65 @@ enum SHAPE_TYPE {
|
|||
rectangle
|
||||
}
|
||||
|
||||
function SHAPE_rectangle(_sca) {
|
||||
var triangles = [
|
||||
[ new __vec2(-_sca[0], -_sca[1]), new __vec2(-_sca[0], _sca[1]), new __vec2( _sca[0], -_sca[1]), c_white ],
|
||||
[ new __vec2( _sca[0], -_sca[1]), new __vec2(-_sca[0], _sca[1]), new __vec2( _sca[0], _sca[1]), c_white ],
|
||||
];
|
||||
var segment = [ new __vec2(-_sca[0], -_sca[1]), new __vec2( _sca[0], -_sca[1]),
|
||||
new __vec2( _sca[0], _sca[1]), new __vec2(-_sca[0], _sca[1]),
|
||||
new __vec2(-_sca[0], -_sca[1]) ];
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
return [
|
||||
[ { type: SHAPE_TYPE.rectangle, triangles: triangles } ],
|
||||
segment
|
||||
];
|
||||
function SHAPE_rectangle(_sca, data = {}) {
|
||||
var w = _sca[0], h = _sca[1];
|
||||
|
||||
var triangles = [ [ new __vec2(-w, -h), new __vec2(-w, h), new __vec2( w, -h), c_white ],
|
||||
[ new __vec2( w, -h), new __vec2(-w, h), new __vec2( w, h), c_white ], ];
|
||||
var segment = [ new __vec2(-w, -h), new __vec2(w, -h), new __vec2(w, h), new __vec2(-w, h), new __vec2(-w, -h) ];
|
||||
|
||||
return [ [ { type: SHAPE_TYPE.rectangle, triangles: triangles } ], segment ];
|
||||
}
|
||||
|
||||
function SHAPE_diamond(_sca, data = {}) {
|
||||
var w = _sca[0], h = _sca[1];
|
||||
|
||||
var triangles = [ [ new __vec2( 0, 0), new __vec2( w, 0), new __vec2( 0, -h), c_white ],
|
||||
[ new __vec2( 0, 0), new __vec2( 0, -h), new __vec2(-w, 0), c_white ],
|
||||
[ new __vec2( 0, 0), new __vec2(-w, 0), new __vec2( 0, h), c_white ],
|
||||
[ new __vec2( 0, 0), new __vec2( 0, h), new __vec2( w, 0), c_white ], ];
|
||||
var segment = [ new __vec2(w, 0), new __vec2(0, -h), new __vec2(-w, 0), new __vec2(0, h), new __vec2(w, 0) ];
|
||||
|
||||
return [ [ { type: SHAPE_TYPE.rectangle, triangles: triangles } ], segment ];
|
||||
}
|
||||
|
||||
function SHAPE_trapezoid(_sca, data = {}) {
|
||||
var w = _sca[0], h = _sca[1];
|
||||
var v = w * data.trep;
|
||||
|
||||
var triangles = [ [ new __vec2(-v, -h), new __vec2(-w, h), new __vec2( v, -h), c_white ],
|
||||
[ new __vec2( v, -h), new __vec2(-w, h), new __vec2( w, h), c_white ], ];
|
||||
var segment = [ new __vec2(-v, -h), new __vec2(v, -h), new __vec2(w, h), new __vec2(-w, h), new __vec2(-v, -h) ];
|
||||
|
||||
return [ [ { type: SHAPE_TYPE.rectangle, triangles: triangles } ], segment ];
|
||||
}
|
||||
|
||||
function SHAPE_parallelogram(_sca, data = {}) {
|
||||
var w = _sca[0], h = _sca[1];
|
||||
var a = data.palAng;
|
||||
|
||||
var x0 = -w, x1 = w;
|
||||
var x2 = -w, x3 = w;
|
||||
|
||||
if(a > 0) {
|
||||
x0 = lerp(w, -w, 1 - abs(a));
|
||||
x3 = lerp(-w, w, 1 - abs(a));
|
||||
} else {
|
||||
x2 = lerp(w, -w, 1 - abs(a));
|
||||
x1 = lerp(-w, w, 1 - abs(a));
|
||||
}
|
||||
|
||||
var triangles = [ [ new __vec2(x0, -h), new __vec2(x2, h), new __vec2(x1, -h), c_white ],
|
||||
[ new __vec2(x1, -h), new __vec2(x2, h), new __vec2(x3, h), c_white ], ];
|
||||
var segment = [ new __vec2(x0, -h), new __vec2(x1, -h), new __vec2(x3, h), new __vec2(x2, h), new __vec2(x0, -h) ];
|
||||
|
||||
return [ [ { type: SHAPE_TYPE.rectangle, triangles: triangles } ], segment ];
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function SHAPE_circle(_sca, data = {}) {
|
||||
var prec = max(3, data.side);
|
||||
var ang = 360 / prec;
|
||||
|
@ -47,238 +91,43 @@ function SHAPE_circle(_sca, data = {}) {
|
|||
segment[i + 1] = new __vec2(x1, y1);
|
||||
}
|
||||
|
||||
return [
|
||||
[{ type: SHAPE_TYPE.triangles, triangles: triangles }],
|
||||
segment
|
||||
];
|
||||
}
|
||||
|
||||
function SHAPE_star(_sca, data = {}) {
|
||||
var prec = max(3, data.side);
|
||||
var inner = data.inner;
|
||||
var triangles = [];
|
||||
var segment = [];
|
||||
|
||||
for( var i = 0; i < prec; i++ ) {
|
||||
var otx = lengthdir_x(0.5, i / prec * 360) * _sca[0] * 2;
|
||||
var oty = lengthdir_y(0.5, i / prec * 360) * _sca[1] * 2;
|
||||
|
||||
var inx = lengthdir_x(inner / 2, (i + 0.5) / prec * 360) * _sca[0] * 2;
|
||||
var iny = lengthdir_y(inner / 2, (i + 0.5) / prec * 360) * _sca[1] * 2;
|
||||
array_push(triangles, [ new __vec2(0, 0), new __vec2(otx, oty), new __vec2(inx, iny), c_white ]);
|
||||
|
||||
var pi0 = new __vec2(inx, iny);
|
||||
|
||||
var inx = lengthdir_x(inner / 2, (i - 0.5) / prec * 360) * _sca[0] * 2;
|
||||
var iny = lengthdir_y(inner / 2, (i - 0.5) / prec * 360) * _sca[1] * 2;
|
||||
array_push(triangles, [ new __vec2(0, 0), new __vec2(inx, iny), new __vec2(otx, oty), c_white ]);
|
||||
|
||||
array_push(segment, new __vec2(inx, iny));
|
||||
array_push(segment, new __vec2(otx, oty));
|
||||
array_push(segment, pi0);
|
||||
}
|
||||
|
||||
return [
|
||||
[{ type: SHAPE_TYPE.triangles, triangles: triangles }],
|
||||
segment
|
||||
];
|
||||
}
|
||||
|
||||
function SHAPE_capsule(_sca, data = {}) {
|
||||
var rad = data.radius;
|
||||
var prec = max(2, data.side);
|
||||
var hh = _sca[1] * rad;
|
||||
var shapes = [];
|
||||
var segment = [];
|
||||
array_push(segment, new __vec2(-_sca[0] + _sca[1], _sca[1]), new __vec2( _sca[0] - hh, hh));
|
||||
|
||||
var triangles = [
|
||||
[ new __vec2(-_sca[0] + _sca[1], -_sca[1]), new __vec2(-_sca[0] + _sca[1], _sca[1]), new __vec2(_sca[0] - hh, -hh), c_white ],
|
||||
[ new __vec2(_sca[0] - hh, -hh), new __vec2(-_sca[0] + _sca[1], _sca[1]), new __vec2(_sca[0] - hh, hh), c_white ],
|
||||
];
|
||||
shapes[0] = { type: SHAPE_TYPE.rectangle, triangles: triangles };
|
||||
|
||||
var triangles = [];
|
||||
var cx = -_sca[0] + _sca[1];
|
||||
var cy = 0;
|
||||
var ox, oy, nx, ny, oa, na;
|
||||
for( var i = 0; i <= prec; i++ ) {
|
||||
na = lerp(270, 90, i / prec);
|
||||
nx = cx + lengthdir_x(_sca[1], na);
|
||||
ny = cy + lengthdir_y(_sca[1], na);
|
||||
|
||||
if(i) {
|
||||
array_push(triangles, [ new __vec2(cx, cy), new __vec2(nx, ny), new __vec2(ox, oy), c_white ]);
|
||||
array_push(segment, new __vec2(ox, oy));
|
||||
}
|
||||
array_push(segment, new __vec2(nx, ny));
|
||||
|
||||
oa = na;
|
||||
ox = nx;
|
||||
oy = ny;
|
||||
}
|
||||
|
||||
array_push(segment, new __vec2(-_sca[0] + _sca[1], -_sca[1]), new __vec2( _sca[0] - hh, -hh));
|
||||
shapes[1] = { type: SHAPE_TYPE.triangles, triangles: triangles };
|
||||
|
||||
var triangles = [];
|
||||
var cx = _sca[0] - hh;
|
||||
var cy = 0;
|
||||
var ox, oy, nx, ny, oa, na;
|
||||
var _seg = [];
|
||||
for( var i = 0; i <= prec; i++ ) {
|
||||
na = lerp(-90, 90, i / prec);
|
||||
nx = cx + lengthdir_x(hh, na);
|
||||
ny = cy + lengthdir_y(hh, na);
|
||||
|
||||
if(i) {
|
||||
array_push(triangles, [ new __vec2(cx, cy), new __vec2(ox, oy), new __vec2(nx, ny), c_white ]);
|
||||
array_push(_seg, new __vec2(ox, oy));
|
||||
}
|
||||
array_push(_seg, new __vec2(nx, ny));
|
||||
|
||||
oa = na;
|
||||
ox = nx;
|
||||
oy = ny;
|
||||
}
|
||||
|
||||
for( var i = 0, n = array_length(_seg); i < n; i++ )
|
||||
array_push(segment, _seg[array_length(_seg) - i - 1]);
|
||||
|
||||
shapes[2] = { type: SHAPE_TYPE.triangles, triangles: triangles };
|
||||
|
||||
return [
|
||||
shapes,
|
||||
segment
|
||||
];
|
||||
return [ [{ type: SHAPE_TYPE.triangles, triangles: triangles }], segment ];
|
||||
}
|
||||
|
||||
function SHAPE_ring(_sca, data = {}) {
|
||||
var prec = max(3, data.side);
|
||||
var inner = data.inner;
|
||||
var w = _sca[0], h = _sca[1];
|
||||
var s = max(3, data.side);
|
||||
var ow = w;
|
||||
var oh = h;
|
||||
var iw = w * data.inner;
|
||||
var ih = h * data.inner;
|
||||
var an = 360 / s;
|
||||
|
||||
var triangles = [];
|
||||
var segment = [];
|
||||
|
||||
for( var i = 0; i < prec; i++ ) {
|
||||
var ix0 = lengthdir_x(0.5 * inner, i / prec * 360) * _sca[0] * 2;
|
||||
var iy0 = lengthdir_y(0.5 * inner, i / prec * 360) * _sca[1] * 2;
|
||||
for( var i = 0; i < s; i++ ) {
|
||||
var a0 = i * an;
|
||||
var a1 = a0 + an;
|
||||
|
||||
var nx0 = lengthdir_x(0.5, i / prec * 360) * _sca[0] * 2;
|
||||
var ny0 = lengthdir_y(0.5, i / prec * 360) * _sca[1] * 2;
|
||||
var ix0 = lengthdir_x(iw, a0);
|
||||
var iy0 = lengthdir_y(ih, a0);
|
||||
var ix1 = lengthdir_x(iw, a1);
|
||||
var iy1 = lengthdir_y(ih, a1);
|
||||
|
||||
var ix1 = lengthdir_x(0.5 * inner, (i + 1) / prec * 360) * _sca[0] * 2;
|
||||
var iy1 = lengthdir_y(0.5 * inner, (i + 1) / prec * 360) * _sca[1] * 2;
|
||||
var ox0 = lengthdir_x(ow, a0);
|
||||
var oy0 = lengthdir_y(oh, a0);
|
||||
var ox1 = lengthdir_x(ow, a1);
|
||||
var oy1 = lengthdir_y(oh, a1);
|
||||
|
||||
var nx1 = lengthdir_x(0.5, (i + 1) / prec * 360) * _sca[0] * 2;
|
||||
var ny1 = lengthdir_y(0.5, (i + 1) / prec * 360) * _sca[1] * 2;
|
||||
array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(ox0, oy0), new __vec2(ox1, oy1), c_white ]);
|
||||
array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(ox1, oy1), new __vec2(ix1, iy1), c_white ]);
|
||||
|
||||
array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(nx0, ny0), new __vec2(nx1, ny1), c_white ]);
|
||||
array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(nx1, ny1), new __vec2(ix1, iy1), c_white ]);
|
||||
|
||||
if(i == 0)
|
||||
array_push(segment, new __vec2(nx0, ny0));
|
||||
array_push(segment, new __vec2(nx1, ny1));
|
||||
if(i == 0) array_push(segment, new __vec2(ox0, oy0));
|
||||
array_push(segment, new __vec2(ox1, oy1));
|
||||
}
|
||||
|
||||
return [
|
||||
[{ type: SHAPE_TYPE.rectangle, triangles: triangles }],
|
||||
segment
|
||||
];
|
||||
}
|
||||
|
||||
function SHAPE_gear(_sca, data = {}) {
|
||||
var teeth = max(3, data.teeth);
|
||||
var teethH = data.teethH;
|
||||
var teethT = data.teethT;
|
||||
var prec = teeth * 2;
|
||||
var inner = data.inner;
|
||||
var body = 0.5 * (1 - teethH);
|
||||
var teth = 0.5 * teethH;
|
||||
var triangles = [];
|
||||
var segment = [];
|
||||
|
||||
for( var i = 0; i < prec; i++ ) {
|
||||
var ix0 = lengthdir_x(body * inner, i / prec * 360) * _sca[0] * 2;
|
||||
var iy0 = lengthdir_y(body * inner, i / prec * 360) * _sca[1] * 2;
|
||||
|
||||
var nx0 = lengthdir_x(body, i / prec * 360) * _sca[0] * 2;
|
||||
var ny0 = lengthdir_y(body, i / prec * 360) * _sca[1] * 2;
|
||||
|
||||
var ix1 = lengthdir_x(body * inner, (i + 1) / prec * 360) * _sca[0] * 2;
|
||||
var iy1 = lengthdir_y(body * inner, (i + 1) / prec * 360) * _sca[1] * 2;
|
||||
|
||||
var nx1 = lengthdir_x(body, (i + 1) / prec * 360) * _sca[0] * 2;
|
||||
var ny1 = lengthdir_y(body, (i + 1) / prec * 360) * _sca[1] * 2;
|
||||
|
||||
array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(nx0, ny0), new __vec2(nx1, ny1), c_white ]);
|
||||
array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(nx1, ny1), new __vec2(ix1, iy1), c_white ]);
|
||||
|
||||
if(i == 0)
|
||||
array_push(segment, new __vec2(nx0, ny0));
|
||||
|
||||
if(i % 2) {
|
||||
var tx0 = nx0 + lengthdir_x(teth, (i + 0.5 - teethT) / prec * 360) * _sca[0] * 2;
|
||||
var ty0 = ny0 + lengthdir_y(teth, (i + 0.5 - teethT) / prec * 360) * _sca[1] * 2;
|
||||
|
||||
var tx1 = nx1 + lengthdir_x(teth, (i + 0.5 + teethT) / prec * 360) * _sca[0] * 2;
|
||||
var ty1 = ny1 + lengthdir_y(teth, (i + 0.5 + teethT) / prec * 360) * _sca[1] * 2;
|
||||
|
||||
array_push(triangles, [ new __vec2(tx0, ty0), new __vec2(nx1, ny1), new __vec2(nx0, ny0), c_white ]);
|
||||
array_push(triangles, [ new __vec2(tx0, ty0), new __vec2(tx1, ty1), new __vec2(nx1, ny1), c_white ]);
|
||||
|
||||
array_push(segment, new __vec2(tx0, ty0));
|
||||
array_push(segment, new __vec2(tx1, ty1));
|
||||
}
|
||||
|
||||
array_push(segment, new __vec2(nx1, ny1));
|
||||
}
|
||||
|
||||
return [
|
||||
[{ type: SHAPE_TYPE.rectangle, triangles: triangles }],
|
||||
segment
|
||||
];
|
||||
}
|
||||
|
||||
function SHAPE_cross(_sca, data = {}) {
|
||||
var inner = data.inner;
|
||||
var triangles = [];
|
||||
var segment = [];
|
||||
var side = min(_sca[0], _sca[1]) * inner;
|
||||
|
||||
array_push(triangles,
|
||||
[ new __vec2(-side, -side), new __vec2(-side, side), new __vec2( side, -side), c_white ],
|
||||
[ new __vec2( side, -side), new __vec2(-side, side), new __vec2( side, side), c_white ],
|
||||
);
|
||||
|
||||
array_push(triangles, //top
|
||||
[ new __vec2(-side, -side), new __vec2( side, -side), new __vec2(-side, -_sca[1]), c_white ],
|
||||
[ new __vec2( side, -side), new __vec2( side, -_sca[1]), new __vec2(-side, -_sca[1]), c_white ],
|
||||
);
|
||||
|
||||
array_push(triangles, //bottom
|
||||
[ new __vec2(-side, _sca[1]), new __vec2( side, _sca[1]), new __vec2(-side, side), c_white ],
|
||||
[ new __vec2( side, _sca[1]), new __vec2( side, side), new __vec2(-side, side), c_white ],
|
||||
);
|
||||
|
||||
array_push(triangles, //left
|
||||
[ new __vec2( -side, -side), new __vec2(-_sca[0], -side), new __vec2(-side, side), c_white ],
|
||||
[ new __vec2(-_sca[0], -side), new __vec2(-_sca[0], side), new __vec2(-side, side), c_white ],
|
||||
);
|
||||
|
||||
array_push(triangles, //right
|
||||
[ new __vec2(_sca[0], -side), new __vec2( side, -side), new __vec2(_sca[0], side), c_white ],
|
||||
[ new __vec2( side, -side), new __vec2( side, side), new __vec2(_sca[0], side), c_white ],
|
||||
);
|
||||
|
||||
array_push(segment, new __vec2(-side, -side), new __vec2(-side, -_sca[1]), new __vec2( side, -_sca[1]), new __vec2(side, -side) );
|
||||
array_push(segment, new __vec2( _sca[0], -side), new __vec2( _sca[0], side), new __vec2( side, side));
|
||||
array_push(segment, new __vec2( side, _sca[1]), new __vec2(-side, _sca[1]), new __vec2(-side, side));
|
||||
array_push(segment, new __vec2(-_sca[0], side), new __vec2(-_sca[0], -side), new __vec2(-side, -side));
|
||||
|
||||
return [
|
||||
[{ type: SHAPE_TYPE.rectangle, triangles: triangles }],
|
||||
segment
|
||||
];
|
||||
return [ [{ type: SHAPE_TYPE.rectangle, triangles: triangles }], segment ];
|
||||
}
|
||||
|
||||
function SHAPE_arc(_sca, data = {}) {
|
||||
|
@ -368,8 +217,351 @@ function SHAPE_arc(_sca, data = {}) {
|
|||
array_push(segment, sgArcI[0].clone());
|
||||
}
|
||||
|
||||
return [
|
||||
[{ type: SHAPE_TYPE.rectangle, triangles: triangles }],
|
||||
segment
|
||||
];
|
||||
return [ [{ type: SHAPE_TYPE.rectangle, triangles: triangles }], segment ];
|
||||
}
|
||||
|
||||
function SHAPE_crescent(_sca, data = {}) {
|
||||
var w = _sca[0], h = _sca[1];
|
||||
var s = max(3, data.side);
|
||||
var ow = w;
|
||||
var oh = h;
|
||||
var iw = w * data.inner;
|
||||
var ih = h * data.inner;
|
||||
var an = 360 / s;
|
||||
|
||||
var cx = w - w * data.inner;
|
||||
var cy = 0;
|
||||
|
||||
var triangles = [];
|
||||
var segment = [];
|
||||
|
||||
for( var i = 0; i < s; i++ ) {
|
||||
var a0 = i * an;
|
||||
var a1 = a0 + an;
|
||||
|
||||
var ox0 = lengthdir_x(ow, a0);
|
||||
var oy0 = lengthdir_y(oh, a0);
|
||||
var ox1 = lengthdir_x(ow, a1);
|
||||
var oy1 = lengthdir_y(oh, a1);
|
||||
|
||||
var ix0 = cx + lengthdir_x(iw, a0);
|
||||
var iy0 = cy + lengthdir_y(ih, a0);
|
||||
var ix1 = cx + lengthdir_x(iw, a1);
|
||||
var iy1 = cy + lengthdir_y(ih, a1);
|
||||
|
||||
if(triangle_area_points(ix0, iy0, ox0, oy0, ox1, oy1) > 0.1) array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(ox0, oy0), new __vec2(ox1, oy1), c_white ]);
|
||||
if(triangle_area_points(ix0, iy0, ox1, oy1, ix1, iy1) > 0.1) array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(ox1, oy1), new __vec2(ix1, iy1), c_white ]);
|
||||
|
||||
if(array_empty(segment)) array_push(segment, new __vec2(ox0, oy0)); array_push(segment, new __vec2(ox1, oy1));
|
||||
}
|
||||
|
||||
return [ [{ type: SHAPE_TYPE.triangles, triangles: triangles }], segment ];
|
||||
}
|
||||
|
||||
function SHAPE_pie(_sca, data = {}) {
|
||||
var w = _sca[0], h = _sca[1];
|
||||
var p = max(3, data.side);
|
||||
var a = 1 / p;
|
||||
var r = data.radRan;
|
||||
|
||||
var triangles = array_create(p);
|
||||
var segment = array_create(p + 1);
|
||||
|
||||
for( var i = 0; i < p; i++ ) {
|
||||
var d0 = lerp(r[0], r[1], i * a);
|
||||
var d1 = lerp(r[0], r[1], i * a + a);
|
||||
|
||||
var x0 = lengthdir_x(w, d0);
|
||||
var y0 = lengthdir_y(h, d0);
|
||||
var x1 = lengthdir_x(w, d1);
|
||||
var y1 = lengthdir_y(h, d1);
|
||||
|
||||
triangles[i] = [ new __vec2(0, 0), new __vec2(x0, y0), new __vec2(x1, y1), c_white ];
|
||||
|
||||
if(i == 0) segment[0] = new __vec2(x0, y0);
|
||||
segment[i+1] = new __vec2(x1, y1);
|
||||
}
|
||||
|
||||
return [ [{ type: SHAPE_TYPE.triangles, triangles: triangles }], segment ];
|
||||
}
|
||||
|
||||
function SHAPE_squircle(_sca, data = {}) {
|
||||
var w = _sca[0], h = _sca[1];
|
||||
var s = max(3, data.side);
|
||||
var a = 360 / s;
|
||||
var f = max(.001, data.factor);
|
||||
var triangles = [];
|
||||
var segment = [];
|
||||
|
||||
var ox, oy, nx, ny;
|
||||
var s2 = sqrt(2);
|
||||
|
||||
for( var i = 0; i <= s; i++ ) {
|
||||
var d = i * a;
|
||||
var r = 1 / power(power(abs(dcos(d)), f) + power(abs(dsin(d)), f), 1 / f);
|
||||
|
||||
var nx = lengthdir_x(r * w, d);
|
||||
var ny = lengthdir_y(r * h, d);
|
||||
|
||||
if(i) array_push(triangles, [ new __vec2(0, 0), new __vec2(ox, oy), new __vec2(nx, ny), c_white ]);
|
||||
array_push(segment, new __vec2(nx, ny));
|
||||
|
||||
ox = nx;
|
||||
oy = ny;
|
||||
}
|
||||
|
||||
segment[s] = segment[0].clone();
|
||||
|
||||
return [ [{ type: SHAPE_TYPE.triangles, triangles: triangles }], segment ];
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function SHAPE_reg_poly(_sca, data = {}) {
|
||||
var w = _sca[0], h = _sca[1];
|
||||
var p = max(3, data.side);
|
||||
var a = 360 / p;
|
||||
|
||||
var triangles = array_create(p);
|
||||
var segment = array_create(p + 1);
|
||||
|
||||
for( var i = 0; i < p; i++ ) {
|
||||
var d0 = i * a;
|
||||
var d1 = d0 + a;
|
||||
|
||||
var x0 = lengthdir_x(w, d0);
|
||||
var y0 = lengthdir_y(h, d0);
|
||||
var x1 = lengthdir_x(w, d1);
|
||||
var y1 = lengthdir_y(h, d1);
|
||||
|
||||
triangles[i] = [ new __vec2(0, 0), new __vec2(x0, y0), new __vec2(x1, y1), c_white ];
|
||||
|
||||
if(i == 0) segment[0] = new __vec2(x0, y0);
|
||||
segment[i+1] = new __vec2(x1, y1);
|
||||
}
|
||||
|
||||
return [ [{ type: SHAPE_TYPE.triangles, triangles: triangles }], segment ];
|
||||
}
|
||||
|
||||
function SHAPE_star(_sca, data = {}) {
|
||||
var prec = max(3, data.side);
|
||||
var inner = data.inner;
|
||||
var triangles = [];
|
||||
var segment = [];
|
||||
|
||||
for( var i = 0; i < prec; i++ ) {
|
||||
var otx = lengthdir_x(0.5, i / prec * 360) * _sca[0] * 2;
|
||||
var oty = lengthdir_y(0.5, i / prec * 360) * _sca[1] * 2;
|
||||
|
||||
var inx = lengthdir_x(inner / 2, (i + 0.5) / prec * 360) * _sca[0] * 2;
|
||||
var iny = lengthdir_y(inner / 2, (i + 0.5) / prec * 360) * _sca[1] * 2;
|
||||
array_push(triangles, [ new __vec2(0, 0), new __vec2(otx, oty), new __vec2(inx, iny), c_white ]);
|
||||
|
||||
var pi0 = new __vec2(inx, iny);
|
||||
|
||||
var inx = lengthdir_x(inner / 2, (i - 0.5) / prec * 360) * _sca[0] * 2;
|
||||
var iny = lengthdir_y(inner / 2, (i - 0.5) / prec * 360) * _sca[1] * 2;
|
||||
array_push(triangles, [ new __vec2(0, 0), new __vec2(inx, iny), new __vec2(otx, oty), c_white ]);
|
||||
|
||||
array_push(segment, new __vec2(inx, iny));
|
||||
array_push(segment, new __vec2(otx, oty));
|
||||
array_push(segment, pi0);
|
||||
}
|
||||
|
||||
return [ [{ type: SHAPE_TYPE.triangles, triangles: triangles }], segment ];
|
||||
}
|
||||
|
||||
function SHAPE_cross(_sca, data = {}) {
|
||||
var inner = data.inner;
|
||||
var triangles = [];
|
||||
var segment = [];
|
||||
var side = min(_sca[0], _sca[1]) * inner;
|
||||
|
||||
array_push(triangles,
|
||||
[ new __vec2(-side, -side), new __vec2(-side, side), new __vec2( side, -side), c_white ],
|
||||
[ new __vec2( side, -side), new __vec2(-side, side), new __vec2( side, side), c_white ],
|
||||
);
|
||||
|
||||
array_push(triangles, //top
|
||||
[ new __vec2(-side, -side), new __vec2( side, -side), new __vec2(-side, -_sca[1]), c_white ],
|
||||
[ new __vec2( side, -side), new __vec2( side, -_sca[1]), new __vec2(-side, -_sca[1]), c_white ],
|
||||
);
|
||||
|
||||
array_push(triangles, //bottom
|
||||
[ new __vec2(-side, _sca[1]), new __vec2( side, _sca[1]), new __vec2(-side, side), c_white ],
|
||||
[ new __vec2( side, _sca[1]), new __vec2( side, side), new __vec2(-side, side), c_white ],
|
||||
);
|
||||
|
||||
array_push(triangles, //left
|
||||
[ new __vec2( -side, -side), new __vec2(-_sca[0], -side), new __vec2(-side, side), c_white ],
|
||||
[ new __vec2(-_sca[0], -side), new __vec2(-_sca[0], side), new __vec2(-side, side), c_white ],
|
||||
);
|
||||
|
||||
array_push(triangles, //right
|
||||
[ new __vec2(_sca[0], -side), new __vec2( side, -side), new __vec2(_sca[0], side), c_white ],
|
||||
[ new __vec2( side, -side), new __vec2( side, side), new __vec2(_sca[0], side), c_white ],
|
||||
);
|
||||
|
||||
array_push(segment, new __vec2(-side, -side), new __vec2(-side, -_sca[1]), new __vec2( side, -_sca[1]), new __vec2(side, -side) );
|
||||
array_push(segment, new __vec2( _sca[0], -side), new __vec2( _sca[0], side), new __vec2( side, side));
|
||||
array_push(segment, new __vec2( side, _sca[1]), new __vec2(-side, _sca[1]), new __vec2(-side, side));
|
||||
array_push(segment, new __vec2(-_sca[0], side), new __vec2(-_sca[0], -side), new __vec2(-side, -side));
|
||||
|
||||
return [ [{ type: SHAPE_TYPE.rectangle, triangles: triangles }], segment ];
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function SHAPE_capsule(_sca, data = {}) {
|
||||
var rad = data.radius;
|
||||
var prec = max(2, data.side);
|
||||
var hh = _sca[1] * rad;
|
||||
var shapes = [];
|
||||
var segment = [];
|
||||
array_push(segment, new __vec2(-_sca[0] + _sca[1], _sca[1]), new __vec2( _sca[0] - hh, hh));
|
||||
|
||||
var triangles = [
|
||||
[ new __vec2(-_sca[0] + _sca[1], -_sca[1]), new __vec2(-_sca[0] + _sca[1], _sca[1]), new __vec2(_sca[0] - hh, -hh), c_white ],
|
||||
[ new __vec2(_sca[0] - hh, -hh), new __vec2(-_sca[0] + _sca[1], _sca[1]), new __vec2(_sca[0] - hh, hh), c_white ],
|
||||
];
|
||||
shapes[0] = { type: SHAPE_TYPE.rectangle, triangles: triangles };
|
||||
|
||||
var triangles = [];
|
||||
var cx = -_sca[0] + _sca[1];
|
||||
var cy = 0;
|
||||
var ox, oy, nx, ny, oa, na;
|
||||
for( var i = 0; i <= prec; i++ ) {
|
||||
na = lerp(270, 90, i / prec);
|
||||
nx = cx + lengthdir_x(_sca[1], na);
|
||||
ny = cy + lengthdir_y(_sca[1], na);
|
||||
|
||||
if(i) {
|
||||
array_push(triangles, [ new __vec2(cx, cy), new __vec2(nx, ny), new __vec2(ox, oy), c_white ]);
|
||||
array_push(segment, new __vec2(ox, oy));
|
||||
}
|
||||
array_push(segment, new __vec2(nx, ny));
|
||||
|
||||
oa = na;
|
||||
ox = nx;
|
||||
oy = ny;
|
||||
}
|
||||
|
||||
array_push(segment, new __vec2(-_sca[0] + _sca[1], -_sca[1]), new __vec2( _sca[0] - hh, -hh));
|
||||
shapes[1] = { type: SHAPE_TYPE.triangles, triangles: triangles };
|
||||
|
||||
var triangles = [];
|
||||
var cx = _sca[0] - hh;
|
||||
var cy = 0;
|
||||
var _seg = [];
|
||||
var ox, oy, nx, ny, oa, na;
|
||||
for( var i = 0; i <= prec; i++ ) {
|
||||
na = lerp(-90, 90, i / prec);
|
||||
nx = cx + lengthdir_x(hh, na);
|
||||
ny = cy + lengthdir_y(hh, na);
|
||||
|
||||
if(i) {
|
||||
array_push(triangles, [ new __vec2(cx, cy), new __vec2(ox, oy), new __vec2(nx, ny), c_white ]);
|
||||
array_push(_seg, new __vec2(ox, oy));
|
||||
}
|
||||
array_push(_seg, new __vec2(nx, ny));
|
||||
|
||||
oa = na;
|
||||
ox = nx;
|
||||
oy = ny;
|
||||
}
|
||||
|
||||
for( var i = 0, n = array_length(_seg); i < n; i++ )
|
||||
array_push(segment, _seg[array_length(_seg) - i - 1]);
|
||||
|
||||
shapes[2] = { type: SHAPE_TYPE.triangles, triangles: triangles };
|
||||
|
||||
return [ shapes, segment ];
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function SHAPE_leaf(_sca, data = {}) {
|
||||
var w = _sca[0], h = _sca[1];
|
||||
var p = max(3, data.side);
|
||||
var a = 180 / (p - 1);
|
||||
|
||||
var triangles = [];
|
||||
var s0 = [], s1 = [];
|
||||
|
||||
var _oy, _ox0, _ox1;
|
||||
|
||||
for( var i = 0; i < p; i++ ) {
|
||||
var d = lerp(-60, 60, i / (p - 1));
|
||||
|
||||
var _ny = lengthdir_y(h, d) / dsin(60);
|
||||
var _nx0 = -w + lengthdir_x(w * 2, d);
|
||||
var _nx1 = w - lengthdir_x(w * 2, d);
|
||||
|
||||
if(i) {
|
||||
array_push(triangles, [ new __vec2(_nx0, _ny), new __vec2(_nx1, _ny), new __vec2(_ox0, _oy), c_white ]);
|
||||
array_push(triangles, [ new __vec2(_ox0, _oy), new __vec2(_nx1, _ny), new __vec2(_ox1, _oy), c_white ]);
|
||||
|
||||
if(array_empty(s0)) array_push(s0, new __vec2(_ox0, _oy)); array_push(s0, new __vec2(_nx0, _ny));
|
||||
if(array_empty(s1)) array_push(s1, new __vec2(_ox1, _oy)); array_push(s1, new __vec2(_nx1, _ny));
|
||||
}
|
||||
|
||||
_oy = _ny;
|
||||
_ox0 = _nx0;
|
||||
_ox1 = _nx1;
|
||||
}
|
||||
|
||||
array_reverse_ext(s1);
|
||||
var segment = array_merge(s0, s1);
|
||||
|
||||
return [ [{ type: SHAPE_TYPE.rectangle, triangles: triangles }], segment ];
|
||||
}
|
||||
|
||||
function SHAPE_gear(_sca, data = {}) {
|
||||
var teeth = max(3, data.teeth);
|
||||
var teethH = data.teethH;
|
||||
var teethT = data.teethT;
|
||||
var prec = teeth * 2;
|
||||
var inner = data.inner;
|
||||
var body = 0.5 * (1 - teethH);
|
||||
var teth = 0.5 * teethH;
|
||||
var triangles = [];
|
||||
var segment = [];
|
||||
|
||||
for( var i = 0; i < prec; i++ ) {
|
||||
var ix0 = lengthdir_x(body * inner, i / prec * 360) * _sca[0] * 2;
|
||||
var iy0 = lengthdir_y(body * inner, i / prec * 360) * _sca[1] * 2;
|
||||
|
||||
var nx0 = lengthdir_x(body, i / prec * 360) * _sca[0] * 2;
|
||||
var ny0 = lengthdir_y(body, i / prec * 360) * _sca[1] * 2;
|
||||
|
||||
var ix1 = lengthdir_x(body * inner, (i + 1) / prec * 360) * _sca[0] * 2;
|
||||
var iy1 = lengthdir_y(body * inner, (i + 1) / prec * 360) * _sca[1] * 2;
|
||||
|
||||
var nx1 = lengthdir_x(body, (i + 1) / prec * 360) * _sca[0] * 2;
|
||||
var ny1 = lengthdir_y(body, (i + 1) / prec * 360) * _sca[1] * 2;
|
||||
|
||||
array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(nx0, ny0), new __vec2(nx1, ny1), c_white ]);
|
||||
array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(nx1, ny1), new __vec2(ix1, iy1), c_white ]);
|
||||
|
||||
if(i == 0)
|
||||
array_push(segment, new __vec2(nx0, ny0));
|
||||
|
||||
if(i % 2) {
|
||||
var tx0 = nx0 + lengthdir_x(teth, (i + 0.5 - teethT) / prec * 360) * _sca[0] * 2;
|
||||
var ty0 = ny0 + lengthdir_y(teth, (i + 0.5 - teethT) / prec * 360) * _sca[1] * 2;
|
||||
|
||||
var tx1 = nx1 + lengthdir_x(teth, (i + 0.5 + teethT) / prec * 360) * _sca[0] * 2;
|
||||
var ty1 = ny1 + lengthdir_y(teth, (i + 0.5 + teethT) / prec * 360) * _sca[1] * 2;
|
||||
|
||||
array_push(triangles, [ new __vec2(tx0, ty0), new __vec2(nx1, ny1), new __vec2(nx0, ny0), c_white ]);
|
||||
array_push(triangles, [ new __vec2(tx0, ty0), new __vec2(tx1, ty1), new __vec2(nx1, ny1), c_white ]);
|
||||
|
||||
array_push(segment, new __vec2(tx0, ty0));
|
||||
array_push(segment, new __vec2(tx1, ty1));
|
||||
}
|
||||
|
||||
array_push(segment, new __vec2(nx1, ny1));
|
||||
}
|
||||
|
||||
return [ [{ type: SHAPE_TYPE.rectangle, triangles: triangles }], segment ];
|
||||
}
|
||||
|
|
|
@ -135,18 +135,17 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
|
|||
];
|
||||
|
||||
attributes.part_amount = 512;
|
||||
array_push(attributeEditors, ["Maximum particles", function() { return attributes.part_amount; },
|
||||
new textBox(TEXTBOX_INPUT.number, function(val) { attributes.part_amount = val; }) ]);
|
||||
array_push(attributeEditors, [ "Maximum particles", function() /*=>*/ {return attributes.part_amount}, new textBox(TEXTBOX_INPUT.number, function(v) /*=>*/ { attributes.part_amount = v; }) ]);
|
||||
|
||||
parts = array_create(attributes.part_amount);
|
||||
parts_runner = 0;
|
||||
for( var i = 0; i < attributes.part_amount; i++ ) parts[i] = new __part(self);
|
||||
|
||||
parts_runner = 0;
|
||||
seed = 0;
|
||||
spawn_index_raw = 0;
|
||||
spawn_index = 0;
|
||||
scatter_index = 0;
|
||||
def_surface = -1;
|
||||
|
||||
surface_cache = {};
|
||||
|
||||
wiggle_maps = {
|
||||
|
@ -162,9 +161,6 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
|
|||
curve_alpha = noone;
|
||||
curve_path_div = noone;
|
||||
|
||||
for( var i = 0; i < attributes.part_amount; i++ )
|
||||
parts[i] = new __part(self);
|
||||
|
||||
static spawn = function(_time = CURRENT_FRAME, _pos = -1) {
|
||||
var _inSurf = getInputData( 0);
|
||||
|
||||
|
|
|
@ -7,8 +7,7 @@ function __initCollection() {
|
|||
var root = DIRECTORY + "Collections"; directory_verify(root);
|
||||
var rootz = DIRECTORY + "Collections_cache"; directory_verify(rootz);
|
||||
|
||||
if(check_version($"{root}/version"))
|
||||
zip_unzip("data/Collections.zip", root);
|
||||
// if(check_version($"{root}/version")) zip_unzip("data/Collections.zip", root);
|
||||
|
||||
COLLECTIONS = new DirectoryObject(DIRECTORY + "Collections");
|
||||
refreshCollections();
|
||||
|
@ -35,7 +34,6 @@ function searchCollection(_list, _search_str, _toList = true) {
|
|||
var _st = ds_stack_pop(st);
|
||||
for( var i = 0; i < ds_list_size(_st.content); i++ ) {
|
||||
var _nd = _st.content[| i];
|
||||
|
||||
var match = string_partial_match(string_lower(_nd.name), search_lower);
|
||||
if(match == -9999) continue;
|
||||
|
||||
|
|
|
@ -4,12 +4,14 @@ function dynaSurf_circle_fill(_x, _y, ss) {
|
|||
case 1 :
|
||||
draw_point( _x, _y );
|
||||
break;
|
||||
|
||||
case 2 :
|
||||
draw_point( _x + 0, _y + 0 );
|
||||
draw_point( _x + 1, _y + 0 );
|
||||
draw_point( _x + 0, _y + 1 );
|
||||
draw_point( _x + 1, _y + 1 );
|
||||
break;
|
||||
|
||||
case 3 :
|
||||
draw_point( _x, _y );
|
||||
draw_point( _x - 1, _y );
|
||||
|
@ -17,6 +19,7 @@ function dynaSurf_circle_fill(_x, _y, ss) {
|
|||
draw_point( _x, _y + 1 );
|
||||
draw_point( _x, _y - 1 );
|
||||
break;
|
||||
|
||||
default :
|
||||
draw_circle(_x, _y, ss - 2, false);
|
||||
break;
|
||||
|
|
|
@ -42,8 +42,8 @@
|
|||
|
||||
LATEST_VERSION = 1_18_00_0;
|
||||
VERSION = 1_18_08_0;
|
||||
SAVE_VERSION = 1_18_05_0;
|
||||
VERSION_STRING = MAC? "1.18.003m" : "1.18.8.1.002";
|
||||
SAVE_VERSION = 1_18_09_0;
|
||||
VERSION_STRING = MAC? "1.18.003m" : "1.18.9.001";
|
||||
BUILD_NUMBER = 118080.002;
|
||||
PREF_VERSION = 1_17_1;
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
function value_map(_val, _omin, _omax, _nmin, _nmax) {
|
||||
if(_omax == _omin) return _nmin;
|
||||
|
||||
return _nmin + (_val - _omin) / (_omax - _omin) * (_nmax - _nmin);
|
||||
}
|
||||
|
||||
function triangle_area_points(x0, y0, x1, y1, x2, y2) { return abs(x0 * (y1 - y2) + x1 * (y2 - y0) + x2 * (y0 - y1)) / 2; }
|
|
@ -24,7 +24,7 @@ function Node_3D_Mesh_Extrude_Mesh(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y
|
|||
__d3d_input_list_mesh,
|
||||
__d3d_input_list_transform,
|
||||
["Mesh", false], in_mesh + 0, in_mesh + 1, in_mesh + 2,
|
||||
["Render", false], in_mesh + 3, in_mesh + 4, in_mesh + 5, in_mesh + 6,
|
||||
["Render", false], in_mesh + 4, in_mesh + 5, in_mesh + 6,
|
||||
]
|
||||
|
||||
temp_surface = [ noone, noone ];
|
||||
|
|
|
@ -64,7 +64,7 @@ function Node_Array_Pin(_x, _y, _group = noone) : Node(_x, _y, _group) construct
|
|||
}
|
||||
|
||||
static drawBadge = function(_x, _y, _s) {}
|
||||
static drawJunctionNames = function(_x, _y, _mx, _my, _s) {}
|
||||
static drawJunctionNames = function(_x, _y, _mx, _my, _s, _panel = noone) {}
|
||||
|
||||
static drawJunctions = function(_draw, _x, _y, _mx, _my, _s) {
|
||||
var _dval = PANEL_GRAPH.value_dragging;
|
||||
|
|
|
@ -709,7 +709,7 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
var _input = getInputJunctionIndex(i);
|
||||
if(_input == noone) continue;
|
||||
|
||||
var _inp = inputs[_input];
|
||||
var _inp = array_safe_get(inputs, _input);
|
||||
if(!is_struct(_inp) || !is_instanceof(_inp, NodeValue)) continue;
|
||||
|
||||
_inp.visible_in_list = true;
|
||||
|
@ -1670,7 +1670,7 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
draw_set_alpha(1);
|
||||
}
|
||||
|
||||
static drawJunctionWidget = function(_x, _y, _mx, _my, _s, _hover, _focus) {
|
||||
static drawJunctionWidget = function(_x, _y, _mx, _my, _s, _hover, _focus, display_parameter = noone, _panel = noone) {
|
||||
|
||||
var hover = noone;
|
||||
|
||||
|
@ -1685,8 +1685,8 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
|
||||
var jy = _y + con_h * _s + wh / 2;
|
||||
|
||||
var rx = PANEL_GRAPH.x;
|
||||
var ry = PANEL_GRAPH.y;
|
||||
var rx = _panel.x;
|
||||
var ry = _panel.y;
|
||||
|
||||
var extY = 0;
|
||||
var drwT = _s > 0.5;
|
||||
|
@ -1843,14 +1843,14 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
|
||||
static onDrawJunctions = function(_x, _y, _mx, _my, _s) {}
|
||||
|
||||
static drawJunctionNames = function(_x, _y, _mx, _my, _s) {
|
||||
static drawJunctionNames = function(_x, _y, _mx, _my, _s, _panel = noone) {
|
||||
var amo = input_display_list == -1? array_length(inputs) : array_length(input_display_list);
|
||||
var jun;
|
||||
|
||||
var xx = x * _s + _x;
|
||||
var yy = y * _s + _y;
|
||||
|
||||
var _hov = PANEL_GRAPH.pHOVER && (PANEL_GRAPH.node_hovering == noone || PANEL_GRAPH.node_hovering == self);
|
||||
var _hov = _panel.pHOVER && (_panel.node_hovering == noone || _panel.node_hovering == self);
|
||||
|
||||
show_input_name = _hov;
|
||||
show_output_name = _hov;
|
||||
|
@ -1861,9 +1861,9 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
show_input_name &= point_in_rectangle(_mx, _my, xx - ( 12) * _s, _y0, xx + ( 12) * _s, _y1);
|
||||
show_output_name &= point_in_rectangle(_mx, _my, xx + (w - 12) * _s, _y0, xx + (w + 12) * _s, _y1);
|
||||
|
||||
if(PANEL_GRAPH.value_dragging && PANEL_GRAPH.node_hovering == self) {
|
||||
if(PANEL_GRAPH.value_dragging.connect_type == CONNECT_TYPE.input) show_output_name = true;
|
||||
if(PANEL_GRAPH.value_dragging.connect_type == CONNECT_TYPE.output) show_input_name = true;
|
||||
if(_panel.value_dragging && _panel.node_hovering == self) {
|
||||
if(_panel.value_dragging.connect_type == CONNECT_TYPE.input) show_output_name = true;
|
||||
if(_panel.value_dragging.connect_type == CONNECT_TYPE.output) show_input_name = true;
|
||||
}
|
||||
|
||||
if(show_input_name) {
|
||||
|
@ -1909,12 +1909,12 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
|
||||
}
|
||||
|
||||
if(hasInspector1Update() && PANEL_GRAPH.pHOVER && point_in_circle(_mx, _my, inspectInput1.x, inspectInput1.y, 10)) {
|
||||
if(hasInspector1Update() && _panel.pHOVER && point_in_circle(_mx, _my, inspectInput1.x, inspectInput1.y, 10)) {
|
||||
inspectInput1.drawNameBG(_s);
|
||||
inspectInput1.drawName(_s, _mx, _my);
|
||||
}
|
||||
|
||||
if(hasInspector2Update() && PANEL_GRAPH.pHOVER && point_in_circle(_mx, _my, inspectInput2.x, inspectInput2.y, 10)) {
|
||||
if(hasInspector2Update() && _panel.pHOVER && point_in_circle(_mx, _my, inspectInput2.x, inspectInput2.y, 10)) {
|
||||
inspectInput2.drawNameBG(_s);
|
||||
inspectInput2.drawName(_s, _mx, _my);
|
||||
}
|
||||
|
@ -2149,15 +2149,15 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
if(preview_draw) drawPreview(xx, yy, _s);
|
||||
|
||||
try {
|
||||
var _hover = PANEL_GRAPH.node_hovering == self;
|
||||
var _focus = PANEL_GRAPH.getFocusingNode() == self;
|
||||
var _hover = _panel.node_hovering == self;
|
||||
var _focus = _panel.getFocusingNode() == self;
|
||||
|
||||
onDrawNode(xx, yy, _mx, _my, _s, _hover, _focus);
|
||||
}
|
||||
catch(e) { log_warning("NODE onDrawNode", exception_print(e)); }
|
||||
}
|
||||
|
||||
if(SHOW_PARAM) drawJunctionWidget(xx, yy, _mx, _my, _s, _hover, _focus);
|
||||
if(SHOW_PARAM) drawJunctionWidget(xx, yy, _mx, _my, _s, _hover, _focus, display_parameter, _panel);
|
||||
|
||||
draw_name = false;
|
||||
if((previewable && _s >= 0.5) || (!previewable && h * _s >= name_height * .5)) drawNodeName(xx, yy, _s, _panel);
|
||||
|
|
|
@ -67,7 +67,7 @@ function Node_Grid(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons
|
|||
|
||||
newInput(24, nodeValue_Slider_Range("Level", self, [ 0, 1 ]));
|
||||
|
||||
newInput(25, nodeValue_Bool("Use Texture Dimension", self, true));
|
||||
newInput(25, nodeValue_Bool("Use Texture Dimension", self, false));
|
||||
|
||||
newInput(26, nodeValue_Float("Gap Width", self, 1));
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ function Node_Grid_Hex(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
|||
|
||||
newInput(20, nodeValue_Slider_Range("Level", self, [ 0, 1 ]));
|
||||
|
||||
newInput(21, nodeValue_Bool("Use Texture Dimension", self, true));
|
||||
newInput(21, nodeValue_Bool("Use Texture Dimension", self, false));
|
||||
|
||||
input_display_list = [
|
||||
["Output", false], 0,
|
||||
|
|
|
@ -51,7 +51,7 @@ function Node_Grid_Pentagonal(_x, _y, _group = noone) : Node_Processor(_x, _y, _
|
|||
|
||||
newInput(16, nodeValue_Slider_Range("Level", self, [ 0, 1 ]));
|
||||
|
||||
newInput(17, nodeValue_Bool("Use Texture Dimension", self, true));
|
||||
newInput(17, nodeValue_Bool("Use Texture Dimension", self, false));
|
||||
|
||||
input_display_list = [
|
||||
["Output", false], 0,
|
||||
|
|
|
@ -64,7 +64,7 @@ function Node_Grid_Tri(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
|||
|
||||
newInput(20, nodeValue_Slider_Range("Level", self, [ 0, 1 ]));
|
||||
|
||||
newInput(21, nodeValue_Bool("Use Texture Dimension", self, true));
|
||||
newInput(21, nodeValue_Bool("Use Texture Dimension", self, false));
|
||||
|
||||
input_display_list = [
|
||||
["Output", false], 0,
|
||||
|
|
|
@ -136,7 +136,7 @@ function Node_Group_Input(_x, _y, _group = noone) : Node(_x, _y, _group) constru
|
|||
dtype = -1;
|
||||
range = 0;
|
||||
|
||||
onSetDisplayName = function() { attributes.inherit_name = false; }
|
||||
onSetDisplayName = function() /*=>*/ { attributes.inherit_name = false; }
|
||||
|
||||
outputs[0].onSetTo = function(juncTo) {
|
||||
if(attributes.inherit_name && !LOADING && !APPENDING)
|
||||
|
@ -148,10 +148,46 @@ function Node_Group_Input(_x, _y, _group = noone) : Node(_x, _y, _group) constru
|
|||
var ind = array_find(GROUP_IO_TYPE_MAP, juncTo.type);
|
||||
if(ind == -1) return;
|
||||
|
||||
if(ind == inputs[2].getValue()) return;
|
||||
|
||||
outputs[0].setType(juncTo.type);
|
||||
inputs[2].setValue(ind);
|
||||
|
||||
switch(instanceof(juncTo)) {
|
||||
case "__NodeValue_Vec2" :
|
||||
case "__NodeValue_Dimension" :
|
||||
inputs[0].setValue(array_find(GROUP_IO_DISPLAY[0], "Vector"));
|
||||
inputs[4].setValue(0);
|
||||
break;
|
||||
|
||||
case "__NodeValue_Vec2_Range" :
|
||||
inputs[0].setValue(array_find(GROUP_IO_DISPLAY[0], "Vector range"));
|
||||
inputs[4].setValue(0);
|
||||
break;
|
||||
|
||||
case "__NodeValue_Vec3" :
|
||||
inputs[0].setValue(array_find(GROUP_IO_DISPLAY[0], "Vector"));
|
||||
inputs[4].setValue(1);
|
||||
break;
|
||||
|
||||
case "__NodeValue_Vec3_Range" :
|
||||
inputs[0].setValue(array_find(GROUP_IO_DISPLAY[0], "Vector range"));
|
||||
inputs[4].setValue(1);
|
||||
break;
|
||||
|
||||
case "__NodeValue_Vec4" :
|
||||
inputs[0].setValue(array_find(GROUP_IO_DISPLAY[0], "Vector"));
|
||||
inputs[4].setValue(2);
|
||||
break;
|
||||
|
||||
case "__NodeValue_Rotation" :
|
||||
inputs[0].setValue(array_find(GROUP_IO_DISPLAY[0], "Rotation"));
|
||||
inputs[4].setValue(2);
|
||||
break;
|
||||
}
|
||||
|
||||
juncTo.value_from = noone;
|
||||
inParent.setValue(juncTo.getValue());
|
||||
juncTo.value_from = outputs[0];
|
||||
|
||||
}
|
||||
|
||||
static createInput = function() {
|
||||
|
|
|
@ -116,7 +116,7 @@ function Node_Mirror_Polar(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro
|
|||
shader_set_2("scale", _sca);
|
||||
shader_set_i("rscale", _rsca);
|
||||
|
||||
draw_surface_stretched(_suf, 0, 0, _dim[0], _dim[1]);
|
||||
draw_surface_stretched_safe(_suf, 0, 0, _dim[0], _dim[1]);
|
||||
surface_reset_shader();
|
||||
|
||||
return _outSurf;
|
||||
|
|
|
@ -66,7 +66,7 @@ function Node_Pin(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
|
|||
}
|
||||
|
||||
static drawBadge = function(_x, _y, _s) {}
|
||||
static drawJunctionNames = function(_x, _y, _mx, _my, _s) {}
|
||||
static drawJunctionNames = function(_x, _y, _mx, _my, _s, _panel = noone) {}
|
||||
|
||||
static drawJunctions = function(_draw, _x, _y, _mx, _my, _s) {
|
||||
var _dval = PANEL_GRAPH.value_dragging;
|
||||
|
|
|
@ -60,14 +60,10 @@ function Node_Shape(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con
|
|||
-1, "Line", "Arrow",
|
||||
-1, "Teardrop", "Leaf", "Heart", "Gear",
|
||||
];
|
||||
shape_types_str = [];
|
||||
__ind = 0; shape_types_str = array_map(shape_types, function(v, i) /*=>*/ {return v == -1? -1 : new scrollItem(v, s_node_shape_type, __ind++)});
|
||||
|
||||
var _ind = 0;
|
||||
for( var i = 0, n = array_length(shape_types); i < n; i++ )
|
||||
shape_types_str[i] = shape_types[i] == -1? -1 : new scrollItem(shape_types[i], s_node_shape_type, _ind++);
|
||||
|
||||
newInput(2, nodeValue_Enum_Scroll("Shape", self, 0, { data: shape_types_str, horizontal: true, text_pad: ui(16) }));
|
||||
inputs[2].options_histories = [ shape_types, { cond: function() /*=>*/ {return LOADING_VERSION < 1_18_00_0}, list: global.node_shape_keys_18 } ];
|
||||
newInput(2, nodeValue_Enum_Scroll("Shape", self, 0, { data: shape_types_str, horizontal: true, text_pad: ui(16) }))
|
||||
.setHistory([ shape_types, { cond: function() /*=>*/ {return LOADING_VERSION < 1_18_00_0}, list: global.node_shape_keys_18 } ]);
|
||||
|
||||
newInput(3, nodeValue_Area("Position", self, DEF_AREA_REF, { onSurfaceSize, useShape : false }))
|
||||
.setUnitRef(onSurfaceSize, VALUE_UNIT.reference);
|
||||
|
|
|
@ -8,10 +8,6 @@
|
|||
function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
||||
name = "Draw Shape Polygon";
|
||||
|
||||
shapesArray = [ "Rectangle", "Ellipse", "Star", "Capsule", "Ring", "Arc", "Gear", "Cross" ];
|
||||
for( var i = 0, n = array_length(shapesArray); i < n; i++ )
|
||||
shapesArray[i] = new scrollItem(shapesArray[i], s_node_shape_poly_type, i);
|
||||
|
||||
newInput(0, nodeValue_Dimension(self));
|
||||
|
||||
newInput(1, nodeValue_Bool("Background", self, false));
|
||||
|
@ -20,15 +16,25 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
|
|||
|
||||
newInput(3, nodeValue_Color("Shape color", self, cola(c_white)));
|
||||
|
||||
newInput(4, nodeValue_Enum_Scroll("Shape", self, 0, shapesArray));
|
||||
shapesArray = [
|
||||
"Rectangle", "Diamond", "Trapezoid", "Parallelogram",
|
||||
-1, "Ellipse", "Arc", "Ring", "Crescent", "Pie", "Squircle",
|
||||
-1, "Regular Polygon", "Star", "Cross",
|
||||
-1, "Capsule",
|
||||
-1, "Leaf", "Gear",
|
||||
];
|
||||
__ind = 0; array_map_ext(shapesArray, function(v, i) /*=>*/ {return v == -1? -1 : new scrollItem(v, s_node_shape_poly_type, __ind++)});
|
||||
|
||||
newInput(4, nodeValue_Enum_Scroll("Shape", self, 0, { data: shapesArray, horizontal: true, text_pad: ui(16) }))
|
||||
.setHistory([ shapesArray, { cond: function() /*=>*/ {return LOADING_VERSION < 1_18_09_0}, list: global.node_shape_polygon_keys_1809 } ]);
|
||||
|
||||
newInput(5, nodeValue_Vec2("Position", self, [ 0.5, 0.5 ]))
|
||||
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
|
||||
.setUnitRef(function(i) /*=>*/ {return getDimension(i)}, VALUE_UNIT.reference);
|
||||
|
||||
newInput(6, nodeValue_Rotation("Rotation", self, 0));
|
||||
|
||||
newInput(7, nodeValue_Vec2("Scale", self, [ 0.5, 0.5 ]))
|
||||
.setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference);
|
||||
.setUnitRef(function(i) /*=>*/ {return getDimension(i)}, VALUE_UNIT.reference);
|
||||
|
||||
newInput(8, nodeValue_Int("Sides", self, 16))
|
||||
.setDisplay(VALUE_DISPLAY.slider, { range: [2, 64, 0.1] });
|
||||
|
@ -78,6 +84,14 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
|
|||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
newInput(25, nodeValue_Float("Trapezoid sides", self, 0.5))
|
||||
.setDisplay(VALUE_DISPLAY.slider);
|
||||
|
||||
newInput(26, nodeValue_Float("Skew", self, 0.5))
|
||||
.setDisplay(VALUE_DISPLAY.slider, { range: [ -1, 1, 0.01 ] });
|
||||
|
||||
newInput(27, nodeValue_Float("Factor", self, 3));
|
||||
|
||||
newOutput(0, nodeValue_Output("Surface Out", self, VALUE_TYPE.surface, noone));
|
||||
|
||||
newOutput(1, nodeValue_Output("Mesh", self, VALUE_TYPE.mesh, noone));
|
||||
|
@ -87,7 +101,7 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
|
|||
input_display_list = [ 16,
|
||||
["Output", false], 0,
|
||||
["Transform", false], 5, 6, 7,
|
||||
["Shape", false], 4, 8, 9, 10, 11, 12, 13, 14, 15, 17,
|
||||
["Shape", false], 4, 8, 9, 10, 11, 12, 13, 14, 15, 17, 25, 26, 27,
|
||||
["Piecewise", false], 18, 22,
|
||||
["Render", true], 3, 23, 19, 20, 21, 24,
|
||||
["Background", true, 1], 2,
|
||||
|
@ -99,6 +113,9 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
|
|||
|
||||
temp_surface = [ noone ];
|
||||
|
||||
mesh = new Mesh();
|
||||
path = new PathSegment();
|
||||
|
||||
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
|
||||
if(array_length(current_data) != array_length(inputs)) return;
|
||||
if(process_amount > 1) return;
|
||||
|
@ -119,9 +136,6 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
|
|||
draw_vertex_color(_p.x * _aa, _p.y * _aa, _color, _alpha);
|
||||
}
|
||||
|
||||
mesh = new Mesh();
|
||||
path = new PathSegment();
|
||||
|
||||
static processData = function(_outData, _data, _output_index, _array_index) {
|
||||
var _dim = _data[0];
|
||||
var _bg = _data[1];
|
||||
|
@ -131,21 +145,27 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
|
|||
var _pos = _data[5];
|
||||
var _rot = _data[6];
|
||||
var _sca = _data[7];
|
||||
var _side = _data[8];
|
||||
var _inner = _data[9];
|
||||
var _rad = _data[10];
|
||||
var _teeth = _data[11];
|
||||
var _thHei = _data[12];
|
||||
var _thTap = _data[13];
|
||||
var _aRan = _data[14];
|
||||
var _cap = _data[15];
|
||||
var _mesh = _data[16];
|
||||
var _expld = _data[17];
|
||||
var _prot = _data[18];
|
||||
var _psca = _data[22];
|
||||
var _pall = _data[23];
|
||||
var _aa = power(2, _data[24]);
|
||||
|
||||
var data = {
|
||||
side: _data[ 8],
|
||||
inner: _data[ 9],
|
||||
radius: _data[10],
|
||||
radRan: _data[14],
|
||||
teeth: _data[11],
|
||||
teethH: _data[12],
|
||||
teethT: _data[13],
|
||||
cap: _data[15],
|
||||
explode: _data[17],
|
||||
trep: _data[25],
|
||||
palAng: _data[26],
|
||||
factor: _data[27],
|
||||
};
|
||||
|
||||
inputs[ 8].setVisible(false);
|
||||
inputs[ 9].setVisible(false);
|
||||
inputs[10].setVisible(false);
|
||||
|
@ -155,70 +175,100 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
|
|||
inputs[14].setVisible(false);
|
||||
inputs[15].setVisible(false);
|
||||
inputs[17].setVisible(false);
|
||||
inputs[25].setVisible(false);
|
||||
inputs[26].setVisible(false);
|
||||
inputs[27].setVisible(false);
|
||||
|
||||
var _shapeName = array_safe_get_fast(shapesArray, _shp).name;
|
||||
var _shapeFn = noone;
|
||||
|
||||
switch(_shapeName) {
|
||||
case "Rectangle" : // 0
|
||||
case "Rectangle" : _shapeFn = SHAPE_rectangle; break;
|
||||
case "Diamond" : _shapeFn = SHAPE_diamond; break;
|
||||
|
||||
case "Trapezoid" : _shapeFn = SHAPE_trapezoid;
|
||||
inputs[25].setVisible(true);
|
||||
break;
|
||||
|
||||
case "Ellipse" : // 1
|
||||
case "Parallelogram" : _shapeFn = SHAPE_parallelogram;
|
||||
inputs[26].setVisible(true);
|
||||
break;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
case "Ellipse" : _shapeFn = SHAPE_circle;
|
||||
inputs[ 8].setVisible(true);
|
||||
inputs[17].setVisible(true);
|
||||
break;
|
||||
|
||||
case "Star" : // 2
|
||||
inputs[ 8].setVisible(true);
|
||||
inputs[ 9].setVisible(true);
|
||||
break;
|
||||
|
||||
case "Capsule" : // 3
|
||||
inputs[ 8].setVisible(true);
|
||||
inputs[10].setVisible(true);
|
||||
break;
|
||||
|
||||
case "Ring" : // 4
|
||||
inputs[ 8].setVisible(true);
|
||||
inputs[ 9].setVisible(true);
|
||||
break;
|
||||
|
||||
case "Arc" : // 5
|
||||
case "Arc" : _shapeFn = SHAPE_arc;
|
||||
inputs[ 8].setVisible(true);
|
||||
inputs[ 9].setVisible(true);
|
||||
inputs[14].setVisible(true);
|
||||
inputs[15].setVisible(true);
|
||||
break;
|
||||
|
||||
case "Gear" : // 6
|
||||
case "Ring" : _shapeFn = SHAPE_ring;
|
||||
inputs[ 8].setVisible(true);
|
||||
inputs[ 9].setVisible(true);
|
||||
break;
|
||||
|
||||
case "Crescent" : _shapeFn = SHAPE_crescent;
|
||||
inputs[ 8].setVisible(true);
|
||||
inputs[ 9].setVisible(true);
|
||||
break;
|
||||
|
||||
case "Pie" : _shapeFn = SHAPE_pie;
|
||||
inputs[ 8].setVisible(true);
|
||||
inputs[14].setVisible(true);
|
||||
break;
|
||||
|
||||
case "Squircle" : _shapeFn = SHAPE_squircle;
|
||||
inputs[ 8].setVisible(true);
|
||||
inputs[27].setVisible(true);
|
||||
break;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
case "Regular Polygon" : _shapeFn = SHAPE_reg_poly;
|
||||
inputs[ 8].setVisible(true);
|
||||
break;
|
||||
|
||||
case "Star" : _shapeFn = SHAPE_star;
|
||||
inputs[ 8].setVisible(true);
|
||||
inputs[ 9].setVisible(true);
|
||||
break;
|
||||
|
||||
case "Cross" : _shapeFn = SHAPE_cross;
|
||||
inputs[ 9].setVisible(true);
|
||||
break;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
case "Capsule" : _shapeFn = SHAPE_capsule;
|
||||
inputs[ 8].setVisible(true);
|
||||
inputs[10].setVisible(true);
|
||||
break;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
case "Leaf" : _shapeFn = SHAPE_leaf;
|
||||
inputs[ 8].setVisible(true);
|
||||
break;
|
||||
|
||||
case "Gear" : _shapeFn = SHAPE_gear;
|
||||
inputs[ 9].setVisible(true);
|
||||
inputs[11].setVisible(true);
|
||||
inputs[12].setVisible(true);
|
||||
inputs[13].setVisible(true);
|
||||
break;
|
||||
|
||||
case "Cross" : // 7
|
||||
inputs[ 9].setVisible(true);
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
var _outSurf = surface_verify(_outData[0], _dim[0], _dim[1], attrDepth());
|
||||
|
||||
temp_surface[0] = surface_verify(temp_surface[0], _dim[0] * _aa, _dim[1] * _aa, attrDepth());
|
||||
var _outSurf = surface_verify(_outData[0], _dim[0], _dim[1], attrDepth());
|
||||
var _cPassAA = temp_surface[0];
|
||||
|
||||
var data = {
|
||||
side: _side,
|
||||
inner: _inner,
|
||||
radius: _rad,
|
||||
radRan: _aRan,
|
||||
teeth: _teeth,
|
||||
teethH: _thHei,
|
||||
teethT: _thTap,
|
||||
cap: _cap,
|
||||
explode: _expld,
|
||||
};
|
||||
|
||||
var tri0 = colorMultiply(_shc, _data[19]);
|
||||
var tri1 = colorMultiply(_shc, _data[20]);
|
||||
var tri2 = colorMultiply(_shc, _data[21]);
|
||||
|
@ -245,19 +295,7 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
|
|||
|
||||
} else {
|
||||
|
||||
var shapeData = [];
|
||||
|
||||
switch(_shapeName) {
|
||||
case "Rectangle" : shapeData = SHAPE_rectangle( _sca ); break;
|
||||
case "Ellipse" : shapeData = SHAPE_circle( _sca, data); break;
|
||||
case "Star" : shapeData = SHAPE_star( _sca, data); break;
|
||||
case "Capsule" : shapeData = SHAPE_capsule( _sca, data); break;
|
||||
case "Ring" : shapeData = SHAPE_ring( _sca, data); break;
|
||||
case "Arc" : shapeData = SHAPE_arc( _sca, data); break;
|
||||
case "Gear" : shapeData = SHAPE_gear( _sca, data); break;
|
||||
case "Cross" : shapeData = SHAPE_cross( _sca, data); break;
|
||||
|
||||
default:
|
||||
if(_shapeFn == noone) {
|
||||
draw_primitive_end();
|
||||
draw_set_alpha(1);
|
||||
|
||||
|
@ -265,6 +303,7 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
|
|||
return [ _outSurf, mesh, path ];
|
||||
}
|
||||
|
||||
var shapeData = _shapeFn(_sca, data);
|
||||
var points = shapeData[0];
|
||||
var segment = shapeData[1];
|
||||
|
||||
|
@ -306,12 +345,8 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
|
|||
path.setSegment(segment);
|
||||
|
||||
var shapes = [];
|
||||
for( var i = 0, n = array_length(points); i < n; i++ ) {
|
||||
if(points[i].type == SHAPE_TYPE.points)
|
||||
shapes[i] = polygon_triangulate(points[i].points)[0];
|
||||
else
|
||||
shapes[i] = points[i].triangles;
|
||||
}
|
||||
for( var i = 0, n = array_length(points); i < n; i++ )
|
||||
shapes[i] = points[i].type == SHAPE_TYPE.points? polygon_triangulate(points[i].points)[0] : points[i].triangles;
|
||||
|
||||
var _plen = array_length(_pall);
|
||||
mesh.triangles = [];
|
||||
|
@ -349,3 +384,5 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
|
|||
return [ _outSurf, mesh, path ];
|
||||
}
|
||||
}
|
||||
|
||||
global.node_shape_polygon_keys_1809 = [ "Rectangle", "Ellipse", "Star", "Capsule", "Ring", "Arc", "Gear", "Cross" ];
|
|
@ -165,7 +165,7 @@ function Node_Tunnel_In(_x, _y, _group = noone) : Node(_x, _y, _group) construct
|
|||
}
|
||||
|
||||
static drawBadge = function(_x, _y, _s) {}
|
||||
static drawJunctionNames = function(_x, _y, _mx, _my, _s) {}
|
||||
static drawJunctionNames = function(_x, _y, _mx, _my, _s, _panel = noone) {}
|
||||
|
||||
static onDrawNodeBehind = function(_x, _y, _mx, _my, _s) {
|
||||
var xx = x * _s + _x;
|
||||
|
|
|
@ -89,7 +89,7 @@ function Node_Tunnel_Out(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
|||
}
|
||||
|
||||
static drawBadge = function(_x, _y, _s) {}
|
||||
static drawJunctionNames = function(_x, _y, _mx, _my, _s) {}
|
||||
static drawJunctionNames = function(_x, _y, _mx, _my, _s, _panel = noone) {}
|
||||
|
||||
static onDrawNodeBehind = function(_x, _y, _mx, _my, _s) {
|
||||
var xx = x * _s + _x;
|
||||
|
|
|
@ -3,6 +3,10 @@ function nodeValue_Enum_Scroll(_name, _node, _value, _data) { return new __NodeV
|
|||
function __NodeValue_Enum_Scroll(_name, _node, _value, _data) : NodeValue(_name, _node, CONNECT_TYPE.input, VALUE_TYPE.integer, _value, "") constructor {
|
||||
setDisplay(VALUE_DISPLAY.enum_scroll, _data);
|
||||
|
||||
/////============== SET =============
|
||||
|
||||
static setHistory = function(h) /*=>*/ { options_histories = h; return self; }
|
||||
|
||||
/////============== GET =============
|
||||
|
||||
static getValue = function(_time = CURRENT_FRAME, applyUnit = true, arrIndex = 0, useCache = false, log = false) { //// Get value
|
||||
|
@ -33,10 +37,7 @@ function __NodeValue_Enum_Scroll(_name, _node, _value, _data) : NodeValue(_name,
|
|||
|
||||
for( var i = 1, n = array_length(options_histories); i < n; i++ ) {
|
||||
var _oph = options_histories[i];
|
||||
if(!_oph.cond()) continue;
|
||||
|
||||
_load = _oph;
|
||||
break;
|
||||
if(_oph.cond()) { _load = _oph; break; }
|
||||
}
|
||||
|
||||
if(_load == noone) return;
|
||||
|
|
|
@ -2179,7 +2179,7 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
|||
var _node = nodes_list[i];
|
||||
|
||||
if(!display_parameter.show_control && _node.is_controller) continue;
|
||||
_node.drawJunctionNames(gr_x, gr_y, mx, my, graph_s);
|
||||
_node.drawJunctionNames(gr_x, gr_y, mx, my, graph_s, self);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
After Width: | Height: | Size: 380 B |
After Width: | Height: | Size: 442 B |
Before Width: | Height: | Size: 403 B |
After Width: | Height: | Size: 575 B |
After Width: | Height: | Size: 519 B |
After Width: | Height: | Size: 434 B |
After Width: | Height: | Size: 549 B |
After Width: | Height: | Size: 469 B |
After Width: | Height: | Size: 293 B |
After Width: | Height: | Size: 417 B |
Before Width: | Height: | Size: 499 B |
Before Width: | Height: | Size: 502 B |
Before Width: | Height: | Size: 377 B |
After Width: | Height: | Size: 306 B |
After Width: | Height: | Size: 422 B |
After Width: | Height: | Size: 442 B |
Before Width: | Height: | Size: 525 B |
After Width: | Height: | Size: 610 B |
After Width: | Height: | Size: 484 B |
After Width: | Height: | Size: 293 B |
After Width: | Height: | Size: 293 B |
Before Width: | Height: | Size: 532 B |
After Width: | Height: | Size: 545 B |
After Width: | Height: | Size: 479 B |
Before Width: | Height: | Size: 326 B |
After Width: | Height: | Size: 340 B |
Before Width: | Height: | Size: 448 B |
After Width: | Height: | Size: 510 B |
After Width: | Height: | Size: 380 B |
After Width: | Height: | Size: 442 B |
Before Width: | Height: | Size: 403 B |
After Width: | Height: | Size: 575 B |
After Width: | Height: | Size: 519 B |
After Width: | Height: | Size: 434 B |
After Width: | Height: | Size: 549 B |
After Width: | Height: | Size: 469 B |
After Width: | Height: | Size: 293 B |
After Width: | Height: | Size: 417 B |
Before Width: | Height: | Size: 499 B |
Before Width: | Height: | Size: 502 B |
Before Width: | Height: | Size: 377 B |
After Width: | Height: | Size: 306 B |
After Width: | Height: | Size: 422 B |
After Width: | Height: | Size: 442 B |
Before Width: | Height: | Size: 525 B |
After Width: | Height: | Size: 610 B |
After Width: | Height: | Size: 484 B |
After Width: | Height: | Size: 293 B |
After Width: | Height: | Size: 293 B |
Before Width: | Height: | Size: 532 B |
After Width: | Height: | Size: 545 B |
After Width: | Height: | Size: 479 B |
Before Width: | Height: | Size: 326 B |
After Width: | Height: | Size: 340 B |
Before Width: | Height: | Size: 448 B |
After Width: | Height: | Size: 510 B |
|
@ -3,30 +3,42 @@
|
|||
"%Name":"s_node_shape_poly_type",
|
||||
"bboxMode":0,
|
||||
"bbox_bottom":21,
|
||||
"bbox_left":2,
|
||||
"bbox_right":21,
|
||||
"bbox_top":2,
|
||||
"bbox_left":0,
|
||||
"bbox_right":22,
|
||||
"bbox_top":0,
|
||||
"collisionKind":1,
|
||||
"collisionTolerance":0,
|
||||
"DynamicTexturePage":false,
|
||||
"edgeFiltering":false,
|
||||
"For3D":false,
|
||||
"frames":[
|
||||
{"$GMSpriteFrame":"","%Name":"e2d585d6-df00-47e6-99eb-075f6ae750b3","name":"e2d585d6-df00-47e6-99eb-075f6ae750b3","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"ee3b6b78-cb81-405c-a667-feb55d72af92","name":"ee3b6b78-cb81-405c-a667-feb55d72af92","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"562c7df2-7190-49c6-8c49-381f8ddfe586","name":"562c7df2-7190-49c6-8c49-381f8ddfe586","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"1ad21eb3-2957-4d4d-926e-740ae1d19b0f","name":"1ad21eb3-2957-4d4d-926e-740ae1d19b0f","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"3ed05dc1-67c7-4a63-b070-35ea04b1932a","name":"3ed05dc1-67c7-4a63-b070-35ea04b1932a","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"423b0a1b-c4b4-45f0-bcfa-56109d4cf548","name":"423b0a1b-c4b4-45f0-bcfa-56109d4cf548","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"a82a8f00-ddd0-4cf9-aecd-a1aa158d9a38","name":"a82a8f00-ddd0-4cf9-aecd-a1aa158d9a38","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"42782bd5-2dd4-444f-b5e4-2c12fc7bed1c","name":"42782bd5-2dd4-444f-b5e4-2c12fc7bed1c","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"eb1a66c2-82b6-4784-9b4e-65d844adddf4","name":"eb1a66c2-82b6-4784-9b4e-65d844adddf4","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"02a2a0d3-3291-4c11-9632-1746a7532fc7","name":"02a2a0d3-3291-4c11-9632-1746a7532fc7","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"4fb534c1-6beb-4e49-ba04-82a5758bd1a1","name":"4fb534c1-6beb-4e49-ba04-82a5758bd1a1","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"5e248cad-eddf-4c5c-b68b-e62ed03e6125","name":"5e248cad-eddf-4c5c-b68b-e62ed03e6125","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"31d077ee-faea-4273-add1-b6fae9778ce2","name":"31d077ee-faea-4273-add1-b6fae9778ce2","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"b98159f6-4d53-421b-ba7d-ba3250d80187","name":"b98159f6-4d53-421b-ba7d-ba3250d80187","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"ef64a417-ae22-4c2d-a22a-363f98fadc9d","name":"ef64a417-ae22-4c2d-a22a-363f98fadc9d","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"30159276-e075-41ea-a218-83d883c97e22","name":"30159276-e075-41ea-a218-83d883c97e22","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"21c30ddc-01c0-457b-b4c4-3b7a4d7d3f7b","name":"21c30ddc-01c0-457b-b4c4-3b7a4d7d3f7b","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"e157170d-c5c2-4511-9b17-829b24b451b0","name":"e157170d-c5c2-4511-9b17-829b24b451b0","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"2f0bc8fb-dd23-4d74-ac0a-4ec10077859a","name":"2f0bc8fb-dd23-4d74-ac0a-4ec10077859a","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"1db8a64c-bca5-4538-91a8-73a616951623","name":"1db8a64c-bca5-4538-91a8-73a616951623","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"3bd54037-8259-41e1-8c43-7e6c8353a5ba","name":"3bd54037-8259-41e1-8c43-7e6c8353a5ba","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"4ea45f48-7be7-428b-b6d4-d7ae0268f52b","name":"4ea45f48-7be7-428b-b6d4-d7ae0268f52b","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"0f886809-387b-4bc8-abd4-387fa813ceab","name":"0f886809-387b-4bc8-abd4-387fa813ceab","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"59e777c7-dc4a-4538-b767-32cb28b19b58","name":"59e777c7-dc4a-4538-b767-32cb28b19b58","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"48474e77-9f5c-4af6-9f7a-a161c3e17279","name":"48474e77-9f5c-4af6-9f7a-a161c3e17279","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"77986572-6597-4906-8c03-54f459fa48aa","name":"77986572-6597-4906-8c03-54f459fa48aa","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"7b8695ca-f0c7-4400-8a0e-5308592be2b5","name":"7b8695ca-f0c7-4400-8a0e-5308592be2b5","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
{"$GMSpriteFrame":"","%Name":"35aaf398-7487-4e64-a934-b4dd188269d0","name":"35aaf398-7487-4e64-a934-b4dd188269d0","resourceType":"GMSpriteFrame","resourceVersion":"2.0",},
|
||||
],
|
||||
"gridX":0,
|
||||
"gridY":0,
|
||||
"height":24,
|
||||
"HTile":false,
|
||||
"layers":[
|
||||
{"$GMImageLayer":"","%Name":"35823b21-ff1a-4246-bb05-7d6f0ef9d118","blendMode":0,"displayName":"default","isLocked":false,"name":"35823b21-ff1a-4246-bb05-7d6f0ef9d118","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
||||
{"$GMImageLayer":"","%Name":"76176505-d4c8-4e24-bdbc-5b19b83fbcc1","blendMode":0,"displayName":"default","isLocked":false,"name":"76176505-d4c8-4e24-bdbc-5b19b83fbcc1","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,},
|
||||
],
|
||||
"name":"s_node_shape_poly_type",
|
||||
"nineSlice":null,
|
||||
|
@ -56,7 +68,7 @@
|
|||
},
|
||||
"eventStubScript":null,
|
||||
"eventToFunction":{},
|
||||
"length":8.0,
|
||||
"length":20.0,
|
||||
"lockOrigin":false,
|
||||
"moments":{
|
||||
"$KeyframeStore<MomentsEventKeyframe>":"",
|
||||
|
@ -76,29 +88,65 @@
|
|||
"tracks":[
|
||||
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"e2d585d6-df00-47e6-99eb-075f6ae750b3","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"9ef851f0-6902-4d24-9bfe-265eb3acfd03","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"eb1a66c2-82b6-4784-9b4e-65d844adddf4","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"d999d736-5bf3-46ca-b27b-9fb89ad510af","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"ee3b6b78-cb81-405c-a667-feb55d72af92","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"436e524f-51d7-45d4-883d-60f2a12074eb","IsCreationKey":false,"Key":1.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"02a2a0d3-3291-4c11-9632-1746a7532fc7","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"9a049ce1-3918-4957-9265-680946b16c11","IsCreationKey":false,"Key":1.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"562c7df2-7190-49c6-8c49-381f8ddfe586","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"aa0b06fe-23a4-428f-bd81-9b2795ea6a94","IsCreationKey":false,"Key":2.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"4fb534c1-6beb-4e49-ba04-82a5758bd1a1","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"25aca6cf-d94e-4d6f-811a-2442d4738c3f","IsCreationKey":false,"Key":2.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"1ad21eb3-2957-4d4d-926e-740ae1d19b0f","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"23162782-5342-425e-b8c6-25ea9d2d967a","IsCreationKey":false,"Key":3.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"5e248cad-eddf-4c5c-b68b-e62ed03e6125","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"bd2296a3-ce47-4e69-8b0c-7ebeb98b485e","IsCreationKey":false,"Key":3.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"3ed05dc1-67c7-4a63-b070-35ea04b1932a","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"b44e1bc3-662e-40d2-af20-29c554ed2fa2","IsCreationKey":false,"Key":4.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"31d077ee-faea-4273-add1-b6fae9778ce2","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"9977db6f-854f-438c-9983-e62c78a0e3a8","IsCreationKey":false,"Key":4.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"423b0a1b-c4b4-45f0-bcfa-56109d4cf548","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"54efa6bb-8740-4590-9b07-0e81a70c1701","IsCreationKey":false,"Key":5.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"b98159f6-4d53-421b-ba7d-ba3250d80187","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"4c5a91e4-3a19-4728-bb27-825cd19a1801","IsCreationKey":false,"Key":5.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"a82a8f00-ddd0-4cf9-aecd-a1aa158d9a38","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"eb4429ba-e2cc-4dfe-95fa-c703fdf49969","IsCreationKey":false,"Key":6.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"ef64a417-ae22-4c2d-a22a-363f98fadc9d","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"b698112a-1090-43fc-97a3-ec03f1a86521","IsCreationKey":false,"Key":6.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"42782bd5-2dd4-444f-b5e4-2c12fc7bed1c","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"23165818-4a4d-42f6-9b70-596187996c9a","IsCreationKey":false,"Key":7.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"30159276-e075-41ea-a218-83d883c97e22","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"0d305ab9-0305-41ff-b5e9-8b204095b856","IsCreationKey":false,"Key":7.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"21c30ddc-01c0-457b-b4c4-3b7a4d7d3f7b","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"853cecfa-b5e0-4402-ba2b-7e479564260c","IsCreationKey":false,"Key":8.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"e157170d-c5c2-4511-9b17-829b24b451b0","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"da9d447b-a308-46aa-979c-26722d012645","IsCreationKey":false,"Key":9.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"2f0bc8fb-dd23-4d74-ac0a-4ec10077859a","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"12709f8a-7d50-46ac-be2f-579f8b884828","IsCreationKey":false,"Key":10.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"1db8a64c-bca5-4538-91a8-73a616951623","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"47d51700-8936-4e1f-88ec-6cd4ed2253f8","IsCreationKey":false,"Key":11.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"3bd54037-8259-41e1-8c43-7e6c8353a5ba","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"55ca2dea-9755-4c6d-9cf0-31c76cb1b215","IsCreationKey":false,"Key":12.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"4ea45f48-7be7-428b-b6d4-d7ae0268f52b","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"19f94ab1-a6fe-481c-b96a-0a8b0fcd9c9c","IsCreationKey":false,"Key":13.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"0f886809-387b-4bc8-abd4-387fa813ceab","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"91646157-4019-4e40-b1c3-38f4cdc46fe8","IsCreationKey":false,"Key":14.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"59e777c7-dc4a-4538-b767-32cb28b19b58","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"d1ec1839-434b-4585-9ffb-9399c528ab60","IsCreationKey":false,"Key":15.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"48474e77-9f5c-4af6-9f7a-a161c3e17279","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"fde7359f-6b0c-4282-a3d0-8e64f0de73ec","IsCreationKey":false,"Key":16.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"77986572-6597-4906-8c03-54f459fa48aa","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"1973058e-eb19-4392-a6a6-34ae158dde79","IsCreationKey":false,"Key":17.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"7b8695ca-f0c7-4400-8a0e-5308592be2b5","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"36f0c724-edac-4b34-99a9-c0b6d2cb3142","IsCreationKey":false,"Key":18.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
||||
"0":{"$SpriteFrameKeyframe":"","Id":{"name":"35aaf398-7487-4e64-a934-b4dd188269d0","path":"sprites/s_node_shape_poly_type/s_node_shape_poly_type.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",},
|
||||
},"Disabled":false,"id":"764bbc87-456e-4a77-beb9-1c3dfe506597","IsCreationKey":false,"Key":19.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,
|
||||
|
|