Survivalcraft API 1.8.2.3
v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
EditMemoryBankDialog.cs
浏览该文件的文档.
1
using
System.Xml.Linq;
2
3
namespace
Game
{
4
public
class
EditMemoryBankDialog
:
Dialog
{
5
public
Action
m_handler
;
6
7
public
Widget
m_linearPanel
;
8
9
public
Widget
m_gridPanel
;
10
11
public
ButtonWidget
m_okButton
;
12
13
public
ButtonWidget
m_cancelButton
;
14
15
public
ButtonWidget
m_switchViewButton
;
16
17
public
TextBoxWidget
[]
m_lineTextBoxes
=
new
TextBoxWidget
[16];
18
19
public
TextBoxWidget
m_linearTextBox
;
20
21
public
MemoryBankData
m_memoryBankData
;
22
23
public
MemoryBankData
m_tmpMemoryBankData
;
24
25
public
bool
m_ignoreTextChanges
;
26
27
public
EditMemoryBankDialog
(
MemoryBankData
memoryBankData, Action handler) {
28
XElement node =
ContentManager
.
Get
<XElement>(
"Dialogs/EditMemoryBankDialog"
);
29
LoadContents
(
this
, node);
30
m_linearPanel
=
Children
.Find<
Widget
>(
"EditMemoryBankDialog.LinearPanel"
);
31
m_gridPanel
=
Children
.Find<
Widget
>(
"EditMemoryBankDialog.GridPanel"
);
32
m_okButton
=
Children
.Find<
ButtonWidget
>(
"EditMemoryBankDialog.OK"
);
33
m_cancelButton
=
Children
.Find<
ButtonWidget
>(
"EditMemoryBankDialog.Cancel"
);
34
m_switchViewButton
=
Children
.Find<
ButtonWidget
>(
"EditMemoryBankDialog.SwitchViewButton"
);
35
m_linearTextBox
=
Children
.Find<
TextBoxWidget
>(
"EditMemoryBankDialog.LinearText"
);
36
for
(
int
i = 0; i < 16; i++) {
37
m_lineTextBoxes
[i] =
Children
.Find<
TextBoxWidget
>($
"EditMemoryBankDialog.Line{i}"
);
38
}
39
m_handler
= handler;
40
m_memoryBankData
= memoryBankData;
41
m_tmpMemoryBankData
= (
MemoryBankData
)
m_memoryBankData
.Copy();
42
m_linearPanel.IsVisible =
false
;
43
for
(
int
j = 0; j < 16; j++) {
44
m_lineTextBoxes
[j].TextChanged +=
TextBox_TextChanged
;
45
}
46
m_linearTextBox.TextChanged +=
TextBox_TextChanged
;
47
}
48
49
public
void
TextBox_TextChanged
(
TextBoxWidget
textBox) {
50
if
(
m_ignoreTextChanges
) {
51
return
;
52
}
53
if
(textBox ==
m_linearTextBox
) {
54
m_tmpMemoryBankData
=
new
MemoryBankData
();
55
m_tmpMemoryBankData
.LoadString(
m_linearTextBox
.Text);
56
return
;
57
}
58
string
text =
string
.Empty;
59
for
(
int
i = 0; i < 16; i++) {
60
text +=
m_lineTextBoxes
[i].Text;
61
}
62
m_tmpMemoryBankData
=
new
MemoryBankData
();
63
m_tmpMemoryBankData
.LoadString(text);
64
}
65
66
public
override
void
Update
() {
67
m_ignoreTextChanges
=
true
;
68
try
{
69
string
text =
m_tmpMemoryBankData
.SaveString(
false
);
70
if
(text.Length < 256) {
71
text +=
new
string(
'0'
, 256 - text.Length);
72
}
73
for
(
int
i = 0; i < 16; i++) {
74
m_lineTextBoxes
[i].Text = text.Substring(i * 16, 16);
75
}
76
m_linearTextBox.Text =
m_tmpMemoryBankData
.SaveString(
false
);
77
}
78
finally
{
79
m_ignoreTextChanges
=
false
;
80
}
81
if
(
m_linearPanel
.IsVisible) {
82
m_switchViewButton.Text =
"Grid"
;
83
if
(
m_switchViewButton
.IsClicked) {
84
m_linearPanel.IsVisible =
false
;
85
m_gridPanel.IsVisible =
true
;
86
}
87
}
88
else
{
89
m_switchViewButton.Text =
"Linear"
;
90
if
(
m_switchViewButton
.IsClicked) {
91
m_linearPanel.IsVisible =
true
;
92
m_gridPanel.IsVisible =
false
;
93
}
94
}
95
if
(
m_okButton
.IsClicked) {
96
m_memoryBankData.Data =
m_tmpMemoryBankData
.Data;
97
Dismiss
(
true
);
98
}
99
if
(Input.Cancel
100
||
m_cancelButton
.IsClicked) {
101
Dismiss
(
false
);
102
}
103
}
104
105
public
void
Dismiss
(
bool
result) {
106
DialogsManager
.
HideDialog
(
this
);
107
if
(
m_handler
!=
null
&& result) {
108
m_handler
();
109
}
110
}
111
}
112
}
Game.ButtonWidget
定义
ButtonWidget.cs:5
Game.ContainerWidget.Children
readonly WidgetsList Children
定义
ContainerWidget.cs:5
Game.ContentManager
定义
ContentManager.cs:50
Game.ContentManager.Get
static object Get(Type type, string name)
定义
ContentManager.cs:70
Game.Dialog.Dialog
Dialog()
定义
Dialog.cs:5
Game.DialogsManager
定义
DialogsManager.cs:4
Game.DialogsManager.HideDialog
static void HideDialog(Dialog dialog)
定义
DialogsManager.cs:58
Game.EditMemoryBankDialog.m_tmpMemoryBankData
MemoryBankData m_tmpMemoryBankData
定义
EditMemoryBankDialog.cs:23
Game.EditMemoryBankDialog.m_switchViewButton
ButtonWidget m_switchViewButton
定义
EditMemoryBankDialog.cs:15
Game.EditMemoryBankDialog.EditMemoryBankDialog
EditMemoryBankDialog(MemoryBankData memoryBankData, Action handler)
定义
EditMemoryBankDialog.cs:27
Game.EditMemoryBankDialog.Dismiss
void Dismiss(bool result)
定义
EditMemoryBankDialog.cs:105
Game.EditMemoryBankDialog.m_okButton
ButtonWidget m_okButton
定义
EditMemoryBankDialog.cs:11
Game.EditMemoryBankDialog.m_cancelButton
ButtonWidget m_cancelButton
定义
EditMemoryBankDialog.cs:13
Game.EditMemoryBankDialog.m_linearTextBox
TextBoxWidget m_linearTextBox
定义
EditMemoryBankDialog.cs:19
Game.EditMemoryBankDialog.Update
override void Update()
定义
EditMemoryBankDialog.cs:66
Game.EditMemoryBankDialog.m_gridPanel
Widget m_gridPanel
定义
EditMemoryBankDialog.cs:9
Game.EditMemoryBankDialog.m_lineTextBoxes
TextBoxWidget[] m_lineTextBoxes
定义
EditMemoryBankDialog.cs:17
Game.EditMemoryBankDialog.TextBox_TextChanged
void TextBox_TextChanged(TextBoxWidget textBox)
定义
EditMemoryBankDialog.cs:49
Game.EditMemoryBankDialog.m_memoryBankData
MemoryBankData m_memoryBankData
定义
EditMemoryBankDialog.cs:21
Game.EditMemoryBankDialog.m_linearPanel
Widget m_linearPanel
定义
EditMemoryBankDialog.cs:7
Game.EditMemoryBankDialog.m_handler
Action m_handler
定义
EditMemoryBankDialog.cs:5
Game.EditMemoryBankDialog.m_ignoreTextChanges
bool m_ignoreTextChanges
定义
EditMemoryBankDialog.cs:25
Game.MemoryBankData
定义
MemoryBankData.cs:5
Game.TextBoxWidget
定义
TextBoxWidget.cs:22
Game.Widget
定义
Widget.cs:10
Game.Widget.LoadContents
virtual void LoadContents(object eventsTarget, XElement node)
定义
Widget.cs:507
Game
定义
ContentFileBridge.cs:4
SurvivalcraftApi 1.8.2.3
Survivalcraft.Windows
Dialog
EditMemoryBankDialog.cs
制作者
1.16.1