Ejemplo n.º 1
0
 public NodeLinkPort GetToPort()
 {
     if (!to || toField == null)
     {
         return(null);
     }
     return(new NodeLinkPort(to, NodeDataCache.GetLinkCacheInfo(to.GetType(), toField)));
 }
Ejemplo n.º 2
0
 public NodeLinkPort GetFromPort()
 {
     if (!from || fromField == null)
     {
         return(null);
     }
     return(new NodeLinkPort(from, NodeDataCache.GetLinkCacheInfo(from.GetType(), fromField)));
 }
Ejemplo n.º 3
0
        /// <summary> Set link fields to null where the link does not belong this node </summary>
        public void ClearLinksAssignments()
        {
            var linkPorts = NodeDataCache.GetLinks(GetType()).Select(x => new NodeLinkPort(this, x));
            var allLinks  = linkPorts.SelectMany(x => x.GetConnections().Select(y => Tuple.Create(x, y)));

            foreach (var link in allLinks)
            {
                link.Item1.Link.Disconnect(this, link.Item2);
            }
        }
Ejemplo n.º 4
0
        /// <summary> Disconnect every link from this node </summary>
        public void ClearLinks()
        {
            var linkPorts = NodeDataCache.GetLinks(GetType()).Select(x => new NodeLinkPort(this, x));
            var allLinks  = linkPorts.SelectMany(x => x.GetConnections());

            foreach (NodeLink link in allLinks)
            {
                if (link)
                {
                    link.Destroy();
                }
            }
        }
Ejemplo n.º 5
0
        public void Destroy()
        {
            if (from)
            {
                NodeDataCache.GetLinkCacheInfo(from.GetType(), fromField)?.Disconnect(from, this);
            }
            if (to)
            {
                NodeDataCache.GetLinkCacheInfo(to.GetType(), toField)?.Disconnect(to, this);
            }

            DestroyImmediate(this, true);
#if UNITY_EDITOR
            AssetDatabase.SaveAssets();
#endif
        }
Ejemplo n.º 6
0
 /// <summary> Update static ports to reflect class fields. This happens automatically on enable. </summary>
 public void UpdateStaticPorts()
 {
     NodeDataCache.UpdatePorts(this, ports);
 }
Ejemplo n.º 7
0
 protected void OnEnable()
 {
     NodeDataCache.UpdatePorts(this, ports);
     Init();
 }