aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/menu/communicate/popup_message/pinned_item_messages.gd16
1 files changed, 14 insertions, 2 deletions
diff --git a/client/menu/communicate/popup_message/pinned_item_messages.gd b/client/menu/communicate/popup_message/pinned_item_messages.gd
index 0d032a0d..c98b9184 100644
--- a/client/menu/communicate/popup_message/pinned_item_messages.gd
+++ b/client/menu/communicate/popup_message/pinned_item_messages.gd
@@ -32,12 +32,24 @@ func pin_item(item_name: String, timeout_initial_: float, timeout_remaining_: fl
pinned_items_container.add_child(item_message)
item_message.set_subviewport_size(Vector2(96, 84))
item_message.set_round_corner_radius_progress(0)
-
item_message.set_item(item_name, timeout_initial_, timeout_remaining_)
-
pinned_items[player_id] = item_message
+ sort_pins()
func clear_item(player_id: float):
if player_id in pinned_items:
if is_instance_valid(pinned_items[player_id]):
pinned_items[player_id].queue_free()
+
+func sort_pins():
+ var sorted_nodes := pinned_items_container.get_children()
+
+ sorted_nodes.sort_custom(
+ func(a: Node, b: Node): return a.timeout_remaining < b.timeout_remaining
+ )
+
+ for node in pinned_items_container.get_children():
+ pinned_items_container.remove_child(node)
+
+ for node in sorted_nodes:
+ pinned_items_container.add_child(node)