Elin Decompiled Documentation EA 23.345.1 Nightly
Loading...
Searching...
No Matches
Gauge.cs
Go to the documentation of this file.
1using System;
2using DG.Tweening;
3using UnityEngine;
4using UnityEngine.UI;
5
6public class Gauge : MonoBehaviour
7{
8 public UIText textNow;
9
10 public Image barCircle;
11
12 public Image bgBar;
13
14 public RawImage bar;
15
16 public RawImage barRecover;
17
18 public SpriteRenderer srBar;
19
20 public float duration;
21
22 public float originalWidth;
23
24 public Gradient gradient;
25
26 public bool useRatio;
27
28 public bool setText = true;
29
30 [NonSerialized]
31 public float value;
32
33 [NonSerialized]
34 public float lastValue = -1f;
35
36 [NonSerialized]
37 public float lastRecovery = -1f;
38
39 [NonSerialized]
40 public bool first = true;
41
42 [NonSerialized]
43 public bool hideBar;
44
45 public Tween tween;
46
47 private int _num;
48
49 private int _lastNum;
50
51 private int max;
52
53 private int Num
54 {
55 get
56 {
57 return _num;
58 }
59 set
60 {
61 _num = value;
62 if (_num != _lastNum)
63 {
64 if ((bool)textNow && setText)
65 {
66 textNow.text = (useRatio ? (Mathf.RoundToInt((float)_num / (float)max * 100f) + "%") : (_num.ToString() ?? ""));
67 }
68 _lastNum = _num;
69 }
70 }
71 }
72
73 public void UpdateValue(float now, float _max)
74 {
75 UpdateValue((int)(now * 100f), (int)(_max * 100f));
76 }
77
78 public void UpdateValue(int now, int _max, int recovery = 0)
79 {
80 max = _max;
81 if (!base.gameObject.activeSelf)
82 {
83 base.gameObject.SetActive(value: true);
84 }
85 if ((bool)bar)
86 {
87 bar.SetActive(!hideBar);
88 }
89 if ((bool)bgBar)
90 {
91 bgBar.SetActive(!hideBar);
92 }
93 value = (float)now / (float)max;
94 if (value == lastValue && (float)recovery == lastRecovery)
95 {
96 return;
97 }
98 if (value < 0f)
99 {
100 value = 0f;
101 }
102 else if (value > 1f)
103 {
104 value = 1f;
105 }
106 if ((bool)textNow && setText)
107 {
108 textNow.color = gradient.Evaluate((float)now / (float)max);
109 if (first)
110 {
111 Num = now;
112 }
113 else
114 {
115 DOTween.To(() => Num, delegate(int x)
116 {
117 Num = x;
118 }, now, duration);
119 }
120 }
121 TweenUtil.KillTween(ref tween);
122 if ((bool)bar)
123 {
124 SetRect(bar, value);
125 if ((bool)barRecover)
126 {
127 SetRect(barRecover, (float)(now + recovery) / (float)max);
128 }
129 }
130 else if ((bool)srBar)
131 {
132 Vector2 vector = new Vector2(value * 100f, srBar.size.y);
133 if (first)
134 {
135 srBar.size = vector;
136 first = false;
137 return;
138 }
139 tween = DOTween.To(() => srBar.size, delegate(Vector2 x)
140 {
141 srBar.size = x;
142 }, vector, duration);
143 }
144 else
145 {
146 barCircle.fillAmount = value;
147 }
149 lastRecovery = recovery;
150 void SetRect(RawImage bar, float value)
151 {
152 value = Mathf.Clamp(value, 0f, 1f);
153 RectTransform rectTransform = bar.Rect();
154 Vector2 vector2 = new Vector2(originalWidth * value, rectTransform.sizeDelta.y);
155 if (first)
156 {
157 rectTransform.sizeDelta = vector2;
158 first = false;
159 }
160 else
161 {
162 tween = rectTransform.DOSizeDelta(vector2, duration);
163 }
164 }
165 }
166}
Definition: Gauge.cs:7
float lastRecovery
Definition: Gauge.cs:37
bool first
Definition: Gauge.cs:40
void UpdateValue(float now, float _max)
Definition: Gauge.cs:73
int _num
Definition: Gauge.cs:47
float duration
Definition: Gauge.cs:20
SpriteRenderer srBar
Definition: Gauge.cs:18
int _lastNum
Definition: Gauge.cs:49
void UpdateValue(int now, int _max, int recovery=0)
Definition: Gauge.cs:78
Gradient gradient
Definition: Gauge.cs:24
Tween tween
Definition: Gauge.cs:45
float originalWidth
Definition: Gauge.cs:22
bool setText
Definition: Gauge.cs:28
RawImage bar
Definition: Gauge.cs:14
UIText textNow
Definition: Gauge.cs:8
bool useRatio
Definition: Gauge.cs:26
int max
Definition: Gauge.cs:51
Image barCircle
Definition: Gauge.cs:10
Image bgBar
Definition: Gauge.cs:12
int Num
Definition: Gauge.cs:54
RawImage barRecover
Definition: Gauge.cs:16
float value
Definition: Gauge.cs:31
bool hideBar
Definition: Gauge.cs:43
float lastValue
Definition: Gauge.cs:34
Definition: UIText.cs:6