Exemple #1
0
        //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);
            }
        }
Exemple #2
0
        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);
        }
Exemple #3
0
 public override void OnSerialize(GraphSerializationData data)
 {
     data.scrollOffset = scrollOffset;
     data.zoom         = zoom;
 }
Exemple #4
0
 public override void OnDeserialize(GraphSerializationData data)
 {
     scrollOffset = data.scrollOffset;
     zoom         = data.zoom;
 }
Exemple #5
0
 public virtual void OnDeserialize(GraphSerializationData data)
 {
 }