fix alot of shit for webrtc to work

This commit is contained in:
2026-01-17 10:19:51 +01:00
parent f71b510cfc
commit eb718fa990
68 changed files with 6616 additions and 917 deletions

View File

@@ -15,6 +15,7 @@ var texture_progress_bar_boss_hp: TextureProgressBar = null
var label_host: Label = null
var label_player_count: Label = null
var label_room_code: Label = null
var label_disconnected: Label = null
var game_world: Node = null
var network_manager: Node = null
@@ -41,6 +42,7 @@ func _ready():
label_host = get_node_or_null("UpperRight/HBoxContainer/VBoxContainerHost/LabelHost")
label_player_count = get_node_or_null("UpperRight/HBoxContainer/VBoxContainerHost/LabelPlayerCount")
label_room_code = get_node_or_null("UpperRight/HBoxContainer/VBoxContainerHost/LabelRoomCode")
label_disconnected = get_node_or_null("CenterTop/LabelDisconnected")
# Find network manager
network_manager = get_node_or_null("/root/NetworkManager")
@@ -48,6 +50,8 @@ func _ready():
# Connect to player connection signals to update player count
network_manager.player_connected.connect(_on_player_connected)
network_manager.player_disconnected.connect(_on_player_disconnected)
network_manager.connection_failed.connect(_on_connection_failed)
network_manager.connection_succeeded.connect(_on_connection_succeeded)
# Debug: Check if nodes were found
if not label_time_value:
@@ -86,6 +90,21 @@ func _on_player_connected(_peer_id: int, _player_info: Dictionary):
func _on_player_disconnected(_peer_id: int, _player_info: Dictionary):
_update_host_info()
func _on_connection_failed():
# Show disconnection message
if label_disconnected:
label_disconnected.visible = true
# Show different message for host vs joiner
if network_manager and network_manager.is_hosting:
label_disconnected.text = "Lost connection to Matchbox server - Retrying..."
else:
label_disconnected.text = "Disconnected - Reconnecting..."
func _on_connection_succeeded():
# Hide disconnection message
if label_disconnected:
label_disconnected.visible = false
func _update_host_info():
if not network_manager:
return