//public void UpdateNodeIDs(bool alsoReorderList) //{ // var lastID = 0; // //set the rest starting from nodes without parent(s) // var tempList = allNodes.OrderBy(n => n.inConnections.Count != 0).ToList(); // for (var i = 0; i < tempList.Count; i++) // { // lastID = tempList[i].AssignIDToGraph(lastID); // } // //reset the check // for (var i = 0; i < allNodes.Count; i++) // { // allNodes[i].ResetRecursion(); // } // if (alsoReorderList) // { // allNodes = allNodes.OrderBy(node => node.ID).ToList(); // } //} public bool Deserialize(string jsonContext, bool validate) { if (string.IsNullOrEmpty(jsonContext)) { return(false); } try { GraphSerializationData data = JSONSerializer.Deserialize <GraphSerializationData>(jsonContext); if (LoadGraphData(data, validate) == true) { this._deserializationFailed = false; return(true); } _deserializationFailed = true; return(false); } catch (System.Exception e) { Debug.LogError(string.Format("<b>(Deserialization Error:)</b> {0}", e.ToString())); _deserializationFailed = true; return(false); } }
bool LoadGraphData(GraphSerializationData data, bool validate) { if (data == null) { Debug.LogError("Can't Load graph, cause of null GraphSerializationData provided"); return(false); } // data.connections and data.nodes to graph data.Reconstruct(this); this._nodes = data.nodes; //IMPORTANT: Validate should be called in all deserialize cases outside of Unity's 'OnAfterDeserialize', //like for example when loading from json, or manualy calling this outside of OnAfterDeserialize. if (validate) { Validate(); } return(true); }
public override void OnSerialize(GraphSerializationData data) { data.scrollOffset = scrollOffset; data.zoom = zoom; }
public override void OnDeserialize(GraphSerializationData data) { scrollOffset = data.scrollOffset; zoom = data.zoom; }
public virtual void OnDeserialize(GraphSerializationData data) { }