3d.gd 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. extends Spatial
  2. var RemotePlayer = preload("lib/3dRemotePlayer.tscn")
  3. var mpclient = preload("lib/client_ui.tscn")
  4. # Declare member variables here. Examples:
  5. # var a = 2
  6. # var b = "text"
  7. var id
  8. var remoteplayers = {}
  9. # Called when the node enters the scene tree for the first time.
  10. func _ready():
  11. mpclient = mpclient.instance()
  12. mpclient.name="mpclient"
  13. add_child(mpclient)
  14. #get_tree().set_network_peer(mpclient.client.rtc_mp)
  15. mpclient.client.rtc_mp.connect("peer_connected", self, "spawn_remotePlayer")
  16. mpclient.client.rtc_mp.connect("peer_disconnected", self, "remove_remotePlayer")
  17. mpclient.client.connect("connected", self, "set_id")
  18. get_node("mpclient/HideButton").connect("pressed", self, "_on_hide_pressed")
  19. # Called every frame. 'delta' is the elapsed time since the previous frame.
  20. #func _process(delta):
  21. # pass
  22. func set_id(id):
  23. self.id = id
  24. func spawn_remotePlayer(id):
  25. var remoteplayer = RemotePlayer.instance()
  26. remoteplayer.owner = self
  27. remoteplayer.name = "Player "+str(id)
  28. remoteplayer.id = id
  29. get_node("RemotePlayers").add_child(remoteplayer, true)
  30. remoteplayers[id] = remoteplayer
  31. func remove_remotePlayer(id):
  32. print("removing player", id)
  33. if remoteplayers.has(id):
  34. remoteplayers[id].queue_free()
  35. func _on_hide_pressed():
  36. $MultiplayerButton.show()
  37. func _on_Multiplayer_pressed():
  38. $MultiplayerButton.hide()
  39. mpclient.show()