headless animation
|
@ -134,6 +134,8 @@
|
||||||
{"name":"for sort","order":11,"path":"folders/nodes/data/iterate/for sort.yy",},
|
{"name":"for sort","order":11,"path":"folders/nodes/data/iterate/for sort.yy",},
|
||||||
{"name":"lua","order":12,"path":"folders/nodes/data/lua.yy",},
|
{"name":"lua","order":12,"path":"folders/nodes/data/lua.yy",},
|
||||||
{"name":"misc","order":10,"path":"folders/nodes/data/misc.yy",},
|
{"name":"misc","order":10,"path":"folders/nodes/data/misc.yy",},
|
||||||
|
{"name":"lovify","order":26,"path":"folders/nodes/data/misc/lovify.yy",},
|
||||||
|
{"name":"spr","order":6,"path":"folders/nodes/data/misc/lovify/spr.yy",},
|
||||||
{"name":"MK effects","order":24,"path":"folders/nodes/data/MK effects.yy",},
|
{"name":"MK effects","order":24,"path":"folders/nodes/data/MK effects.yy",},
|
||||||
{"name":"mk flare","order":13,"path":"folders/nodes/data/MK effects/mk flare.yy",},
|
{"name":"mk flare","order":13,"path":"folders/nodes/data/MK effects/mk flare.yy",},
|
||||||
{"name":"src","order":1,"path":"folders/nodes/data/MK effects/mk flare/src.yy",},
|
{"name":"src","order":1,"path":"folders/nodes/data/MK effects/mk flare/src.yy",},
|
||||||
|
@ -268,8 +270,6 @@
|
||||||
{"name":"button","order":34,"path":"folders/widgets/button.yy",},
|
{"name":"button","order":34,"path":"folders/widgets/button.yy",},
|
||||||
{"name":"rotator","order":35,"path":"folders/widgets/rotator.yy",},
|
{"name":"rotator","order":35,"path":"folders/widgets/rotator.yy",},
|
||||||
{"name":"text","order":36,"path":"folders/widgets/text.yy",},
|
{"name":"text","order":36,"path":"folders/widgets/text.yy",},
|
||||||
{"name":"lovify","order":26,"path":"folders/nodes/data/misc/lovify.yy",},
|
|
||||||
{"name":"spr","order":6,"path":"folders/nodes/data/misc/lovify/spr.yy",},
|
|
||||||
],
|
],
|
||||||
"ResourceOrderSettings": [
|
"ResourceOrderSettings": [
|
||||||
{"name":"s_node_corner","order":13,"path":"sprites/s_node_corner/s_node_corner.yy",},
|
{"name":"s_node_corner","order":13,"path":"sprites/s_node_corner/s_node_corner.yy",},
|
||||||
|
|
|
@ -162,6 +162,8 @@
|
||||||
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"for","folderPath":"folders/nodes/data/iterate/for.yy",},
|
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"for","folderPath":"folders/nodes/data/iterate/for.yy",},
|
||||||
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"lua","folderPath":"folders/nodes/data/lua.yy",},
|
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"lua","folderPath":"folders/nodes/data/lua.yy",},
|
||||||
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"misc","folderPath":"folders/nodes/data/misc.yy",},
|
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"misc","folderPath":"folders/nodes/data/misc.yy",},
|
||||||
|
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"lovify","folderPath":"folders/nodes/data/misc/lovify.yy",},
|
||||||
|
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"spr","folderPath":"folders/nodes/data/misc/lovify/spr.yy",},
|
||||||
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"MK effects","folderPath":"folders/nodes/data/MK effects.yy",},
|
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"MK effects","folderPath":"folders/nodes/data/MK effects.yy",},
|
||||||
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"mk flare","folderPath":"folders/nodes/data/MK effects/mk flare.yy",},
|
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"mk flare","folderPath":"folders/nodes/data/MK effects/mk flare.yy",},
|
||||||
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"src","folderPath":"folders/nodes/data/MK effects/mk flare/src.yy",},
|
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"src","folderPath":"folders/nodes/data/MK effects/mk flare/src.yy",},
|
||||||
|
@ -304,8 +306,6 @@
|
||||||
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"button","folderPath":"folders/widgets/button.yy",},
|
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"button","folderPath":"folders/widgets/button.yy",},
|
||||||
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"rotator","folderPath":"folders/widgets/rotator.yy",},
|
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"rotator","folderPath":"folders/widgets/rotator.yy",},
|
||||||
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"text","folderPath":"folders/widgets/text.yy",},
|
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"text","folderPath":"folders/widgets/text.yy",},
|
||||||
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"lovify","folderPath":"folders/nodes/data/misc/lovify.yy",},
|
|
||||||
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"spr","folderPath":"folders/nodes/data/misc/lovify/spr.yy",},
|
|
||||||
],
|
],
|
||||||
"IncludedFiles": [
|
"IncludedFiles": [
|
||||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"ApolloHelp.html","ConfigValues":{"Itch":{"CopyToMask":"0",},},"CopyToMask":-1,"filePath":"datafiles",},
|
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"ApolloHelp.html","ConfigValues":{"Itch":{"CopyToMask":"0",},},"CopyToMask":-1,"filePath":"datafiles",},
|
||||||
|
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
|
@ -319,19 +319,24 @@
|
||||||
|
|
||||||
globalvar PROGRAM_ARGUMENTS;
|
globalvar PROGRAM_ARGUMENTS;
|
||||||
PROGRAM_ARGUMENTS = {
|
PROGRAM_ARGUMENTS = {
|
||||||
_cmd : false,
|
_cmd : false,
|
||||||
_run : false,
|
_run : false,
|
||||||
_persist : false,
|
_exporting : [],
|
||||||
|
_persist : false,
|
||||||
};
|
};
|
||||||
|
|
||||||
//.\PixelComposer.exe "D:/Project/MakhamDev/LTS-PixelComposer/TEST/terminal/outline.pxc" --h -image "D:/Project/MakhamDev/LTS-PixelComposer/TEST/terminal/05.png"
|
//.\PixelComposer.exe "D:/Project/MakhamDev/LTS-PixelComposer/TEST/terminal/outline.pxc" --h -image "D:/Project/MakhamDev/LTS-PixelComposer/TEST/terminal/05.png"
|
||||||
|
PROGRAM_ARGUMENTS._path = "D:/Project/MakhamDev/LTS-PixelComposer/TEST/terminal/moveup.pxc";
|
||||||
|
PROGRAM_ARGUMENTS.image = "D:/Project/MakhamDev/LTS-PixelComposer/TEST/terminal/05.png";
|
||||||
|
PROGRAM_ARGUMENTS._cmd = true;
|
||||||
|
PROGRAM_ARGUMENTS._run = true;
|
||||||
|
|
||||||
var paramCount = parameter_count();
|
var paramCount = parameter_count();
|
||||||
var paramType = "_path";
|
var paramType = "_path";
|
||||||
|
|
||||||
for( var i = 0; i < paramCount; i++ ) {
|
for( var i = 0; i < paramCount; i++ ) {
|
||||||
var param = parameter_string(i);
|
var param = parameter_string(i);
|
||||||
print($" >>> params {i}: {param}");
|
//print($" >>> params {i}: {param}");
|
||||||
|
|
||||||
if(string_starts_with(param, "--")) {
|
if(string_starts_with(param, "--")) {
|
||||||
switch(param) {
|
switch(param) {
|
||||||
|
@ -341,7 +346,6 @@
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "--h" :
|
case "--h" :
|
||||||
debug_event("OutputDebugOn");
|
|
||||||
PROGRAM_ARGUMENTS._cmd = true;
|
PROGRAM_ARGUMENTS._cmd = true;
|
||||||
PROGRAM_ARGUMENTS._run = true;
|
PROGRAM_ARGUMENTS._run = true;
|
||||||
break;
|
break;
|
||||||
|
@ -365,11 +369,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(struct_exists(PROGRAM_ARGUMENTS, "_path")) {
|
if(struct_has(PROGRAM_ARGUMENTS, "_path")) {
|
||||||
var path = PROGRAM_ARGUMENTS._path;
|
var path = PROGRAM_ARGUMENTS._path;
|
||||||
|
|
||||||
if(PROJECT == noone || PROJECT.path != path) {
|
if(PROJECT == noone || PROJECT.path != path) {
|
||||||
file_open_parameter = path;
|
file_open_parameter = path;
|
||||||
|
|
||||||
run_in(1, function() { load_file_path(file_open_parameter); });
|
run_in(1, function() { load_file_path(file_open_parameter); });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,26 +88,29 @@ _HOVERING_ELEMENT = noone;
|
||||||
PROJECT.animator.is_simulating = false;
|
PROJECT.animator.is_simulating = false;
|
||||||
array_foreach(PROJECT.nodeArray, function(_node) { if(!_node.active) return; _node.stepBegin(); });
|
array_foreach(PROJECT.nodeArray, function(_node) { if(!_node.active) return; _node.stepBegin(); });
|
||||||
|
|
||||||
if(IS_PLAYING || IS_RENDERING) {
|
if(PROGRAM_ARGUMENTS._run) {
|
||||||
|
if(PROJECT != noone && PROJECT.path != "") {
|
||||||
|
exportAll();
|
||||||
|
PROGRAM_ARGUMENTS._run = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if(IS_PLAYING || IS_RENDERING) {
|
||||||
if(PROJECT.animator.frame_progress) {
|
if(PROJECT.animator.frame_progress) {
|
||||||
__addon_preAnim();
|
__addon_preAnim();
|
||||||
|
|
||||||
if(IS_FIRST_FRAME)
|
if(IS_FIRST_FRAME)
|
||||||
ResetAllNodesRender();
|
ResetAllNodesRender();
|
||||||
Render(true);
|
|
||||||
|
if(IS_CMD) Render(false);
|
||||||
|
else Render(true);
|
||||||
|
|
||||||
__addon_postAnim();
|
__addon_postAnim();
|
||||||
}
|
}
|
||||||
PROJECT.animator.frame_progress = false;
|
PROJECT.animator.frame_progress = false;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if(UPDATE & RENDER_TYPE.full) {
|
if(UPDATE & RENDER_TYPE.full) {
|
||||||
if(PROGRAM_ARGUMENTS._run) {
|
Render();
|
||||||
exportAll();
|
|
||||||
PROGRAM_ARGUMENTS._run = false;
|
|
||||||
|
|
||||||
if(!IS_RENDERING && !PROGRAM_ARGUMENTS._persist) game_end();
|
|
||||||
} else
|
|
||||||
Render();
|
|
||||||
|
|
||||||
} else if(UPDATE & RENDER_TYPE.partial)
|
} else if(UPDATE & RENDER_TYPE.partial)
|
||||||
Render(true);
|
Render(true);
|
||||||
|
@ -116,6 +119,9 @@ _HOVERING_ELEMENT = noone;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(IS_CMD && PROGRAM_ARGUMENTS._run == false && array_empty(PROGRAM_ARGUMENTS._exporting) && !PROGRAM_ARGUMENTS._persist)
|
||||||
|
game_end();
|
||||||
|
|
||||||
UPDATE = RENDER_TYPE.none;
|
UPDATE = RENDER_TYPE.none;
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
|
@ -187,8 +187,7 @@ function __initNodeCustom(list) { #region
|
||||||
if(_info == noone) continue;
|
if(_info == noone) continue;
|
||||||
|
|
||||||
var _spr = sprite_add_center(_dir + _info.icon);
|
var _spr = sprite_add_center(_dir + _info.icon);
|
||||||
var _n = new NodeObject(_info.name, _spr, "Node_Custom", [ 0, Node_create_Custom, { path: _dir_raw } ], _info.tags);
|
var _n = new NodeObject(_info.name, _spr, "Node_Custom", [ 0, Node_create_Custom, { path: _dir_raw } ], _info.tooltip, _info.tags);
|
||||||
_n.tooltip = _info.tooltip;
|
|
||||||
|
|
||||||
var _tol = _dir + _info.tooltip_spr;
|
var _tol = _dir + _info.tooltip_spr;
|
||||||
if(file_exists_empty(_tol)) _n.tooltip_spr = sprite_add(_tol, 0, false, false, 0, 0);
|
if(file_exists_empty(_tol)) _n.tooltip_spr = sprite_add(_tol, 0, false, false, 0, 0);
|
||||||
|
|
|
@ -153,7 +153,10 @@
|
||||||
time_since_last_frame += delta_time / 1_000_000;
|
time_since_last_frame += delta_time / 1_000_000;
|
||||||
var tslf = time_since_last_frame;
|
var tslf = time_since_last_frame;
|
||||||
|
|
||||||
if(time_since_last_frame >= _frTime) {
|
if(0 && IS_CMD) {
|
||||||
|
setFrame(real_frame + 1);
|
||||||
|
|
||||||
|
} else if(time_since_last_frame >= _frTime) {
|
||||||
var dt = time_since_last_frame - _frTime;
|
var dt = time_since_last_frame - _frTime;
|
||||||
setFrame(real_frame + 1);
|
setFrame(real_frame + 1);
|
||||||
time_since_last_frame = dt;
|
time_since_last_frame = dt;
|
||||||
|
@ -166,8 +169,6 @@
|
||||||
is_playing = false;
|
is_playing = false;
|
||||||
is_rendering = false;
|
is_rendering = false;
|
||||||
time_since_last_frame = 0;
|
time_since_last_frame = 0;
|
||||||
|
|
||||||
if(PROGRAM_ARGUMENTS._cmd && !PROGRAM_ARGUMENTS._persist) game_end();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,16 +26,16 @@ function __log(title, str, fname = "log/log.txt") { #region
|
||||||
|
|
||||||
function log_message(title, str, icon = noone, flash = false, write = true) { #region
|
function log_message(title, str, icon = noone, flash = false, write = true) { #region
|
||||||
if(TEST_ERROR) return;
|
if(TEST_ERROR) return;
|
||||||
if(IS_CMD) return;
|
if(IS_CMD) { show_debug_message($"{title}: {str}"); return; }
|
||||||
|
|
||||||
if(write) __log("[MESSAGE] ", string(title) + ": " + string(str));
|
if(write) __log("[MESSAGE] ", $"{title}: {str}");
|
||||||
|
|
||||||
return noti_status(string(title) + ": " + string(str), icon, flash);
|
return noti_status($"{title}: {str}", icon, flash);
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
function log_warning(title, str, ref = noone) { #region
|
function log_warning(title, str, ref = noone) { #region
|
||||||
if(TEST_ERROR) return;
|
if(TEST_ERROR) return;
|
||||||
if(IS_CMD) return;
|
if(IS_CMD) { show_debug_message($"{title}: {str}"); return; }
|
||||||
|
|
||||||
__log("[WARNING] ", string(title) + ": " + string(str));
|
__log("[WARNING] ", string(title) + ": " + string(str));
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ function log_warning(title, str, ref = noone) { #region
|
||||||
|
|
||||||
function log_crash(str) { #region
|
function log_crash(str) { #region
|
||||||
if(TEST_ERROR) return;
|
if(TEST_ERROR) return;
|
||||||
if(IS_CMD) return;
|
if(IS_CMD) { show_debug_message($"{title}: {str}"); return; }
|
||||||
|
|
||||||
__log("[ERROR] ", string(str));
|
__log("[ERROR] ", string(str));
|
||||||
|
|
||||||
|
|
|
@ -259,7 +259,7 @@ function LOAD_AT(path, readonly = false, override = false) { #region
|
||||||
|
|
||||||
if(!IS_CMD) run_in(1, PANEL_GRAPH.toCenterNode);
|
if(!IS_CMD) run_in(1, PANEL_GRAPH.toCenterNode);
|
||||||
|
|
||||||
//print($"========== Load completed in {(get_timer() - t) / 1000} ms ==========");
|
//print($"========== Load {ds_map_size(PROJECT.nodeMap)} nodes completed in {(get_timer() - t) / 1000} ms ==========");
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
|
@ -263,7 +263,9 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
||||||
static createNewInput = noone;
|
static createNewInput = noone;
|
||||||
|
|
||||||
static initTooltip = function() { #region
|
static initTooltip = function() { #region
|
||||||
var type_self/*:string*/ = instanceof(self);
|
if(IS_CMD) return;
|
||||||
|
|
||||||
|
var type_self = instanceof(self);
|
||||||
if(!struct_has(global.NODE_GUIDE, type_self)) return;
|
if(!struct_has(global.NODE_GUIDE, type_self)) return;
|
||||||
|
|
||||||
var _n = global.NODE_GUIDE[$ type_self];
|
var _n = global.NODE_GUIDE[$ type_self];
|
||||||
|
|
|
@ -23,13 +23,14 @@ function exportAll() {
|
||||||
if(IS_RENDERING) return;
|
if(IS_RENDERING) return;
|
||||||
|
|
||||||
var key = ds_map_find_first(PROJECT.nodeMap);
|
var key = ds_map_find_first(PROJECT.nodeMap);
|
||||||
|
|
||||||
repeat(ds_map_size(PROJECT.nodeMap)) {
|
repeat(ds_map_size(PROJECT.nodeMap)) {
|
||||||
var node = PROJECT.nodeMap[? key];
|
var node = PROJECT.nodeMap[? key];
|
||||||
key = ds_map_find_next(PROJECT.nodeMap, key);
|
key = ds_map_find_next(PROJECT.nodeMap, key);
|
||||||
|
|
||||||
if(!node.active) continue;
|
if(!node.active) continue;
|
||||||
if(!is_instanceof(node, Node_Export)) continue;
|
if(!is_instanceof(node, Node_Export)) continue;
|
||||||
|
|
||||||
node.doInspectorAction();
|
node.doInspectorAction();
|
||||||
}
|
}
|
||||||
} #endregion
|
} #endregion
|
||||||
|
@ -550,6 +551,8 @@ function Node_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
static export = function() { #region
|
static export = function() { #region
|
||||||
|
//print($">>>>>>>>>>>>>>>>>>>> export {CURRENT_FRAME} <<<<<<<<<<<<<<<<<<<<");
|
||||||
|
|
||||||
var surf = getInputData( 0);
|
var surf = getInputData( 0);
|
||||||
var path = getInputData( 1);
|
var path = getInputData( 1);
|
||||||
var suff = getInputData( 2);
|
var suff = getInputData( 2);
|
||||||
|
@ -713,6 +716,8 @@ function Node_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
|
||||||
|
|
||||||
PROJECT.animator.render();
|
PROJECT.animator.render();
|
||||||
|
|
||||||
|
if(IS_CMD) array_push(PROGRAM_ARGUMENTS._exporting, node_id);
|
||||||
|
|
||||||
if(directory_exists(directory))
|
if(directory_exists(directory))
|
||||||
directory_destroy(directory);
|
directory_destroy(directory);
|
||||||
directory_create(directory);
|
directory_create(directory);
|
||||||
|
@ -807,6 +812,8 @@ function Node_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
|
||||||
}
|
}
|
||||||
|
|
||||||
render_process_id = 0;
|
render_process_id = 0;
|
||||||
|
|
||||||
|
if(IS_CMD) array_remove(PROGRAM_ARGUMENTS._exporting, node_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
|
@ -116,8 +116,6 @@ function Node_Image(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
|
||||||
draw_sprite(spr, 0, pad[2], pad[1]);
|
draw_sprite(spr, 0, pad[2], pad[1]);
|
||||||
surface_reset_shader();
|
surface_reset_shader();
|
||||||
|
|
||||||
//print($"Image: {spr} | {_outsurf} | {surface_exists(_outsurf)}");
|
|
||||||
|
|
||||||
if(!first_update) return;
|
if(!first_update) return;
|
||||||
first_update = false;
|
first_update = false;
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
function NodeObject(_name, _spr, _node, _create, tags = []) constructor { #region
|
function NodeObject(_name, _spr, _node, _create, tooltip = "", tags = []) constructor { #region
|
||||||
name = _name;
|
name = _name;
|
||||||
spr = _spr;
|
spr = _spr;
|
||||||
node = _node;
|
node = _node;
|
||||||
icon = noone;
|
icon = noone;
|
||||||
|
|
||||||
createNode = _create;
|
createNode = _create;
|
||||||
self.tags = tags;
|
|
||||||
new_node = false;
|
|
||||||
|
|
||||||
tooltip = "";
|
self.tags = tags;
|
||||||
|
self.tooltip = tooltip;
|
||||||
|
|
||||||
|
new_node = false;
|
||||||
tooltip_spr = noone;
|
tooltip_spr = noone;
|
||||||
deprecated = false;
|
deprecated = false;
|
||||||
|
|
||||||
|
@ -17,20 +18,22 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { #regio
|
||||||
|
|
||||||
is_patreon_extra = false;
|
is_patreon_extra = false;
|
||||||
|
|
||||||
if(!IS_CMD) {
|
if(!IS_CMD) { #region
|
||||||
var pth = DIRECTORY + "Nodes/tooltip/" + node + ".png";
|
var pth = DIRECTORY + "Nodes/tooltip/" + node + ".png";
|
||||||
if(file_exists_empty(pth)) tooltip_spr = sprite_add(pth, 0, false, false, 0, 0);
|
if(file_exists_empty(pth)) tooltip_spr = sprite_add(pth, 0, false, false, 0, 0);
|
||||||
}
|
|
||||||
|
if(struct_has(global.NODE_GUIDE, node)) {
|
||||||
if(!IS_CMD && struct_has(global.NODE_GUIDE, node)) { #region
|
var _n = global.NODE_GUIDEarn[$ node];
|
||||||
var _n = global.NODE_GUIDEarn[$ node];
|
name = _n.name;
|
||||||
name = _n.name;
|
if(_n.tooltip != "")
|
||||||
if(_n.tooltip != "")
|
tooltip = _n.tooltip;
|
||||||
tooltip = _n.tooltip;
|
}
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
static setVersion = function(version) { #region
|
static setVersion = function(version) { #region
|
||||||
INLINE
|
INLINE
|
||||||
|
if(!IS_CMD) return self;
|
||||||
|
|
||||||
new_node = version >= LATEST_VERSION;
|
new_node = version >= LATEST_VERSION;
|
||||||
|
|
||||||
if(new_node) {
|
if(new_node) {
|
||||||
|
@ -46,30 +49,40 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { #regio
|
||||||
|
|
||||||
static setIcon = function(icon) { #region
|
static setIcon = function(icon) { #region
|
||||||
INLINE
|
INLINE
|
||||||
|
if(!IS_CMD) return self;
|
||||||
|
|
||||||
self.icon = icon;
|
self.icon = icon;
|
||||||
return self;
|
return self;
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
static isDeprecated = function() { #region
|
static isDeprecated = function() { #region
|
||||||
INLINE
|
INLINE
|
||||||
|
if(!IS_CMD) return self;
|
||||||
|
|
||||||
deprecated = true;
|
deprecated = true;
|
||||||
return self;
|
return self;
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
static hideRecent = function() { #region
|
static hideRecent = function() { #region
|
||||||
INLINE
|
INLINE
|
||||||
|
if(!IS_CMD) return self;
|
||||||
|
|
||||||
show_in_recent = false;
|
show_in_recent = false;
|
||||||
return self;
|
return self;
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
static hideGlobal = function() { #region
|
static hideGlobal = function() { #region
|
||||||
INLINE
|
INLINE
|
||||||
|
if(!IS_CMD) return self;
|
||||||
|
|
||||||
show_in_global = false;
|
show_in_global = false;
|
||||||
return self;
|
return self;
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
static patreonExtra = function() { #region
|
static patreonExtra = function() { #region
|
||||||
INLINE
|
INLINE
|
||||||
|
if(!IS_CMD) return self;
|
||||||
|
|
||||||
is_patreon_extra = true;
|
is_patreon_extra = true;
|
||||||
|
|
||||||
ds_list_add(SUPPORTER_NODES, self);
|
ds_list_add(SUPPORTER_NODES, self);
|
||||||
|
@ -185,13 +198,12 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { #regio
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
#region globalvar
|
#region globalvar
|
||||||
globalvar ALL_NODES, ALL_NODE_LIST, NODE_CATEGORY, NODE_PB_CATEGORY, NODE_PCX_CATEGORY;
|
globalvar ALL_NODES, NODE_CATEGORY, NODE_PB_CATEGORY, NODE_PCX_CATEGORY;
|
||||||
globalvar SUPPORTER_NODES, NEW_NODES;
|
globalvar SUPPORTER_NODES, NEW_NODES;
|
||||||
|
|
||||||
globalvar NODE_PAGE_DEFAULT;
|
globalvar NODE_PAGE_DEFAULT;
|
||||||
|
|
||||||
ALL_NODES = ds_map_create();
|
ALL_NODES = ds_map_create();
|
||||||
ALL_NODE_LIST = ds_list_create();
|
|
||||||
NODE_CATEGORY = ds_list_create();
|
NODE_CATEGORY = ds_list_create();
|
||||||
NODE_PB_CATEGORY = ds_list_create();
|
NODE_PB_CATEGORY = ds_list_create();
|
||||||
NODE_PCX_CATEGORY = ds_list_create();
|
NODE_PCX_CATEGORY = ds_list_create();
|
||||||
|
@ -213,18 +225,15 @@ function nodeBuild(_name, _x, _y, _group = PANEL_GRAPH.getCurrentContext()) { #r
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
function addNodeObject(_list, _name, _spr, _node, _fun, _tag = [], tooltip = "") { #region
|
function addNodeObject(_list, _name, _spr, _node, _fun, _tag = [], tooltip = "") { #region
|
||||||
var _n;
|
if(ds_map_exists(ALL_NODES, _node)) {
|
||||||
|
var _n = ALL_NODES[? _node];
|
||||||
if(ds_map_exists(ALL_NODES, _node))
|
ds_list_add(_list, _n);
|
||||||
_n = ALL_NODES[? _node];
|
return _n;
|
||||||
else {
|
|
||||||
_n = new NodeObject(_name, _spr, _node, _fun, _tag);
|
|
||||||
if(!ds_map_exists(ALL_NODES, _node))
|
|
||||||
ds_list_add(ALL_NODE_LIST, _n);
|
|
||||||
ALL_NODES[? _node] = _n;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(tooltip != "") _n.tooltip = tooltip;
|
var _n = new NodeObject(_name, _spr, _node, _fun, tooltip, _tag);
|
||||||
|
ALL_NODES[? _node] = _n;
|
||||||
|
|
||||||
ds_list_add(_list, _n);
|
ds_list_add(_list, _n);
|
||||||
return _n;
|
return _n;
|
||||||
} #endregion
|
} #endregion
|
||||||
|
@ -439,7 +448,7 @@ function __initNodes() {
|
||||||
addNodeObject(strandSim, "Strand Collision", s_node_strandSim_collide, "Node_Strand_Collision", [1, Node_Strand_Collision],, "Create solid object for strands to collides to.").hideRecent().setVersion(1140);
|
addNodeObject(strandSim, "Strand Collision", s_node_strandSim_collide, "Node_Strand_Collision", [1, Node_Strand_Collision],, "Create solid object for strands to collides to.").hideRecent().setVersion(1140);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
|
////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
|
||||||
|
|
||||||
var input = ds_list_create(); #region
|
var input = ds_list_create(); #region
|
||||||
addNodeCatagory("IO", input);
|
addNodeCatagory("IO", input);
|
||||||
|
@ -496,7 +505,7 @@ function __initNodes() {
|
||||||
addNodeObject(transform, "Composite", s_node_compose, "Node_Composite", [1, Node_Composite], ["merge"], "Combine multiple images with controllable position, rotation, scale.");
|
addNodeObject(transform, "Composite", s_node_compose, "Node_Composite", [1, Node_Composite], ["merge"], "Combine multiple images with controllable position, rotation, scale.");
|
||||||
addNodeObject(transform, "Nine Slice", s_node_9patch, "Node_9Slice", [1, Node_9Slice], ["9 slice", "splice"], "Cut image into 3x3 parts, and scale/repeat only the middle part.");
|
addNodeObject(transform, "Nine Slice", s_node_9patch, "Node_9Slice", [1, Node_9Slice], ["9 slice", "splice"], "Cut image into 3x3 parts, and scale/repeat only the middle part.");
|
||||||
addNodeObject(transform, "Padding", s_node_padding, "Node_Padding", [1, Node_Padding],, "Make image bigger by adding space in 4 directions.");
|
addNodeObject(transform, "Padding", s_node_padding, "Node_Padding", [1, Node_Padding],, "Make image bigger by adding space in 4 directions.");
|
||||||
//addNodeObject(transform, "Tile Random", s_node_padding, "Node_Tile_Random", [1, Node_Tile_Random]);
|
addNodeObject(transform, "Tile Random", s_node_padding, "Node_Tile_Random", [1, Node_Tile_Random]);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
var filter = ds_list_create(); #region
|
var filter = ds_list_create(); #region
|
||||||
|
|
|
@ -86,7 +86,6 @@ function SAVE_ALL() { #region
|
||||||
function SAVE(project = PROJECT) { #region
|
function SAVE(project = PROJECT) { #region
|
||||||
if(DEMO) return false;
|
if(DEMO) return false;
|
||||||
|
|
||||||
print("SAVE");
|
|
||||||
if(project.path == "" || project.readonly)
|
if(project.path == "" || project.readonly)
|
||||||
return SAVE_AS(project);
|
return SAVE_AS(project);
|
||||||
return SAVE_AT(project, project.path);
|
return SAVE_AT(project, project.path);
|
||||||
|
|
|
@ -27,6 +27,8 @@ function shell_execute(path, command, ref = noone) { #region
|
||||||
function shell_execute_async(path, command, ref = noone) { #region
|
function shell_execute_async(path, command, ref = noone) { #region
|
||||||
INLINE
|
INLINE
|
||||||
|
|
||||||
|
if(IS_CMD) return shell_execute(path, command, ref);
|
||||||
|
|
||||||
if(OS == os_macosx) {
|
if(OS == os_macosx) {
|
||||||
path = string_replace_all(path, "\\", "/");
|
path = string_replace_all(path, "\\", "/");
|
||||||
command = string_replace_all(command, "\\", "/");
|
command = string_replace_all(command, "\\", "/");
|
||||||
|
|