extends Panel @onready var _name_edit: LineEdit = $MarginContainer/GridContainer/NameEdit @onready var _address_edit: LineEdit = $MarginContainer/GridContainer/AddressEdit @onready var _host_button: Button = $MarginContainer/GridContainer/HostButton @onready var _join_button: Button = $MarginContainer/GridContainer/JoinButton @onready var _error_label: Label = $ErrorLabel func _ready() -> void: print("Cadastery v", ProjectSettings.get_setting("application/config/version")) if OS.has_feature("dedicated_server") or DisplayServer.get_name() == "headless": Networker.call_deferred("host_game", true) return _host_button.pressed.connect(_on_host_button_pressed) _join_button.pressed.connect(_on_join_button_pressed) Networker.network_error.connect(_on_networker_network_error) _error_label.text = "" _name_edit.grab_focus() func _display_error(message: String) -> void: _error_label.text = message func _on_host_button_pressed() -> void: if !_name_edit.text: _display_error("Name cannot be empty") return Networker.set_local_player_info(_name_edit.text) Networker.host_game() func _on_join_button_pressed() -> void: if !_name_edit.text: _display_error("Name cannot be empty") return _join_button.disabled = true _host_button.disabled = true Networker.set_local_player_info(_name_edit.text) Networker.join_game(_address_edit.text) func _on_networker_network_error(message: String) -> void: _join_button.disabled = false _host_button.disabled = false _display_error(message)