Remove old networking folder and edited whitespace

This commit is contained in:
Gary Steven Keough 2024-12-13 21:13:20 -05:00
parent e4839dd7e8
commit 230bf38a46
6 changed files with 6 additions and 298 deletions

View File

@ -1,6 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://bpmn7t87tfk7f"]
[ext_resource type="Script" path="res://assets/core/networking/old/old_NetworkManager.gd" id="1_6essl"]
[node name="NetworkManager" type="Node"]
script = ExtResource("1_6essl")

View File

@ -1,68 +0,0 @@
extends Control
@export var network_manager: OldnetworkManager
@export var host_button: Button
@export var join_button: Button
@export var lobby_id: LineEdit
@export var hosted_lobby_id: LineEdit
@export var users_list: VBoxContainer
@export var user_box_prefab: PackedScene
func _ready() -> void:
host_button.button_down.connect(_on_host_button_pressed)
join_button.button_down.connect(_on_join_button_pressed)
network_manager.user_joined_lobby.connect(_on_user_joined_lobby)
var user_box1: Node = user_box_prefab.instantiate()
users_list.add_child(user_box1)
user_box1.get_node("Username").text = network_manager.my_username
if network_manager.my_avatar_texture == null:
get_tree().create_timer(0.005).timeout.connect(
func():
user_box1.get_node("PFP").texture = network_manager.my_avatar_texture
)
else:
user_box1.get_node("PFP").texture = network_manager.my_avatar_texture
func _on_host_button_pressed() -> void:
network_manager.create_lobby()
get_tree().create_timer(0.5).timeout.connect(
func():
hosted_lobby_id.text = ("Lobby hosted: " + str(network_manager.lobby_id))
)
hosted_lobby_id.visible = true
func _on_join_button_pressed() -> void:
network_manager.join_lobby(int(lobby_id.text))
func _on_user_joined_lobby(user_id: int, username: String) -> void:
if user_id == network_manager.my_steam_id:
return
print(user_id, Steam.getFriendPersonaName(user_id))
var user_box: Node = user_box_prefab.instantiate()
user_box.name = "UserBox_" + str(user_id)
users_list.add_child(user_box)
user_box.get_node("Username").text = username
user_box.get_node("PFP").texture = get_avatar(user_id)
func get_avatar(user_id: int) -> ImageTexture:
if network_manager.lobby_members_avatar_cache.has(user_id):
return network_manager.lobby_members_avatar_cache[user_id]
else:
GameConsole.log_error("Avatar not found for: " + Steam.getFriendPersonaName(user_id))
return null

View File

@ -1,57 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://dfa8n5rw2qpfd"]
[ext_resource type="PackedScene" uid="uid://bpmn7t87tfk7f" path="res://assets/core/networking/old/old_network_manager.tscn" id="1_i1w5w"]
[node name="Test-lobby" type="Node"]
[node name="NetworkManager" parent="." instance=ExtResource("1_i1w5w")]
[node name="UiRoot" type="Control" parent="."]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Panel" type="Panel" parent="UiRoot"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="HBoxContainer" type="HBoxContainer" parent="UiRoot/Panel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="VBoxContainer" type="VBoxContainer" parent="UiRoot/Panel/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="Host" type="Button" parent="UiRoot/Panel/HBoxContainer/VBoxContainer"]
layout_mode = 2
text = "Host"
[node name="Join" type="Button" parent="UiRoot/Panel/HBoxContainer/VBoxContainer"]
layout_mode = 2
text = "Join"
[node name="LobbyID" type="LineEdit" parent="UiRoot/Panel/HBoxContainer/VBoxContainer"]
layout_mode = 2
placeholder_text = "Lobby ID"
[node name="HostedLobbyID" type="LineEdit" parent="UiRoot/Panel/HBoxContainer/VBoxContainer"]
visible = false
layout_mode = 2
text = "Lobby hosted: "
editable = false
[node name="UsersList" type="VBoxContainer" parent="UiRoot/Panel/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3

View File

@ -1,164 +0,0 @@
class_name OldnetworkManager
extends Node
const PACKET_READ_LIMIT: int = 32
var my_steam_id: int
var my_username: String
var my_avatar_texture: ImageTexture
var is_host: bool = false
var lobby_id: int = 0
var lobby_members: Array = []
var lobby_members_max: int = 4
var lobby_members_avatar_cache: Dictionary = {}
signal user_joined_lobby(steam_id: int, username: String)
func _ready() -> void:
var init_result = Steam.steamInit(true, 480)
if init_result["status"] <= 1:
_initialize()
else:
GameConsole.log_error("Steam failed to initialize: " + str(init_result))
func _initialize() -> void:
my_steam_id = Steam.getSteamID()
my_username = Steam.getFriendPersonaName(my_steam_id)
GameConsole.print_line("Steam ID: " + my_username)
cache_avatar(my_steam_id)
Steam.lobby_created.connect(_on_lobby_created)
Steam.lobby_joined.connect(_on_lobby_joined)
Steam.p2p_session_request.connect(_on_p2p_session_request)
func _process(_delta: float) -> void:
Steam.run_callbacks()
if lobby_id > 0:
read_all_p2p_packets()
func cache_avatar(user_id: int) -> bool:
if lobby_members_avatar_cache.has(user_id):
return true
else:
Steam.getPlayerAvatar(user_id)
Steam.avatar_loaded.connect(func(user_id: int, avatar_size: int, avatar_buffer: PackedByteArray):
var avatar_image: Image = Image.create_from_data(avatar_size, avatar_size, false, Image.FORMAT_RGBA8, avatar_buffer)
if avatar_size > 128:
avatar_image.resize(128, 128, Image.INTERPOLATE_LANCZOS)
if avatar_image != null:
var avatar_texture = ImageTexture.create_from_image(avatar_image)
GameConsole.print_line("Avatar cached for: " + Steam.getFriendPersonaName(user_id))
lobby_members_avatar_cache[user_id] = avatar_texture
return true
else:
GameConsole.log_error("Failed to create avatar image for: " + Steam.getFriendPersonaName(user_id))
return false
if user_id == my_steam_id:
my_avatar_texture = lobby_members_avatar_cache[user_id]
)
return false
func _on_lobby_created(connection_status: int, this_lobby_id: int) -> void:
if connection_status == 1:
lobby_id = this_lobby_id
Steam.setLobbyJoinable(lobby_id, true)
Steam.setLobbyData(lobby_id, "host", str(my_steam_id))
var set_relay: bool = Steam.allowP2PPacketRelay(true)
GameConsole.print_line("Lobby created: " + str(lobby_id))
func _on_lobby_joined(this_lobby_id: int, _permissions: int, _locked: bool, response: int) -> void:
if response == Steam.CHAT_ROOM_ENTER_RESPONSE_SUCCESS:
lobby_id = this_lobby_id
get_lobby_members()
make_p2p_handshake()
else:
GameConsole.log_error("Failed to join lobby: " + str(this_lobby_id) + " with response: " + str(response))
func read_all_p2p_packets(read_count: int = 0) -> void:
if read_count >= PACKET_READ_LIMIT:
return
if Steam.getAvailableP2PPacketSize(0) > 0:
read_p2p_packet()
read_all_p2p_packets(read_count + 1)
func _on_p2p_session_request(remote_id: int) -> void:
var this_requester: String = Steam.getFriendPersonaName(remote_id)
Steam.acceptP2PSessionWithUser(remote_id)
func make_p2p_handshake() -> void:
send_p2p_packet(0, {"message" : "handshake", "steam_id" : my_steam_id, "username" : my_username})
func create_lobby() -> void:
if lobby_id == 0:
is_host = true
Steam.createLobby(Steam.LOBBY_TYPE_PUBLIC, lobby_members_max)
func join_lobby(this_lobby_id: int) -> void:
GameConsole.print_line("Joining lobby: " + str(this_lobby_id))
Steam.joinLobby(this_lobby_id)
func get_lobby_members():
lobby_members.clear()
var member_count: int = Steam.getNumLobbyMembers(lobby_id)
for member in range(0,member_count):
var member_id: int = Steam.getLobbyMemberByIndex(lobby_id, member)
var member_username: String = Steam.getFriendPersonaName(member_id)
lobby_members.append({"steam_id": member_id, "username": member_username})
user_joined_lobby.emit(member_id, member_username)
func send_p2p_packet(this_target: int, packet_data: Dictionary, send_type: int = 0) -> void:
var channel: int = 0
var this_data: PackedByteArray
this_data.append_array(var_to_bytes(packet_data))
if this_target == 0:
if lobby_members.size() > 1:
for member in lobby_members:
if member["steam_id"] != my_steam_id:
Steam.sendP2PPacket(member["steam_id"], this_data, send_type, channel)
else:
Steam.sendP2PPacket(this_target, this_data, send_type, channel)
func read_p2p_packet() -> void:
var packet_size: int = Steam.getAvailableP2PPacketSize()
if packet_size > 0:
var this_packet: Dictionary = Steam.readP2PPacket(packet_size, 0)
var packet_sender: int = this_packet["remote_steam_id"]
var packet_code: PackedByteArray = this_packet["data"]
var read_data: Dictionary = bytes_to_var(packet_code)
if read_data.has("message"):
match read_data["message"]:
"handshake":
GameConsole.print_line("Handshake from: " + read_data["username"])
get_lobby_members()
cache_avatar(read_data["steam_id"])
"chat":
GameConsole.print_line(read_data["username"] + ": " + read_data["message"])
_:
GameConsole.print_line("Unknown message: " + read_data["message"])

View File

@ -9,6 +9,7 @@ extends Control
var added_users = [] var added_users = []
func _ready() -> void: func _ready() -> void:
host_button.pressed.connect(_on_host) host_button.pressed.connect(_on_host)
join_button.pressed.connect(_on_join) join_button.pressed.connect(_on_join)
@ -21,11 +22,11 @@ func _ready() -> void:
GameConsole.register_command(Command.new("update", update, [], "Updates the lobby UI")) GameConsole.register_command(Command.new("update", update, [], "Updates the lobby UI"))
func _on_host(): func _on_host():
NetworkManager.host_lobby() NetworkManager.host_lobby()
func _on_join(): func _on_join():
NetworkManager.join_lobby(int(lobby_id_line_edit.text)) NetworkManager.join_lobby(int(lobby_id_line_edit.text))
@ -44,7 +45,7 @@ func _on_lobby_created(lobby_id: int):
join_button.disabled = true join_button.disabled = true
leave_button.disabled = false leave_button.disabled = false
lobby_id_line_edit.editable = false lobby_id_line_edit.editable = false
func _on_lobby_joined(lobby_id: int): func _on_lobby_joined(lobby_id: int):
host_button.disabled = true host_button.disabled = true
@ -52,13 +53,15 @@ func _on_lobby_joined(lobby_id: int):
leave_button.disabled = false leave_button.disabled = false
lobby_id_line_edit.editable = false lobby_id_line_edit.editable = false
func _on_user_joined_lobby(user_id: int): func _on_user_joined_lobby(user_id: int):
if user_id in added_users: if user_id in added_users:
return # User already added, skip return # User already added, skip
added_users.append(user_id) added_users.append(user_id)
update() update()
func _on_user_left_lobby(user_id: int): func _on_user_left_lobby(user_id: int):
added_users.erase(user_id) added_users.erase(user_id)
update() update()