Elin Modding Docs Doc
Loading...
Searching...
No Matches
UIResourceTrack.cs
1using System;
2using System.Collections.Generic;
3using UnityEngine;
4using UnityEngine.UI;
5
6// Token: 0x02000636 RID: 1590
7public class UIResourceTrack : EMono
8{
9 // Token: 0x06002C9C RID: 11420 RVA: 0x000FA360 File Offset: 0x000F8560
10 public static void Refresh()
11 {
12 if (UIResourceTrack.Instance)
13 {
14 UIResourceTrack.Instance._Refresh();
15 }
16 }
17
18 // Token: 0x06002C9D RID: 11421 RVA: 0x000FA378 File Offset: 0x000F8578
19 public void OnActivate()
20 {
21 UIResourceTrack.Instance = this;
22 this.buttonAdd.SetOnClick(delegate
23 {
24 EMono.ui.AddLayer<LayerResource>();
25 });
26 if (!this.mold)
27 {
28 this.mold = this.layout.CreateMold(null);
29 }
30 this._Refresh();
31 }
32
33 // Token: 0x06002C9E RID: 11422 RVA: 0x000FA3DA File Offset: 0x000F85DA
34 public void OnMoveZone()
35 {
36 this.dictProp.Clear();
37 this.dictCat.Clear();
38 this.layout.DestroyChildren(false, true);
39 this._Refresh();
40 }
41
42 // Token: 0x06002C9F RID: 11423 RVA: 0x000FA408 File Offset: 0x000F8608
43 public void _Refresh()
44 {
45 this.dirtyLayout = false;
46 HashSet<string> trackedCards = EMono.player.trackedCards;
47 HashSet<string> trackedCategories = EMono.player.trackedCategories;
48 foreach (string text in trackedCards)
49 {
50 if (this.dictProp.ContainsKey(text))
51 {
52 this.dictProp[text].Refresh();
53 }
54 else
55 {
56 ButtonResourceTrack buttonResourceTrack = Util.Instantiate<ButtonResourceTrack>(this.mold, this.layout);
57 buttonResourceTrack.SetProp(text);
58 this.dictProp.Add(text, buttonResourceTrack);
59 this.dirtyLayout = true;
60 }
61 }
62 foreach (string text2 in trackedCategories)
63 {
64 if (this.dictCat.ContainsKey(text2))
65 {
66 this.dictCat[text2].Refresh();
67 }
68 else
69 {
70 ButtonResourceTrack buttonResourceTrack2 = Util.Instantiate<ButtonResourceTrack>(this.mold, this.layout);
71 buttonResourceTrack2.SetCat(text2);
72 this.dictCat.Add(text2, buttonResourceTrack2);
73 this.dirtyLayout = true;
74 }
75 }
76 this.listRemove.Clear();
77 foreach (string item in this.dictProp.Keys)
78 {
79 if (!trackedCards.Contains(item))
80 {
81 this.listRemove.Add(item);
82 }
83 }
84 foreach (string key in this.listRemove)
85 {
86 UnityEngine.Object.DestroyImmediate(this.dictProp[key].gameObject);
87 this.dictProp.Remove(key);
88 this.dirtyLayout = true;
89 }
90 this.listRemove.Clear();
91 foreach (string item2 in this.dictCat.Keys)
92 {
93 if (!trackedCategories.Contains(item2))
94 {
95 this.listRemove.Add(item2);
96 }
97 }
98 foreach (string key2 in this.listRemove)
99 {
100 UnityEngine.Object.DestroyImmediate(this.dictCat[key2].gameObject);
101 this.dictCat.Remove(key2);
102 this.dirtyLayout = true;
103 }
104 if (this.dirtyLayout)
105 {
106 this.buttonAdd.transform.SetAsLastSibling();
107 this.layout.RebuildLayout(true);
108 }
109 }
110
111 // Token: 0x04001901 RID: 6401
112 public static UIResourceTrack Instance;
113
114 // Token: 0x04001902 RID: 6402
115 public LayoutGroup layout;
116
117 // Token: 0x04001903 RID: 6403
118 public ButtonResourceTrack mold;
119
120 // Token: 0x04001904 RID: 6404
121 public UIButton buttonAdd;
122
123 // Token: 0x04001905 RID: 6405
124 public Dictionary<string, ButtonResourceTrack> dictProp = new Dictionary<string, ButtonResourceTrack>();
125
126 // Token: 0x04001906 RID: 6406
127 public Dictionary<string, ButtonResourceTrack> dictCat = new Dictionary<string, ButtonResourceTrack>();
128
129 // Token: 0x04001907 RID: 6407
130 private List<string> listRemove = new List<string>();
131
132 // Token: 0x04001908 RID: 6408
133 private bool dirtyLayout;
134}
Definition EMono.cs:6