Elin Decompiled Documentation EA 23.245 Nightly
Loading...
Searching...
No Matches
UIInputText.cs
Go to the documentation of this file.
1using System;
2using UnityEngine;
3using UnityEngine.UI;
4
5public class UIInputText : MonoBehaviour
6{
7 public enum Type
8 {
9 Number,
10 Name
11 }
12
13 public Type type;
14
15 public InputField field;
16
17 public bool number;
18
19 public bool showMax;
20
21 public int min;
22
23 public int max;
24
25 public Action<int> onValueChanged;
26
27 public Text textMax;
28
29 public UIButton[] buttons;
30
31 private float timer;
32
34
35 public int Num
36 {
37 get
38 {
39 int.TryParse(field.text, out var result);
40 return result;
41 }
42 set
43 {
44 field.SetTextWithoutNotify(value.ToString() ?? "");
45 }
46 }
47
48 public string Text
49 {
50 get
51 {
52 return field.text;
53 }
54 set
55 {
56 field.SetTextWithoutNotify(value);
57 }
58 }
59
60 private void Awake()
61 {
62 field.onValueChanged.AddListener(OnValueChange);
63 buttons = GetComponentsInChildren<UIButton>();
64 field.textComponent.font = SkinManager.Instance.fontSet.ui.source.font;
65 }
66
67 public void OnValueChange(string s)
68 {
69 Validate();
70 if (onValueChanged != null)
71 {
73 }
74 }
75
76 public void SetMinMax(int _min, int _max)
77 {
78 min = _min;
79 max = _max;
80 if ((bool)textMax)
81 {
82 textMax.text = "/" + max;
83 }
84 }
85
86 public void SetMin()
87 {
88 Num = min;
89 OnValueChange("");
90 SE.Click();
91 }
92
93 public void SetMax()
94 {
95 Num = max;
96 OnValueChange("");
97 SE.Click();
98 }
99
100 public void ModNum(int a)
101 {
102 int num = Num;
103 Num += a;
104 OnValueChange("");
105 if (num != Num)
106 {
107 SE.Click();
108 }
109 else
110 {
111 SE.BeepSmall();
112 }
113 }
114
115 public void Validate()
116 {
117 if (type == Type.Number)
118 {
119 if (Num < min)
120 {
121 Num = min;
122 }
123 if (Num > max)
124 {
125 Num = max;
126 }
127 }
128 }
129
130 public void Focus()
131 {
132 field.ActivateInputField();
133 field.Select();
134 }
135
136 private void Update()
137 {
138 timer -= Time.deltaTime;
140 {
141 if (!(timer < 0f))
142 {
143 return;
144 }
145 timer = 0.1f;
146 UIButton componentOf = InputModuleEX.GetComponentOf<UIButton>();
147 UIButton[] array = buttons;
148 foreach (UIButton uIButton in array)
149 {
150 if (uIButton == componentOf && uIButton == buttonClicked)
151 {
152 uIButton.onClick.Invoke();
153 }
154 }
155 }
156 else if (EInput.leftMouse.down)
157 {
158 buttonClicked = InputModuleEX.GetComponentOf<UIButton>();
159 }
160 }
161}
bool pressedLong
Definition: ButtonState.cs:64
Definition: EInput.cs:8
static ButtonState leftMouse
Definition: EInput.cs:349
Font font
Definition: FontSource.cs:9
FontSet fontSet
Definition: SkinManager.cs:74
static SkinManager Instance
Definition: SkinManager.cs:78
InputField field
Definition: UIInputText.cs:15
void Focus()
Definition: UIInputText.cs:130
void Update()
Definition: UIInputText.cs:136
float timer
Definition: UIInputText.cs:31
bool showMax
Definition: UIInputText.cs:19
Action< int > onValueChanged
Definition: UIInputText.cs:25
void SetMax()
Definition: UIInputText.cs:93
Text textMax
Definition: UIInputText.cs:27
void Awake()
Definition: UIInputText.cs:60
void ModNum(int a)
Definition: UIInputText.cs:100
UIButton buttonClicked
Definition: UIInputText.cs:33
void SetMinMax(int _min, int _max)
Definition: UIInputText.cs:76
void Validate()
Definition: UIInputText.cs:115
string Text
Definition: UIInputText.cs:49
void SetMin()
Definition: UIInputText.cs:86
void OnValueChange(string s)
Definition: UIInputText.cs:67
UIButton[] buttons
Definition: UIInputText.cs:29