A game about forced loneliness, made by TACStudios
1using System.Collections; 2using System.Collections.Generic; 3 4namespace UnityEditor.ShaderGraph 5{ 6 [GenerationAPI] 7 internal class StructCollection : IEnumerable<StructCollection.Item> 8 { 9 public class Item : IConditional 10 { 11 public StructDescriptor descriptor { get; } 12 public FieldCondition[] fieldConditions { get; } 13 14 public Item(StructDescriptor descriptor, FieldCondition[] fieldConditions) 15 { 16 this.descriptor = descriptor; 17 this.fieldConditions = fieldConditions; 18 } 19 } 20 21 readonly List<StructCollection.Item> m_Items; 22 23 public StructCollection() 24 { 25 m_Items = new List<StructCollection.Item>(); 26 } 27 28 public StructCollection Add(StructCollection structs) 29 { 30 foreach (StructCollection.Item item in structs) 31 { 32 m_Items.Add(item); 33 } 34 35 return this; 36 } 37 38 public StructCollection Add(StructDescriptor descriptor) 39 { 40 m_Items.Add(new StructCollection.Item(descriptor, null)); 41 return this; 42 } 43 44 public StructCollection Add(StructDescriptor descriptor, FieldCondition fieldCondition) 45 { 46 m_Items.Add(new StructCollection.Item(descriptor, new FieldCondition[] { fieldCondition })); 47 return this; 48 } 49 50 public StructCollection Add(StructDescriptor descriptor, FieldCondition[] fieldConditions) 51 { 52 m_Items.Add(new StructCollection.Item(descriptor, fieldConditions)); 53 return this; 54 } 55 56 public IEnumerator<StructCollection.Item> GetEnumerator() 57 { 58 return m_Items.GetEnumerator(); 59 } 60 61 IEnumerator IEnumerable.GetEnumerator() 62 { 63 return GetEnumerator(); 64 } 65 } 66}