A game about forced loneliness, made by TACStudios
at master 1.2 kB view raw
1using System.Linq; 2using UnityEditor.ShaderGraph.Internal; 3 4namespace UnityEditor.ShaderGraph 5{ 6 static class IConditionalExtensions 7 { 8 public static bool TestActive(this IConditional conditional, ActiveFields fields) 9 { 10 // Test FieldCondition against current active Fields 11 bool TestFieldCondition(FieldCondition fieldCondition) 12 { 13 // Required active field is not active 14 if (fieldCondition.condition == true && !fields.baseInstance.Contains(fieldCondition.field)) 15 return false; 16 17 // Required non-active field is active 18 else if (fieldCondition.condition == false && fields.baseInstance.Contains(fieldCondition.field)) 19 return false; 20 21 return true; 22 } 23 24 // No FieldConditions 25 if (conditional.fieldConditions == null) 26 return true; 27 28 // One or more FieldConditions failed 29 if (conditional.fieldConditions.Where(x => !TestFieldCondition(x)).Any()) 30 return false; 31 32 // All FieldConditions passed 33 return true; 34 } 35 } 36}