Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
UIResourceTrack.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using UnityEngine;
3using UnityEngine.UI;
4
5public class UIResourceTrack : EMono
6{
7 public static UIResourceTrack Instance;
8
9 public LayoutGroup layout;
10
12
14
15 public Dictionary<string, ButtonResourceTrack> dictProp = new Dictionary<string, ButtonResourceTrack>();
16
17 public Dictionary<string, ButtonResourceTrack> dictCat = new Dictionary<string, ButtonResourceTrack>();
18
19 private List<string> listRemove = new List<string>();
20
21 private bool dirtyLayout;
22
23 public static void Refresh()
24 {
25 if ((bool)Instance)
26 {
28 }
29 }
30
31 public void OnActivate()
32 {
33 Instance = this;
34 buttonAdd.SetOnClick(delegate
35 {
36 EMono.ui.AddLayer<LayerResource>();
37 });
38 if (!mold)
39 {
40 mold = layout.CreateMold<ButtonResourceTrack>();
41 }
42 _Refresh();
43 }
44
45 public void OnMoveZone()
46 {
47 dictProp.Clear();
48 dictCat.Clear();
49 layout.DestroyChildren();
50 _Refresh();
51 }
52
53 public void _Refresh()
54 {
55 dirtyLayout = false;
56 HashSet<string> trackedCards = EMono.player.trackedCards;
57 HashSet<string> trackedCategories = EMono.player.trackedCategories;
58 foreach (string item in trackedCards)
59 {
60 if (dictProp.ContainsKey(item))
61 {
62 dictProp[item].Refresh();
63 continue;
64 }
65 ButtonResourceTrack buttonResourceTrack = Util.Instantiate(mold, layout);
66 buttonResourceTrack.SetProp(item);
67 dictProp.Add(item, buttonResourceTrack);
68 dirtyLayout = true;
69 }
70 foreach (string item2 in trackedCategories)
71 {
72 if (dictCat.ContainsKey(item2))
73 {
74 dictCat[item2].Refresh();
75 continue;
76 }
77 ButtonResourceTrack buttonResourceTrack2 = Util.Instantiate(mold, layout);
78 buttonResourceTrack2.SetCat(item2);
79 dictCat.Add(item2, buttonResourceTrack2);
80 dirtyLayout = true;
81 }
82 listRemove.Clear();
83 foreach (string key in dictProp.Keys)
84 {
85 if (!trackedCards.Contains(key))
86 {
87 listRemove.Add(key);
88 }
89 }
90 foreach (string item3 in listRemove)
91 {
92 Object.DestroyImmediate(dictProp[item3].gameObject);
93 dictProp.Remove(item3);
94 dirtyLayout = true;
95 }
96 listRemove.Clear();
97 foreach (string key2 in dictCat.Keys)
98 {
99 if (!trackedCategories.Contains(key2))
100 {
101 listRemove.Add(key2);
102 }
103 }
104 foreach (string item4 in listRemove)
105 {
106 Object.DestroyImmediate(dictCat[item4].gameObject);
107 dictCat.Remove(item4);
108 dirtyLayout = true;
109 }
110 if (dirtyLayout)
111 {
112 buttonAdd.transform.SetAsLastSibling();
113 layout.RebuildLayout(recursive: true);
114 }
115 }
116}
void SetCat(string id)
void SetProp(string id)
Definition: EMono.cs:4
static Player player
Definition: EMono.cs:11
static UI ui
Definition: EMono.cs:15
HashSet< string > trackedCategories
Definition: Player.cs:856
HashSet< string > trackedCards
Definition: Player.cs:859
Dictionary< string, ButtonResourceTrack > dictCat
Dictionary< string, ButtonResourceTrack > dictProp
LayoutGroup layout
ButtonResourceTrack mold
List< string > listRemove
static void Refresh()
static UIResourceTrack Instance