Elin Modding Docs Doc
Loading...
Searching...
No Matches
Hotbar.cs
1using System;
2using System.Collections.Generic;
3using Newtonsoft.Json;
4
5// Token: 0x02000602 RID: 1538
6public class Hotbar : EClass
7{
8 // Token: 0x17000C2E RID: 3118
9 // (get) Token: 0x06002AB7 RID: 10935 RVA: 0x000F11B5 File Offset: 0x000EF3B5
10 public HotbarManager manager
11 {
12 get
13 {
14 return EClass.player.hotbars;
15 }
16 }
17
18 // Token: 0x17000C2F RID: 3119
19 // (get) Token: 0x06002AB8 RID: 10936 RVA: 0x000F11C1 File Offset: 0x000EF3C1
20 public HotItem SelectedItem
21 {
22 get
23 {
24 return this.pages[this.currentPage].SelectedItem;
25 }
26 }
27
28 // Token: 0x17000C30 RID: 3120
29 // (get) Token: 0x06002AB9 RID: 10937 RVA: 0x000F11D9 File Offset: 0x000EF3D9
30 public HotItem DefaultItem
31 {
32 get
33 {
34 return null;
35 }
36 }
37
38 // Token: 0x17000C31 RID: 3121
39 // (get) Token: 0x06002ABA RID: 10938 RVA: 0x000F11DC File Offset: 0x000EF3DC
40 public bool IsLocked
41 {
42 get
43 {
44 return this.id == 3;
45 }
46 }
47
48 // Token: 0x17000C32 RID: 3122
49 // (get) Token: 0x06002ABB RID: 10939 RVA: 0x000F11E7 File Offset: 0x000EF3E7
50 public bool IsUserHotbar
51 {
52 get
53 {
54 return this.id == 5 || this.id == 6;
55 }
56 }
57
58 // Token: 0x17000C33 RID: 3123
59 // (get) Token: 0x06002ABC RID: 10940 RVA: 0x000F11FD File Offset: 0x000EF3FD
60 public bool ShowFunctionKey
61 {
62 get
63 {
64 return this.id == 5;
65 }
66 }
67
68 // Token: 0x17000C34 RID: 3124
69 // (get) Token: 0x06002ABD RID: 10941 RVA: 0x000F1208 File Offset: 0x000EF408
70 public Hotbar.Page CurrentPage
71 {
72 get
73 {
74 return this.pages[(this.currentPage >= 0) ? this.currentPage : 0];
75 }
76 }
77
78 // Token: 0x06002ABE RID: 10942 RVA: 0x000F1228 File Offset: 0x000EF428
79 public void SetSlotNum(int a)
80 {
81 this.itemsPerPage = a;
82 foreach (Hotbar.Page page in this.pages)
83 {
84 this.ValidatePage(page, -1);
85 }
86 }
87
88 // Token: 0x06002ABF RID: 10943 RVA: 0x000F1284 File Offset: 0x000EF484
89 public void AddPage()
90 {
91 Hotbar.Page page = new Hotbar.Page();
92 this.pages.Add(page);
93 this.ValidatePage(page, -1);
94 }
95
96 // Token: 0x06002AC0 RID: 10944 RVA: 0x000F12AC File Offset: 0x000EF4AC
97 public void ValidatePage(Hotbar.Page page, int num = -1)
98 {
99 if (num != -1 && this.itemsPerPage < num)
100 {
101 this.itemsPerPage = num;
102 }
103 if (page.items.Count < this.itemsPerPage)
104 {
105 int num2 = this.itemsPerPage - page.items.Count;
106 for (int i = 0; i < num2; i++)
107 {
108 page.items.Add(this.DefaultItem);
109 }
110 }
111 }
112
113 // Token: 0x06002AC1 RID: 10945 RVA: 0x000F1310 File Offset: 0x000EF510
114 public void SetPage(int pageIndex)
115 {
116 this.currentPage = pageIndex;
117 }
118
119 // Token: 0x06002AC2 RID: 10946 RVA: 0x000F131C File Offset: 0x000EF51C
120 public void Remove(HotItem item)
121 {
122 for (int i = 0; i < this.pages.Count; i++)
123 {
124 for (int j = 0; j < this.pages[i].items.Count; j++)
125 {
126 if (this.pages[i].items[j] == item)
127 {
128 this.SetItem(null, j, i, true);
129 }
130 }
131 }
132 }
133
134 // Token: 0x06002AC3 RID: 10947 RVA: 0x000F1385 File Offset: 0x000EF585
135 public HotItem GetItem(int index, int pageIndex = -1)
136 {
137 return this.pages[(pageIndex == -1) ? this.currentPage : pageIndex].GetItem(index);
138 }
139
140 // Token: 0x06002AC4 RID: 10948 RVA: 0x000F13A8 File Offset: 0x000EF5A8
141 public HotItem SetItem(HotItem item, int index = -1, int pageIndex = -1, bool refreshActor = false)
142 {
143 if (item == null)
144 {
145 item = this.DefaultItem;
146 }
147 if (pageIndex == -1)
148 {
149 pageIndex = this.currentPage;
150 }
151 if (pageIndex >= this.pages.Count)
152 {
153 this.AddPage();
154 pageIndex = this.pages.Count - 1;
155 }
156 Hotbar.Page page = this.pages[pageIndex];
157 this.ValidatePage(page, index + 1);
158 page.SetItem(this, item, index);
159 if (item != null)
160 {
161 item.OnAddedToBar();
162 }
163 if (refreshActor && this.actor)
164 {
165 this.actor.RebuildPage(-1);
166 }
167 return item;
168 }
169
170 // Token: 0x06002AC5 RID: 10949 RVA: 0x000F1436 File Offset: 0x000EF636
171 public void Select(HotItem item)
172 {
173 SE.SelectHotitem();
174 EClass.player.SetCurrentHotItem(item);
175 }
176
177 // Token: 0x06002AC6 RID: 10950 RVA: 0x000F1448 File Offset: 0x000EF648
178 public void ToggleDisable(HotItem item)
179 {
180 item.disabled = !item.disabled;
181 if (item.disabled)
182 {
183 item.OnUnselect();
184 }
185 SE.SelectHotitem();
186 EClass.player.SetCurrentHotItem(item.disabled ? null : item);
187 }
188
189 // Token: 0x06002AC7 RID: 10951 RVA: 0x000F1484 File Offset: 0x000EF684
190 public void Unselect(int pageIndex = -1)
191 {
192 if (pageIndex == -1)
193 {
194 pageIndex = this.currentPage;
195 }
196 HotItem selectedItem = this.pages[pageIndex].SelectedItem;
197 this.pages[pageIndex].selected = -1;
198 if (selectedItem != null)
199 {
200 selectedItem.OnUnselect();
201 }
202 EClass.player.SetCurrentHotItem(null);
203 }
204
205 // Token: 0x06002AC8 RID: 10952 RVA: 0x000F14D8 File Offset: 0x000EF6D8
206 public HotItem GetSelectedItem()
207 {
208 int selected = this.pages[this.currentPage].selected;
209 if (selected == -1)
210 {
211 return null;
212 }
213 return this.pages[this.currentPage].items[selected];
214 }
215
216 // Token: 0x06002AC9 RID: 10953 RVA: 0x000F1520 File Offset: 0x000EF720
217 public int GetNextSelectableIndex(int pageIndex = -1)
218 {
219 if (pageIndex == -1)
220 {
221 pageIndex = this.currentPage;
222 }
223 Hotbar.Page page = this.pages[pageIndex];
224 int num = page.selected + 1;
225 if (num >= this.itemsPerPage)
226 {
227 num = -1;
228 }
229 this.ValidatePage(page, -1);
230 return num;
231 }
232
233 // Token: 0x06002ACA RID: 10954 RVA: 0x000F1564 File Offset: 0x000EF764
234 public int GetPrevSelectableIndex(int pageIndex = -1)
235 {
236 if (pageIndex == -1)
237 {
238 pageIndex = this.currentPage;
239 }
240 Hotbar.Page page = this.pages[pageIndex];
241 int num = page.selected - 1;
242 if (num < -1)
243 {
244 num = this.itemsPerPage - 1;
245 }
246 this.ValidatePage(page, -1);
247 return num;
248 }
249
250 // Token: 0x04001815 RID: 6165
251 public const int IDMainMenu = 2;
252
253 // Token: 0x04001816 RID: 6166
254 public const int IDBuild = 3;
255
256 // Token: 0x04001817 RID: 6167
257 public const int IDUser2 = 5;
258
259 // Token: 0x04001818 RID: 6168
260 public const int IDUser3 = 6;
261
262 // Token: 0x04001819 RID: 6169
263 public const int IDSpeed = 7;
264
265 // Token: 0x0400181A RID: 6170
266 [JsonProperty]
267 public int currentPage;
268
269 // Token: 0x0400181B RID: 6171
270 [JsonProperty]
271 public int itemsPerPage = 6;
272
273 // Token: 0x0400181C RID: 6172
274 [JsonProperty]
275 public int id;
276
277 // Token: 0x0400181D RID: 6173
278 [JsonProperty]
279 public List<Hotbar.Page> pages = new List<Hotbar.Page>();
280
281 // Token: 0x0400181E RID: 6174
282 public bool dirty;
283
284 // Token: 0x0400181F RID: 6175
285 public WidgetHotbar actor;
286
287 // Token: 0x02000B74 RID: 2932
288 public enum Type
289 {
290 // Token: 0x04002DFB RID: 11771
291 Default,
292 // Token: 0x04002DFC RID: 11772
293 Main,
294 // Token: 0x04002DFD RID: 11773
295 ZoomMenu
296 }
297
298 // Token: 0x02000B75 RID: 2933
299 public class Page : EClass
300 {
301 // Token: 0x170011F1 RID: 4593
302 // (get) Token: 0x06004425 RID: 17445 RVA: 0x0015B7BD File Offset: 0x001599BD
303 public HotItem SelectedItem
304 {
305 get
306 {
307 if (this.selected != -1)
308 {
309 return this.items[this.selected];
310 }
311 return null;
312 }
313 }
314
315 // Token: 0x06004426 RID: 17446 RVA: 0x0015B7DC File Offset: 0x001599DC
316 public void SetItem(Hotbar h, HotItem item, int index)
317 {
318 if (index == -1)
319 {
320 for (int i = 0; i < this.items.Count; i++)
321 {
322 if (this.items[i] == null)
323 {
324 index = i;
325 break;
326 }
327 }
328 if (index == -1)
329 {
330 return;
331 }
332 }
333 if (this.items[index] != null)
334 {
335 this.items[index].button = null;
336 }
337 this.items[index] = item;
338 }
339
340 // Token: 0x06004427 RID: 17447 RVA: 0x0015B848 File Offset: 0x00159A48
341 public HotItem GetItem(int index)
342 {
343 if (index >= this.items.Count)
344 {
345 return null;
346 }
347 return this.items[index];
348 }
349
350 // Token: 0x04002DFE RID: 11774
351 [JsonProperty]
352 public List<HotItem> items = new List<HotItem>();
353
354 // Token: 0x04002DFF RID: 11775
355 [JsonProperty]
356 public int selected = -1;
357 }
358}