Merging networking features #5
@ -12,7 +12,7 @@ extends Control
|
||||
|
||||
var avatar_image_cache: Dictionary = {}
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
|
||||
func _ready() -> void:
|
||||
host_button.button_down.connect(_on_host_button_pressed)
|
||||
join_button.button_down.connect(_on_join_button_pressed)
|
||||
@ -32,8 +32,7 @@ func _ready() -> void:
|
||||
)
|
||||
else:
|
||||
user_box1.get_node("PFP").texture = network_manager.avatar_texture
|
||||
|
||||
# Connect the avatar_loaded signal once
|
||||
|
||||
Steam.avatar_loaded.connect(_on_avatar_loaded)
|
||||
|
||||
|
||||
@ -60,15 +59,19 @@ func _on_user_joined_lobby(user_id: int, username: String) -> void:
|
||||
users_list.add_child(user_box)
|
||||
|
||||
user_box.get_node("Username").text = username
|
||||
user_box.get_node("PFP").texture = await load_avatar(user_id)
|
||||
load_avatar(user_id, user_box)
|
||||
|
||||
|
||||
func load_avatar(user_id: int) -> ImageTexture:
|
||||
func load_avatar(user_id: int, user_box: Node) -> void:
|
||||
avatar_image_cache[user_id] = null
|
||||
Steam.getPlayerAvatar(user_id)
|
||||
while avatar_image_cache[user_id] == null:
|
||||
await get_tree().create_timer(0.1).timeout
|
||||
return avatar_image_cache[user_id]
|
||||
var timer: SceneTreeTimer = get_tree().create_timer(0.1)
|
||||
timer.timeout.connect(
|
||||
func():
|
||||
if avatar_image_cache[user_id] != null:
|
||||
user_box.get_node("PFP").texture = avatar_image_cache[user_id]
|
||||
timer.stop()
|
||||
)
|
||||
|
||||
|
||||
func _on_avatar_loaded(user_id: int, avatar_size: int, avatar_buffer: PackedByteArray) -> void:
|
||||
|
Loading…
Reference in New Issue
Block a user