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 PassCollection : IEnumerable<PassCollection.Item> 8 { 9 public class Item : IConditional 10 { 11 public PassDescriptor descriptor { get; } 12 public FieldCondition[] fieldConditions { get; } 13 14 public Item(PassDescriptor descriptor, FieldCondition[] fieldConditions) 15 { 16 this.descriptor = descriptor; 17 this.fieldConditions = fieldConditions; 18 } 19 } 20 21 readonly List<Item> m_Items; 22 23 public PassCollection() 24 { 25 m_Items = new List<Item>(); 26 } 27 28 public PassCollection Add(PassCollection passes) 29 { 30 foreach (PassCollection.Item item in passes) 31 { 32 m_Items.Add(item); 33 } 34 35 return this; 36 } 37 38 public PassCollection Add(PassDescriptor descriptor) 39 { 40 m_Items.Add(new Item(descriptor, null)); 41 return this; 42 } 43 44 public PassCollection Add(PassDescriptor descriptor, FieldCondition fieldCondition) 45 { 46 m_Items.Add(new Item(descriptor, new FieldCondition[] { fieldCondition })); 47 return this; 48 } 49 50 public PassCollection Add(PassDescriptor descriptor, FieldCondition[] fieldConditions) 51 { 52 m_Items.Add(new Item(descriptor, fieldConditions)); 53 return this; 54 } 55 56 public IEnumerator<Item> GetEnumerator() 57 { 58 return m_Items.GetEnumerator(); 59 } 60 61 IEnumerator IEnumerable.GetEnumerator() 62 { 63 return GetEnumerator(); 64 } 65 } 66}