Elin Decompiled Documentation EA 23.102 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
33 public int Num
34 {
35 get
36 {
37 int.TryParse(field.text, out var result);
38 return result;
39 }
40 set
41 {
42 field.SetTextWithoutNotify(value.ToString() ?? "");
43 }
44 }
45
46 public string Text
47 {
48 get
49 {
50 return field.text;
51 }
52 set
53 {
54 field.SetTextWithoutNotify(value);
55 }
56 }
57
58 private void Awake()
59 {
60 field.onValueChanged.AddListener(OnValueChange);
61 buttons = GetComponentsInChildren<UIButton>();
62 field.textComponent.font = SkinManager.Instance.fontSet.ui.source.font;
63 }
64
65 public void OnValueChange(string s)
66 {
67 Validate();
68 if (onValueChanged != null)
69 {
71 }
72 }
73
74 public void SetMinMax(int _min, int _max)
75 {
76 min = _min;
77 max = _max;
78 if ((bool)textMax)
79 {
80 textMax.text = "/" + max;
81 }
82 }
83
84 public void SetMin()
85 {
86 Num = min;
87 OnValueChange("");
88 SE.Click();
89 }
90
91 public void SetMax()
92 {
93 Num = max;
94 OnValueChange("");
95 SE.Click();
96 }
97
98 public void ModNum(int a)
99 {
100 int num = Num;
101 Num += a;
102 OnValueChange("");
103 if (num != Num)
104 {
105 SE.Click();
106 }
107 else
108 {
109 SE.BeepSmall();
110 }
111 }
112
113 public void Validate()
114 {
115 if (type == Type.Number)
116 {
117 if (Num < min)
118 {
119 Num = min;
120 }
121 if (Num > max)
122 {
123 Num = max;
124 }
125 }
126 }
127
128 public void Focus()
129 {
130 field.ActivateInputField();
131 field.Select();
132 }
133
134 private void Update()
135 {
136 timer -= Time.deltaTime;
137 if (!EInput.leftMouse.pressedLong || !(timer < 0f))
138 {
139 return;
140 }
141 timer = 0.1f;
142 UIButton componentOf = InputModuleEX.GetComponentOf<UIButton>();
143 UIButton[] array = buttons;
144 foreach (UIButton uIButton in array)
145 {
146 if (uIButton == componentOf)
147 {
148 uIButton.onClick.Invoke();
149 }
150 }
151 }
152}
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:128
void Update()
Definition: UIInputText.cs:134
float timer
Definition: UIInputText.cs:31
bool showMax
Definition: UIInputText.cs:19
Action< int > onValueChanged
Definition: UIInputText.cs:25
void SetMax()
Definition: UIInputText.cs:91
Text textMax
Definition: UIInputText.cs:27
void Awake()
Definition: UIInputText.cs:58
void ModNum(int a)
Definition: UIInputText.cs:98
void SetMinMax(int _min, int _max)
Definition: UIInputText.cs:74
void Validate()
Definition: UIInputText.cs:113
string Text
Definition: UIInputText.cs:47
void SetMin()
Definition: UIInputText.cs:84
void OnValueChange(string s)
Definition: UIInputText.cs:65
UIButton[] buttons
Definition: UIInputText.cs:29