client_ui.gd 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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. get_node("VBoxContainer/Info/1").text = String(client.rtc_mp.get_connection_status())
  14. #get_node("VBoxContainer/Info/2").text = String(len(get_tree().get_network_connected_peers()))
  15. client.rtc_mp.poll()
  16. while client.rtc_mp.get_available_packet_count() > 0:
  17. _log(client.rtc_mp.get_packet().get_string_from_utf8())
  18. func _connected(id):
  19. _log("Signaling server connected with ID: %s" % id)
  20. func _disconnected():
  21. _log("Signaling server disconnected: %d - %s" % [client.code, client.reason])
  22. func _lobby_joined(lobby):
  23. _log("Joined lobby %s" % lobby)
  24. func _lobby_sealed():
  25. _log("Lobby has been sealed")
  26. func _mp_connected():
  27. _log("Multiplayer is connected (I am %d)" % client.rtc_mp.get_unique_id())
  28. get_tree().set_network_peer(client.rtc_mp)
  29. get_node("VBoxContainer/Info/2").text = String(len(get_tree().get_network_connected_peers()))
  30. func _mp_server_disconnect():
  31. _log("Multiplayer is disconnected (I am %d)" % client.rtc_mp.get_unique_id())
  32. func _mp_peer_connected(id: int):
  33. _log("Multiplayer peer %d connected" % id)
  34. func _mp_peer_disconnected(id: int):
  35. _log("Multiplayer peer %d disconnected" % id)
  36. func _log(msg):
  37. print(msg)
  38. $VBoxContainer/TextEdit.text += str(msg) + "\n"
  39. func ping():
  40. _log(client.rtc_mp.put_packet("ping".to_utf8()))
  41. func _on_Peers_pressed():
  42. var d = client.rtc_mp.get_peers()
  43. _log(d)
  44. for k in d:
  45. _log(client.rtc_mp.get_peer(k))
  46. func start():
  47. client.start($VBoxContainer/Connect/Host.text, $VBoxContainer/Connect/RoomSecret.text)
  48. func _on_Seal_pressed():
  49. client.seal_lobby()
  50. func stop():
  51. client.stop()
  52. func _on_Hide_pressed():
  53. self.hide()