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