mirror of
https://github.com/Siccity/xNode.git
synced 2026-02-04 14:24:54 +08:00
Added Node.OnRemoveConnection
This commit is contained in:
parent
29dd6e0c62
commit
2291531ceb
@ -134,10 +134,14 @@ namespace XNode {
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary> Called whenever a connection is being made between two <see cref="NodePort"/>s</summary>
|
||||
/// <summary> Called after a connection between two <see cref="NodePort"/>s is created </summary>
|
||||
/// <param name="from">Output</param> <param name="to">Input</param>
|
||||
public virtual void OnCreateConnection(NodePort from, NodePort to) { }
|
||||
|
||||
/// <summary> Called after a connection is removed from this port </summary>
|
||||
/// <param name="from">Output</param> <param name="to">Input</param>
|
||||
public virtual void OnRemoveConnection(NodePort port) { }
|
||||
|
||||
/// <summary> Disconnect everything from this node </summary>
|
||||
public void ClearConnections() {
|
||||
foreach (NodePort port in Ports) port.ClearConnections();
|
||||
|
||||
@ -204,16 +204,22 @@ namespace XNode {
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary> Disconnect this port from another port </summary>
|
||||
public void Disconnect(NodePort port) {
|
||||
NodePort from = direction == IO.Input ? port : this;
|
||||
NodePort to = direction == IO.Input ? this : port;
|
||||
// Remove this ports connection to the other
|
||||
for (int i = connections.Count - 1; i >= 0; i--) {
|
||||
//Remove matching ports.
|
||||
if (connections[i].Port == port) {
|
||||
connections.RemoveAt(i);
|
||||
node.OnRemoveConnection(this);
|
||||
}
|
||||
}
|
||||
// Remove the other ports connection to this port
|
||||
for (int i = 0; i < port.connections.Count; i++) {
|
||||
if (port.connections[i].Port == this) {
|
||||
port.connections.RemoveAt(i);
|
||||
port.node.OnRemoveConnection(port);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user