summaryrefslogtreecommitdiffstats
path: root/chicken-wranglers/src/qml/host.js
diff options
context:
space:
mode:
Diffstat (limited to 'chicken-wranglers/src/qml/host.js')
-rw-r--r--chicken-wranglers/src/qml/host.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/chicken-wranglers/src/qml/host.js b/chicken-wranglers/src/qml/host.js
new file mode 100644
index 0000000..d545c31
--- /dev/null
+++ b/chicken-wranglers/src/qml/host.js
@@ -0,0 +1,46 @@
+function start() {
+ game.mode = Game.HostMode
+
+ startViewLoader.item.showStartServerDialog("Creating server")
+
+ // gameHosts only exists after game.mode is set to Game.HostMode
+ gameHost.statusChanged.connect(onStatusChanged)
+ gameHost.startConnection()
+}
+
+function quit() {
+ gameHost.statusChanged.disconnect(onStatusChanged)
+ startViewLoader.item.hideStartServerDialog()
+
+ gameHost.quit();
+}
+
+function onStatusChanged() {
+ switch (gameHost.status) {
+
+ case GameHost.Start:
+ startViewLoader.item.hideStartServerDialog()
+ hostViewLoader.source = "HostView.qml"
+ break
+
+ case GameHost.Error:
+ startViewLoader.item.hideStartServerDialog()
+ handleError(gameHost.error)
+ break
+
+ default:
+ console.log("Unknown server status")
+ }
+}
+
+function handleError(error) {
+ switch (error) {
+
+ case GameHost.AnotherServerRunningError:
+ startViewLoader.item.showErrorDialog("Server is already running")
+ break
+
+ default:
+ console.log("Unknown server error")
+ }
+}