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