Elin Decompiled Documentation EA 23.200 Stable
Loading...
Searching...
No Matches
WidgetStats.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using Newtonsoft.Json;
3
5{
6 public class Extra
7 {
8 [JsonProperty]
9 public bool sort;
10
11 [JsonProperty]
12 public bool sort_ascend;
13 }
14
15 public static WidgetStats Instance;
16
17 public List<NotificationCondition> conditions = new List<NotificationCondition>();
18
19 public List<NotificationCooldown> cds = new List<NotificationCooldown>();
20
22
24
26
27 public Extra extra => base.config.extra as Extra;
28
29 public override object CreateExtra()
30 {
31 return new Extra();
32 }
33
34 public static void RefreshAll()
35 {
36 if ((bool)Instance)
37 {
39 }
40 }
41
42 public override void _OnActivate()
43 {
44 Instance = this;
46 {
47 stats = () => EMono.pc.hunger
48 });
50 {
51 stats = () => EMono.pc.burden
52 });
54 {
55 stats = () => EMono.pc.depression
56 });
58 {
59 stats = () => EMono.pc.bladder
60 });
62 {
63 stats = () => EMono.pc.hygiene
64 });
66 {
67 stats = () => EMono.pc.sleepiness
68 });
70 {
71 stats = () => EMono.pc.stamina
72 });
74 }
75
76 public override void OnRefresh()
77 {
78 conditions.ForeachReverse(delegate(NotificationCondition a)
79 {
80 if (a.ShouldRemove())
81 {
82 conditions.Remove(a);
83 Remove(a);
84 dirty = true;
85 }
86 });
87 cds.ForeachReverse(delegate(NotificationCooldown a)
88 {
89 if (a.ShouldRemove())
90 {
91 cds.Remove(a);
92 Remove(a);
93 dirty = true;
94 }
95 });
96 foreach (Condition condition in EMono.pc.conditions)
97 {
98 if (!condition.ShowInWidget)
99 {
100 continue;
101 }
102 bool flag = true;
103 foreach (NotificationCondition condition2 in conditions)
104 {
105 if (condition2.condition == condition)
106 {
107 flag = false;
108 break;
109 }
110 }
111 if (flag)
112 {
113 NotificationCondition notificationCondition = condition.CreateNotification() as NotificationCondition;
114 Add(notificationCondition);
115 conditions.Add(notificationCondition);
116 }
117 }
118 if (EMono.pc._cooldowns == null)
119 {
120 return;
121 }
122 foreach (int cooldown in EMono.pc._cooldowns)
123 {
124 int num = cooldown / 1000;
125 bool flag2 = true;
126 foreach (NotificationCooldown cd in cds)
127 {
128 if (cd.idEle == num)
129 {
130 flag2 = false;
131 break;
132 }
133 }
134 if (flag2)
135 {
136 NotificationCooldown notificationCooldown = new NotificationCooldown
137 {
138 idEle = num
139 };
140 Add(notificationCooldown);
141 cds.Add(notificationCooldown);
142 }
143 }
144 }
145
146 public override void OnSetContextMenu(UIContextMenu m)
147 {
148 UIContextMenu uIContextMenu = m.AddChild("setting");
149 uIContextMenu.AddToggle("sort_always", extra.sort, delegate(bool a)
150 {
151 extra.sort = a;
152 RefreshAll();
153 });
154 uIContextMenu.AddToggle("sort_ascending", extra.sort_ascend, delegate(bool a)
155 {
156 extra.sort_ascend = a;
157 RefreshAll();
158 });
160 }
161}
virtual bool ShowInWidget
Definition: BaseStats.cs:23
ItemNotice Add(BaseNotification n, Transform parent=null)
Stats depression
Definition: Chara.cs:1130
Stats sleepiness
Definition: Chara.cs:1138
List< int > _cooldowns
Definition: Chara.cs:58
Stats hygiene
Definition: Chara.cs:1134
List< Condition > conditions
Definition: Chara.cs:209
Stats hunger
Definition: Chara.cs:1124
Stats bladder
Definition: Chara.cs:1132
Stats stamina
Definition: Chara.cs:1128
Stats burden
Definition: Chara.cs:1126
override BaseNotification CreateNotification()
Definition: Condition.cs:30
Definition: EMono.cs:4
static Chara pc
Definition: EMono.cs:13
UIContextMenuItem AddToggle(string idLang="", bool isOn=false, UnityAction< bool > action=null)
UIContextMenu AddChild(string idLang, TextAnchor anchor)
static WidgetStats Instance
Definition: WidgetStats.cs:15
List< NotificationCondition > conditions
Definition: WidgetStats.cs:17
override void _OnActivate()
Definition: WidgetStats.cs:42
override void OnSetContextMenu(UIContextMenu m)
Definition: WidgetStats.cs:146
Extra extra
Definition: WidgetStats.cs:27
override object CreateExtra()
Definition: WidgetStats.cs:29
ItemNotice moldStance
Definition: WidgetStats.cs:23
ItemNotice moldBuff
Definition: WidgetStats.cs:21
List< NotificationCooldown > cds
Definition: WidgetStats.cs:19
ItemNotice moldCooldown
Definition: WidgetStats.cs:25
override void OnRefresh()
Definition: WidgetStats.cs:76
static void RefreshAll()
Definition: WidgetStats.cs:34
void SetBaseContextMenu(UIContextMenu m)
Definition: Widget.cs:608