extends Control const MAX_CLIENTS = 2 @export var game_scene: PackedScene @onready var main_menu: VBoxContainer = %MainMenu @onready var host_menu: VBoxContainer = %HostMenu @onready var join_menu: VBoxContainer = %JoinMenu @onready var host_port_input: SpinBox = %HostPortInput @onready var hostname_input: LineEdit = %HostnameInput @onready var join_port_input: SpinBox = %JoinPortInput func quit() -> void: get_tree().quit() func show_host_menu() -> void: main_menu.hide() join_menu.hide() host_menu.show() func show_join_menu() -> void: main_menu.hide() host_menu.hide() join_menu.show() func show_main_menu() -> void: host_menu.hide() join_menu.hide() main_menu.show() func start_host_lobby() -> void: var game: Game = game_scene.instantiate() var peer := ENetMultiplayerPeer.new() peer.create_server(host_port_input.value, MAX_CLIENTS) add_sibling(game) game.multiplayer.multiplayer_peer = peer queue_free() func join_lobby() -> void: var game: Game = game_scene.instantiate() var peer := ENetMultiplayerPeer.new() peer.create_client(hostname_input.text, join_port_input.value) add_sibling(game) game.multiplayer.multiplayer_peer = peer queue_free()