removed the node.data field, now you must use onSerialize and onConfigure

This commit is contained in:
tamat
2018-11-20 16:42:51 +01:00
parent 259b30b714
commit 5984788e17
3 changed files with 4 additions and 8 deletions

View File

@@ -1767,7 +1767,6 @@ LGraphNode.prototype._ctor = function( title )
this.properties = {}; //for the values
this.properties_info = []; //for the info
this.data = null; //persistent local data
this.flags = {};
}
@@ -1888,7 +1887,6 @@ LGraphNode.prototype.serialize = function()
type: this.type,
pos: this.pos,
size: this.size,
data: this.data,
flags: LiteGraph.cloneObject(this.flags),
mode: this.mode
};

View File

@@ -41,10 +41,10 @@ this._version++;this.sendActionToCanvas("onConnectionChange")};h.prototype.isLiv
[],c=0,g=this._nodes.length;c<g;++c)a.push(this._nodes[c].serialize());g=[];for(c in this.links){var b=this.links[c];g.push([b.id,b.origin_id,b.origin_slot,b.target_id,b.target_slot,b.type])}b=[];for(c=0;c<this._groups.length;++c)b.push(this._groups[c].serialize());return{last_node_id:this.last_node_id,last_link_id:this.last_link_id,nodes:a,links:g,groups:b,config:this.config}};h.prototype.configure=function(a,c){if(a){c||this.clear();var g=a.nodes;if(a.links&&a.links.constructor===Array){for(var b=
[],e=0;e<a.links.length;++e){var k=a.links[e];b[k[0]]={id:k[0],origin_id:k[1],origin_slot:k[2],target_id:k[3],target_slot:k[4],type:k[5]}}a.links=b}for(e in a)this[e]=a[e];b=!1;this._nodes=[];if(g){e=0;for(k=g.length;e<k;++e){var q=g[e],d=l.createNode(q.type,q.title);d?(d.id=q.id,this.add(d,!0)):(l.debug&&console.log("Node not found: "+q.type),b=!0)}e=0;for(k=g.length;e<k;++e)q=g[e],(d=this.getNodeById(q.id))&&d.configure(q)}this._groups.length=0;if(a.groups)for(e=0;e<a.groups.length;++e)g=new l.LGraphGroup,
g.configure(a.groups[e]),this.add(g);this.updateExecutionOrder();this._version++;this.setDirtyCanvas(!0,!0);return b}};h.prototype.load=function(a){var c=this,g=new XMLHttpRequest;g.open("GET",a,!0);g.send(null);g.onload=function(a){200!==g.status?console.error("Error loading graph:",g.status,g.response):(a=JSON.parse(g.response),c.configure(a))};g.onerror=function(a){console.error("Error loading graph:",a)}};h.prototype.onNodeTrace=function(a,c,g){};u.LGraphNode=l.LGraphNode=f;f.prototype._ctor=
function(a){this.title=a||"Unnamed";this.size=[l.NODE_WIDTH,60];this.graph=null;this._pos=new Float32Array(10,10);Object.defineProperty(this,"pos",{set:function(a){!a||2>a.length||(this._pos[0]=a[0],this._pos[1]=a[1])},get:function(){return this._pos},enumerable:!0});this.id=-1;this.type=null;this.inputs=[];this.outputs=[];this.connections=[];this.properties={};this.properties_info=[];this.data=null;this.flags={}};f.prototype.configure=function(a){this.graph&&this.graph._version++;for(var c in a)if("console"!=
c)if("properties"==c)for(var g in a.properties){if(this.properties[g]=a.properties[g],this.onPropertyChanged)this.onPropertyChanged(g,a.properties[g])}else null!=a[c]&&("object"==typeof a[c]?this[c]&&this[c].configure?this[c].configure(a[c]):this[c]=l.cloneObject(a[c],this[c]):this[c]=a[c]);a.title||(this.title=this.constructor.title);if(this.onConnectionsChange){if(this.inputs)for(var b=0;b<this.inputs.length;++b){g=this.inputs[b];var e=this.graph?this.graph.links[g.link]:null;this.onConnectionsChange(l.INPUT,
b,!0,e,g)}if(this.outputs)for(b=0;b<this.outputs.length;++b)if(g=this.outputs[b],g.links)for(c=0;c<g.links.length;++c)e=this.graph?this.graph.links[g.links[c]]:null,this.onConnectionsChange(l.OUTPUT,b,!0,e,g)}for(b in this.inputs)g=this.inputs[b],g.link&&g.link.length&&(e=g.link,"object"==typeof e&&(g.link=e[0],this.graph&&(this.graph.links[e[0]]={id:e[0],origin_id:e[1],origin_slot:e[2],target_id:e[3],target_slot:e[4]})));for(b in this.outputs)if(g=this.outputs[b],g.links&&0!=g.links.length)for(c in g.links)e=
g.links[c],"object"==typeof e&&(g.links[c]=e[0]);if(this.onConfigure)this.onConfigure(a)};f.prototype.serialize=function(){var a={id:this.id,type:this.type,pos:this.pos,size:this.size,data:this.data,flags:l.cloneObject(this.flags),mode:this.mode};this.inputs&&(a.inputs=this.inputs);if(this.outputs){for(var c=0;c<this.outputs.length;c++)delete this.outputs[c]._data;a.outputs=this.outputs}this.title&&this.title!=this.constructor.title&&(a.title=this.title);this.properties&&(a.properties=l.cloneObject(this.properties));
function(a){this.title=a||"Unnamed";this.size=[l.NODE_WIDTH,60];this.graph=null;this._pos=new Float32Array(10,10);Object.defineProperty(this,"pos",{set:function(a){!a||2>a.length||(this._pos[0]=a[0],this._pos[1]=a[1])},get:function(){return this._pos},enumerable:!0});this.id=-1;this.type=null;this.inputs=[];this.outputs=[];this.connections=[];this.properties={};this.properties_info=[];this.flags={}};f.prototype.configure=function(a){this.graph&&this.graph._version++;for(var c in a)if("console"!=c)if("properties"==
c)for(var g in a.properties){if(this.properties[g]=a.properties[g],this.onPropertyChanged)this.onPropertyChanged(g,a.properties[g])}else null!=a[c]&&("object"==typeof a[c]?this[c]&&this[c].configure?this[c].configure(a[c]):this[c]=l.cloneObject(a[c],this[c]):this[c]=a[c]);a.title||(this.title=this.constructor.title);if(this.onConnectionsChange){if(this.inputs)for(var b=0;b<this.inputs.length;++b){g=this.inputs[b];var e=this.graph?this.graph.links[g.link]:null;this.onConnectionsChange(l.INPUT,b,!0,
e,g)}if(this.outputs)for(b=0;b<this.outputs.length;++b)if(g=this.outputs[b],g.links)for(c=0;c<g.links.length;++c)e=this.graph?this.graph.links[g.links[c]]:null,this.onConnectionsChange(l.OUTPUT,b,!0,e,g)}for(b in this.inputs)g=this.inputs[b],g.link&&g.link.length&&(e=g.link,"object"==typeof e&&(g.link=e[0],this.graph&&(this.graph.links[e[0]]={id:e[0],origin_id:e[1],origin_slot:e[2],target_id:e[3],target_slot:e[4]})));for(b in this.outputs)if(g=this.outputs[b],g.links&&0!=g.links.length)for(c in g.links)e=
g.links[c],"object"==typeof e&&(g.links[c]=e[0]);if(this.onConfigure)this.onConfigure(a)};f.prototype.serialize=function(){var a={id:this.id,type:this.type,pos:this.pos,size:this.size,flags:l.cloneObject(this.flags),mode:this.mode};this.inputs&&(a.inputs=this.inputs);if(this.outputs){for(var c=0;c<this.outputs.length;c++)delete this.outputs[c]._data;a.outputs=this.outputs}this.title&&this.title!=this.constructor.title&&(a.title=this.title);this.properties&&(a.properties=l.cloneObject(this.properties));
a.type||(a.type=this.constructor.type);this.color&&(a.color=this.color);this.bgcolor&&(a.bgcolor=this.bgcolor);this.boxcolor&&(a.boxcolor=this.boxcolor);this.shape&&(a.shape=this.shape);this.onSerialize&&this.onSerialize(a)&&console.warn("node onSerialize shouldnt return anything, data should be stored in the object pass in the first parameter");return a};f.prototype.clone=function(){var a=l.createNode(this.type),c=l.cloneObject(this.serialize());if(c.inputs)for(var g=0;g<c.inputs.length;++g)c.inputs[g].link=
null;if(c.outputs)for(g=0;g<c.outputs.length;++g)c.outputs[g].links&&(c.outputs[g].links.length=0);delete c.id;a.configure(c);return a};f.prototype.toString=function(){return JSON.stringify(this.serialize())};f.prototype.getTitle=function(){return this.title||this.constructor.title};f.prototype.setOutputData=function(a,c){if(this.outputs&&!(-1==a||a>=this.outputs.length)){var g=this.outputs[a];if(g&&(g._data=c,this.outputs[a].links))for(g=0;g<this.outputs[a].links.length;g++)this.graph.links[this.outputs[a].links[g]].data=
c}};f.prototype.getInputData=function(a,c){if(this.inputs&&!(a>=this.inputs.length||null==this.inputs[a].link)){var g=this.graph.links[this.inputs[a].link];if(!g)return null;if(!c)return g.data;var b=this.graph.getNodeById(g.origin_id);if(!b)return g.data;if(b.updateOutputData)b.updateOutputData(g.origin_slot);else if(b.onExecute)b.onExecute();return g.data}};f.prototype.getInputDataByName=function(a,c){var g=this.findInputSlot(a);return-1==g?null:this.getInputData(g,c)};f.prototype.isInputConnected=

View File

@@ -1765,7 +1765,6 @@ LGraphNode.prototype._ctor = function( title )
this.properties = {}; //for the values
this.properties_info = []; //for the info
this.data = null; //persistent local data
this.flags = {};
}
@@ -1886,7 +1885,6 @@ LGraphNode.prototype.serialize = function()
type: this.type,
pos: this.pos,
size: this.size,
data: this.data,
flags: LiteGraph.cloneObject(this.flags),
mode: this.mode
};