Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
WidgetInspector.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3using Newtonsoft.Json;
4using UnityEngine;
5using UnityEngine.UI;
6
7public class WidgetInspector : Widget
8{
9 public class Extra
10 {
11 [JsonProperty]
12 public bool moveToMouse;
13 }
14
16
17 public static object target;
18
19 public LayoutGroup layoutButton;
20
21 public LayoutGroup layoutLog;
22
24
25 public Image iconCard;
26
27 public Image iconArea;
28
29 public int maxLog;
30
31 public int index;
32
33 public Vector3 posFix;
34
35 public List<object> list;
36
37 public Sprite spriteArea;
38
39 public bool selected;
40
41 private List<UIText> texts = new List<UIText>();
42
44
46
48
49 public Extra extra => base.config.extra as Extra;
50
51 public override object CreateExtra()
52 {
53 return new Extra();
54 }
55
56 public static void OnClickPoint()
57 {
58 }
59
60 public static void Show()
61 {
62 }
63
64 public static void Hide()
65 {
66 if ((bool)Instance)
67 {
69 }
70 }
71
72 public override void OnActivate()
73 {
74 Instance = this;
75 moldButton = layoutButton.CreateMold<UIButton>();
76 moldText = layoutLog.CreateMold<UIText>();
77 }
78
79 public override void OnDeactivate()
80 {
81 target = null;
82 }
83
84 public void OnUpdateInput()
85 {
86 if (!selected)
87 {
89 {
90 _Show();
91 }
92 else if (target != null)
93 {
94 target = null;
95 base.gameObject.SetActive(value: false);
96 }
97 }
98 }
99
100 public void _Show()
101 {
102 base.gameObject.SetActive(value: true);
103 if (extra.moveToMouse)
104 {
105 base.transform.position = Input.mousePosition + posFix;
107 }
108 EMono.Sound.Play("pop_inspector");
109 SwitchPage(0);
110 }
111
112 public void SwitchPage(int _index)
113 {
114 index = _index;
115 target = list[index];
116 string text = "";
117 layoutButton.DestroyChildren();
118 layoutLog.DestroyChildren();
119 texts.Clear();
120 if (target is Chara)
121 {
122 Chara c = target as Chara;
123 text = c.Name;
125 if (c.IsHomeMember())
126 {
127 AddButton("detail", delegate
128 {
129 EMono.ui.AddLayer<LayerChara>().SetChara(c);
130 });
131 }
132 }
133 else if (target is Thing)
134 {
135 Thing t = target as Thing;
136 text = t.Name;
138 AddButton("detail", delegate
139 {
140 EMono.ui.AddLayer<LayerInfo>().Set(t);
141 });
142 }
143 else
144 {
145 text = (target as Area).Name;
146 }
147 iconCard.rectTransform.pivot = new Vector2(1f, 0f);
148 iconCard.SetActive(target is Card);
149 iconArea.SetActive(target is Area);
150 AddLog(target.ToString());
151 textTitle.SetText(text);
152 Refresh();
153 this.RebuildLayout(recursive: true);
154 }
155
156 public void Refresh()
157 {
158 if (target is Chara)
159 {
160 _ = target;
161 }
162 }
163
164 public void AddLog(string text, Color c = default(Color))
165 {
166 UIText uIText = Util.Instantiate(moldText, layoutLog);
167 texts.Add(uIText);
168 uIText.SetText(text);
169 if (texts.Count > maxLog)
170 {
171 UnityEngine.Object.DestroyImmediate(texts[0].gameObject);
172 texts.Remove(texts[0]);
173 }
174 }
175
176 public void AddButton(string id = "test", Action action = null)
177 {
178 UIButton uIButton = Util.Instantiate(moldButton, layoutButton);
179 uIButton.icon.sprite = SpriteSheet.Get("icon_" + id) ?? uIButton.icon.sprite;
180 uIButton.mainText.SetText(id.lang());
181 if (action != null)
182 {
183 uIButton.onClick.AddListener(delegate
184 {
185 action();
186 });
187 }
188 }
189
190 public override void OnSetContextMenu(UIContextMenu m)
191 {
192 m.AddChild("setting").AddToggle("moveToMouse", extra.moveToMouse, delegate(bool a)
193 {
194 extra.moveToMouse = a;
195 });
196 m.AddChild("style").AddSlider("toggleButtonBG", (float a) => a.ToString() ?? "", base.config.skin.button, delegate(float a)
197 {
198 base.config.skin.button = (int)a;
199 ApplySkin();
200 }, 0f, base.config.skin.Skin.buttons.Count - 1, isInt: true);
202 }
203}
Definition: Area.cs:4
Definition: Card.cs:11
string Name
Definition: Card.cs:2013
void SetImage(Image image, int dir, int idSkin=0)
Definition: Card.cs:5355
Definition: Chara.cs:10
bool IsHomeMember()
Definition: Chara.cs:5942
Definition: EMono.cs:4
static Scene scene
Definition: EMono.cs:27
static UI ui
Definition: EMono.cs:15
static SoundManager Sound
Definition: EMono.cs:39
bool hasValidTarget
Definition: PointTarget.cs:22
PointTarget mouseTarget
Definition: Scene.cs:129
static Sprite Get(string id)
Definition: SpriteSheet.cs:28
Definition: Thing.cs:8
Image icon
Definition: UIButton.cs:110
UIText mainText
Definition: UIButton.cs:102
UIContextMenuItem AddToggle(string idLang="", bool isOn=false, UnityAction< bool > action=null)
UIContextMenuItem AddSlider(string text, Func< float, string > textFunc, float value, Action< float > action, float min=0f, float max=1f, bool isInt=false, bool hideOther=true, bool useInput=false)
UIContextMenu AddChild(string idLang, TextAnchor anchor)
Definition: UIText.cs:6
void SetText(string s)
Definition: UIText.cs:159
void SwitchPage(int _index)
void AddLog(string text, Color c=default(Color))
List< object > list
static object target
List< UIText > texts
LayoutGroup layoutButton
override object CreateExtra()
override void OnDeactivate()
static PointTarget mouseTarget
static void OnClickPoint()
static WidgetInspector Instance
static void Hide()
override void OnActivate()
static void Show()
LayoutGroup layoutLog
override void OnSetContextMenu(UIContextMenu m)
void AddButton(string id="test", Action action=null)
Definition: Widget.cs:7
virtual void ApplySkin()
Definition: Widget.cs:556
void SetBaseContextMenu(UIContextMenu m)
Definition: Widget.cs:608
void Close()
Definition: Widget.cs:319
void ClampToScreen()
Definition: Widget.cs:437