Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
WidgetCodex.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using UnityEngine;
3using UnityEngine.UI;
4
5public class WidgetCodex : Widget
6{
7 public enum SearchType
8 {
9 Codex,
10 Search
11 }
12
13 public InputField field;
14
16
18
19 public HashSet<Recipe> recipes = new HashSet<Recipe>();
20
21 public string lastSearch;
22
24
25 public Transform transResult;
26
27 private int count;
28
29 public virtual SearchType type => SearchType.Codex;
30
31 public override void OnActivate()
32 {
33 field.onValueChanged.AddListener(Search);
34 field.onSubmit.AddListener(Search);
35 lastSearch = null;
36 Search("");
38 {
39 field.Select();
40 }
41 }
42
43 public void Clear()
44 {
45 field.text = "";
46 }
47
48 public virtual void Search(string s)
49 {
50 s = s.ToLower();
51 buttonClear.SetActive(field.text != "");
52 if (s == lastSearch)
53 {
54 return;
55 }
57 HashSet<Recipe> hashSet = new HashSet<Recipe>();
58 if (!s.IsEmpty())
59 {
61 {
62 if (!item.isChara && !item.noListing && !item.isBridgePillar && (item.row.GetSearchName(jp: false).Contains(s) || item.row.GetSearchName(jp: true).Contains(s)) && (EMono.player.recipes.knownRecipes.ContainsKey(item.id) || item.alwaysKnown))
63 {
64 hashSet.Add(Recipe.Create(item));
65 }
66 }
67 }
68 else
69 {
70 foreach (RecipeSource item2 in RecipeManager.list)
71 {
72 if (!item2.isChara && !item2.noListing && (EMono.player.recipes.knownRecipes.ContainsKey(item2.id) || item2.alwaysKnown))
73 {
74 hashSet.Add(Recipe.Create(item2));
75 }
76 }
77 }
78 if (!hashSet.SetEquals(recipes))
79 {
80 recipes = hashSet;
82 }
83 lastSearch = s;
84 }
85
86 public virtual void RefreshList()
87 {
88 list.callbacks = new UIList.Callback<Recipe, ButtonGrid>
89 {
90 onClick = delegate(Recipe a, ButtonGrid b)
91 {
92 SE.ClickGeneral();
94 },
95 onRedraw = delegate(Recipe a, ButtonGrid b, int i)
96 {
97 b.SetCraftRecipe(a, ButtonGrid.Mode.RecipeGrid, tooltip: true);
98 },
99 onList = delegate
100 {
101 foreach (Recipe recipe in recipes)
102 {
103 list.Add(recipe);
104 }
105 }
106 };
107 list.List();
108 list.dsv.OnResize();
109 }
110
111 protected void Update()
112 {
113 count++;
114 if (Input.GetKeyDown(KeyCode.Escape))
115 {
116 Close();
117 EInput.Consume(consumeAxis: false, 5);
118 return;
119 }
120 int functionkeyDown = EInput.GetFunctionkeyDown();
121 if (count > 10 && functionkeyDown != -1)
122 {
124 if ((bool)hotbarExtra && hotbarExtra.GetItem(functionkeyDown) is HotItemWidget hotItemWidget && hotItemWidget.id == base.ID)
125 {
126 Close();
127 EInput.Consume(consumeAxis: false, 5);
128 return;
129 }
130 }
131 if (CheckClose())
132 {
133 Close();
134 EInput.Consume();
135 }
136 }
137
138 public virtual bool CheckClose()
139 {
140 return false;
141 }
142}
void SetCraftRecipe(Recipe r, Mode mode, bool tooltip=false)
Definition: ButtonGrid.cs:585
Definition: EInput.cs:8
static int GetFunctionkeyDown()
Definition: EInput.cs:937
static void Consume(int _skipFrame)
Definition: EInput.cs:656
Definition: EMono.cs:4
static Player player
Definition: EMono.cs:11
static Zone _zone
Definition: EMono.cs:19
RecipeManager recipes
Definition: Player.cs:898
static void BuildList()
static List< RecipeSource > list
Definition: RecipeManager.cs:9
Dictionary< string, int > knownRecipes
bool alwaysKnown
Definition: RecipeSource.cs:23
Definition: Recipe.cs:7
QuestTrackCraft GetQuestTrack()
Definition: Recipe.cs:986
static Recipe Create(RecipeSource _source, int idMat=-1, Thing ing=null)
Definition: Recipe.cs:308
void ToggleTrack(QuestTrackCraft quest)
Definition: Recipe.cs:1000
override void List()
override void Add(object o)
DynamicScrollView dsv
Definition: UIList.cs:9
HashSet< Recipe > recipes
Definition: WidgetCodex.cs:19
virtual bool CheckClose()
Definition: WidgetCodex.cs:138
WordSearch search
Definition: WidgetCodex.cs:15
Transform transResult
Definition: WidgetCodex.cs:25
InputField field
Definition: WidgetCodex.cs:13
string lastSearch
Definition: WidgetCodex.cs:21
virtual void RefreshList()
Definition: WidgetCodex.cs:86
virtual void Search(string s)
Definition: WidgetCodex.cs:48
UIButton buttonClear
Definition: WidgetCodex.cs:23
override void OnActivate()
Definition: WidgetCodex.cs:31
UIDynamicList list
Definition: WidgetCodex.cs:17
void Update()
Definition: WidgetCodex.cs:111
virtual SearchType type
Definition: WidgetCodex.cs:29
void Clear()
Definition: WidgetCodex.cs:43
HotItem GetItem(int index)
static WidgetHotbar HotbarExtra
Definition: WidgetHotbar.cs:40
Definition: Widget.cs:7
void Close()
Definition: Widget.cs:319
bool isStarted
Definition: Zone.cs:70