[Group Input] Now copy some value type on first connection.
|
@ -160,14 +160,16 @@ event_inherited();
|
||||||
|
|
||||||
array_push(node_list, "Favourites");
|
array_push(node_list, "Favourites");
|
||||||
var _favs = struct_get_names(global.FAV_NODES);
|
var _favs = struct_get_names(global.FAV_NODES);
|
||||||
|
var _fvnd = [];
|
||||||
for( var i = 0, n = array_length(_favs); i < n; i++ ) {
|
for( var i = 0, n = array_length(_favs); i < n; i++ ) {
|
||||||
var _nodeIndex = _favs[i];
|
var _nodeIndex = _favs[i];
|
||||||
if(!struct_has(ALL_NODES, _nodeIndex)) continue;
|
if(!struct_has(ALL_NODES, _nodeIndex)) continue;
|
||||||
|
|
||||||
var _node = ALL_NODES[$ _nodeIndex];
|
var _node = ALL_NODES[$ _nodeIndex];
|
||||||
if(_node.show_in_recent)
|
if(_node.show_in_recent) array_push(_fvnd, _node);
|
||||||
array_push(node_list, _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");
|
array_push(node_list, "Recents");
|
||||||
if(is_array(global.RECENT_NODES))
|
if(is_array(global.RECENT_NODES))
|
||||||
|
@ -304,7 +306,7 @@ event_inherited();
|
||||||
|
|
||||||
if(junction_called == noone) return;
|
if(junction_called == noone) return;
|
||||||
|
|
||||||
//connect to called junction
|
// connect to called junction
|
||||||
var _call_input = junction_called.connect_type == CONNECT_TYPE.input;
|
var _call_input = junction_called.connect_type == CONNECT_TYPE.input;
|
||||||
var _from = junction_called.value_from;
|
var _from = junction_called.value_from;
|
||||||
var _junc_list = _call_input? _outputs : _inputs;
|
var _junc_list = _call_input? _outputs : _inputs;
|
||||||
|
|
|
@ -37,7 +37,7 @@ event_inherited();
|
||||||
|
|
||||||
#region content
|
#region content
|
||||||
sc_group = new scrollPane(dialog_w - ui(padding + padding), dialog_h - ui(title_height + padding), function(_y, _m) {
|
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;
|
if(node == noone) return 0;
|
||||||
|
|
||||||
var _h = 0;
|
var _h = 0;
|
||||||
|
|
|
@ -22,7 +22,7 @@ event_inherited();
|
||||||
|
|
||||||
#region content
|
#region content
|
||||||
sc_group = new scrollPane(dialog_w - ui(padding + padding), dialog_h - ui(title_height + padding), function(_y, _m) {
|
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;
|
if(node == noone) return 0;
|
||||||
|
|
||||||
var _h = 0;
|
var _h = 0;
|
||||||
|
|
|
@ -138,8 +138,7 @@ function __part(_node) : __particleObject() constructor {
|
||||||
static reset = function() {
|
static reset = function() {
|
||||||
INLINE
|
INLINE
|
||||||
|
|
||||||
surf = noone;
|
surf = noone;
|
||||||
|
|
||||||
prevx = undefined;
|
prevx = undefined;
|
||||||
prevy = undefined;
|
prevy = undefined;
|
||||||
}
|
}
|
||||||
|
@ -152,8 +151,8 @@ function __part(_node) : __particleObject() constructor {
|
||||||
x = _x;
|
x = _x;
|
||||||
y = _y;
|
y = _y;
|
||||||
|
|
||||||
drawx = undefined;
|
drawx = undefined;
|
||||||
drawy = undefined;
|
drawy = undefined;
|
||||||
|
|
||||||
anim_len = is_array(surf)? array_length(surf) : 1;
|
anim_len = is_array(surf)? array_length(surf) : 1;
|
||||||
|
|
||||||
|
@ -247,13 +246,13 @@ function __part(_node) : __particleObject() constructor {
|
||||||
node.onPartDestroy(self);
|
node.onPartDestroy(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
static step = function(frame = 0) {
|
static step = function(_frame = 0) {
|
||||||
INLINE
|
INLINE
|
||||||
trailLife++;
|
trailLife++;
|
||||||
|
|
||||||
if(!active) return;
|
if(!active) return;
|
||||||
x += speedx;
|
x += speedx;
|
||||||
self.frame = frame;
|
frame = _frame;
|
||||||
|
|
||||||
random_set_seed(seed + life);
|
random_set_seed(seed + life);
|
||||||
|
|
||||||
|
@ -361,10 +360,12 @@ function __part(_node) : __particleObject() constructor {
|
||||||
case ANIM_END_ACTION.loop:
|
case ANIM_END_ACTION.loop:
|
||||||
ss = surf[safe_mod(ind, anim_len)];
|
ss = surf[safe_mod(ind, anim_len)];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ANIM_END_ACTION.pingpong:
|
case ANIM_END_ACTION.pingpong:
|
||||||
var ping = safe_mod(ind, (anim_len - 1) * 2 + 1);
|
var ping = safe_mod(ind, (anim_len - 1) * 2 + 1);
|
||||||
ss = surf[ping >= anim_len? (anim_len - 1) * 2 - ping : ping];
|
ss = surf[ping >= anim_len? (anim_len - 1) * 2 - ping : ping];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ANIM_END_ACTION.destroy:
|
case ANIM_END_ACTION.destroy:
|
||||||
if(ind >= anim_len) {
|
if(ind >= anim_len) {
|
||||||
kill();
|
kill();
|
||||||
|
@ -435,9 +436,8 @@ function __part(_node) : __particleObject() constructor {
|
||||||
var _s = shader_current();
|
var _s = shader_current();
|
||||||
shader_reset();
|
shader_reset();
|
||||||
|
|
||||||
draw_set_color(cc);
|
draw_set_color_alpha(cc, alp_draw);
|
||||||
draw_set_alpha(alp_draw);
|
dynaSurf_circle_fill(round(_xx), round(_yy), exact? round(ss) : ss);
|
||||||
dynaSurf_circle_fill(_xx, _yy, exact? round(ss) : ss);
|
|
||||||
draw_set_alpha(1);
|
draw_set_alpha(1);
|
||||||
|
|
||||||
shader_set(_s);
|
shader_set(_s);
|
||||||
|
|
|
@ -6,21 +6,65 @@ enum SHAPE_TYPE {
|
||||||
rectangle
|
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 ],
|
function SHAPE_rectangle(_sca, data = {}) {
|
||||||
[ new __vec2( _sca[0], -_sca[1]), new __vec2(-_sca[0], _sca[1]), new __vec2( _sca[0], _sca[1]), c_white ],
|
var w = _sca[0], h = _sca[1];
|
||||||
];
|
|
||||||
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 [
|
var triangles = [ [ new __vec2(-w, -h), new __vec2(-w, h), new __vec2( w, -h), c_white ],
|
||||||
[ { type: SHAPE_TYPE.rectangle, triangles: triangles } ],
|
[ new __vec2( w, -h), new __vec2(-w, h), new __vec2( w, h), c_white ], ];
|
||||||
segment
|
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 = {}) {
|
function SHAPE_circle(_sca, data = {}) {
|
||||||
var prec = max(3, data.side);
|
var prec = max(3, data.side);
|
||||||
var ang = 360 / prec;
|
var ang = 360 / prec;
|
||||||
|
@ -47,238 +91,43 @@ function SHAPE_circle(_sca, data = {}) {
|
||||||
segment[i + 1] = new __vec2(x1, y1);
|
segment[i + 1] = new __vec2(x1, y1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return [
|
return [ [{ type: SHAPE_TYPE.triangles, triangles: triangles }], segment ];
|
||||||
[{ 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
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function SHAPE_ring(_sca, data = {}) {
|
function SHAPE_ring(_sca, data = {}) {
|
||||||
var prec = max(3, data.side);
|
var w = _sca[0], h = _sca[1];
|
||||||
var inner = data.inner;
|
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 triangles = [];
|
||||||
var segment = [];
|
var segment = [];
|
||||||
|
|
||||||
for( var i = 0; i < prec; i++ ) {
|
for( var i = 0; i < s; i++ ) {
|
||||||
var ix0 = lengthdir_x(0.5 * inner, i / prec * 360) * _sca[0] * 2;
|
var a0 = i * an;
|
||||||
var iy0 = lengthdir_y(0.5 * inner, i / prec * 360) * _sca[1] * 2;
|
var a1 = a0 + an;
|
||||||
|
|
||||||
var nx0 = lengthdir_x(0.5, i / prec * 360) * _sca[0] * 2;
|
var ix0 = lengthdir_x(iw, a0);
|
||||||
var ny0 = lengthdir_y(0.5, i / prec * 360) * _sca[1] * 2;
|
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 ox0 = lengthdir_x(ow, a0);
|
||||||
var iy1 = lengthdir_y(0.5 * inner, (i + 1) / prec * 360) * _sca[1] * 2;
|
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;
|
array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(ox0, oy0), new __vec2(ox1, oy1), c_white ]);
|
||||||
var ny1 = lengthdir_y(0.5, (i + 1) / prec * 360) * _sca[1] * 2;
|
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 ]);
|
if(i == 0) array_push(segment, new __vec2(ox0, oy0));
|
||||||
array_push(triangles, [ new __vec2(ix0, iy0), new __vec2(nx1, ny1), new __vec2(ix1, iy1), c_white ]);
|
array_push(segment, new __vec2(ox1, oy1));
|
||||||
|
|
||||||
if(i == 0)
|
|
||||||
array_push(segment, new __vec2(nx0, ny0));
|
|
||||||
array_push(segment, new __vec2(nx1, ny1));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return [
|
return [ [{ type: SHAPE_TYPE.rectangle, triangles: triangles }], segment ];
|
||||||
[{ 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
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function SHAPE_arc(_sca, data = {}) {
|
function SHAPE_arc(_sca, data = {}) {
|
||||||
|
@ -368,8 +217,351 @@ function SHAPE_arc(_sca, data = {}) {
|
||||||
array_push(segment, sgArcI[0].clone());
|
array_push(segment, sgArcI[0].clone());
|
||||||
}
|
}
|
||||||
|
|
||||||
return [
|
return [ [{ type: SHAPE_TYPE.rectangle, triangles: triangles }], segment ];
|
||||||
[{ 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,19 +135,18 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
|
||||||
];
|
];
|
||||||
|
|
||||||
attributes.part_amount = 512;
|
attributes.part_amount = 512;
|
||||||
array_push(attributeEditors, ["Maximum particles", function() { return attributes.part_amount; },
|
array_push(attributeEditors, [ "Maximum particles", function() /*=>*/ {return attributes.part_amount}, new textBox(TEXTBOX_INPUT.number, function(v) /*=>*/ { attributes.part_amount = v; }) ]);
|
||||||
new textBox(TEXTBOX_INPUT.number, function(val) { attributes.part_amount = val; }) ]);
|
|
||||||
|
|
||||||
parts = array_create(attributes.part_amount);
|
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;
|
seed = 0;
|
||||||
spawn_index_raw = 0;
|
spawn_index_raw = 0;
|
||||||
spawn_index = 0;
|
spawn_index = 0;
|
||||||
scatter_index = 0;
|
scatter_index = 0;
|
||||||
def_surface = -1;
|
def_surface = -1;
|
||||||
|
surface_cache = {};
|
||||||
surface_cache = {};
|
|
||||||
|
|
||||||
wiggle_maps = {
|
wiggle_maps = {
|
||||||
wig_psx: new wiggleMap(seed, 1, 1000),
|
wig_psx: new wiggleMap(seed, 1, 1000),
|
||||||
|
@ -158,12 +157,9 @@ function Node_VFX_Spawner_Base(_x, _y, _group = noone) : Node(_x, _y, _group) co
|
||||||
wig_dir: new wiggleMap(seed, 1, 1000),
|
wig_dir: new wiggleMap(seed, 1, 1000),
|
||||||
};
|
};
|
||||||
|
|
||||||
curve_scale = noone;
|
curve_scale = noone;
|
||||||
curve_alpha = noone;
|
curve_alpha = noone;
|
||||||
curve_path_div = 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) {
|
static spawn = function(_time = CURRENT_FRAME, _pos = -1) {
|
||||||
var _inSurf = getInputData( 0);
|
var _inSurf = getInputData( 0);
|
||||||
|
|
|
@ -7,8 +7,7 @@ function __initCollection() {
|
||||||
var root = DIRECTORY + "Collections"; directory_verify(root);
|
var root = DIRECTORY + "Collections"; directory_verify(root);
|
||||||
var rootz = DIRECTORY + "Collections_cache"; directory_verify(rootz);
|
var rootz = DIRECTORY + "Collections_cache"; directory_verify(rootz);
|
||||||
|
|
||||||
if(check_version($"{root}/version"))
|
// if(check_version($"{root}/version")) zip_unzip("data/Collections.zip", root);
|
||||||
zip_unzip("data/Collections.zip", root);
|
|
||||||
|
|
||||||
COLLECTIONS = new DirectoryObject(DIRECTORY + "Collections");
|
COLLECTIONS = new DirectoryObject(DIRECTORY + "Collections");
|
||||||
refreshCollections();
|
refreshCollections();
|
||||||
|
@ -34,8 +33,7 @@ function searchCollection(_list, _search_str, _toList = true) {
|
||||||
while(!ds_stack_empty(st)) {
|
while(!ds_stack_empty(st)) {
|
||||||
var _st = ds_stack_pop(st);
|
var _st = ds_stack_pop(st);
|
||||||
for( var i = 0; i < ds_list_size(_st.content); i++ ) {
|
for( var i = 0; i < ds_list_size(_st.content); i++ ) {
|
||||||
var _nd = _st.content[| i];
|
var _nd = _st.content[| i];
|
||||||
|
|
||||||
var match = string_partial_match(string_lower(_nd.name), search_lower);
|
var match = string_partial_match(string_lower(_nd.name), search_lower);
|
||||||
if(match == -9999) continue;
|
if(match == -9999) continue;
|
||||||
|
|
||||||
|
|
|
@ -2,21 +2,24 @@ function dynaSurf_circle_fill(_x, _y, ss) {
|
||||||
switch(round(ss)) {
|
switch(round(ss)) {
|
||||||
case 0 :
|
case 0 :
|
||||||
case 1 :
|
case 1 :
|
||||||
draw_point(_x, _y);
|
draw_point( _x, _y );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2 :
|
case 2 :
|
||||||
draw_point(_x + 0, _y + 0);
|
draw_point( _x + 0, _y + 0 );
|
||||||
draw_point(_x + 1, _y + 0);
|
draw_point( _x + 1, _y + 0 );
|
||||||
draw_point(_x + 0, _y + 1);
|
draw_point( _x + 0, _y + 1 );
|
||||||
draw_point(_x + 1, _y + 1);
|
draw_point( _x + 1, _y + 1 );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3 :
|
case 3 :
|
||||||
draw_point(_x, _y);
|
draw_point( _x, _y );
|
||||||
draw_point(_x - 1, _y);
|
draw_point( _x - 1, _y );
|
||||||
draw_point(_x + 1, _y);
|
draw_point( _x + 1, _y );
|
||||||
draw_point(_x, _y + 1);
|
draw_point( _x, _y + 1 );
|
||||||
draw_point(_x, _y - 1);
|
draw_point( _x, _y - 1 );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default :
|
default :
|
||||||
draw_circle(_x, _y, ss - 2, false);
|
draw_circle(_x, _y, ss - 2, false);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -42,8 +42,8 @@
|
||||||
|
|
||||||
LATEST_VERSION = 1_18_00_0;
|
LATEST_VERSION = 1_18_00_0;
|
||||||
VERSION = 1_18_08_0;
|
VERSION = 1_18_08_0;
|
||||||
SAVE_VERSION = 1_18_05_0;
|
SAVE_VERSION = 1_18_09_0;
|
||||||
VERSION_STRING = MAC? "1.18.003m" : "1.18.8.1.002";
|
VERSION_STRING = MAC? "1.18.003m" : "1.18.9.001";
|
||||||
BUILD_NUMBER = 118080.002;
|
BUILD_NUMBER = 118080.002;
|
||||||
PREF_VERSION = 1_17_1;
|
PREF_VERSION = 1_17_1;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
function value_map(_val, _omin, _omax, _nmin, _nmax) {
|
function value_map(_val, _omin, _omax, _nmin, _nmax) {
|
||||||
if(_omax == _omin) return _nmin;
|
if(_omax == _omin) return _nmin;
|
||||||
|
|
||||||
return _nmin + (_val - _omin) / (_omax - _omin) * (_nmax - _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_mesh,
|
||||||
__d3d_input_list_transform,
|
__d3d_input_list_transform,
|
||||||
["Mesh", false], in_mesh + 0, in_mesh + 1, in_mesh + 2,
|
["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 ];
|
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 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) {
|
static drawJunctions = function(_draw, _x, _y, _mx, _my, _s) {
|
||||||
var _dval = PANEL_GRAPH.value_dragging;
|
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);
|
var _input = getInputJunctionIndex(i);
|
||||||
if(_input == noone) continue;
|
if(_input == noone) continue;
|
||||||
|
|
||||||
var _inp = inputs[_input];
|
var _inp = array_safe_get(inputs, _input);
|
||||||
if(!is_struct(_inp) || !is_instanceof(_inp, NodeValue)) continue;
|
if(!is_struct(_inp) || !is_instanceof(_inp, NodeValue)) continue;
|
||||||
|
|
||||||
_inp.visible_in_list = true;
|
_inp.visible_in_list = true;
|
||||||
|
@ -1670,7 +1670,7 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
||||||
draw_set_alpha(1);
|
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;
|
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 jy = _y + con_h * _s + wh / 2;
|
||||||
|
|
||||||
var rx = PANEL_GRAPH.x;
|
var rx = _panel.x;
|
||||||
var ry = PANEL_GRAPH.y;
|
var ry = _panel.y;
|
||||||
|
|
||||||
var extY = 0;
|
var extY = 0;
|
||||||
var drwT = _s > 0.5;
|
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 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 amo = input_display_list == -1? array_length(inputs) : array_length(input_display_list);
|
||||||
var jun;
|
var jun;
|
||||||
|
|
||||||
var xx = x * _s + _x;
|
var xx = x * _s + _x;
|
||||||
var yy = y * _s + _y;
|
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_input_name = _hov;
|
||||||
show_output_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_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);
|
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.value_dragging && _panel.node_hovering == self) {
|
||||||
if(PANEL_GRAPH.value_dragging.connect_type == CONNECT_TYPE.input) show_output_name = true;
|
if(_panel.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.connect_type == CONNECT_TYPE.output) show_input_name = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(show_input_name) {
|
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.drawNameBG(_s);
|
||||||
inspectInput1.drawName(_s, _mx, _my);
|
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.drawNameBG(_s);
|
||||||
inspectInput2.drawName(_s, _mx, _my);
|
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);
|
if(preview_draw) drawPreview(xx, yy, _s);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
var _hover = PANEL_GRAPH.node_hovering == self;
|
var _hover = _panel.node_hovering == self;
|
||||||
var _focus = PANEL_GRAPH.getFocusingNode() == self;
|
var _focus = _panel.getFocusingNode() == self;
|
||||||
|
|
||||||
onDrawNode(xx, yy, _mx, _my, _s, _hover, _focus);
|
onDrawNode(xx, yy, _mx, _my, _s, _hover, _focus);
|
||||||
}
|
}
|
||||||
catch(e) { log_warning("NODE onDrawNode", exception_print(e)); }
|
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;
|
draw_name = false;
|
||||||
if((previewable && _s >= 0.5) || (!previewable && h * _s >= name_height * .5)) drawNodeName(xx, yy, _s, _panel);
|
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(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));
|
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(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 = [
|
input_display_list = [
|
||||||
["Output", false], 0,
|
["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(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 = [
|
input_display_list = [
|
||||||
["Output", false], 0,
|
["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(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 = [
|
input_display_list = [
|
||||||
["Output", false], 0,
|
["Output", false], 0,
|
||||||
|
|
|
@ -136,7 +136,7 @@ function Node_Group_Input(_x, _y, _group = noone) : Node(_x, _y, _group) constru
|
||||||
dtype = -1;
|
dtype = -1;
|
||||||
range = 0;
|
range = 0;
|
||||||
|
|
||||||
onSetDisplayName = function() { attributes.inherit_name = false; }
|
onSetDisplayName = function() /*=>*/ { attributes.inherit_name = false; }
|
||||||
|
|
||||||
outputs[0].onSetTo = function(juncTo) {
|
outputs[0].onSetTo = function(juncTo) {
|
||||||
if(attributes.inherit_name && !LOADING && !APPENDING)
|
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);
|
var ind = array_find(GROUP_IO_TYPE_MAP, juncTo.type);
|
||||||
if(ind == -1) return;
|
if(ind == -1) return;
|
||||||
|
|
||||||
if(ind == inputs[2].getValue()) return;
|
|
||||||
|
|
||||||
outputs[0].setType(juncTo.type);
|
outputs[0].setType(juncTo.type);
|
||||||
inputs[2].setValue(ind);
|
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() {
|
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_2("scale", _sca);
|
||||||
shader_set_i("rscale", _rsca);
|
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();
|
surface_reset_shader();
|
||||||
|
|
||||||
return _outSurf;
|
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 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) {
|
static drawJunctions = function(_draw, _x, _y, _mx, _my, _s) {
|
||||||
var _dval = PANEL_GRAPH.value_dragging;
|
var _dval = PANEL_GRAPH.value_dragging;
|
||||||
|
|
|
@ -53,21 +53,17 @@ function Node_Shape(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con
|
||||||
|
|
||||||
newInput(1, nodeValue_Bool("Background", self, false));
|
newInput(1, nodeValue_Bool("Background", self, false));
|
||||||
|
|
||||||
shape_types = [
|
shape_types = [
|
||||||
"Rectangle", "Diamond", "Trapezoid", "Parallelogram", "Half",
|
"Rectangle", "Diamond", "Trapezoid", "Parallelogram", "Half",
|
||||||
-1, "Ellipse", "Arc", "Donut", "Crescent", "Disk Segment", "Pie", "Squircle",
|
-1, "Ellipse", "Arc", "Donut", "Crescent", "Disk Segment", "Pie", "Squircle",
|
||||||
-1, "Regular polygon", "Star", "Cross", "Rounded Cross",
|
-1, "Regular polygon", "Star", "Cross", "Rounded Cross",
|
||||||
-1, "Line", "Arrow",
|
-1, "Line", "Arrow",
|
||||||
-1, "Teardrop", "Leaf", "Heart", "Gear",
|
-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;
|
newInput(2, nodeValue_Enum_Scroll("Shape", self, 0, { data: shape_types_str, horizontal: true, text_pad: ui(16) }))
|
||||||
for( var i = 0, n = array_length(shape_types); i < n; i++ )
|
.setHistory([ shape_types, { cond: function() /*=>*/ {return LOADING_VERSION < 1_18_00_0}, list: global.node_shape_keys_18 } ]);
|
||||||
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(3, nodeValue_Area("Position", self, DEF_AREA_REF, { onSurfaceSize, useShape : false }))
|
newInput(3, nodeValue_Area("Position", self, DEF_AREA_REF, { onSurfaceSize, useShape : false }))
|
||||||
.setUnitRef(onSurfaceSize, VALUE_UNIT.reference);
|
.setUnitRef(onSurfaceSize, VALUE_UNIT.reference);
|
||||||
|
@ -612,4 +608,4 @@ global.node_shape_keys_18 = [
|
||||||
-1, "Ellipse", "Arc", "Donut", "Crescent", "Disk Segment", "Pie", "Squircle",
|
-1, "Ellipse", "Arc", "Donut", "Crescent", "Disk Segment", "Pie", "Squircle",
|
||||||
-1, "Regular polygon", "Star", "Cross", "Rounded Cross",
|
-1, "Regular polygon", "Star", "Cross", "Rounded Cross",
|
||||||
-1, "Teardrop", "Leaf", "Heart", "Arrow", "Gear",
|
-1, "Teardrop", "Leaf", "Heart", "Arrow", "Gear",
|
||||||
];
|
];
|
||||||
|
|
|
@ -8,10 +8,6 @@
|
||||||
function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
||||||
name = "Draw Shape Polygon";
|
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(0, nodeValue_Dimension(self));
|
||||||
|
|
||||||
newInput(1, nodeValue_Bool("Background", self, false));
|
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(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 ]))
|
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(6, nodeValue_Rotation("Rotation", self, 0));
|
||||||
|
|
||||||
newInput(7, nodeValue_Vec2("Scale", self, [ 0.5, 0.5 ]))
|
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))
|
newInput(8, nodeValue_Int("Sides", self, 16))
|
||||||
.setDisplay(VALUE_DISPLAY.slider, { range: [2, 64, 0.1] });
|
.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(0, nodeValue_Output("Surface Out", self, VALUE_TYPE.surface, noone));
|
||||||
|
|
||||||
newOutput(1, nodeValue_Output("Mesh", self, VALUE_TYPE.mesh, 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,
|
input_display_list = [ 16,
|
||||||
["Output", false], 0,
|
["Output", false], 0,
|
||||||
["Transform", false], 5, 6, 7,
|
["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,
|
["Piecewise", false], 18, 22,
|
||||||
["Render", true], 3, 23, 19, 20, 21, 24,
|
["Render", true], 3, 23, 19, 20, 21, 24,
|
||||||
["Background", true, 1], 2,
|
["Background", true, 1], 2,
|
||||||
|
@ -99,6 +113,9 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
|
||||||
|
|
||||||
temp_surface = [ noone ];
|
temp_surface = [ noone ];
|
||||||
|
|
||||||
|
mesh = new Mesh();
|
||||||
|
path = new PathSegment();
|
||||||
|
|
||||||
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
|
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
|
||||||
if(array_length(current_data) != array_length(inputs)) return;
|
if(array_length(current_data) != array_length(inputs)) return;
|
||||||
if(process_amount > 1) 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);
|
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) {
|
static processData = function(_outData, _data, _output_index, _array_index) {
|
||||||
var _dim = _data[0];
|
var _dim = _data[0];
|
||||||
var _bg = _data[1];
|
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 _pos = _data[5];
|
||||||
var _rot = _data[6];
|
var _rot = _data[6];
|
||||||
var _sca = _data[7];
|
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 _mesh = _data[16];
|
||||||
var _expld = _data[17];
|
|
||||||
var _prot = _data[18];
|
var _prot = _data[18];
|
||||||
var _psca = _data[22];
|
var _psca = _data[22];
|
||||||
var _pall = _data[23];
|
var _pall = _data[23];
|
||||||
var _aa = power(2, _data[24]);
|
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[ 8].setVisible(false);
|
||||||
inputs[ 9].setVisible(false);
|
inputs[ 9].setVisible(false);
|
||||||
inputs[10].setVisible(false);
|
inputs[10].setVisible(false);
|
||||||
|
@ -155,69 +175,99 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
|
||||||
inputs[14].setVisible(false);
|
inputs[14].setVisible(false);
|
||||||
inputs[15].setVisible(false);
|
inputs[15].setVisible(false);
|
||||||
inputs[17].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 _shapeName = array_safe_get_fast(shapesArray, _shp).name;
|
||||||
|
var _shapeFn = noone;
|
||||||
|
|
||||||
switch(_shapeName) {
|
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;
|
break;
|
||||||
|
|
||||||
case "Ellipse" : // 1
|
case "Parallelogram" : _shapeFn = SHAPE_parallelogram;
|
||||||
|
inputs[26].setVisible(true);
|
||||||
|
break;
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
case "Ellipse" : _shapeFn = SHAPE_circle;
|
||||||
inputs[ 8].setVisible(true);
|
inputs[ 8].setVisible(true);
|
||||||
inputs[17].setVisible(true);
|
inputs[17].setVisible(true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "Star" : // 2
|
case "Arc" : _shapeFn = SHAPE_arc;
|
||||||
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
|
|
||||||
inputs[ 8].setVisible(true);
|
inputs[ 8].setVisible(true);
|
||||||
inputs[ 9].setVisible(true);
|
inputs[ 9].setVisible(true);
|
||||||
inputs[14].setVisible(true);
|
inputs[14].setVisible(true);
|
||||||
inputs[15].setVisible(true);
|
inputs[15].setVisible(true);
|
||||||
break;
|
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[ 9].setVisible(true);
|
||||||
inputs[11].setVisible(true);
|
inputs[11].setVisible(true);
|
||||||
inputs[12].setVisible(true);
|
inputs[12].setVisible(true);
|
||||||
inputs[13].setVisible(true);
|
inputs[13].setVisible(true);
|
||||||
break;
|
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());
|
temp_surface[0] = surface_verify(temp_surface[0], _dim[0] * _aa, _dim[1] * _aa, attrDepth());
|
||||||
var _cPassAA = temp_surface[0];
|
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 tri0 = colorMultiply(_shc, _data[19]);
|
||||||
var tri1 = colorMultiply(_shc, _data[20]);
|
var tri1 = colorMultiply(_shc, _data[20]);
|
||||||
|
@ -245,28 +295,17 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
var shapeData = [];
|
if(_shapeFn == noone) {
|
||||||
|
draw_primitive_end();
|
||||||
switch(_shapeName) {
|
draw_set_alpha(1);
|
||||||
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:
|
surface_reset_target();
|
||||||
draw_primitive_end();
|
return [ _outSurf, mesh, path ];
|
||||||
draw_set_alpha(1);
|
|
||||||
|
|
||||||
surface_reset_target();
|
|
||||||
return [ _outSurf, mesh, path ];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var points = shapeData[0];
|
var shapeData = _shapeFn(_sca, data);
|
||||||
var segment = shapeData[1];
|
var points = shapeData[0];
|
||||||
|
var segment = shapeData[1];
|
||||||
|
|
||||||
if(_prot != 0 || _psca != 1)
|
if(_prot != 0 || _psca != 1)
|
||||||
for( var i = 0, n = array_length(points); i < n; i++ ) {
|
for( var i = 0, n = array_length(points); i < n; i++ ) {
|
||||||
|
@ -306,12 +345,8 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
|
||||||
path.setSegment(segment);
|
path.setSegment(segment);
|
||||||
|
|
||||||
var shapes = [];
|
var shapes = [];
|
||||||
for( var i = 0, n = array_length(points); i < n; i++ ) {
|
for( var i = 0, n = array_length(points); i < n; i++ )
|
||||||
if(points[i].type == SHAPE_TYPE.points)
|
shapes[i] = points[i].type == SHAPE_TYPE.points? polygon_triangulate(points[i].points)[0] : points[i].triangles;
|
||||||
shapes[i] = polygon_triangulate(points[i].points)[0];
|
|
||||||
else
|
|
||||||
shapes[i] = points[i].triangles;
|
|
||||||
}
|
|
||||||
|
|
||||||
var _plen = array_length(_pall);
|
var _plen = array_length(_pall);
|
||||||
mesh.triangles = [];
|
mesh.triangles = [];
|
||||||
|
@ -348,4 +383,6 @@ function Node_Shape_Polygon(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr
|
||||||
|
|
||||||
return [ _outSurf, mesh, path ];
|
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 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) {
|
static onDrawNodeBehind = function(_x, _y, _mx, _my, _s) {
|
||||||
var xx = x * _s + _x;
|
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 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) {
|
static onDrawNodeBehind = function(_x, _y, _mx, _my, _s) {
|
||||||
var xx = x * _s + _x;
|
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 {
|
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);
|
setDisplay(VALUE_DISPLAY.enum_scroll, _data);
|
||||||
|
|
||||||
|
/////============== SET =============
|
||||||
|
|
||||||
|
static setHistory = function(h) /*=>*/ { options_histories = h; return self; }
|
||||||
|
|
||||||
/////============== GET =============
|
/////============== GET =============
|
||||||
|
|
||||||
static getValue = function(_time = CURRENT_FRAME, applyUnit = true, arrIndex = 0, useCache = false, log = false) { //// Get value
|
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++ ) {
|
for( var i = 1, n = array_length(options_histories); i < n; i++ ) {
|
||||||
var _oph = options_histories[i];
|
var _oph = options_histories[i];
|
||||||
if(!_oph.cond()) continue;
|
if(_oph.cond()) { _load = _oph; break; }
|
||||||
|
|
||||||
_load = _oph;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(_load == noone) return;
|
if(_load == noone) return;
|
||||||
|
|
|
@ -2179,7 +2179,7 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||||
var _node = nodes_list[i];
|
var _node = nodes_list[i];
|
||||||
|
|
||||||
if(!display_parameter.show_control && _node.is_controller) continue;
|
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",
|
"%Name":"s_node_shape_poly_type",
|
||||||
"bboxMode":0,
|
"bboxMode":0,
|
||||||
"bbox_bottom":21,
|
"bbox_bottom":21,
|
||||||
"bbox_left":2,
|
"bbox_left":0,
|
||||||
"bbox_right":21,
|
"bbox_right":22,
|
||||||
"bbox_top":2,
|
"bbox_top":0,
|
||||||
"collisionKind":1,
|
"collisionKind":1,
|
||||||
"collisionTolerance":0,
|
"collisionTolerance":0,
|
||||||
"DynamicTexturePage":false,
|
"DynamicTexturePage":false,
|
||||||
"edgeFiltering":false,
|
"edgeFiltering":false,
|
||||||
"For3D":false,
|
"For3D":false,
|
||||||
"frames":[
|
"frames":[
|
||||||
{"$GMSpriteFrame":"","%Name":"e2d585d6-df00-47e6-99eb-075f6ae750b3","name":"e2d585d6-df00-47e6-99eb-075f6ae750b3","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":"ee3b6b78-cb81-405c-a667-feb55d72af92","name":"ee3b6b78-cb81-405c-a667-feb55d72af92","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":"562c7df2-7190-49c6-8c49-381f8ddfe586","name":"562c7df2-7190-49c6-8c49-381f8ddfe586","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":"1ad21eb3-2957-4d4d-926e-740ae1d19b0f","name":"1ad21eb3-2957-4d4d-926e-740ae1d19b0f","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":"3ed05dc1-67c7-4a63-b070-35ea04b1932a","name":"3ed05dc1-67c7-4a63-b070-35ea04b1932a","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":"423b0a1b-c4b4-45f0-bcfa-56109d4cf548","name":"423b0a1b-c4b4-45f0-bcfa-56109d4cf548","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":"a82a8f00-ddd0-4cf9-aecd-a1aa158d9a38","name":"a82a8f00-ddd0-4cf9-aecd-a1aa158d9a38","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":"42782bd5-2dd4-444f-b5e4-2c12fc7bed1c","name":"42782bd5-2dd4-444f-b5e4-2c12fc7bed1c","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,
|
"gridX":0,
|
||||||
"gridY":0,
|
"gridY":0,
|
||||||
"height":24,
|
"height":24,
|
||||||
"HTile":false,
|
"HTile":false,
|
||||||
"layers":[
|
"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",
|
"name":"s_node_shape_poly_type",
|
||||||
"nineSlice":null,
|
"nineSlice":null,
|
||||||
|
@ -56,7 +68,7 @@
|
||||||
},
|
},
|
||||||
"eventStubScript":null,
|
"eventStubScript":null,
|
||||||
"eventToFunction":{},
|
"eventToFunction":{},
|
||||||
"length":8.0,
|
"length":20.0,
|
||||||
"lockOrigin":false,
|
"lockOrigin":false,
|
||||||
"moments":{
|
"moments":{
|
||||||
"$KeyframeStore<MomentsEventKeyframe>":"",
|
"$KeyframeStore<MomentsEventKeyframe>":"",
|
||||||
|
@ -76,29 +88,65 @@
|
||||||
"tracks":[
|
"tracks":[
|
||||||
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
{"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore<SpriteFrameKeyframe>":"","Keyframes":[
|
||||||
{"$Keyframe<SpriteFrameKeyframe>":"","Channels":{
|
{"$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",},
|
"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":"9ef851f0-6902-4d24-9bfe-265eb3acfd03","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
},"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":{
|
{"$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",},
|
"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":"436e524f-51d7-45d4-883d-60f2a12074eb","IsCreationKey":false,"Key":1.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
},"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":{
|
{"$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",},
|
"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":"aa0b06fe-23a4-428f-bd81-9b2795ea6a94","IsCreationKey":false,"Key":2.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
},"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":{
|
{"$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",},
|
"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":"23162782-5342-425e-b8c6-25ea9d2d967a","IsCreationKey":false,"Key":3.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
},"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":{
|
{"$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",},
|
"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":"b44e1bc3-662e-40d2-af20-29c554ed2fa2","IsCreationKey":false,"Key":4.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
},"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":{
|
{"$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",},
|
"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":"54efa6bb-8740-4590-9b07-0e81a70c1701","IsCreationKey":false,"Key":5.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
},"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":{
|
{"$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",},
|
"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":"eb4429ba-e2cc-4dfe-95fa-c703fdf49969","IsCreationKey":false,"Key":6.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
},"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":{
|
{"$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",},
|
"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":"23165818-4a4d-42f6-9b70-596187996c9a","IsCreationKey":false,"Key":7.0,"Length":1.0,"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"2.0","Stretch":false,},
|
},"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,},
|
],"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
|
||||||
],
|
],
|
||||||
"visibleRange":null,
|
"visibleRange":null,
|
||||||
|
|