From 3ee118754e621c4802de6f9bc3c40ee8df657c5a Mon Sep 17 00:00:00 2001 From: Florent Berthaut <florent.berthaut@univ-lille.fr> Date: Thu, 31 Aug 2023 16:15:24 +0200 Subject: [PATCH] Fixed network --- core/IvmiScene.gd | 87 ++++++++++++++++++++++------------------------- 1 file changed, 41 insertions(+), 46 deletions(-) diff --git a/core/IvmiScene.gd b/core/IvmiScene.gd index 89f3ea4..22ebc8e 100644 --- a/core/IvmiScene.gd +++ b/core/IvmiScene.gd @@ -73,6 +73,10 @@ var _is_2D : bool = true var _ivmi_node = load("res://addons/ivmi-builder/core/IvmiNode.gd") func _ready(): + + + print("Creating IvmiScene") + match _xr_mode : XRMode.OpenXr : _is_2D = false @@ -109,15 +113,7 @@ func _ready(): # print("Error : Could not activate ScreenVR") pass -# TODO trying to fix resume error on quest, not working yet ... -func _on_play_area_changed() : - get_viewport().use_xr = true - - -func _init(): - - print("Creating IvmiScene") - + # PureData mode if _pd_mode==PdMode.LIBPD : var gdpd_dir = FileAccess var exists = gdpd_dir.dir_exists("res://addons/gdpd") @@ -169,29 +165,28 @@ func _init(): if _network_mode!=NetMode.None : if _network_protocol==NetProto.WebRTC : - - if OS.get_name()=="HTML5" : - #create client - _network_client = IvmiClient.new() - _network_client.connect("on_peers_ready",Callable(self,"_on_network_ready")) - add_child(_network_client) - #connect to server - _on_found_server(_server_ip, _server_port) - else : - - #create client - _network_client = IvmiClient.new() - _network_client.connect("on_peers_ready",Callable(self,"_on_network_ready")) - add_child(_network_client) - - #if server, create server, promote it and connect to it - if _network_mode==NetMode.Server : - print("IVMI : Starting server") - _network_server = IvmiServer.new() - _network_server._port = _server_port - add_child(_network_server) - #connect locally - _on_found_server("127.0.0.1", _server_port) +# if OS.get_name()=="HTML5" : +# #create client +# _network_client = IvmiClient.new() +# _network_client.connect("on_peers_ready",Callable(self,"_on_network_ready")) +# add_child(_network_client) +# #connect to server +# _on_found_server(_server_ip, _server_port) +# else : +# #create client +# _network_client = IvmiClient.new() +# _network_client.connect("on_peers_ready",Callable(self,"_on_network_ready")) +# add_child(_network_client) +# +# #if server, create server, promote it and connect to it +# if _network_mode==NetMode.Server : +# print("IVMI : Starting server") +# _network_server = IvmiServer.new() +# _network_server._port = _server_port +# add_child(_network_server) +# #connect locally +# _on_found_server("127.0.0.1", _server_port) + pass elif _network_protocol==NetProto.Enet : match _network_mode : @@ -199,7 +194,9 @@ func _init(): # init server var peer = ENetMultiplayerPeer.new() peer.create_server(_server_port) - get_tree().network_peer = peer + multiplayer.multiplayer_peer = peer + _on_network_ready() + print("IVMI : Starting Server") NetMode.Client : if _server_ip!="" : _on_found_server(_server_ip, _server_port) @@ -214,6 +211,10 @@ func _init(): _network_discov.connect("timeout",Callable(self,"_on_timeout")) _network_discov.start() +# TODO trying to fix resume error on quest, not working yet ... +func _on_play_area_changed() : + get_viewport().use_xr = true + func _process(delta) : if is_inside_tree() : match _pd_mode : @@ -256,15 +257,14 @@ func _process(delta) : func _on_found_server(server_ip, port) : match _network_protocol : NetProto.WebRTC : - _network_client.connect_to_server(server_ip, port) + #_network_client.connect_to_server(server_ip, port) + pass NetProto.Enet : + print("IVMI : Connecting to server ", server_ip, " ", port) var peer = ENetMultiplayerPeer.new() peer.create_client(server_ip, port) - get_tree().network_peer = peer - #get_tree().connect("peer_disconnected",Callable(self,"_player_disconnected")) - #get_tree().connect("connected_to_server",Callable(self,"_connected_ok")) - #get_tree().connect("connection_failed",Callable(self,"_connected_fail")) - #get_tree().connect("server_disconnected",Callable(self,"_server_disconnected")) + multiplayer.multiplayer_peer = peer + multiplayer.connected_to_server.connect(_on_network_ready) func _on_timeout() : @@ -282,12 +282,12 @@ func _on_timeout() : NetProto.Enet : var peer = ENetMultiplayerPeer.new() peer.create_server(_server_port) - get_tree().network_peer = peer + multiplayer.multiplayer_peer = peer + _on_network_ready() print("IVMI : Starting server") func _on_network_ready() : print("IVMI : Network ready") - get_tree().set_multiplayer_peer(_network_client.get_multiplayer_peer()) _is_connected=true func set_server_ip(ip): @@ -342,11 +342,6 @@ func send(address, tags, args) : # print("\n", player_info[id].name, " just disconnected from server", "\n") # player_info.erase(id) -#func _connected_ok(): -# print("\n", "Successfully connected to server", "\n") -# rpc_id(1, "register_player", my_info) -# _is_connected = true - #func _server_disconnected(): # printerr("\n", "Disconnected from server", "\n") -- GitLab