extends Control onready var _server = $Server onready var _port = $Panel/VBoxContainer/HBoxContainer/Port onready var _line_edit = $Panel/VBoxContainer/HBoxContainer3/LineEdit onready var _write_mode = $Panel/VBoxContainer/HBoxContainer2/WriteMode onready var _log_dest = $Panel/VBoxContainer/RichTextLabel onready var _multiplayer = $Panel/VBoxContainer/HBoxContainer2/MPAPI onready var _destination = $Panel/VBoxContainer/HBoxContainer2/Destination func _ready(): _write_mode.clear() _write_mode.add_item("BINARY") _write_mode.set_item_metadata(0, WebSocketPeer.WRITE_MODE_BINARY) _write_mode.add_item("TEXT") _write_mode.set_item_metadata(1, WebSocketPeer.WRITE_MODE_TEXT) _write_mode.select(0) _destination.add_item("Broadcast") _destination.set_item_metadata(0, 0) _destination.add_item("Last connected") _destination.set_item_metadata(1, 1) _destination.add_item("All But last connected") _destination.set_item_metadata(2, -1) _destination.select(0) func _on_Listen_toggled(pressed): if pressed: var use_multiplayer = _multiplayer.pressed _multiplayer.disabled = true var supported_protocols = PoolStringArray(["my-protocol", "binary"]) var port = int(_port.value) if use_multiplayer: _write_mode.disabled = true _write_mode.select(0) else: _destination.disabled = true _destination.select(0) if _server.listen(port, supported_protocols, use_multiplayer) == OK: Utils._log(_log_dest, "Listing on port %s" % port) if not use_multiplayer: Utils._log(_log_dest, "Supported protocols: %s" % supported_protocols) else: Utils._log(_log_dest, "Error listening on port %s" % port) else: _server.stop() _multiplayer.disabled = false _write_mode.disabled = false _destination.disabled = false Utils._log(_log_dest, "Server stopped") func _on_Send_pressed(): if _line_edit.text == "": return var dest = _destination.get_selected_metadata() if dest > 0: dest = _server.last_connected_client elif dest < 0: dest = -_server.last_connected_client Utils._log(_log_dest, "Sending data %s to %s" % [_line_edit.text, dest]) _server.send_data(_line_edit.text, dest) _line_edit.text = "" func _on_WriteMode_item_selected(_id): _server.set_write_mode(_write_mode.get_selected_metadata())