using System.Collections.Generic; using System.Linq; namespace Unity.VisualScripting { public sealed class InvalidOutput : UnitPort, IUnitInvalidPort, IUnitOutputPort { public InvalidOutput(string key) : base(key) { } public override IEnumerable validConnections => unit?.graph?.invalidConnections.WithSource(this) ?? Enumerable.Empty(); public override IEnumerable invalidConnections => Enumerable.Empty(); public override IEnumerable validConnectedPorts => validConnections.Select(c => c.destination); public override IEnumerable invalidConnectedPorts => invalidConnections.Select(c => c.destination); public override bool CanConnectToValid(IUnitInputPort port) { return false; } public override void ConnectToValid(IUnitInputPort port) { ConnectInvalid(this, port); } public override void ConnectToInvalid(IUnitInputPort port) { ConnectInvalid(this, port); } public override void DisconnectFromValid(IUnitInputPort port) { DisconnectInvalid(this, port); } public override void DisconnectFromInvalid(IUnitInputPort port) { DisconnectInvalid(this, port); } public override IUnitPort CompatiblePort(IUnit unit) { return null; } } }