File size: 1,749 Bytes
18a519f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | using System;
namespace Unity.VisualScripting
{
public sealed class ValueInputDefinition : ValuePortDefinition, IUnitInputPortDefinition
{
[SerializeAs(nameof(defaultValue))]
private object _defaultvalue;
[Inspectable]
[DoNotSerialize]
public override Type type
{
get
{
return base.type;
}
set
{
base.type = value;
if (!type.IsAssignableFrom(defaultValue))
{
if (ValueInput.SupportsDefaultValue(type))
{
_defaultvalue = type.PseudoDefault();
}
else
{
hasDefaultValue = false;
_defaultvalue = null;
}
}
}
}
[Serialize]
[Inspectable]
public bool hasDefaultValue { get; set; }
[DoNotSerialize]
[Inspectable]
public object defaultValue
{
get
{
return _defaultvalue;
}
set
{
if (type == null)
{
throw new InvalidOperationException("A type must be defined before setting the default value.");
}
if (!ValueInput.SupportsDefaultValue(type))
{
throw new InvalidOperationException("The selected type does not support default values.");
}
Ensure.That(nameof(value)).IsOfType(value, type);
_defaultvalue = value;
}
}
}
}
|