12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- using System;
-
- namespace Unity.VisualScripting
- {
- public sealed class UnitPortDescription : IDescription
- {
- private string _label;
-
- private bool _isLabelVisible = true;
-
- internal IUnitPort portType;
-
- public EditorTexture icon
- {
- get
- {
- if (_icon == null || !_icon.IsValid())
- {
- _icon = GetIcon(portType);
- }
-
- return _icon;
- }
- set => _icon = value;
- }
-
- private EditorTexture _icon;
-
- public string fallbackLabel { get; set; }
-
- public string label
- {
- get => _label ?? fallbackLabel;
- set => _label = value;
- }
-
- public bool showLabel
- {
- get => !BoltFlow.Configuration.hidePortLabels || _isLabelVisible;
- set => _isLabelVisible = value;
- }
-
- string IDescription.title => label;
-
- public string summary { get; set; }
-
- public Func<Metadata, Metadata> getMetadata { get; set; }
-
- public void CopyFrom(UnitPortDescription other)
- {
- _label = other._label;
- _isLabelVisible = other._isLabelVisible;
- summary = other.summary;
- portType = other.portType ?? portType;
- getMetadata = other.getMetadata ?? getMetadata;
- }
-
- private static EditorTexture GetIcon(IUnitPort portType)
- {
- if (portType is IUnitControlPort)
- {
- return typeof(Flow).Icon();
- }
- else if (portType is IUnitValuePort)
- {
- return Icons.Type(((IUnitValuePort)portType).type);
- }
- else if (portType is IUnitInvalidPort)
- {
- return BoltCore.Resources.icons.errorState;
- }
- else
- {
- // throw new NotSupportedException();
- return null;
- }
- }
- }
- }
|