Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
WidgetSticky.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using UnityEngine;
3using UnityEngine.UI;
4
5public class WidgetSticky : Widget
6{
7 public class Extra
8 {
9 public bool showDate;
10
11 public bool showText;
12
13 public bool showNerun;
14 }
15
16 public static WidgetSticky Instance;
17
18 public LayoutGroup layout;
19
20 public List<BaseSticky> list = new List<BaseSticky>();
21
22 public List<Sprite> icons;
23
24 public UIItem mold;
25
26 public Anime anime;
27
28 public Extra extra => base.config.extra as Extra;
29
30 public override object CreateExtra()
31 {
32 return new Extra();
33 }
34
35 public override void OnActivate()
36 {
37 Instance = this;
38 Init();
39 }
40
41 public void Init()
42 {
43 Instance = this;
44 mold = layout.CreateMold<UIItem>();
45 _Add(new StickyMenu(), animate: false);
46 _Add(new StickyDate(), animate: false);
47 _Add(new StickyWelcome(), animate: false);
48 _Add(new StickyGacha(), animate: false);
49 InvokeRepeating("Refresh", 0f, 1f);
50 }
51
52 public static void Add(BaseSticky sticky, bool animate = true)
53 {
54 if ((bool)Instance)
55 {
56 Instance._Add(sticky);
57 }
58 }
59
60 public void _Add(BaseSticky sticky, bool animate = true)
61 {
62 if (!sticky.AllowMultiple)
63 {
64 list.ForeachReverse(delegate(BaseSticky i)
65 {
66 if (i.GetType().Equals(sticky.GetType()))
67 {
68 _Remove(i);
69 }
70 });
71 }
72 list.Add(sticky);
73 UIItem uIItem = (sticky.item = Util.Instantiate(mold, layout));
74 uIItem.image1.transform.parent.SetActive(sticky.animate);
75 uIItem.SetActive(enable: true);
76 sticky.RefreshButton();
77 uIItem.transform.SetAsFirstSibling();
78 layout.RebuildLayout();
79 if (animate)
80 {
81 anime.Play(uIItem.button1.transform);
82 SE.Play(sticky.idSound);
83 }
84 }
85
86 public void _Remove(BaseSticky sticky)
87 {
88 list.Remove(sticky);
89 Object.Destroy(sticky.item.gameObject);
90 }
91
92 public void Refresh()
93 {
94 foreach (BaseSticky item in list)
95 {
96 bool shouldShow = item.ShouldShow;
97 item.item.SetActive(shouldShow);
98 if (shouldShow)
99 {
100 item.Refresh();
101 }
102 }
103 }
104
105 public override void OnSetContextMenu(UIContextMenu m)
106 {
107 UIContextMenu uIContextMenu = m.AddChild("setting");
108 uIContextMenu.AddToggle("showDate", extra.showDate, delegate(bool a)
109 {
110 extra.showDate = a;
111 Refresh();
112 });
113 uIContextMenu.AddToggle("showText", extra.showText, delegate(bool a)
114 {
115 extra.showText = a;
116 Refresh();
117 });
118 uIContextMenu.AddToggle("showNerun", extra.showNerun, delegate(bool a)
119 {
120 extra.showNerun = a;
121 Refresh();
122 });
123 m.AddChild("style").AddSlider("toggleButtonBG", (float a) => a.ToString() ?? "", base.config.skin.button, delegate(float a)
124 {
125 base.config.skin.button = (int)a;
126 ApplySkin();
127 }, 0f, base.config.skin.Skin.buttons.Count - 1, isInt: true);
129 }
130}
Definition: Anime.cs:6
virtual Tween Play(Transform trans, UnityAction onComplete=null, float duration=-1f, float delay=0f)
Definition: Anime.cs:7
UIItem item
Definition: BaseSticky.cs:5
virtual void RefreshButton()
Definition: BaseSticky.cs:42
virtual string idSound
Definition: BaseSticky.cs:7
virtual bool AllowMultiple
Definition: BaseSticky.cs:21
virtual bool animate
Definition: BaseSticky.cs:11
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: UIItem.cs:5
UIButton button1
Definition: UIItem.cs:18
Image image1
Definition: UIItem.cs:14
List< Sprite > icons
Definition: WidgetSticky.cs:22
List< BaseSticky > list
Definition: WidgetSticky.cs:20
override object CreateExtra()
Definition: WidgetSticky.cs:30
LayoutGroup layout
Definition: WidgetSticky.cs:18
static WidgetSticky Instance
Definition: WidgetSticky.cs:16
static void Add(BaseSticky sticky, bool animate=true)
Definition: WidgetSticky.cs:52
override void OnActivate()
Definition: WidgetSticky.cs:35
void _Add(BaseSticky sticky, bool animate=true)
Definition: WidgetSticky.cs:60
void Refresh()
Definition: WidgetSticky.cs:92
void _Remove(BaseSticky sticky)
Definition: WidgetSticky.cs:86
override void OnSetContextMenu(UIContextMenu m)
Definition: Widget.cs:7
virtual void ApplySkin()
Definition: Widget.cs:556
void SetBaseContextMenu(UIContextMenu m)
Definition: Widget.cs:608