diff --git a/assets/core/networking/network_test_ui.gd b/assets/core/networking/network_test_ui.gd index 26c0258..27786ab 100644 --- a/assets/core/networking/network_test_ui.gd +++ b/assets/core/networking/network_test_ui.gd @@ -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: