summaryrefslogtreecommitdiff
path: root/godot/ui/servermenu/ServerUI.gd
diff options
context:
space:
mode:
Diffstat (limited to 'godot/ui/servermenu/ServerUI.gd')
-rw-r--r--godot/ui/servermenu/ServerUI.gd43
1 files changed, 43 insertions, 0 deletions
diff --git a/godot/ui/servermenu/ServerUI.gd b/godot/ui/servermenu/ServerUI.gd
new file mode 100644
index 0000000..d065b21
--- /dev/null
+++ b/godot/ui/servermenu/ServerUI.gd
@@ -0,0 +1,43 @@
+extends Node2D
+
+
+var server
+onready var console = get_node("Console")
+
+var is_running :bool = false
+
+func _ready():
+ $CmdPrompt.ui_ref = self
+
+func hide_init_fields():
+ for node in get_tree().get_nodes_in_group("init_fields"):
+ node.visible = false
+ $StopButton.visible = true
+
+func show_init_fields():
+ for node in get_tree().get_nodes_in_group("init_fields"):
+ node.visible = true
+ $StopButton.visible = false
+
+func start_server():
+ console.add_line("Server starting...")
+ is_running = true
+
+ server = preload("res://scenes/Server.tscn").instance()
+ $CmdPrompt.server_ref = server
+ server.start_server($ServerName.text, $MOTD.text, $PlayerCount.value, $MapPath.text, $IP.text, $Port.value, get_tree(), console, "add_line")
+
+ Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
+ hide_init_fields()
+
+func stop_server():
+ server.stop_server()
+ is_running = false
+ $CmdPrompt.server_ref = null
+
+ show_init_fields()
+
+func back_to_main():
+ var main_menu = load("res://ui/MainMenu.tscn").instance()
+ get_tree().get_root().add_child(main_menu)
+ queue_free()