Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
RunJsDialog.cs
浏览该文件的文档.
1using System.Diagnostics;
2using System.Xml.Linq;
3
4namespace Game {
5 public class RunJsDialog : Dialog {
6 public readonly TextBoxWidget m_inputBox;
7 public readonly LabelWidget m_outputBox;
8
10
11 public readonly ButtonWidget m_runButton;
13 public readonly ButtonWidget m_closeButton;
15
16 public RunJsDialog() {
17 XElement node = ContentManager.Get<XElement>("Dialogs/RunJsDialog");
18 LoadContents(this, node);
19 m_inputBox = Children.Find<TextBoxWidget>("RunJsDialog.Input");
20 m_outputBox = Children.Find<LabelWidget>("RunJsDialog.Output");
21 m_timeCostedLabel = Children.Find<LabelWidget>("RunJsDialog.TimeCosted");
22 m_runButton = Children.Find<ButtonWidget>("RunJsDialog.RunButton");
23 m_copyOutputButton = Children.Find<ButtonWidget>("RunJsDialog.CopyOutputButton");
24 m_closeButton = Children.Find<ButtonWidget>("RunJsDialog.CloseButton");
25 m_serverButton = Children.Find<ButtonWidget>("RunJsDialog.ServerButton");
26 m_inputBox.HasFocus = true;
27 m_inputBox.Enter += delegate { Dismiss(true); };
28 m_inputBox.Escape += delegate { Dismiss(false); };
29 }
30
31 public override void Update() {
32 if (Input.Back
33 || Input.Cancel) {
34 Dismiss(false);
35 }
36 else if (Input.Ok) {
37 Dismiss(true);
38 }
39 else if (m_runButton.IsClicked) {
40 Dismiss(true);
41 }
42 else if (m_copyOutputButton.IsClicked) {
44 }
45 else if (m_closeButton.IsClicked) {
46 Dismiss(false);
47 }
48 else if (m_serverButton.IsClicked) {
49#if !IOS && !BROWSER
51#endif
52 }
53 }
54
55 public void Dismiss(bool flag) {
56 if (flag) {
57#if !IOS && !BROWSER
58 Stopwatch stopwatch = Stopwatch.StartNew();
59 string result = JsInterface.Evaluate(m_inputBox.Text);
60 stopwatch.Stop();
61 TimeSpan timeCosted = stopwatch.Elapsed;
62 m_outputBox.Text = result;
63 m_timeCostedLabel.Text = $"{Math.Floor(timeCosted.TotalSeconds)}s {timeCosted.Milliseconds}ms";
64#endif
65 }
66 else {
68 }
69 }
70 }
71}
readonly WidgetsList Children
static object Get(Type type, string name)
static void HideDialog(Dialog dialog)
static void ShowDialog(ContainerWidget parentWidget, Dialog dialog)
static string Evaluate(string str)
readonly ButtonWidget m_runButton
readonly ButtonWidget m_copyOutputButton
override void Update()
readonly TextBoxWidget m_inputBox
readonly LabelWidget m_outputBox
readonly LabelWidget m_timeCostedLabel
readonly ButtonWidget m_serverButton
void Dismiss(bool flag)
readonly ButtonWidget m_closeButton
ContainerWidget ParentWidget
virtual void LoadContents(object eventsTarget, XElement node)