Remove old networking folder and edited whitespace
This commit is contained in:
parent
e4839dd7e8
commit
230bf38a46
Binary file not shown.
@ -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")
|
@ -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
|
||||
|
||||
|
@ -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
|
@ -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"])
|
@ -9,6 +9,7 @@ extends Control
|
||||
|
||||
var added_users = []
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
host_button.pressed.connect(_on_host)
|
||||
join_button.pressed.connect(_on_join)
|
||||
@ -21,11 +22,11 @@ func _ready() -> void:
|
||||
|
||||
GameConsole.register_command(Command.new("update", update, [], "Updates the lobby UI"))
|
||||
|
||||
|
||||
func _on_host():
|
||||
NetworkManager.host_lobby()
|
||||
|
||||
|
||||
|
||||
func _on_join():
|
||||
NetworkManager.join_lobby(int(lobby_id_line_edit.text))
|
||||
|
||||
@ -44,7 +45,7 @@ func _on_lobby_created(lobby_id: int):
|
||||
join_button.disabled = true
|
||||
leave_button.disabled = false
|
||||
lobby_id_line_edit.editable = false
|
||||
|
||||
|
||||
|
||||
func _on_lobby_joined(lobby_id: int):
|
||||
host_button.disabled = true
|
||||
@ -52,13 +53,15 @@ func _on_lobby_joined(lobby_id: int):
|
||||
leave_button.disabled = false
|
||||
lobby_id_line_edit.editable = false
|
||||
|
||||
|
||||
func _on_user_joined_lobby(user_id: int):
|
||||
if user_id in added_users:
|
||||
return # User already added, skip
|
||||
|
||||
|
||||
added_users.append(user_id)
|
||||
update()
|
||||
|
||||
|
||||
func _on_user_left_lobby(user_id: int):
|
||||
added_users.erase(user_id)
|
||||
update()
|
||||
|
Loading…
Reference in New Issue
Block a user