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}