Elin Modding Docs Doc
Loading...
Searching...
No Matches
BuildMenu.cs
1using System;
2using System.Collections.Generic;
3using UnityEngine;
4using UnityEngine.Events;
5using UnityEngine.UI;
6
7// Token: 0x020004F6 RID: 1270
8public class BuildMenu : EMono
9{
10 // Token: 0x17000AED RID: 2797
11 // (get) Token: 0x060021D9 RID: 8665 RVA: 0x000BB2AE File Offset: 0x000B94AE
12 public BuildMenu.Mode mode
13 {
14 get
15 {
16 return EMono.scene.actionMode.buildMenuMode;
17 }
18 }
19
20 // Token: 0x060021DA RID: 8666 RVA: 0x000BB2C0 File Offset: 0x000B94C0
21 public static void Toggle()
22 {
23 EMono.player.hotbars.ResetHotbar(3);
24 EMono.player.hotbars.bars[3].dirty = true;
25 EMono.player.hotbars.ResetHotbar(4);
26 EMono.player.hotbars.bars[4].dirty = true;
27 if (EMono.debug.godBuild || (EMono.Branch != null && EMono.Branch.elements.Has(4006)))
28 {
29 ActionMode.Inspect.Activate(true, false);
30 return;
31 }
32 if (ActionMode.LastBuildMode != null)
33 {
34 ActionMode.LastBuildMode.Activate(true, false);
35 return;
36 }
37 ActionMode.Terrain.Activate(true, false);
38 }
39
40 // Token: 0x060021DB RID: 8667 RVA: 0x000BB374 File Offset: 0x000B9574
41 public static void Activate()
42 {
43 if (!BuildMenu.Instance)
44 {
45 BuildMenu.Instance = Util.Instantiate<BuildMenu>("UI/BuildMenu/BuildMenu", EMono.ui);
46 BuildMenu.Instance.Init();
47 }
48 if (EMono.debug.godBuild)
49 {
50 EMono._map.RevealAll(true);
51 }
52 RecipeManager.BuildList();
53 BuildMenu.Instance.OnActivate();
54 EMono.screen.focusPos = null;
55 }
56
57 // Token: 0x060021DC RID: 8668 RVA: 0x000BB3E4 File Offset: 0x000B95E4
58 public void OnActivate()
59 {
60 if (EMono.debug.godBuild && EMono.debug.GetDebugContainer() == null)
61 {
62 EMono.debug.EnableDebugResource();
63 }
64 EMono.ui.HideFloats();
65 this.SetActive(this.mode != BuildMenu.Mode.None);
66 this.transMain.SetActive(this.mode == BuildMenu.Mode.Build && (EMono.debug.godBuild || EMono._zone.elements.Has(4005)));
67 BuildMenu.Mode mode = this.mode;
68 if (mode != BuildMenu.Mode.Build)
69 {
70 if (mode == BuildMenu.Mode.Area)
71 {
72 this.RefreshCategoryArea();
73 this.Refresh();
74 }
75 }
76 else
77 {
78 string cat = EMono.player.pref.lastBuildCategory.IsEmpty("wall");
79 this.SelectCategory(cat);
80 this.Refresh();
81 UIScrollView componentInChildren = this.cg.GetComponentInChildren<UIScrollView>();
82 if (componentInChildren != null)
83 {
84 componentInChildren.RebuildLayout(true);
85 }
86 this.buttonUndo.onClick.RemoveAllListeners();
87 this.buttonUndo.onClick.AddListener(delegate()
88 {
89 EMono._map.tasks.undo.Perform();
90 });
91 this.buttonUndo.SetTooltip("note", delegate(UITooltip tp)
92 {
93 EMono._map.tasks.undo.WriteNote(tp.note);
94 }, true);
95 }
96 if (EMono.debug.enable)
97 {
98 EMono._map.ResetEditorPos();
99 }
100 EMono.screen.RefreshAll();
101 }
102
103 // Token: 0x060021DD RID: 8669 RVA: 0x000BB55C File Offset: 0x000B975C
104 public static void Deactivate()
105 {
106 if (!BuildMenu.Instance)
107 {
108 return;
109 }
110 UnityEngine.Object.DestroyImmediate(BuildMenu.Instance.gameObject);
111 if (EMono.game.altUI)
112 {
113 EMono._zone.RefreshBGM();
114 }
115 EMono.ui.ShowFloats();
116 EMono.screen.RefreshAll();
117 }
118
119 // Token: 0x060021DE RID: 8670 RVA: 0x000BB5B0 File Offset: 0x000B97B0
120 public void Init()
121 {
122 this.info1.Init();
123 this.info2.Init();
124 this.info2.transform.position = this.info1.transform.position;
125 this.orgPos = this.info1.Rect().anchoredPosition;
126 this.orgPosOption = this.transOption.anchoredPosition;
127 for (int i = 0; i < this.categories.Length; i++)
128 {
129 if (!this.categories[i].IsEmpty())
130 {
131 this.catDic.Add(this.categories[i], i);
132 }
133 }
134 UIButton t = this.gridTab.CreateMold(null);
135 for (int j = 0; j < this.categories.Length - 1; j++)
136 {
137 int _i = j;
138 UIButton uibutton = Util.Instantiate<UIButton>(t, this.gridTab);
139 uibutton.onClick.AddListener(delegate()
140 {
141 this.ClearSearch(false);
142 this.SelectCategory(this.categories[_i]);
143 });
144 uibutton.mainText.SetText(("cat_" + this.categories[j]).lang());
145 this.tabs[this.categories[j]] = uibutton;
146 if (this.categories[j].IsEmpty())
147 {
148 uibutton.mainText.SetActive(false);
149 uibutton.interactable = false;
150 }
151 }
152 this.groupTab.Init(-1, null, false);
153 EMono.ui.hud.frame.SetActive(EMono.game.altUI);
154 this.inputSearch.onValueChanged.AddListener(new UnityAction<string>(this.Search));
155 this.inputSearch.onSubmit.AddListener(new UnityAction<string>(this.Search));
156 if (EMono.game.altUI)
157 {
158 EMono.Sound.SwitchPlaylist(EMono.Sound.playlistBuild, true);
159 }
160 }
161
162 // Token: 0x060021DF RID: 8671 RVA: 0x000BB794 File Offset: 0x000B9994
163 public void Search(string s)
164 {
165 s = s.ToLower();
166 this.buttonClearSearch.SetActive(this.inputSearch.text != "");
167 if (s == this.lastSearch)
168 {
169 return;
170 }
171 this.timerSearch = this.intervalSearch;
172 this.lastSearch = s;
173 }
174
175 // Token: 0x060021E0 RID: 8672 RVA: 0x000BB7EC File Offset: 0x000B99EC
176 private void _Search()
177 {
178 string s = this.lastSearch;
179 RecipeManager.BuildList();
180 HashSet<Recipe> newRecipes = new HashSet<Recipe>();
181 if (!s.IsEmpty())
182 {
183 foreach (RecipeSource recipeSource in RecipeManager.list)
184 {
185 if (!recipeSource.noListing && !recipeSource.isBridgePillar && (EMono.debug.godBuild || recipeSource.alwaysKnown || EMono.player.recipes.knownRecipes.ContainsKey(recipeSource.id)) && (recipeSource.row.GetSearchName(false).Contains(s) || recipeSource.row.GetSearchName(true).Contains(s) || recipeSource.id.Contains(s) || recipeSource.row.category.Contains(s)))
186 {
187 for (int i = 0; i < ((recipeSource.row.skins == null) ? 1 : (recipeSource.row.skins.Length + 1)); i++)
188 {
189 Recipe recipe = Recipe.Create(recipeSource, -1, null);
190 recipe.idSkin = i;
191 if (recipe == null)
192 {
193 Debug.Log(recipeSource.Name + "/" + recipeSource.id);
194 }
195 else
196 {
197 newRecipes.Add(recipe);
198 }
199 }
200 }
201 }
202 foreach (Thing thing in EMono._map.Stocked.Things)
203 {
204 if (thing.source.name.Contains(s) || thing.source.name_JP.Contains(s))
205 {
206 Recipe recipe2 = Recipe.Create(thing);
207 if (recipe2 == null)
208 {
209 Debug.Log(thing.Name + "/" + thing.id);
210 }
211 else
212 {
213 newRecipes.Add(recipe2);
214 }
215 }
216 }
217 EMono.pc.things.Foreach(delegate(Thing t)
218 {
219 if (!t.trait.CanBeDropped || t.trait.CanOnlyCarry)
220 {
221 return;
222 }
223 if (t.source.name.Contains(s) || t.source.name_JP.Contains(s))
224 {
225 Recipe recipe3 = Recipe.Create(t);
226 if (recipe3 == null)
227 {
228 Debug.Log(t.Name + "/" + t.id);
229 return;
230 }
231 newRecipes.Add(recipe3);
232 }
233 }, true);
234 }
235 if (!newRecipes.SetEquals(this.searchRecipes))
236 {
237 this.searchRecipes = newRecipes;
238 this.RefreshCategory(this.currentCat);
239 }
240 this.lastSearch = s;
241 }
242
243 // Token: 0x060021E1 RID: 8673 RVA: 0x000BBAA0 File Offset: 0x000B9CA0
244 public void ClearSearch()
245 {
246 this.ClearSearch(true);
247 }
248
249 // Token: 0x060021E2 RID: 8674 RVA: 0x000BBAA9 File Offset: 0x000B9CA9
250 public void ClearSearch(bool refresh)
251 {
252 SE.Click();
253 this.inputSearch.text = "";
254 this.timerSearch = 0f;
255 this.lastSearch = "";
256 if (refresh)
257 {
258 this.RefreshCategory(this.currentCat);
259 }
260 }
261
262 // Token: 0x060021E3 RID: 8675 RVA: 0x000BBAE5 File Offset: 0x000B9CE5
263 public static void Show()
264 {
265 if (BuildMenu.Instance)
266 {
267 BuildMenu.Instance.SetActive(true);
268 }
269 }
270
271 // Token: 0x060021E4 RID: 8676 RVA: 0x000BBAFE File Offset: 0x000B9CFE
272 public static void Hide()
273 {
274 if (BuildMenu.Instance)
275 {
276 BuildMenu.Instance.SetActive(false);
277 }
278 }
279
280 // Token: 0x060021E5 RID: 8677 RVA: 0x000BBB17 File Offset: 0x000B9D17
281 private void LateUpdate()
282 {
283 this.Refresh();
284 if (this.timerSearch > 0f)
285 {
286 this.timerSearch -= Core.delta;
287 if (this.timerSearch <= 0f)
288 {
289 this._Search();
290 }
291 }
292 }
293
294 // Token: 0x060021E6 RID: 8678 RVA: 0x000BBB54 File Offset: 0x000B9D54
295 public void Refresh()
296 {
297 ButtonGrid buttonGrid = InputModuleEX.GetComponentOf<ButtonGrid>();
298 if (buttonGrid && buttonGrid.recipe == null && buttonGrid.area == null)
299 {
300 buttonGrid = null;
301 }
302 bool flag = EMono.scene.actionMode.ShouldHideBuildMenu || (EMono.scene.actionMode != ActionMode.Build && EMono.scene.actionMode != ActionMode.Inspect && EMono.scene.actionMode != ActionMode.EditArea);
303 this.cg.SetActive(!flag, delegate(bool enabled)
304 {
305 if (enabled)
306 {
307 this.list.RefreshHighlight(false);
308 this.groupTab.RefreshButtons();
309 }
310 });
311 this.groupTab.SetActive(EMono.scene.actionMode != ActionMode.EditArea);
312 this.transOption.anchoredPosition = (this.groupTab.gameObject.activeInHierarchy ? this.orgPosOption : this.posOption);
313 if (this.info1.hideMode != flag || this.firstRefresh)
314 {
315 this.info1.hideMode = flag;
316 if (this.moveInfo1)
317 {
318 this.info1.Rect().anchoredPosition = (flag ? this.posInfo1 : this.orgPos);
319 }
320 }
321 if (buttonGrid && !flag)
322 {
323 this.info2.transform.position = buttonGrid.transform.position;
324 this.info2.Rect().anchoredPosition = new Vector2(this.info2.Rect().anchoredPosition.x + this.posInfo2.x, this.posInfo2.y);
325 if (buttonGrid.area != null)
326 {
327 this.info2.SetArea(buttonGrid.area);
328 }
329 else
330 {
331 this.info2.SetRecipe(buttonGrid.recipe);
332 }
333 this.info2.SetActive(true);
334 }
335 else
336 {
337 this.info2.SetActive(false);
338 }
339 this.firstRefresh = false;
340 }
341
342 // Token: 0x060021E7 RID: 8679 RVA: 0x000BBD39 File Offset: 0x000B9F39
343 public void SelectCategory(string cat)
344 {
345 if (!BuildMenu.dirtyCat && this.currentCat == cat)
346 {
347 return;
348 }
349 BuildMenu.dirtyCat = false;
350 this.groupTab.Select(this.catDic[cat]);
351 this.RefreshCategory(cat);
352 }
353
354 // Token: 0x060021E8 RID: 8680 RVA: 0x000BBD78 File Offset: 0x000B9F78
355 public void Select(AM_Picker.Result r)
356 {
357 EInput.Consume(false, 10);
358 Debug.Log(EInput.skipFrame);
359 this.ClearSearch(false);
360 this.RefreshCategory(r.source.recipeCat);
361 foreach (object obj in this.list.objects)
362 {
363 Recipe recipe = obj as Recipe;
364 if (r.source == recipe.source && (r.thing == null || r.thing.idSkin == recipe.idSkin))
365 {
366 int index = this.list.GetIndex(recipe);
367 if (index != -1)
368 {
369 this.list.dsv.scrollByItemIndex(index);
370 this.list.Refresh();
371 break;
372 }
373 break;
374 }
375 }
376 foreach (ButtonGrid buttonGrid in this.list.GetComponentsInChildren<ButtonGrid>())
377 {
378 if (buttonGrid.recipe.source == r.source && (r.thing == null || r.thing.idSkin == buttonGrid.recipe.idSkin))
379 {
380 this.info1.lastMats[buttonGrid.recipe.id] = r.mat.id;
381 buttonGrid.onClick.Invoke();
382 return;
383 }
384 }
385 }
386
387 // Token: 0x060021E9 RID: 8681 RVA: 0x000BBEE4 File Offset: 0x000BA0E4
388 public void Unselect()
389 {
390 this.info1.SetRecipe(null);
391 this.list.Select(null, false);
392 }
393
394 // Token: 0x060021EA RID: 8682 RVA: 0x000BBF00 File Offset: 0x000BA100
395 public void RefreshCategoryArea()
396 {
397 UIDynamicList uidynamicList = this.listArea;
398 List<Area> list = new List<Area>();
399 foreach (SourceArea.Row row in EMono.sources.areas.rows)
400 {
401 Area area = Area.Create(row.id);
402 area.data.name = null;
403 list.Add(area);
404 }
405 uidynamicList.Clear();
406 object selected = null;
407 uidynamicList.callbacks = new UIList.Callback<Area, ButtonGrid>
408 {
409 onClick = delegate(Area a, ButtonGrid b)
410 {
411 SE.Click();
412 ActionMode.CreateArea.SetArea(a);
413 if (EMono.scene.actionMode != ActionMode.CreateArea)
414 {
415 ActionMode.CreateArea.Activate(true, false);
416 }
417 EMono.ui.hud.hint.Refresh();
418 this.info1.SetArea(a);
419 },
420 onRedraw = delegate(Area a, ButtonGrid b, int i)
421 {
422 b.SetRecipe(a);
423 if (this.info1.area != null && a.source == this.info1.area.source)
424 {
425 selected = a;
426 }
427 }
428 };
429 foreach (Area area2 in list)
430 {
431 if (area2.isListable)
432 {
433 uidynamicList.Add(area2);
434 }
435 }
436 uidynamicList.List();
437 }
438
439 // Token: 0x060021EB RID: 8683 RVA: 0x000BC01C File Offset: 0x000BA21C
440 public void RefreshCategory(string cat)
441 {
442 cat = cat.IsEmpty(this.categories[0]);
443 EMono.player.pref.lastBuildCategory = cat;
444 this.currentCat = cat;
445 this.list.Clear();
446 object selected = null;
447 this.counts.Clear();
448 Action<Thing> <>9__4;
449 this.list.callbacks = new UIList.Callback<Recipe, ButtonGrid>
450 {
451 onClick = delegate(Recipe a, ButtonGrid b)
452 {
453 SE.Click();
454 EMono.ui.hud.hint.Refresh();
455 EMono.player.pref.lastBuildRecipe = a.source.id;
456 if (a.UseStock && (a.ingredients[0].uid == 0 || a.ingredients[0].thing == null))
457 {
458 Debug.LogError("expection: invalid ingredient:" + a.ingredients[0].uid.ToString());
459 }
460 if (this.info1.recipe != a && !a.UseStock)
461 {
462 foreach (Recipe.Ingredient ingredient in a.ingredients)
463 {
464 ingredient.SetThing(null);
465 }
466 }
467 if (a.UseStock && (a.ingredients[0].uid == 0 || a.ingredients[0].thing == null))
468 {
469 Debug.LogError("expection: invalid ingredient:" + a.ingredients[0].uid.ToString());
470 }
471 this.info1.SetRecipe(a);
472 if (a.UseStock && (a.ingredients[0].uid == 0 || a.ingredients[0].thing == null))
473 {
474 Debug.LogError("expection: invalid ingredient:" + a.ingredients[0].uid.ToString());
475 }
476 a.OnChangeIngredient();
477 ActionMode.Build.StartBuild(a, () => this.list.GetComp<ButtonGrid>(a));
478 this.info1.SetRecipe(a);
479 this.list.Select(a, false);
480 if (a.UseStock && (a.ingredients[0].uid == 0 || a.ingredients[0].thing == null))
481 {
482 Debug.LogError("expection: invalid ingredient:" + a.ingredients[0].uid.ToString());
483 }
484 },
485 onRedraw = delegate(Recipe a, ButtonGrid b, int i)
486 {
487 b.SetActive(a != null);
488 if (a == null)
489 {
490 return;
491 }
492 b.SetRecipe(a);
493 if (this.info1.recipe != null && a.id == this.info1.recipe.id)
494 {
495 selected = a;
496 }
497 a.BuildIngredientList();
498 },
499 onList = delegate(UIList.SortMode m)
500 {
501 foreach (string key in this.categories)
502 {
503 this.counts[key] = 0;
504 }
505 if (this.inputSearch.text != "")
506 {
507 foreach (Recipe recipe in this.searchRecipes)
508 {
509 if (recipe.UseStock)
510 {
511 Thing thing = recipe.ingredients[0].thing;
512 if (thing == null || thing.isDestroyed || thing.ExistsOnMap || (thing.parentCard != null && thing.parentCard.c_lockLv > 0))
513 {
514 continue;
515 }
516 }
517 this.list.Add(recipe);
518 }
519 return;
520 }
521 foreach (RecipeSource recipeSource in RecipeManager.list)
522 {
523 if (EMono.debug.godBuild || (!recipeSource.noListing && !recipeSource.row.tileType.EditorTile && EMono.player.recipes.IsKnown(recipeSource.id) && (recipeSource.row.factory.Length == 0 || !(recipeSource.row.factory[0] == "none"))))
524 {
525 Dictionary<string, int> dictionary = this.counts;
526 string recipeCat = recipeSource.recipeCat;
527 int i = dictionary[recipeCat];
528 dictionary[recipeCat] = i + 1;
529 if (!(recipeSource.recipeCat != cat))
530 {
531 for (int j = 0; j < ((recipeSource.row.skins == null) ? 0 : recipeSource.row.skins.Length) + 1; j++)
532 {
533 Recipe recipe2 = Recipe.Create(recipeSource, -1, null);
534 recipe2.idSkin = j;
535 this.list.Add(recipe2);
536 }
537 }
538 }
539 }
540 if (!EMono.debug.hidePCItemsInBuild)
541 {
542 foreach (Thing thing2 in EMono._map.Stocked.Things)
543 {
544 Card card = thing2.parent as Card;
545 if (!(thing2.parent is Chara) && !(thing2.trait is TraitChestMerchant) && (card == null || (!(card.trait is TraitChestMerchant) && !card.isSale)))
546 {
547 Dictionary<string, int> dictionary2 = this.counts;
548 string recipeCat = thing2.trait.RecipeCat;
549 int i = dictionary2[recipeCat];
550 dictionary2[recipeCat] = i + 1;
551 if (thing2.trait.RecipeCat == cat)
552 {
553 Card rootCard = thing2.GetRootCard();
554 if (rootCard != null && rootCard.c_lockLv == 0)
555 {
556 this.list.Add(thing2.trait.GetBuildModeRecipe());
557 }
558 }
559 }
560 }
561 ThingContainer things = EMono.pc.things;
562 Action<Thing> action;
563 if ((action = <>9__4) == null)
564 {
565 action = (<>9__4 = delegate(Thing t)
566 {
567 if (t.trait.CanOnlyCarry || !t.trait.CanBeDropped || t.c_isImportant)
568 {
569 return;
570 }
571 Dictionary<string, int> dictionary3 = this.counts;
572 string recipeCat2 = t.trait.RecipeCat;
573 int num = dictionary3[recipeCat2];
574 dictionary3[recipeCat2] = num + 1;
575 if (t.trait.RecipeCat == cat && t.invY != 1)
576 {
577 this.list.Add(t.trait.GetBuildModeRecipe());
578 }
579 });
580 }
581 things.Foreach(action, true);
582 }
583 if (cat == "other")
584 {
585 this.list.objects.Sort((object a, object b) => string.Compare((a as Recipe).id, (b as Recipe).id));
586 }
587 else if (cat == "wall" || cat == "floor" || cat == "foundation" || cat == "obj")
588 {
589 this.list.objects.Sort((object a, object b) => (a as Recipe).renderRow.sort - (b as Recipe).renderRow.sort);
590 }
591 else
592 {
593 this.list.objects.Sort(delegate(object a, object b)
594 {
595 Recipe recipe3 = a as Recipe;
596 Recipe recipe4 = b as Recipe;
597 int num = recipe3.renderRow.sort - recipe4.renderRow.sort;
598 if (num == 0)
599 {
600 RecipeCard recipeCard = recipe3 as RecipeCard;
601 RecipeCard recipeCard2 = recipe4 as RecipeCard;
602 if (recipeCard != null && recipeCard2 != null)
603 {
604 num = string.Compare(recipeCard.sourceCard._origin.IsEmpty(recipeCard.sourceCard.id), recipeCard2.sourceCard._origin.IsEmpty(recipeCard2.sourceCard.id));
605 }
606 else
607 {
608 num = string.Compare(recipe3.id, recipe4.id);
609 }
610 if (num == 0)
611 {
612 num = (recipe3.IngAsProduct ? recipe3.ingredients[0].uid : 0) - (recipe4.IngAsProduct ? recipe4.ingredients[0].uid : 0);
613 }
614 }
615 return num;
616 });
617 }
618 foreach (string text in this.categories)
619 {
620 if (!(text == "area") && !(text == ""))
621 {
622 if (this.counts[text] == 0)
623 {
624 this.tabs[text].subText.text = "";
625 }
626 else
627 {
628 this.tabs[text].subText.text = (this.counts[text].ToString() ?? "");
629 }
630 }
631 }
632 }
633 };
634 this.list.List();
635 if (this.lastCat != this.currentCat)
636 {
637 this.list.Scroll(0);
638 }
639 this.groupTab.Select(this.catDic[cat]);
640 if (selected != null)
641 {
642 this.list.Select(selected, false);
643 }
644 this.lastCat = this.currentCat;
645 this.list.RebuildLayoutTo<BuildMenu>();
646 }
647
648 // Token: 0x060021EC RID: 8684 RVA: 0x000BC151 File Offset: 0x000BA351
649 public void OnClickPicker()
650 {
651 ActionMode.Picker.Activate(true, false);
652 }
653
654 // Token: 0x0400115B RID: 4443
655 public GridLayoutGroup gridTab;
656
657 // Token: 0x0400115C RID: 4444
658 public UISelectableGroup groupTab;
659
660 // Token: 0x0400115D RID: 4445
661 public UIDynamicList list;
662
663 // Token: 0x0400115E RID: 4446
664 public UIDynamicList listArea;
665
666 // Token: 0x0400115F RID: 4447
667 public Dictionary<string, int> catDic = new Dictionary<string, int>();
668
669 // Token: 0x04001160 RID: 4448
670 public UIRecipeInfo info1;
671
672 // Token: 0x04001161 RID: 4449
673 public UIRecipeInfo info2;
674
675 // Token: 0x04001162 RID: 4450
676 public RectTransform transOption;
677
678 // Token: 0x04001163 RID: 4451
679 public RectTransform transMain;
680
681 // Token: 0x04001164 RID: 4452
682 public Vector2 posInfo2;
683
684 // Token: 0x04001165 RID: 4453
685 public Vector2 posInfo1;
686
687 // Token: 0x04001166 RID: 4454
688 public Vector2 posOption;
689
690 // Token: 0x04001167 RID: 4455
691 public CanvasGroup cg;
692
693 // Token: 0x04001168 RID: 4456
694 public float hideSpeed;
695
696 // Token: 0x04001169 RID: 4457
697 public float intervalSearch;
698
699 // Token: 0x0400116A RID: 4458
700 public bool moveInfo1;
701
702 // Token: 0x0400116B RID: 4459
703 public TerrainMenu terrainMenu;
704
705 // Token: 0x0400116C RID: 4460
706 public InputField inputSearch;
707
708 // Token: 0x0400116D RID: 4461
709 public string currentCat;
710
711 // Token: 0x0400116E RID: 4462
712 public string lastCat;
713
714 // Token: 0x0400116F RID: 4463
715 public UIButton buttonClearSearch;
716
717 // Token: 0x04001170 RID: 4464
718 [NonSerialized]
719 public string[] categories = new string[]
720 {
721 "wall",
722 "floor",
723 "foundation",
724 "door",
725 "furniture",
726 "storage",
727 "spot",
728 "mount",
729 "facility",
730 "tool",
731 "deco",
732 "mech",
733 "light",
734 "junk",
735 "ext",
736 "goods",
737 "food",
738 "obj",
739 "other",
740 "area"
741 };
742
743 // Token: 0x04001171 RID: 4465
744 [NonSerialized]
745 public ButtonRecipe lastButtonRecipe;
746
747 // Token: 0x04001172 RID: 4466
748 public Dictionary<string, int> counts = new Dictionary<string, int>();
749
750 // Token: 0x04001173 RID: 4467
751 public Dictionary<string, UIButton> tabs = new Dictionary<string, UIButton>();
752
753 // Token: 0x04001174 RID: 4468
754 private Vector2 orgPos;
755
756 // Token: 0x04001175 RID: 4469
757 private Vector2 orgPosOption;
758
759 // Token: 0x04001176 RID: 4470
760 public static BuildMenu Instance;
761
762 // Token: 0x04001177 RID: 4471
763 public UIButton buttonUndo;
764
765 // Token: 0x04001178 RID: 4472
766 public static bool dirtyCat;
767
768 // Token: 0x04001179 RID: 4473
769 private float timerSearch;
770
771 // Token: 0x0400117A RID: 4474
772 public string lastSearch;
773
774 // Token: 0x0400117B RID: 4475
775 public HashSet<Recipe> searchRecipes = new HashSet<Recipe>();
776
777 // Token: 0x0400117C RID: 4476
778 private bool firstRefresh = true;
779
780 // Token: 0x020009F8 RID: 2552
781 public enum Mode
782 {
783 // Token: 0x04002931 RID: 10545
784 Build,
785 // Token: 0x04002932 RID: 10546
786 None,
787 // Token: 0x04002933 RID: 10547
788 Hide,
789 // Token: 0x04002934 RID: 10548
790 Area,
791 // Token: 0x04002935 RID: 10549
793 }
794}
Definition Area.cs:6
Definition Card.cs:13
Definition Chara.cs:12
Definition EMono.cs:6
Definition Thing.cs:10