A game about forced loneliness, made by TACStudios
1using UnityEngine; 2 3namespace Unity.VisualScripting 4{ 5 /// <summary> 6 /// Checks whether a variable is defined. 7 /// </summary> 8 [UnitTitle("Has Variable")] 9 public sealed class IsVariableDefined : UnifiedVariableUnit 10 { 11 /// <summary> 12 /// Whether the variable is defined. 13 /// </summary> 14 [DoNotSerialize] 15 [PortLabel("Defined")] 16 [PortLabelHidden] 17 [PortKey("isDefined")] 18 public ValueOutput isVariableDefined { get; private set; } 19 20 protected override void Definition() 21 { 22 base.Definition(); 23 24 isVariableDefined = ValueOutput("isDefined", IsDefined); 25 26 Requirement(name, isVariableDefined); 27 28 if (kind == VariableKind.Object) 29 { 30 Requirement(@object, isVariableDefined); 31 } 32 } 33 34 private bool IsDefined(Flow flow) 35 { 36 var name = flow.GetValue<string>(this.name); 37 38 switch (kind) 39 { 40 case VariableKind.Flow: 41 return flow.variables.IsDefined(name); 42 case VariableKind.Graph: 43 return Variables.Graph(flow.stack).IsDefined(name); 44 case VariableKind.Object: 45 return Variables.Object(flow.GetValue<GameObject>(@object)).IsDefined(name); 46 case VariableKind.Scene: 47 return Variables.Scene(flow.stack.scene).IsDefined(name); 48 case VariableKind.Application: 49 return Variables.Application.IsDefined(name); 50 case VariableKind.Saved: 51 return Variables.Saved.IsDefined(name); 52 default: 53 throw new UnexpectedEnumValueException<VariableKind>(kind); 54 } 55 } 56 } 57}