Elin Modding Docs Doc
Loading...
Searching...
No Matches
LayerInteraction.cs
1using System;
2using System.Collections.Generic;
3using UnityEngine;
4
5// Token: 0x0200055D RID: 1373
6public class LayerInteraction : ELayer
7{
8 // Token: 0x0600254E RID: 9550 RVA: 0x000D41E2 File Offset: 0x000D23E2
9 public override void OnInit()
10 {
11 LayerInteraction.Instance = this;
12 this.first = true;
13 }
14
15 // Token: 0x0600254F RID: 9551 RVA: 0x000D41F1 File Offset: 0x000D23F1
16 public override void OnKill()
17 {
18 LayerInteraction.Target = null;
19 }
20
21 // Token: 0x06002550 RID: 9552 RVA: 0x000D41FC File Offset: 0x000D23FC
22 private unsafe void Update()
23 {
24 if (this.mode != LayerInteraction.Mode.Map)
25 {
26 return;
27 }
28 BaseTileSelector tileSelector = ELayer.screen.tileSelector;
29 MeshPass meshPass = (this.point.HasBlock || this.point.cell.liquidLv > 0) ? ELayer.screen.guide.passGuideBlock : ELayer.screen.guide.passGuideFloor;
30 int num = 0;
31 Vector3 vector = *this.point.Position();
32 meshPass.Add(vector.x, vector.y, vector.z, (float)num, 0.3f);
33 }
34
35 // Token: 0x06002551 RID: 9553 RVA: 0x000D428E File Offset: 0x000D248E
36 public override void OnUpdateInput()
37 {
38 }
39
40 // Token: 0x06002552 RID: 9554 RVA: 0x000D4290 File Offset: 0x000D2490
41 public static void Show(IInspect newTarget)
42 {
43 if (LayerInteraction.Target == newTarget)
44 {
45 return;
46 }
47 LayerInteraction.Target = newTarget;
49 ((LayerInteraction.Instance != null) ? LayerInteraction.Instance : ELayer.ui.AddLayer<LayerInteraction>()).ShowPage(page);
50 }
51
52 // Token: 0x06002553 RID: 9555 RVA: 0x000D42DB File Offset: 0x000D24DB
53 public static bool TryShow(bool quick)
54 {
55 if (!Scene.HitPoint.IsValid)
56 {
57 return false;
58 }
59 LayerInteraction.Show(ELayer.scene.mouseTarget.pos.ListInspectorTargets().NextItem(LayerInteraction.Target));
60 return true;
61 }
62
63 // Token: 0x06002554 RID: 9556 RVA: 0x000D4310 File Offset: 0x000D2510
64 public static LayerInteraction.Page GetPage(IInspect o)
65 {
67 List<LayerInteraction.Item> items = page.items;
68 if (o is Area)
69 {
70 Area area = o as Area;
71 page.area = area;
72 }
73 else if (o is Chara)
74 {
75 Chara t = o as Chara;
76 string text = "charaInfo".lang();
77 if (!t.IsHomeMember())
78 {
79 text = text + "(" + "unidentified".lang() + ")";
80 }
81 if (t.IsHomeMember())
82 {
83 page.Add(t, "tTalk".lang(), "", delegate()
84 {
85 t.ShowDialog();
86 }, 0, false);
87 }
88 else
89 {
90 page.Add(t, text, "", delegate()
91 {
92 if (!t.IsHomeMember())
93 {
94 SE.Beep();
95 return;
96 }
97 }, 0, false);
98 }
99 }
100 else if (o is Thing)
101 {
102 Thing t = o as Thing;
103 page.Add(t, "objInfo", "", delegate()
104 {
105 ELayer.ui.AddLayer<LayerInfo>().Set(t, false);
106 }, 0, false);
107 if (t.trait is TraitQuestBoard)
108 {
109 page.Add(t, "quest", "", delegate()
110 {
111 ELayer.ui.AddLayer<LayerQuestBoard>();
112 }, 20, true);
113 page.Add(t, "hire", "", delegate()
114 {
115 ELayer.ui.AddLayer<LayerHire>();
116 }, 20, true);
117 }
118 if (t.trait is TraitGacha)
119 {
120 page.Add(t, "gacha", "", delegate()
121 {
122 ELayer.ui.AddLayer<LayerGacha>();
123 }, 10, true);
124 }
125 if (t.trait.IsFactory)
126 {
127 page.Add(t, "craft", "icon_Inspect", delegate()
128 {
129 ELayer.ui.AddLayer<LayerCraft>().SetFactory(t);
130 }, 100, true);
131 }
132 if (t.IsInstalled)
133 {
134 page.Add(t, "move", "", delegate()
135 {
136 ActionMode.Inspect.Activate(t);
137 }, 0, false);
138 }
139 }
140 return page;
141 }
142
143 // Token: 0x06002555 RID: 9557 RVA: 0x000D4584 File Offset: 0x000D2784
144 public void Show(List<LayerInteraction.Page> _pages, LayerInteraction.Mode _mode)
145 {
146 this.pages = _pages;
147 this.mode = _mode;
148 LayerInteraction.Mode mode = this.mode;
149 if (mode != LayerInteraction.Mode.Map)
150 {
151 if (mode == LayerInteraction.Mode.EloMap)
152 {
154 this.pages = new List<LayerInteraction.Page>();
155 this.pages.Add(page);
156 page.Add(null, "test1", "", delegate()
157 {
158 }, 0, false);
159 page.Add(null, "test2", "", delegate()
160 {
161 }, 0, false);
162 }
163 }
164 else
165 {
166 this.point.Set(Scene.HitPoint);
167 }
168 foreach (LayerInteraction.Page page2 in this.pages)
169 {
170 ButtonGrid buttonGrid = this.menu.Add() as ButtonGrid;
171 page2.button = buttonGrid;
172 buttonGrid.SetObject(page2.items[0].target);
173 LayerInteraction.Page _page = page2;
174 buttonGrid.onClick.AddListener(delegate()
175 {
176 this.ShowPage(_page);
177 SE.Click();
178 });
179 buttonGrid.RebuildLayout(true);
180 }
181 this.menu.Show();
182 this.ShowPage(0);
183 }
184
185 // Token: 0x06002556 RID: 9558 RVA: 0x000D4708 File Offset: 0x000D2908
186 public void ShowPage(int index)
187 {
188 this.ShowPage(this.pages[index]);
189 }
190
191 // Token: 0x06002557 RID: 9559 RVA: 0x000D471C File Offset: 0x000D291C
192 public void ShowPage(LayerInteraction.Page page)
193 {
194 this.menu.Clear();
195 using (List<LayerInteraction.Item>.Enumerator enumerator = page.items.GetEnumerator())
196 {
197 while (enumerator.MoveNext())
198 {
199 LayerInteraction.Item item = enumerator.Current;
200 UIButton uibutton = this.menu.Add();
201 uibutton.icon.sprite = (SpriteSheet.Get(item.idSprite.IsEmpty("icon_" + item.text)) ?? uibutton.icon.sprite);
202 uibutton.mainText.SetText((item.textFunc != null) ? item.textFunc() : item.text.lang());
203 uibutton.onClick.AddListener(delegate()
204 {
205 item.action();
206 if (item.reload)
207 {
208 this.Reload();
209 this.ShowPage(page);
210 }
211 });
212 uibutton.RebuildLayout(true);
213 }
214 }
215 Chara chara = LayerInteraction.Target as Chara;
216 bool flag = chara != null && chara.IsHomeMember();
217 this.windowChara.SetActive(flag);
218 if (flag)
219 {
220 this.windowChara.SetChara(chara);
221 }
222 this.menu.Show();
223 }
224
225 // Token: 0x06002558 RID: 9560 RVA: 0x000D489C File Offset: 0x000D2A9C
226 public void Reload()
227 {
228 }
229
230 // Token: 0x040014DA RID: 5338
231 public static LayerInteraction Instance;
232
233 // Token: 0x040014DB RID: 5339
234 public static IInspect Target;
235
236 // Token: 0x040014DC RID: 5340
237 public LayerInteraction.Mode mode;
238
239 // Token: 0x040014DD RID: 5341
240 public Point point;
241
242 // Token: 0x040014DE RID: 5342
243 public List<LayerInteraction.Page> pages = new List<LayerInteraction.Page>();
244
245 // Token: 0x040014DF RID: 5343
246 private bool first = true;
247
248 // Token: 0x040014E0 RID: 5344
249 public InteractionMenu menu;
250
251 // Token: 0x040014E1 RID: 5345
252 public WindowChara windowChara;
253
254 // Token: 0x02000A8A RID: 2698
255 public enum Mode
256 {
257 // Token: 0x04002B10 RID: 11024
258 Map,
259 // Token: 0x04002B11 RID: 11025
260 Inventory,
261 // Token: 0x04002B12 RID: 11026
262 EloMap,
263 // Token: 0x04002B13 RID: 11027
264 Area,
265 // Token: 0x04002B14 RID: 11028
266 Custom
267 }
268
269 // Token: 0x02000A8B RID: 2699
270 public class Page
271 {
272 // Token: 0x06004147 RID: 16711 RVA: 0x00150EB8 File Offset: 0x0014F0B8
273 public LayerInteraction.Item Add(object target, string text, string idSprite, Action action, int priority = 0, bool auto = false)
274 {
276 {
277 target = target,
278 text = text,
279 idSprite = idSprite,
280 action = action,
281 priority = priority,
282 auto = auto
283 };
284 this.items.Add(item);
285 return item;
286 }
287
288 // Token: 0x06004148 RID: 16712 RVA: 0x00150F08 File Offset: 0x0014F108
289 public LayerInteraction.Item Add(object target, string text, Func<bool> valueFunc, Action<bool> action)
290 {
291 Action action2 = delegate()
292 {
293 SE.Click();
294 action(!valueFunc());
295 };
297 {
298 target = target,
299 textFunc = (() => text.lang() + " (" + (valueFunc() ? "on" : "off") + ")"),
300 action = action2,
301 reload = true
302 };
303 this.items.Add(item);
304 return item;
305 }
306
307 // Token: 0x04002B15 RID: 11029
308 public UIButton button;
309
310 // Token: 0x04002B16 RID: 11030
311 public Area area;
312
313 // Token: 0x04002B17 RID: 11031
314 public List<LayerInteraction.Item> items = new List<LayerInteraction.Item>();
315 }
316
317 // Token: 0x02000A8C RID: 2700
318 public class Item
319 {
320 // Token: 0x170011E0 RID: 4576
321 // (get) Token: 0x0600414A RID: 16714 RVA: 0x00150F8B File Offset: 0x0014F18B
322 public bool IsArea
323 {
324 get
325 {
326 return this.target is Area;
327 }
328 }
329
330 // Token: 0x04002B18 RID: 11032
331 public object target;
332
333 // Token: 0x04002B19 RID: 11033
334 public string text;
335
336 // Token: 0x04002B1A RID: 11034
337 public string idSprite;
338
339 // Token: 0x04002B1B RID: 11035
340 public Action action;
341
342 // Token: 0x04002B1C RID: 11036
343 public int priority;
344
345 // Token: 0x04002B1D RID: 11037
346 public bool auto;
347
348 // Token: 0x04002B1E RID: 11038
349 public bool reload;
350
351 // Token: 0x04002B1F RID: 11039
352 public Func<string> textFunc;
353 }
354}
Definition Area.cs:6
Definition Chara.cs:12
Definition Map.cs:15
Definition Point.cs:11
Definition Scene.cs:10
Definition Thing.cs:10