extends Node const PORT = 12324 # Called when the node enters the scene tree for the first time. func _ready(): var server_list = $Control/VBoxContainer/ServerList server_list.set_column_title(0, "Server name") server_list.set_column_title(1, "Address") server_list.set_column_title(2, "Players") var root = server_list.create_item() var child = server_list.create_item(root) child.set_text(0, "Localhost") child.set_text(1, "Localhost") child.set_text(2, "0/8") child.set_text_alignment(2, HORIZONTAL_ALIGNMENT_RIGHT) # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): pass func _on_host_pressed(): var peer = ENetMultiplayerPeer.new() peer.create_server(PORT) if peer.get_connection_status() == MultiplayerPeer.CONNECTION_DISCONNECTED: OS.alert("Failed to start multiplayer server") return multiplayer.multiplayer_peer = peer start_game() func _on_local_pressed(): var server_address : String = "localhost" if server_address == "": OS.alert("Need a remote to connect to.") return var peer = ENetMultiplayerPeer.new() peer.create_client(server_address, PORT) if peer.get_connection_status() == MultiplayerPeer.CONNECTION_DISCONNECTED: OS.alert("Failed to start multiplayer client") return multiplayer.multiplayer_peer = peer start_game() func _on_internet_pressed(): pass # Replace with function body. func _on_quit_pressed(): get_tree().quit() func start_game(): $Control.hide() if multiplayer.is_server(): change_level.call_deferred(load("res://World/PlayingField.tscn")) func change_level(scene: PackedScene): # Remove old level if any. var map = $Map for c in map.get_children(): map.remove_child(c) c.queue_free() # Add new level. map.add_child(scene.instantiate())