Add public room discovery

This commit is contained in:
Alexander Sellite 2026-08-10 10:04:05 -04:00
parent 59ef173ea7
commit e204279b09
16 changed files with 857 additions and 22 deletions

View file

@ -16,6 +16,7 @@ signal connection_error(message: String)
signal peer_authenticated(peer_id: int, display_name: String)
signal peer_removed(peer_id: int)
signal host_openness_changed(is_open: bool)
signal session_display_name_changed(display_name: String)
signal peer_count_changed(player_count: int, max_players: int)
signal peer_display_name_changed(peer_id: int, display_name: String)
signal peer_profile_changed(
@ -99,6 +100,7 @@ var _local_appearance_snapshot: Dictionary = (
)
var _moderation_disconnect_message := ""
var _host_port: int = 0
var _session_display_name: String = "NETfishing Room"
func _ready() -> void:
@ -228,6 +230,20 @@ func get_host_port() -> int:
return _host_port if is_host() else 0
func set_session_display_name(value: String) -> void:
var cleaned: String = value.strip_edges().left(48)
if cleaned.is_empty():
cleaned = "NETfishing Room"
if cleaned == _session_display_name:
return
_session_display_name = cleaned
session_display_name_changed.emit(_session_display_name)
func get_session_display_name() -> String:
return _session_display_name
static func _can_bind_udp_port(port: int) -> bool:
var probe := PacketPeerUDP.new()
var error: Error = probe.bind(port)
@ -1038,7 +1054,8 @@ func submit_client_hello(data: Dictionary) -> void:
_session_id,
sender_id,
_registry.size(),
session_max_players
session_max_players,
_session_display_name,
)
)
receive_spawn_list.rpc_id(sender_id, _build_spawn_list())