Elin Modding Docs Doc
Loading...
Searching...
No Matches
WidgetSticky.cs
1using System;
2using System.Collections.Generic;
3using UnityEngine;
4using UnityEngine.UI;
5
6// Token: 0x02000643 RID: 1603
7public class WidgetSticky : Widget
8{
9 // Token: 0x06002D13 RID: 11539 RVA: 0x000FC358 File Offset: 0x000FA558
10 public override object CreateExtra()
11 {
12 return new WidgetSticky.Extra();
13 }
14
15 // Token: 0x17000CC7 RID: 3271
16 // (get) Token: 0x06002D14 RID: 11540 RVA: 0x000FC35F File Offset: 0x000FA55F
17 public WidgetSticky.Extra extra
18 {
19 get
20 {
21 return base.config.extra as WidgetSticky.Extra;
22 }
23 }
24
25 // Token: 0x06002D15 RID: 11541 RVA: 0x000FC371 File Offset: 0x000FA571
26 public override void OnActivate()
27 {
28 WidgetSticky.Instance = this;
29 this.Init();
30 }
31
32 // Token: 0x06002D16 RID: 11542 RVA: 0x000FC380 File Offset: 0x000FA580
33 public void Init()
34 {
35 WidgetSticky.Instance = this;
36 this.mold = this.layout.CreateMold(null);
37 this._Add(new StickyMenu(), false);
38 this._Add(new StickyDate(), false);
39 this._Add(new StickyWelcome(), false);
40 this._Add(new StickyGacha(), false);
41 base.InvokeRepeating("Refresh", 0f, 1f);
42 }
43
44 // Token: 0x06002D17 RID: 11543 RVA: 0x000FC3EA File Offset: 0x000FA5EA
45 public static void Add(BaseSticky sticky, bool animate = true)
46 {
47 if (!WidgetSticky.Instance)
48 {
49 return;
50 }
51 WidgetSticky.Instance._Add(sticky, true);
52 }
53
54 // Token: 0x06002D18 RID: 11544 RVA: 0x000FC408 File Offset: 0x000FA608
55 public void _Add(BaseSticky sticky, bool animate = true)
56 {
57 if (!sticky.AllowMultiple)
58 {
59 this.list.ForeachReverse(delegate(BaseSticky i)
60 {
61 if (i.GetType().Equals(sticky.GetType()))
62 {
63 this._Remove(i);
64 }
65 });
66 }
67 this.list.Add(sticky);
68 UIItem uiitem = sticky.item = Util.Instantiate<UIItem>(this.mold, this.layout);
69 uiitem.image1.transform.parent.SetActive(sticky.animate);
70 uiitem.SetActive(true);
71 sticky.RefreshButton();
72 uiitem.transform.SetAsFirstSibling();
73 this.layout.RebuildLayout(false);
74 if (animate)
75 {
76 this.anime.Play(uiitem.button1.transform, null, -1f, 0f);
77 SE.Play(sticky.idSound);
78 }
79 }
80
81 // Token: 0x06002D19 RID: 11545 RVA: 0x000FC4FC File Offset: 0x000FA6FC
82 public void _Remove(BaseSticky sticky)
83 {
84 this.list.Remove(sticky);
85 UnityEngine.Object.Destroy(sticky.item.gameObject);
86 }
87
88 // Token: 0x06002D1A RID: 11546 RVA: 0x000FC51C File Offset: 0x000FA71C
89 public void Refresh()
90 {
91 foreach (BaseSticky baseSticky in this.list)
92 {
93 bool shouldShow = baseSticky.ShouldShow;
94 baseSticky.item.SetActive(shouldShow);
95 if (shouldShow)
96 {
97 baseSticky.Refresh();
98 }
99 }
100 }
101
102 // Token: 0x06002D1B RID: 11547 RVA: 0x000FC584 File Offset: 0x000FA784
103 public override void OnSetContextMenu(UIContextMenu m)
104 {
105 UIContextMenu uicontextMenu = m.AddChild("setting");
106 uicontextMenu.AddToggle("showDate", this.extra.showDate, delegate(bool a)
107 {
108 this.extra.showDate = a;
109 this.Refresh();
110 });
111 uicontextMenu.AddToggle("showText", this.extra.showText, delegate(bool a)
112 {
113 this.extra.showText = a;
114 this.Refresh();
115 });
116 uicontextMenu.AddToggle("showNerun", this.extra.showNerun, delegate(bool a)
117 {
118 this.extra.showNerun = a;
119 this.Refresh();
120 });
121 m.AddChild("style").AddSlider("toggleButtonBG", (float a) => a.ToString() ?? "", (float)base.config.skin.button, delegate(float a)
122 {
123 base.config.skin.button = (int)a;
124 this.ApplySkin();
125 }, 0f, (float)(base.config.skin.Skin.buttons.Count - 1), true, true, false);
126 base.SetBaseContextMenu(m);
127 }
128
129 // Token: 0x0400192E RID: 6446
130 public static WidgetSticky Instance;
131
132 // Token: 0x0400192F RID: 6447
133 public LayoutGroup layout;
134
135 // Token: 0x04001930 RID: 6448
136 public List<BaseSticky> list = new List<BaseSticky>();
137
138 // Token: 0x04001931 RID: 6449
139 public List<Sprite> icons;
140
141 // Token: 0x04001932 RID: 6450
142 public UIItem mold;
143
144 // Token: 0x04001933 RID: 6451
145 public Anime anime;
146
147 // Token: 0x02000BB4 RID: 2996
148 public class Extra
149 {
150 // Token: 0x04002EEE RID: 12014
151 public bool showDate;
152
153 // Token: 0x04002EEF RID: 12015
154 public bool showText;
155
156 // Token: 0x04002EF0 RID: 12016
157 public bool showNerun;
158 }
159}