No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ValueConnection.cs 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using System;
  2. namespace Unity.VisualScripting
  3. {
  4. public sealed class ValueConnection : UnitConnection<ValueOutput, ValueInput>, IUnitConnection
  5. {
  6. public class DebugData : UnitConnectionDebugData
  7. {
  8. public object lastValue { get; set; }
  9. public bool assignedLastValue { get; set; }
  10. }
  11. public override IGraphElementDebugData CreateDebugData()
  12. {
  13. return new DebugData();
  14. }
  15. [Obsolete(Serialization.ConstructorWarning)]
  16. public ValueConnection() : base() { }
  17. public ValueConnection(ValueOutput source, ValueInput destination) : base(source, destination)
  18. {
  19. if (destination.hasValidConnection)
  20. {
  21. throw new InvalidConnectionException("Value input ports do not support multiple connections.");
  22. }
  23. if (!source.type.IsConvertibleTo(destination.type, false))
  24. {
  25. throw new InvalidConnectionException($"Cannot convert from '{source.type}' to '{destination.type}'.");
  26. }
  27. }
  28. #region Ports
  29. public override ValueOutput source => sourceUnit.valueOutputs[sourceKey];
  30. public override ValueInput destination => destinationUnit.valueInputs[destinationKey];
  31. IUnitOutputPort IConnection<IUnitOutputPort, IUnitInputPort>.source => source;
  32. IUnitInputPort IConnection<IUnitOutputPort, IUnitInputPort>.destination => destination;
  33. #endregion
  34. #region Dependencies
  35. public override bool sourceExists => sourceUnit.valueOutputs.Contains(sourceKey);
  36. public override bool destinationExists => destinationUnit.valueInputs.Contains(destinationKey);
  37. #endregion
  38. }
  39. }