Testing getting user data when joining
This commit is contained in:
parent
02757058f6
commit
4a8cb3813e
@ -12,6 +12,8 @@ var lobby_id: int = 0
|
|||||||
var lobby_members: Array = []
|
var lobby_members: Array = []
|
||||||
var lobby_members_max: int = 4
|
var lobby_members_max: int = 4
|
||||||
|
|
||||||
|
signal user_joined_lobby(steam_id: int, username: String)
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
var init_result = Steam.steamInit(true, 480)
|
var init_result = Steam.steamInit(true, 480)
|
||||||
if init_result["status"] <= 1:
|
if init_result["status"] <= 1:
|
||||||
@ -141,6 +143,7 @@ func read_p2p_packet() -> void:
|
|||||||
"handshake":
|
"handshake":
|
||||||
GameConsole.print_line("Handshake from: " + read_data["username"])
|
GameConsole.print_line("Handshake from: " + read_data["username"])
|
||||||
get_lobby_members()
|
get_lobby_members()
|
||||||
|
user_joined_lobby.emit(packet_sender, read_data["username"])
|
||||||
"chat":
|
"chat":
|
||||||
GameConsole.print_line(read_data["username"] + ": " + read_data["message"])
|
GameConsole.print_line(read_data["username"] + ": " + read_data["message"])
|
||||||
_:
|
_:
|
||||||
|
@ -5,26 +5,31 @@ extends Control
|
|||||||
@export var host_button: Button
|
@export var host_button: Button
|
||||||
@export var join_button: Button
|
@export var join_button: Button
|
||||||
@export var lobby_id: LineEdit
|
@export var lobby_id: LineEdit
|
||||||
@export var pfp: TextureRect
|
|
||||||
@export var username: Label
|
|
||||||
@export var hosted_lobby_id: Label
|
@export var hosted_lobby_id: Label
|
||||||
|
|
||||||
|
@export var user_box1: HBoxContainer
|
||||||
|
@export var user_box2: HBoxContainer
|
||||||
|
@export var user_box3: HBoxContainer
|
||||||
|
@export var user_box4: HBoxContainer
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
host_button.button_down.connect(_on_host_button_pressed)
|
host_button.button_down.connect(_on_host_button_pressed)
|
||||||
join_button.button_down.connect(_on_join_button_pressed)
|
join_button.button_down.connect(_on_join_button_pressed)
|
||||||
|
|
||||||
|
network_manager.user_joined_lobby.connect(_on_user_joined_lobby)
|
||||||
|
|
||||||
username.text = network_manager.username
|
|
||||||
|
user_box1.get_node("Username").text = network_manager.username
|
||||||
|
|
||||||
if network_manager.avatar_texture == null:
|
if network_manager.avatar_texture == null:
|
||||||
GameConsole.log_error("Avatar texture is null!")
|
GameConsole.log_error("Avatar texture is null!")
|
||||||
get_tree().create_timer(0.005).timeout.connect(
|
get_tree().create_timer(0.005).timeout.connect(
|
||||||
func():
|
func():
|
||||||
pfp.texture = network_manager.avatar_texture
|
user_box1.get_node("PFP").texture = network_manager.avatar_texture
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
pfp.texture = network_manager.avatar_texture
|
user_box1.get_node("PFP").texture = network_manager.avatar_texture
|
||||||
|
|
||||||
|
|
||||||
func _on_host_button_pressed() -> void:
|
func _on_host_button_pressed() -> void:
|
||||||
@ -39,3 +44,38 @@ func _on_host_button_pressed() -> void:
|
|||||||
|
|
||||||
func _on_join_button_pressed() -> void:
|
func _on_join_button_pressed() -> void:
|
||||||
network_manager.join_lobby(int(lobby_id.text))
|
network_manager.join_lobby(int(lobby_id.text))
|
||||||
|
|
||||||
|
|
||||||
|
func _on_user_joined_lobby(user_id: int, username: String) -> void:
|
||||||
|
if network_manager.lobby_members[1] == null:
|
||||||
|
user_box2.get_node("Username").text = username
|
||||||
|
user_box2.get_node("PFP").texture = load_avatar(user_id)
|
||||||
|
user_box2.visible = true
|
||||||
|
elif network_manager.lobby_members[2] == null:
|
||||||
|
user_box3.get_node("Username").text = username
|
||||||
|
user_box3.get_node("PFP").texture = load_avatar(user_id)
|
||||||
|
user_box3.visible = true
|
||||||
|
elif network_manager.lobby_members[3] == null:
|
||||||
|
user_box4.get_node("Username").text = username
|
||||||
|
user_box4.get_node("PFP").texture = load_avatar(user_id)
|
||||||
|
user_box4.visible = true
|
||||||
|
else:
|
||||||
|
GameConsole.log_error("Lobby is full!")
|
||||||
|
|
||||||
|
|
||||||
|
func load_avatar(user_id: int) -> ImageTexture:
|
||||||
|
Steam.getPlayerAvatar(user_id)
|
||||||
|
|
||||||
|
Steam.avatar_loaded.connect(
|
||||||
|
func(_user_id: int, avatar_size: int, avatar_buffer: PackedByteArray) -> void:
|
||||||
|
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:
|
||||||
|
return ImageTexture.create_from_image(avatar_image)
|
||||||
|
else:
|
||||||
|
GameConsole.log_error("Failed to create avatar image!")
|
||||||
|
)
|
||||||
|
return null
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
[node name="NetworkManager" parent="." instance=ExtResource("1_i1w5w")]
|
[node name="NetworkManager" parent="." instance=ExtResource("1_i1w5w")]
|
||||||
|
|
||||||
[node name="UiRoot" type="Control" parent="." node_paths=PackedStringArray("network_manager", "host_button", "join_button", "lobby_id", "pfp", "username", "hosted_lobby_id")]
|
[node name="UiRoot" type="Control" parent="." node_paths=PackedStringArray("network_manager", "host_button", "join_button", "lobby_id", "hosted_lobby_id", "user_box1", "user_box2", "user_box3", "user_box4")]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
@ -20,9 +20,11 @@ network_manager = NodePath("../NetworkManager")
|
|||||||
host_button = NodePath("Panel/HBoxContainer/VBoxContainer/Host")
|
host_button = NodePath("Panel/HBoxContainer/VBoxContainer/Host")
|
||||||
join_button = NodePath("Panel/HBoxContainer/VBoxContainer/Join")
|
join_button = NodePath("Panel/HBoxContainer/VBoxContainer/Join")
|
||||||
lobby_id = NodePath("Panel/HBoxContainer/VBoxContainer/LobbyID")
|
lobby_id = NodePath("Panel/HBoxContainer/VBoxContainer/LobbyID")
|
||||||
pfp = NodePath("Panel/HBoxContainer/VBoxContainer2/HBoxContainer/PFP")
|
|
||||||
username = NodePath("Panel/HBoxContainer/VBoxContainer2/HBoxContainer/Username")
|
|
||||||
hosted_lobby_id = NodePath("Panel/HBoxContainer/VBoxContainer/HostedLobbyID")
|
hosted_lobby_id = NodePath("Panel/HBoxContainer/VBoxContainer/HostedLobbyID")
|
||||||
|
user_box1 = NodePath("Panel/HBoxContainer/VBoxContainer2/UserBox1")
|
||||||
|
user_box2 = NodePath("Panel/HBoxContainer/VBoxContainer2/UserBox2")
|
||||||
|
user_box3 = NodePath("Panel/HBoxContainer/VBoxContainer2/UserBox3")
|
||||||
|
user_box4 = NodePath("Panel/HBoxContainer/VBoxContainer2/UserBox4")
|
||||||
|
|
||||||
[node name="Panel" type="Panel" parent="UiRoot"]
|
[node name="Panel" type="Panel" parent="UiRoot"]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
@ -65,17 +67,62 @@ text = "Lobby hosted: "
|
|||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
[node name="HBoxContainer" type="HBoxContainer" parent="UiRoot/Panel/HBoxContainer/VBoxContainer2"]
|
[node name="UserBox1" type="HBoxContainer" parent="UiRoot/Panel/HBoxContainer/VBoxContainer2"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="PFP" type="TextureRect" parent="UiRoot/Panel/HBoxContainer/VBoxContainer2/HBoxContainer"]
|
[node name="PFP" type="TextureRect" parent="UiRoot/Panel/HBoxContainer/VBoxContainer2/UserBox1"]
|
||||||
custom_minimum_size = Vector2(128, 128)
|
custom_minimum_size = Vector2(128, 128)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
texture = ExtResource("3_co2ix")
|
texture = ExtResource("3_co2ix")
|
||||||
expand_mode = 1
|
expand_mode = 1
|
||||||
|
|
||||||
[node name="Username" type="Label" parent="UiRoot/Panel/HBoxContainer/VBoxContainer2/HBoxContainer"]
|
[node name="Username" type="Label" parent="UiRoot/Panel/HBoxContainer/VBoxContainer2/UserBox1"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 8
|
size_flags_horizontal = 8
|
||||||
text = "username"
|
text = "Hagrid 1"
|
||||||
|
|
||||||
|
[node name="UserBox2" type="HBoxContainer" parent="UiRoot/Panel/HBoxContainer/VBoxContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="PFP" type="TextureRect" parent="UiRoot/Panel/HBoxContainer/VBoxContainer2/UserBox2"]
|
||||||
|
custom_minimum_size = Vector2(128, 128)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
texture = ExtResource("3_co2ix")
|
||||||
|
expand_mode = 1
|
||||||
|
|
||||||
|
[node name="Username" type="Label" parent="UiRoot/Panel/HBoxContainer/VBoxContainer2/UserBox2"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 8
|
||||||
|
text = "Hagrid 2"
|
||||||
|
|
||||||
|
[node name="UserBox3" type="HBoxContainer" parent="UiRoot/Panel/HBoxContainer/VBoxContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="PFP" type="TextureRect" parent="UiRoot/Panel/HBoxContainer/VBoxContainer2/UserBox3"]
|
||||||
|
custom_minimum_size = Vector2(128, 128)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
texture = ExtResource("3_co2ix")
|
||||||
|
expand_mode = 1
|
||||||
|
|
||||||
|
[node name="Username" type="Label" parent="UiRoot/Panel/HBoxContainer/VBoxContainer2/UserBox3"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 8
|
||||||
|
text = "Hagrid 3"
|
||||||
|
|
||||||
|
[node name="UserBox4" type="HBoxContainer" parent="UiRoot/Panel/HBoxContainer/VBoxContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="PFP" type="TextureRect" parent="UiRoot/Panel/HBoxContainer/VBoxContainer2/UserBox4"]
|
||||||
|
custom_minimum_size = Vector2(128, 128)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
texture = ExtResource("3_co2ix")
|
||||||
|
expand_mode = 1
|
||||||
|
|
||||||
|
[node name="Username" type="Label" parent="UiRoot/Panel/HBoxContainer/VBoxContainer2/UserBox4"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 8
|
||||||
|
text = "Hagrid 4"
|
||||||
|
Loading…
Reference in New Issue
Block a user