Node editor - Added connecting pins

This commit is contained in:
Robert committed 2022-03-19 22:58:14 +01:00
1 parent 86b4258f5d
commit 2907b86174
22 files changed
+535 -363

No files matched your search

+9 -8
View File
@@ -26,6 +26,7 @@ namespace Artemis.Core
/// <inheritdoc />
public event EventHandler<SingleValueEventArgs<IPin>>? PinConnected;
/// <inheritdoc />
public event EventHandler<SingleValueEventArgs<IPin>>? PinDisconnected;
@@ -79,31 +80,29 @@ namespace Artemis.Core
public void ConnectTo(IPin pin)
{
_connectedTo.Add(pin);
OnPropertyChanged(nameof(ConnectedTo));
PinConnected?.Invoke(this, new SingleValueEventArgs<IPin>(pin));
if (!pin.ConnectedTo.Contains(this))
pin.ConnectTo(this);
OnPropertyChanged(nameof(ConnectedTo));
PinConnected?.Invoke(this, new SingleValueEventArgs<IPin>(pin));
}
/// <inheritdoc />
public void DisconnectFrom(IPin pin)
{
_connectedTo.Remove(pin);
OnPropertyChanged(nameof(ConnectedTo));
PinDisconnected?.Invoke(this, new SingleValueEventArgs<IPin>(pin));
if (pin.ConnectedTo.Contains(this))
pin.DisconnectFrom(this);
OnPropertyChanged(nameof(ConnectedTo));
PinDisconnected?.Invoke(this, new SingleValueEventArgs<IPin>(pin));
}
/// <inheritdoc />
public void DisconnectAll()
{
List<IPin> connectedPins = new(_connectedTo);
_connectedTo.Clear();
OnPropertyChanged(nameof(ConnectedTo));
foreach (IPin pin in connectedPins)
{
@@ -111,6 +110,8 @@ namespace Artemis.Core
if (pin.ConnectedTo.Contains(this))
pin.DisconnectFrom(this);
}
OnPropertyChanged(nameof(ConnectedTo));
}
#endregion