client_ui.gd 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. extends Control
  2. onready var client = $Client
  3. func _ready():
  4. client.connect("lobby_joined", self, "_lobby_joined")
  5. client.connect("lobby_sealed", self, "_lobby_sealed")
  6. client.connect("connected", self, "_connected")
  7. client.connect("disconnected", self, "_disconnected")
  8. client.rtc_mp.connect("peer_connected", self, "_mp_peer_connected")
  9. client.rtc_mp.connect("peer_disconnected", self, "_mp_peer_disconnected")
  10. client.rtc_mp.connect("server_disconnected", self, "_mp_server_disconnect")
  11. client.rtc_mp.connect("connection_succeeded", self, "_mp_connected")
  12. func _process(delta):
  13. client.rtc_mp.poll()
  14. while client.rtc_mp.get_available_packet_count() > 0:
  15. _log(client.rtc_mp.get_packet().get_string_from_utf8())
  16. func _connected(id):
  17. _log("Signaling server connected with ID: %d" % id)
  18. func _disconnected():
  19. _log("Signaling server disconnected: %d - %s" % [client.code, client.reason])
  20. func _lobby_joined(lobby):
  21. _log("Joined lobby %s" % lobby)
  22. func _lobby_sealed():
  23. _log("Lobby has been sealed")
  24. func _mp_connected():
  25. _log("Multiplayer is connected (I am %d)" % client.rtc_mp.get_unique_id())
  26. func _mp_server_disconnect():
  27. _log("Multiplayer is disconnected (I am %d)" % client.rtc_mp.get_unique_id())
  28. func _mp_peer_connected(id: int):
  29. _log("Multiplayer peer %d connected" % id)
  30. func _mp_peer_disconnected(id: int):
  31. _log("Multiplayer peer %d disconnected" % id)
  32. func _log(msg):
  33. print(msg)
  34. $VBoxContainer/TextEdit.text += str(msg) + "\n"
  35. func ping():
  36. _log(client.rtc_mp.put_packet("ping".to_utf8()))
  37. func _on_Peers_pressed():
  38. var d = client.rtc_mp.get_peers()
  39. _log(d)
  40. for k in d:
  41. _log(client.rtc_mp.get_peer(k))
  42. func start():
  43. client.start($VBoxContainer/Connect/Host.text, $VBoxContainer/Connect/RoomSecret.text)
  44. func _on_Seal_pressed():
  45. client.seal_lobby()
  46. func stop():
  47. client.stop()