diff options
Diffstat (limited to 'godot/ui/servermenu/ServerUI.gd')
| -rw-r--r-- | godot/ui/servermenu/ServerUI.gd | 43 |
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() |
