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}