30 lines
995 B
GDScript
30 lines
995 B
GDScript
extends Node3D
|
|
|
|
## World script for the multiplayer scene. Consumes the host/join request set
|
|
## by the main menu, and returns to the menu if the session ends.
|
|
##
|
|
## Connection-level only for now: no PlayersSpawner/ItemsSpawner here since the
|
|
## networked Player/NetPickable scenes aren't ported yet (out of scope for this
|
|
## change) — peers connect, but avatars/items don't sync.
|
|
|
|
var xr_interface: XRInterface
|
|
|
|
|
|
func _ready() -> void:
|
|
xr_interface = XRServer.find_interface("OpenXR")
|
|
if xr_interface and xr_interface.is_initialized():
|
|
DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_DISABLED)
|
|
get_viewport().use_xr = true
|
|
|
|
NetworkManager.session_ended.connect(_on_session_ended)
|
|
NetworkManager.connection_failed.connect(_on_connection_failed)
|
|
NetworkManager.world_ready()
|
|
|
|
|
|
func _on_session_ended() -> void:
|
|
get_tree().change_scene_to_file("res://Scenes/mainMenu.tscn")
|
|
|
|
|
|
func _on_connection_failed() -> void:
|
|
get_tree().change_scene_to_file("res://Scenes/mainMenu.tscn")
|