Testing fix for loading new user avatars

This commit is contained in:
Chris Bell 2024-12-12 21:21:52 -06:00
parent b576e32718
commit 1c51964543

View File

@ -12,7 +12,7 @@ extends Control
var avatar_image_cache: Dictionary = {} var avatar_image_cache: Dictionary = {}
# 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)
@ -32,8 +32,7 @@ func _ready() -> void:
) )
else: else:
user_box1.get_node("PFP").texture = network_manager.avatar_texture user_box1.get_node("PFP").texture = network_manager.avatar_texture
# Connect the avatar_loaded signal once
Steam.avatar_loaded.connect(_on_avatar_loaded) 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) users_list.add_child(user_box)
user_box.get_node("Username").text = username 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 avatar_image_cache[user_id] = null
Steam.getPlayerAvatar(user_id) Steam.getPlayerAvatar(user_id)
while avatar_image_cache[user_id] == null: var timer: SceneTreeTimer = get_tree().create_timer(0.1)
await get_tree().create_timer(0.1).timeout timer.timeout.connect(
return avatar_image_cache[user_id] 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: func _on_avatar_loaded(user_id: int, avatar_size: int, avatar_buffer: PackedByteArray) -> void: