diff --git a/core/IvmiScene.gd b/core/IvmiScene.gd index 58a0802731929257212853dbd7f78fa1bf09ce95..9e23e8d0ee7686d13294adbe3886aa5681dd9a61 100644 --- a/core/IvmiScene.gd +++ b/core/IvmiScene.gd @@ -77,22 +77,7 @@ func _ready(): _xr_interface.connect("session_visible",_on_xr_session) _is_2D = false print("IVMI : Initialised OpenXR Interface") - if _open_xr_passthrough : - get_viewport().transparent_bg=true - var pt : bool = true - if _xr_interface.is_passthrough_supported(): - if !_xr_interface.start_passthrough(): - pt=false - else: - var modes = _xr_interface.get_supported_environment_blend_modes() - if _xr_interface.XR_ENV_BLEND_MODE_ALPHA_BLEND in modes: - _xr_interface.set_environment_blend_mode(_xr_interface.XR_ENV_BLEND_MODE_ALPHA_BLEND) - else: - pt=false - if pt : - print("IVMI : Activated OpenXR Passthrough") - else: - print("Error : Could not activate OpenXR Passthrough") + set_passthrough(_open_xr_passthrough) else: print("Error : Could not initialize OpenXR interface") @@ -134,36 +119,6 @@ func _ready(): # Start network _start_network() -func _start_network() -> void : - _is_connected=false - - if _network_mode!=NetMode.None : - if _network_protocol==NetProto.Enet : - match _network_mode : - NetMode.Server : - # init server - var peer = ENetMultiplayerPeer.new() - peer.create_server(_server_port) - multiplayer.multiplayer_peer = peer - _on_network_ready() - print("IVMI : Starting Server") - NetMode.Client : - if _server_ip!="" : - _on_found_server(_server_ip, _server_port) - - #start discov - _network_discov = IvmiDiscov.new() - if _network_mode==NetMode.Server : - _network_discov.set_server(_server_port) - add_child(_network_discov) - _network_discov.connect("found_server",Callable(self,"_on_found_server")) - _network_discov.connect("timeout",Callable(self,"_on_timeout")) - _network_discov.start() - -# TODO trying to fix resume error on quest, not working yet ... -func _on_xr_session() : - get_viewport().use_xr = true - _start_network() func _process(delta) : if is_inside_tree() : @@ -208,8 +163,71 @@ func _process(delta) : +# --------XR----------------- + +func set_passthrough(activate : bool) -> void : + if _xr_interface : + get_viewport().transparent_bg=true + var pt : bool = true + if _xr_interface.is_passthrough_supported(): + if activate : + if !_xr_interface.start_passthrough(): + pt=false + else : + _xr_interface.stop_passthrough() + else: + if activate : + var modes = _xr_interface.get_supported_environment_blend_modes() + if _xr_interface.XR_ENV_BLEND_MODE_ALPHA_BLEND in modes: + _xr_interface.set_environment_blend_mode(_xr_interface.XR_ENV_BLEND_MODE_ALPHA_BLEND) + else: + pt=false + else : + _xr_interface.set_environment_blend_mode(_xr_interface.XR_ENV_BLEND_MODE_OPAQUE) + + if activate : + if pt : + print("IVMI : Activated OpenXR Passthrough") + else: + print("Error : Could not activate OpenXR Passthrough") + else : + print("IVMI : Deactivated OpenXR Passthrough") + +func _on_xr_session() : + get_viewport().use_xr = true + _start_network() + # --------Network----------------- +func _start_network() -> void : + _is_connected=false + + if _network_mode!=NetMode.None : + if _network_protocol==NetProto.Enet : + match _network_mode : + NetMode.Server : + # init server + var peer = ENetMultiplayerPeer.new() + peer.create_server(_server_port) + multiplayer.multiplayer_peer = peer + _on_network_ready() + print("IVMI : Starting Server") + NetMode.Client : + if _server_ip!="" : + _on_found_server(_server_ip, _server_port) + + #start discov + _network_discov = IvmiDiscov.new() + if _network_mode==NetMode.Server : + _network_discov.set_server(_server_port) + add_child(_network_discov) + _network_discov.connect("found_server",Callable(self,"_on_found_server")) + _network_discov.connect("timeout",Callable(self,"_on_timeout")) + _network_discov.start() + + + + func _on_found_server(server_ip, port) : match _network_protocol : NetProto.Enet :