diff --git a/src/Artemis.VisualScripting/Model/Node.cs b/src/Artemis.VisualScripting/Model/Node.cs index 8898e8f24..497bfa4b6 100644 --- a/src/Artemis.VisualScripting/Model/Node.cs +++ b/src/Artemis.VisualScripting/Model/Node.cs @@ -75,6 +75,15 @@ namespace Artemis.VisualScripting.Model { InputPin pin = new(this, name); _pins.Add(pin); + OnPropertyChanged(nameof(Pins)); + return pin; + } + + protected InputPin CreateInputPin(Type type, string name = "") + { + InputPin pin = new(this, type, name); + _pins.Add(pin); + OnPropertyChanged(nameof(Pins)); return pin; } @@ -82,13 +91,34 @@ namespace Artemis.VisualScripting.Model { OutputPin pin = new(this, name); _pins.Add(pin); + OnPropertyChanged(nameof(Pins)); return pin; } + protected OutputPin CreateOutputPin(Type type, string name = "") + { + OutputPin pin = new(this, type, name); + _pins.Add(pin); + OnPropertyChanged(nameof(Pins)); + return pin; + } + + protected bool RemovePin(Pin pin) + { + bool isRemoved = _pins.Remove(pin); + if (isRemoved) + { + pin.DisconnectAll(); + OnPropertyChanged(nameof(Pins)); + } + return isRemoved; + } + protected InputPinCollection CreateInputPinCollection(string name = "", int initialCount = 1) { InputPinCollection pin = new(this, name, initialCount); _pinCollections.Add(pin); + OnPropertyChanged(nameof(PinCollections)); return pin; } @@ -96,6 +126,7 @@ namespace Artemis.VisualScripting.Model { OutputPinCollection pin = new(this, name, initialCount); _pinCollections.Add(pin); + OnPropertyChanged(nameof(PinCollections)); return pin; }