Survivalcraft API 1.8.2.3
v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
EditTruthTableDialog.cs
浏览该文件的文档.
1
using
System.Xml.Linq;
2
3
namespace
Game
{
4
public
class
EditTruthTableDialog
:
Dialog
{
5
public
Action<bool>
m_handler
;
6
7
public
Widget
m_linearPanel
;
8
9
public
Widget
m_gridPanel
;
10
11
public
ButtonWidget
m_okButton
;
12
public
ButtonWidget
m_cancelButton
;
13
public
ButtonWidget
m_switchViewButton
;
14
public
CheckboxWidget
[]
m_lineCheckboxes
=
new
CheckboxWidget
[16];
15
public
TextBoxWidget
m_linearTextBox
;
16
17
public
TruthTableData
m_truthTableData
;
18
public
TruthTableData
m_tmpTruthTableData
;
19
public
byte
[]
m_lastTmpTruthTableDataData
;
20
public
bool
m_ignoreTextChanges
;
21
public
const
string
fName
=
"EditTruthTableDialog"
;
22
23
public
EditTruthTableDialog
(
TruthTableData
truthTableData, Action<bool> handler) {
24
XElement node =
ContentManager
.
Get
<XElement>(
"Dialogs/EditTruthTableDialog"
);
25
LoadContents
(
this
, node);
26
m_linearPanel
=
Children
.Find<
Widget
>(
"EditTruthTableDialog.LinearPanel"
);
27
m_gridPanel
=
Children
.Find<
Widget
>(
"EditTruthTableDialog.GridPanel"
);
28
m_okButton
=
Children
.Find<
ButtonWidget
>(
"EditTruthTableDialog.OK"
);
29
m_cancelButton
=
Children
.Find<
ButtonWidget
>(
"EditTruthTableDialog.Cancel"
);
30
m_switchViewButton
=
Children
.Find<
ButtonWidget
>(
"EditTruthTableDialog.SwitchViewButton"
);
31
m_linearTextBox
=
Children
.Find<
TextBoxWidget
>(
"EditTruthTableDialog.LinearText"
);
32
for
(
int
i = 0; i < 16; i++) {
33
m_lineCheckboxes
[i] =
Children
.Find<
CheckboxWidget
>($
"EditTruthTableDialog.Line{i}"
);
34
}
35
m_handler
= handler;
36
m_truthTableData
= truthTableData;
37
m_tmpTruthTableData
= (
TruthTableData
)
m_truthTableData
.Copy();
38
m_lastTmpTruthTableDataData
= (
byte
[])
m_tmpTruthTableData
.Data.Clone();
39
m_linearPanel.IsVisible =
false
;
40
m_linearTextBox.TextChanged += delegate {
41
if
(!
m_ignoreTextChanges
) {
42
m_tmpTruthTableData
=
new
TruthTableData
();
43
m_tmpTruthTableData
.LoadBinaryString(
m_linearTextBox
.Text);
44
}
45
};
46
}
47
48
public
override
void
Update
() {
49
m_ignoreTextChanges
=
true
;
50
try
{
51
if
(!
m_tmpTruthTableData
.Data.SequenceEqual(
m_lastTmpTruthTableDataData
)) {
52
m_lastTmpTruthTableDataData
= (
byte
[])
m_tmpTruthTableData
.Data.Clone();
53
m_linearTextBox.Text =
m_tmpTruthTableData
.SaveBinaryString();
54
}
55
}
56
finally
{
57
m_ignoreTextChanges
=
false
;
58
}
59
for
(
int
i = 0; i < 16; i++) {
60
if
(
m_lineCheckboxes
[i].IsClicked) {
61
m_tmpTruthTableData
.Data[i] = (byte)(
m_tmpTruthTableData
.Data[i] == 0 ? 15 : 0);
62
}
63
m_lineCheckboxes
[i].IsChecked =
m_tmpTruthTableData
.Data[i] > 0;
64
}
65
if
(
m_linearPanel
.IsVisible) {
66
m_switchViewButton.Text =
LanguageControl
.
Get
(
fName
, 1);
67
if
(
m_switchViewButton
.IsClicked) {
68
m_linearPanel.IsVisible =
false
;
69
m_gridPanel.IsVisible =
true
;
70
}
71
}
72
else
{
73
m_switchViewButton.Text =
LanguageControl
.
Get
(
fName
, 2);
74
if
(
m_switchViewButton
.IsClicked) {
75
m_linearPanel.IsVisible =
true
;
76
m_gridPanel.IsVisible =
false
;
77
}
78
}
79
if
(
m_okButton
.IsClicked) {
80
m_truthTableData.Data =
m_tmpTruthTableData
.Data;
81
Dismiss
(
true
);
82
}
83
if
(Input.Cancel
84
||
m_cancelButton
.IsClicked) {
85
Dismiss
(
false
);
86
}
87
}
88
89
public
void
Dismiss
(
bool
result) {
90
DialogsManager
.
HideDialog
(
this
);
91
m_handler
?.Invoke(result);
92
}
93
}
94
}
Game.ButtonWidget
定义
ButtonWidget.cs:5
Game.CheckboxWidget
定义
CheckboxWidget.cs:6
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.EditTruthTableDialog.m_tmpTruthTableData
TruthTableData m_tmpTruthTableData
定义
EditTruthTableDialog.cs:18
Game.EditTruthTableDialog.fName
const string fName
定义
EditTruthTableDialog.cs:21
Game.EditTruthTableDialog.m_linearTextBox
TextBoxWidget m_linearTextBox
定义
EditTruthTableDialog.cs:15
Game.EditTruthTableDialog.m_switchViewButton
ButtonWidget m_switchViewButton
定义
EditTruthTableDialog.cs:13
Game.EditTruthTableDialog.Update
override void Update()
定义
EditTruthTableDialog.cs:48
Game.EditTruthTableDialog.m_linearPanel
Widget m_linearPanel
定义
EditTruthTableDialog.cs:7
Game.EditTruthTableDialog.m_lastTmpTruthTableDataData
byte[] m_lastTmpTruthTableDataData
定义
EditTruthTableDialog.cs:19
Game.EditTruthTableDialog.m_lineCheckboxes
CheckboxWidget[] m_lineCheckboxes
定义
EditTruthTableDialog.cs:14
Game.EditTruthTableDialog.m_handler
Action< bool > m_handler
定义
EditTruthTableDialog.cs:5
Game.EditTruthTableDialog.m_okButton
ButtonWidget m_okButton
定义
EditTruthTableDialog.cs:11
Game.EditTruthTableDialog.m_truthTableData
TruthTableData m_truthTableData
定义
EditTruthTableDialog.cs:17
Game.EditTruthTableDialog.Dismiss
void Dismiss(bool result)
定义
EditTruthTableDialog.cs:89
Game.EditTruthTableDialog.m_gridPanel
Widget m_gridPanel
定义
EditTruthTableDialog.cs:9
Game.EditTruthTableDialog.m_cancelButton
ButtonWidget m_cancelButton
定义
EditTruthTableDialog.cs:12
Game.EditTruthTableDialog.EditTruthTableDialog
EditTruthTableDialog(TruthTableData truthTableData, Action< bool > handler)
定义
EditTruthTableDialog.cs:23
Game.EditTruthTableDialog.m_ignoreTextChanges
bool m_ignoreTextChanges
定义
EditTruthTableDialog.cs:20
Game.LanguageControl
定义
LanguageControl.cs:8
Game.LanguageControl.Get
static string Get(string className, int key)
获取在当前语言类名键对应的字符串
定义
LanguageControl.cs:247
Game.TextBoxWidget
定义
TextBoxWidget.cs:22
Game.TruthTableData
定义
TruthTableData.cs:4
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
EditTruthTableDialog.cs
制作者
1.16.1