Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
EditSignDialog.cs
浏览该文件的文档.
1using System.Xml.Linq;
2using Engine;
3
4namespace Game {
5 public class EditSignDialog : Dialog {
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
41
43
44 public Color[] m_colors = [
45 new(0, 0, 0),
46 new(140, 0, 0),
47 new(0, 112, 0),
48 new(0, 0, 96),
49 new(160, 0, 128),
50 new(0, 112, 112),
51 new(160, 112, 0),
52 new(180, 180, 180)
53 ];
54
55 public EditSignDialog(SubsystemSignBlockBehavior subsystemSignBlockBehavior, Point3 signPoint) {
56 XElement node = ContentManager.Get<XElement>("Dialogs/EditSignDialog");
57 LoadContents(this, node);
58 m_linesPage = Children.Find<ContainerWidget>("EditSignDialog.LinesPage");
59 m_urlPage = Children.Find<ContainerWidget>("EditSignDialog.UrlPage");
60 m_textBox1 = Children.Find<TextBoxWidget>("EditSignDialog.TextBox1");
61 m_textBox2 = Children.Find<TextBoxWidget>("EditSignDialog.TextBox2");
62 m_textBox3 = Children.Find<TextBoxWidget>("EditSignDialog.TextBox3");
63 m_textBox4 = Children.Find<TextBoxWidget>("EditSignDialog.TextBox4");
64 m_colorButton1 = Children.Find<ButtonWidget>("EditSignDialog.ColorButton1");
65 m_colorButton2 = Children.Find<ButtonWidget>("EditSignDialog.ColorButton2");
66 m_colorButton3 = Children.Find<ButtonWidget>("EditSignDialog.ColorButton3");
67 m_colorButton4 = Children.Find<ButtonWidget>("EditSignDialog.ColorButton4");
68 m_urlTextBox = Children.Find<TextBoxWidget>("EditSignDialog.UrlTextBox");
69 m_urlTestButton = Children.Find<ButtonWidget>("EditSignDialog.UrlTestButton");
70 m_okButton = Children.Find<ButtonWidget>("EditSignDialog.OkButton");
71 m_cancelButton = Children.Find<ButtonWidget>("EditSignDialog.CancelButton");
72 m_urlButton = Children.Find<ButtonWidget>("EditSignDialog.UrlButton");
73 m_linesButton = Children.Find<ButtonWidget>("EditSignDialog.LinesButton");
74 m_subsystemSignBlockBehavior = subsystemSignBlockBehavior;
75 m_signPoint = signPoint;
77 m_editingTextData = m_subsystemSignBlockBehavior.m_textsByPoint.GetValueOrDefault(m_signPoint, null);
78 if (signData != null
79 && m_editingTextData != null) {
80 m_textBox1.Text = signData.Lines[0];
81 m_textBox2.Text = signData.Lines[1];
82 m_textBox3.Text = signData.Lines[2];
83 m_textBox4.Text = signData.Lines[3];
84 m_colorButton1.Color = signData.Colors[0];
85 m_colorButton2.Color = signData.Colors[1];
86 m_colorButton3.Color = signData.Colors[2];
87 m_colorButton4.Color = signData.Colors[3];
88 m_urlTextBox.Text = signData.Url;
89 }
90 else {
91 m_textBox1.Text = string.Empty;
92 m_textBox2.Text = string.Empty;
93 m_textBox3.Text = string.Empty;
94 m_textBox4.Text = string.Empty;
95 m_colorButton1.Color = Color.Black;
96 m_colorButton2.Color = Color.Black;
97 m_colorButton3.Color = Color.Black;
98 m_colorButton4.Color = Color.Black;
99 m_urlTextBox.Text = string.Empty;
100 }
101 m_linesPage.IsVisible = true;
102 m_urlPage.IsVisible = false;
104 }
105
106 public override void Update() {
108 if (m_okButton.IsClicked) {
109 string[] lines = [m_textBox1.Text, m_textBox2.Text, m_textBox3.Text, m_textBox4.Text];
110 Color[] colors = [m_colorButton1.Color, m_colorButton2.Color, m_colorButton3.Color, m_colorButton4.Color];
111 m_subsystemSignBlockBehavior.SetSignData(m_signPoint, lines, colors, m_urlTextBox.Text);
112 Dismiss();
113 }
114 if (m_urlButton.IsClicked) {
115 m_urlPage.IsVisible = true;
116 m_linesPage.IsVisible = false;
117 }
118 if (m_linesButton.IsClicked) {
119 m_urlPage.IsVisible = false;
120 m_linesPage.IsVisible = true;
121 }
122 if (m_urlTestButton.IsClicked) {
124 }
125 if (m_colorButton1.IsClicked) {
126 m_colorButton1.Color = m_colors[(m_colors.FirstIndex(m_colorButton1.Color) + 1) % m_colors.Length];
127 }
128 if (m_colorButton2.IsClicked) {
129 m_colorButton2.Color = m_colors[(m_colors.FirstIndex(m_colorButton2.Color) + 1) % m_colors.Length];
130 }
131 if (m_colorButton3.IsClicked) {
132 m_colorButton3.Color = m_colors[(m_colors.FirstIndex(m_colorButton3.Color) + 1) % m_colors.Length];
133 }
134 if (m_colorButton4.IsClicked) {
135 m_colorButton4.Color = m_colors[(m_colors.FirstIndex(m_colorButton4.Color) + 1) % m_colors.Length];
136 }
137 if (Input.Cancel
138 || m_cancelButton.IsClicked) {
139 Dismiss();
140 }
141 if (!MovingBlock.IsNullOrStopped(m_editingTextData?.MovingBlock)) {
142 Dismiss();
143 }
144 }
145
146 public virtual void UpdateControls() {
147 bool flag = !string.IsNullOrEmpty(m_urlTextBox.Text);
148 m_urlButton.IsVisible = m_linesPage.IsVisible;
149 m_linesButton.IsVisible = !m_linesPage.IsVisible;
150 m_colorButton1.IsEnabled = !flag;
151 m_colorButton2.IsEnabled = !flag;
152 m_colorButton3.IsEnabled = !flag;
153 m_colorButton4.IsEnabled = !flag;
154 m_urlTestButton.IsEnabled = flag;
155 }
156
157 public void Dismiss() {
159 }
160 }
161}
readonly WidgetsList Children
static object Get(Type type, string name)
static void HideDialog(Dialog dialog)
SubsystemSignBlockBehavior m_subsystemSignBlockBehavior
EditSignDialog(SubsystemSignBlockBehavior subsystemSignBlockBehavior, Point3 signPoint)
SubsystemSignBlockBehavior.TextData m_editingTextData
ContainerWidget m_linesPage
static bool IsNullOrStopped(MovingBlock movingBlock)
static void LaunchBrowser(string url)
virtual void LoadContents(object eventsTarget, XElement node)
static Color Black
定义 Color.cs:7