A game about forced loneliness, made by TACStudios
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}