Elin Modding Docs Doc
Loading...
Searching...
No Matches
WidgetTracker.cs
1using System;
2using System.Collections.Generic;
3using System.Linq;
4
5// Token: 0x0200064F RID: 1615
6public class WidgetTracker : Widget
7{
8 // Token: 0x06002D66 RID: 11622 RVA: 0x000FCE11 File Offset: 0x000FB011
9 public override object CreateExtra()
10 {
11 return new WidgetTracker.Extra();
12 }
13
14 // Token: 0x17000CEC RID: 3308
15 // (get) Token: 0x06002D67 RID: 11623 RVA: 0x000FCE18 File Offset: 0x000FB018
16 public WidgetTracker.Extra extra
17 {
18 get
19 {
20 return base.config.extra as WidgetTracker.Extra;
21 }
22 }
23
24 // Token: 0x06002D68 RID: 11624 RVA: 0x000FCE2C File Offset: 0x000FB02C
25 public static void Toggle(Element e)
26 {
27 if (e.owner != EMono.pc.elements)
28 {
29 SE.Beep();
30 return;
31 }
32 HashSet<int> trackedElements = EMono.player.trackedElements;
33 if (trackedElements.Contains(e.id))
34 {
35 trackedElements.Remove(e.id);
36 if (trackedElements.Count == 0 && WidgetTracker.Instance)
37 {
38 WidgetTracker.Instance.Close();
39 }
40 }
41 else
42 {
43 trackedElements.Add(e.id);
44 if (!WidgetTracker.Instance)
45 {
46 EMono.ui.widgets.ActivateWidget("Tracker");
47 }
48 }
49 SE.ClickGeneral();
50 if (WidgetTracker.Instance)
51 {
52 WidgetTracker.Instance.Refresh();
53 }
54 }
55
56 // Token: 0x06002D69 RID: 11625 RVA: 0x000FCEE0 File Offset: 0x000FB0E0
57 public override void OnActivate()
58 {
59 WidgetTracker.Instance = this;
60 this.Refresh();
61 }
62
63 // Token: 0x06002D6A RID: 11626 RVA: 0x000FCEEE File Offset: 0x000FB0EE
64 private void OnEnable()
65 {
66 base.InvokeRepeating("Refresh", 0.5f, 0.5f);
67 }
68
69 // Token: 0x06002D6B RID: 11627 RVA: 0x000FCF05 File Offset: 0x000FB105
70 private void OnDisable()
71 {
72 base.CancelInvoke();
73 }
74
75 // Token: 0x06002D6C RID: 11628 RVA: 0x000FCF10 File Offset: 0x000FB110
76 public void Refresh()
77 {
78 this.sb.Clear();
79 HashSet<int> trackedElements = EMono.player.trackedElements;
80 if (trackedElements.Count == 0)
81 {
82 this.sb.Append("none".lang());
83 }
84 else
85 {
86 int num = trackedElements.Last<int>();
87 foreach (int num2 in trackedElements)
88 {
89 Element element = EMono.pc.elements.GetElement(num2);
90 if (element != null)
91 {
92 string text = element.Name + " " + element.Value.ToString();
93 if (element.ShowXP)
94 {
95 text = text + "." + (element.vExp / 10).ToString("D2");
96 }
97 if (this.extra.potential)
98 {
99 text += (" (" + element.Potential.ToString() + ")").TagSize(13);
100 }
101 if (num2 != num)
102 {
103 text += "\n";
104 }
105 this.sb.Append(text);
106 }
107 }
108 }
109 if (this.sb.Equals(this.lastSb))
110 {
111 return;
112 }
113 this.text.text = this.sb.ToString();
114 this.lastSb.Set(this.sb);
115 this.RebuildLayout(false);
116 }
117
118 // Token: 0x06002D6D RID: 11629 RVA: 0x000FD0A8 File Offset: 0x000FB2A8
119 public override void OnSetContextMenu(UIContextMenu m)
120 {
121 m.AddToggle("showPotential", this.extra.potential, delegate(bool a)
122 {
123 this.extra.potential = a;
124 this.Refresh();
125 });
126 m.AddButton("clear", delegate()
127 {
128 EMono.player.trackedElements.Clear();
129 EMono.ui.widgets.DeactivateWidget(this);
130 }, true);
131 base.SetBaseContextMenu(m);
132 }
133
134 // Token: 0x04001941 RID: 6465
135 public static WidgetTracker Instance;
136
137 // Token: 0x04001942 RID: 6466
138 private FastString sb = new FastString(32);
139
140 // Token: 0x04001943 RID: 6467
141 private FastString lastSb = new FastString(32);
142
143 // Token: 0x04001944 RID: 6468
144 public UIText text;
145
146 // Token: 0x02000BB7 RID: 2999
147 public class Extra
148 {
149 // Token: 0x04002EF5 RID: 12021
150 public bool potential;
151 }
152}
Definition EMono.cs:6