示例#1
0
 protected void AddInputNode(BaseInputNode node)
 {
     node.OnConnected  += OnNodeConnected;
     node.OnDisconnect += OnNodeDisconnected;
     InputNodes.Add(node);
     OnNodeAdded?.Invoke(this, node);
 }
        /// <summary>
        /// Connects an output node to an input.
        /// </summary>
        /// <param name="input">The input node to connect.</param>
        /// <returns>
        /// True if the extensions match and the connection was made.
        /// </returns>
        public virtual bool ConnectTo(BaseInputNode input)
        {
            if (IsConnected())
            {
                if (Connector != input)
                {
                    return(false);
                }
                return(true);
            }

            if (this.CanConnectTo(input))
            {
                bool granted = input.RecieveConnection(this);
                if (granted)
                {
                    Connector = input;
                    this.OnConnected();
                    return(true);
                }
                return(false);
            }

            return(false);
        }