Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
LayerResource.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2
3public class LayerResource : ELayer
4{
5 public UIList list;
6
8
10
12
13 public static string selectCat;
14
15 public override void OnInit()
16 {
17 list2.sortMode = ELayer.player.pref.sortResources;
19 if (!selectCat.IsEmpty())
20 {
21 list.Select((SourceCategory.Row a) => a.id == selectCat, invoke: true);
22 }
23 else
24 {
25 list.Select(0, invoke: true);
26 }
27 selectCat = null;
28 WindowMenu menuRight = windows[0].menuRight;
29 menuRight.AddButton2Line("sort", () => list2.sortMode.ToString(), delegate
30 {
31 list2.NextSort();
32 });
33 menuRight.AddButton2Line("stockCapacity", () => ELayer._map.Stocked.weight + "/" + ELayer._map.Stocked.maxWeight);
34 }
35
36 public override void OnKill()
37 {
38 ELayer.player.pref.sortResources = list2.sortMode;
39 }
40
41 public void RefreshCategory()
42 {
43 HashSet<string> track = ELayer.player.trackedCategories;
44 list.Clear();
45 list.callbacks = new UIList.Callback<SourceCategory.Row, ButtonCategory>
46 {
47 onClick = delegate(SourceCategory.Row a, ButtonCategory b)
48 {
49 ShowThings(a);
50 },
51 onInstantiate = delegate(SourceCategory.Row cat, ButtonCategory b)
52 {
53 b.toggle.SetActive(enable: true);
54 b.toggle.isOn = track.Contains(cat.id);
55 b.toggle.onValueChanged.AddListener(delegate(bool isOn)
56 {
57 SE.ClickGeneral();
58 if (isOn)
59 {
60 track.Add(cat.id);
61 }
62 else
63 {
64 track.Remove(cat.id);
65 }
67 });
68 int sum = ELayer._map.Stocked.categoryMap[cat.id].sum;
69 b.mainText.text = cat.GetText().ToTitleCase() + " (" + sum + ")";
70 b.SetFold(cat.children.Count > 0, folded: true, delegate(UIList l)
71 {
72 foreach (SourceCategory.Row row in ELayer.sources.categories.rows)
73 {
74 if (row.parent == cat)
75 {
76 l.Add(row);
77 }
78 }
79 });
80 },
81 onRefresh = null
82 };
83 foreach (SourceCategory.Row row2 in ELayer.sources.categories.rows)
84 {
85 if (!(row2.id == "new") && !(row2.id == "stash") && row2.parent == null)
86 {
87 list.Add(row2);
88 }
89 }
90 list.Refresh();
92 }
93
94 public void ShowThings(SourceCategory.Row cat)
95 {
96 HashSet<string> track = ELayer.player.trackedCards;
97 list2.callbacks = new UIList.Callback<Thing, ButtonGrid>
98 {
99 onRedraw = delegate(Thing a, ButtonGrid b, int i)
100 {
101 b.SetCard(a);
102 bool check = track.Contains(a.source.id);
103 b.SetCheck(check);
104 },
105 onClick = delegate(Thing a, ButtonGrid b)
106 {
107 if (!track.Contains(a.source.id))
108 {
109 track.Add(a.source.id);
110 }
111 else
112 {
113 track.Remove(a.source.id);
114 }
116 list2.dsv.refresh();
117 SE.Tab();
118 },
119 onList = delegate(UIList.SortMode m)
120 {
121 List<Thing> list = new List<Thing>();
123 for (int j = 0; j < list.Count; j++)
124 {
125 list[j].SetSortVal(m);
126 }
127 list.Sort((Thing a, Thing b) => a.sortVal - b.sortVal);
128 int num = 0;
129 int num2 = 0;
130 foreach (Thing item in list)
131 {
132 list2.Add(item);
133 num += item.Num;
134 num2 += item.Num;
135 }
136 windows[0].textStats.SetText("statsTotal".lang(list.Count.ToString() ?? "", num.ToString() ?? "", num2.ToString() ?? ""));
137 }
138 };
139 list2.List();
140 }
141}
UIList.SortMode sortMode
Definition: BaseList.cs:33
void SetFold(bool show, bool folded)
void SetCard(Card c, Mode mode=Mode.Default, Action< UINote > onWriteNote=null)
Definition: ButtonGrid.cs:184
int sortVal
Definition: Card.cs:97
Definition: ELayer.cs:4
static Player player
Definition: ELayer.cs:13
static SourceManager sources
Definition: ELayer.cs:37
static Map _map
Definition: ELayer.cs:23
override void OnKill()
void ShowThings(SourceCategory.Row cat)
UICardInfo info
Definition: LayerResource.cs:9
override void OnInit()
UIDynamicList list2
Definition: LayerResource.cs:7
static string selectCat
void RefreshCategory()
UINote noteOverview
List< Window > windows
Definition: Layer.cs:116
PropsStocked Stocked
Definition: Map.cs:121
UIList.SortMode sortResources
Definition: Player.cs:43
Pref pref
Definition: Player.cs:814
HashSet< string > trackedCategories
Definition: Player.cs:856
HashSet< string > trackedCards
Definition: Player.cs:859
int weight
Definition: Props.cs:27
List< Thing > ListThingsInCategory(SourceCategory.Row cat)
Definition: Props.cs:283
int maxWeight
Definition: Props.cs:25
Dictionary< string, PropSetCategory > categoryMap
Definition: Props.cs:12
SourceCategory categories
Definition: Thing.cs:8
SourceThing.Row source
Definition: Thing.cs:11
void SetCheck(bool check)
Definition: UIButton.cs:332
override void List()
override void Add(object o)
DynamicScrollView dsv
Definition: UIList.cs:9
override void Clear()
Definition: UIList.cs:349
void Select(int index=0, bool invoke=false)
Definition: UIList.cs:644
SortMode
Definition: UIList.cs:27
override void Add(object item)
Definition: UIList.cs:302
virtual void Refresh(bool highlightLast=false)
Definition: UIList.cs:424
Definition: UINote.cs:6
static void Refresh()
UIButton AddButton2Line(string idLang, Func< string > funcText, Action< UIButton > onClick=null, Sprite sprite=null, string idButton="2line")
Definition: WindowMenu.cs:91