client_ui.gd 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. extends Control
  2. onready var _client = $Client
  3. onready var _log_dest = $Panel/VBoxContainer/RichTextLabel
  4. onready var _line_edit = $Panel/VBoxContainer/Send/LineEdit
  5. onready var _host = $Panel/VBoxContainer/Connect/Host
  6. onready var _multiplayer = $Panel/VBoxContainer/Settings/Multiplayer
  7. onready var _write_mode = $Panel/VBoxContainer/Settings/Mode
  8. onready var _destination = $Panel/VBoxContainer/Settings/Destination
  9. func _ready():
  10. _write_mode.clear()
  11. _write_mode.add_item("BINARY")
  12. _write_mode.set_item_metadata(0, WebSocketPeer.WRITE_MODE_BINARY)
  13. _write_mode.add_item("TEXT")
  14. _write_mode.set_item_metadata(1, WebSocketPeer.WRITE_MODE_TEXT)
  15. _destination.add_item("Broadcast")
  16. _destination.set_item_metadata(0, 0)
  17. _destination.add_item("Last connected")
  18. _destination.set_item_metadata(1, 1)
  19. _destination.add_item("All But last connected")
  20. _destination.set_item_metadata(2, -1)
  21. _destination.select(0)
  22. func _on_Mode_item_selected(_id):
  23. _client.set_write_mode(_write_mode.get_selected_metadata())
  24. func _on_Send_pressed():
  25. if _line_edit.text == "":
  26. return
  27. var dest = _destination.get_selected_metadata()
  28. if dest > 0:
  29. dest = _client.last_connected_client
  30. elif dest < 0:
  31. dest = -_client.last_connected_client
  32. Utils._log(_log_dest, "Sending data %s to %s" % [_line_edit.text, dest])
  33. _client.send_data(_line_edit.text, dest)
  34. _line_edit.text = ""
  35. func _on_Connect_toggled( pressed ):
  36. if pressed:
  37. var multiplayer = _multiplayer.pressed
  38. if multiplayer:
  39. _write_mode.disabled = true
  40. else:
  41. _destination.disabled = true
  42. _multiplayer.disabled = true
  43. if _host.text != "":
  44. Utils._log(_log_dest, "Connecting to host: %s" % [_host.text])
  45. var supported_protocols = PoolStringArray(["my-protocol2", "my-protocol", "binary"])
  46. _client.connect_to_url(_host.text, supported_protocols, multiplayer)
  47. else:
  48. _destination.disabled = false
  49. _write_mode.disabled = false
  50. _multiplayer.disabled = false
  51. _client.disconnect_from_host()