Elin Decompiled Documentation EA 23.130 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
26
27 public Transform transResult;
28
29 private int count;
30
31 public virtual SearchType type => SearchType.Codex;
32
33 public override void OnActivate()
34 {
35 field.onValueChanged.AddListener(Search);
36 field.onSubmit.AddListener(Search);
37 lastSearch = null;
38 Search("");
40 {
41 field.Select();
42 }
43 }
44
45 public void Clear()
46 {
47 field.text = "";
48 field.Select();
49 }
50
51 public virtual void Search(string s)
52 {
53 s = s.ToLower();
54 buttonClear.SetActive(field.text != "");
55 if (s == lastSearch)
56 {
57 return;
58 }
60 HashSet<Recipe> hashSet = new HashSet<Recipe>();
61 if (!s.IsEmpty())
62 {
64 {
65 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))
66 {
67 hashSet.Add(Recipe.Create(item));
68 }
69 }
70 }
71 else
72 {
73 foreach (RecipeSource item2 in RecipeManager.list)
74 {
75 if (!item2.isChara && !item2.noListing && (EMono.player.recipes.knownRecipes.ContainsKey(item2.id) || item2.alwaysKnown))
76 {
77 hashSet.Add(Recipe.Create(item2));
78 }
79 }
80 }
81 if (!hashSet.SetEquals(recipes))
82 {
83 recipes = hashSet;
85 }
86 lastSearch = s;
87 }
88
89 public virtual void RefreshList()
90 {
91 list.callbacks = new UIList.Callback<Recipe, ButtonGrid>
92 {
93 onClick = delegate(Recipe a, ButtonGrid b)
94 {
95 SE.ClickGeneral();
97 },
98 onRedraw = delegate(Recipe a, ButtonGrid b, int i)
99 {
100 b.SetCraftRecipe(a, ButtonGrid.Mode.RecipeGrid, tooltip: true);
101 },
102 onList = delegate
103 {
104 foreach (Recipe recipe in recipes)
105 {
106 list.Add(recipe);
107 }
108 }
109 };
110 list.List();
111 list.dsv.OnResize();
112 }
113
114 protected void Update()
115 {
116 count++;
117 if (Input.GetKeyDown(KeyCode.Escape))
118 {
119 Close();
120 EInput.Consume(consumeAxis: false, 5);
121 return;
122 }
123 int functionkeyDown = EInput.GetFunctionkeyDown();
124 if (count > 10 && functionkeyDown != -1)
125 {
127 if ((bool)hotbarExtra && hotbarExtra.GetItem(functionkeyDown) is HotItemWidget hotItemWidget && hotItemWidget.id == base.ID)
128 {
129 Close();
130 EInput.Consume(consumeAxis: false, 5);
131 return;
132 }
133 }
134 if (CheckClose())
135 {
136 Close();
137 EInput.Consume();
138 }
139 }
140
141 public virtual bool CheckClose()
142 {
143 return false;
144 }
145}
void SetCraftRecipe(Recipe r, Mode mode, bool tooltip=false)
Definition: ButtonGrid.cs:590
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:913
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:141
WordSearch search
Definition: WidgetCodex.cs:15
Transform transResult
Definition: WidgetCodex.cs:27
InputField field
Definition: WidgetCodex.cs:13
string lastSearch
Definition: WidgetCodex.cs:21
UIButton buttonRefresh
Definition: WidgetCodex.cs:25
virtual void RefreshList()
Definition: WidgetCodex.cs:89
virtual void Search(string s)
Definition: WidgetCodex.cs:51
UIButton buttonClear
Definition: WidgetCodex.cs:23
override void OnActivate()
Definition: WidgetCodex.cs:33
UIDynamicList list
Definition: WidgetCodex.cs:17
void Update()
Definition: WidgetCodex.cs:114
virtual SearchType type
Definition: WidgetCodex.cs:31
void Clear()
Definition: WidgetCodex.cs:45
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