public virtual void OnAfterDeserialize()
        {
            // have to deserialize 'globals' before nodes
            m_Properties = SerializationHelper.Deserialize <INodeProperty>(m_SerializedProperties, GraphUtil.GetLegacyTypeRemapping());
            foreach (var property in m_Properties)
            {
                m_PropertyDictionary.Add(property.guid, property);
            }
            var nodes = SerializationHelper.Deserialize <INode>(m_SerializableNodes, GraphUtil.GetLegacyTypeRemapping());

            m_Nodes          = new List <INode>(nodes.Count);
            m_NodeDictionary = new Dictionary <Guid, INode>(nodes.Count);
            foreach (var node in nodes.OfType <AbstractNode>())
            {
                node.SetOwner(this);
                node.UpdateNodeAfterDeserialization();
                node.tempId = new Identifier(m_Nodes.Count);
                m_Nodes.Add(node);
                m_NodeDictionary.Add(node.guid, node);
            }

            m_SerializableNodes = null;

            m_Edges             = SerializationHelper.Deserialize <IEdge>(m_SerializableEdges, GraphUtil.GetLegacyTypeRemapping());
            m_SerializableEdges = null;
            foreach (var edge in m_Edges)
            {
                AddEdgeToNodeEdges(edge);
            }
        }
示例#2
0
        public void OnAfterDeserialize()
        {
            m_SourceGraphGuid = SerializationHelper.Deserialize <SerializableGuid>(m_SerializeableSourceGraphGuid, GraphUtil.GetLegacyTypeRemapping());

            var nodes = SerializationHelper.Deserialize <INode>(m_SerializableNodes, GraphUtil.GetLegacyTypeRemapping());

            m_Nodes.Clear();
            foreach (var node in nodes)
            {
                m_Nodes.Add(node);
            }
            m_SerializableNodes = null;

            var edges = SerializationHelper.Deserialize <IEdge>(m_SerializableEdges, GraphUtil.GetLegacyTypeRemapping());

            m_Edges.Clear();
            foreach (var edge in edges)
            {
                m_Edges.Add(edge);
            }
            m_SerializableEdges = null;

            var properties = SerializationHelper.Deserialize <INodeProperty>(m_SerilaizeableProperties, GraphUtil.GetLegacyTypeRemapping());

            m_Properties.Clear();
            foreach (var property in properties)
            {
                m_Properties.Add(property);
            }
            m_SerilaizeableProperties = null;

            var metaProperties = SerializationHelper.Deserialize <INodeProperty>(m_SerializableMetaProperties, GraphUtil.GetLegacyTypeRemapping());

            m_MetaProperties.Clear();
            foreach (var metaProperty in metaProperties)
            {
                m_MetaProperties.Add(metaProperty);
            }
            m_SerializableMetaProperties = null;
        }
        public virtual void OnAfterDeserialize()
        {
            if (!string.IsNullOrEmpty(m_GuidSerialized))
            {
                m_Guid = new Guid(m_GuidSerialized);
            }
            else
            {
                m_Guid = Guid.NewGuid();
            }

            if (m_Slots == null)
            {
                m_Slots = new Dictionary <int, ISlot>();
            }
            SerializationHelper.Deserialize(m_Slots, m_SerializableSlots, GraphUtil.GetLegacyTypeRemapping());

            m_SerializableSlots = null;
            foreach (var s in m_Slots.Values)
            {
                s.owner = this;
            }
            UpdateNodeAfterDeserialization();
        }