From 2fc2cd80c4f0cfb1780aeccfb88960f1d6c49360 Mon Sep 17 00:00:00 2001 From: tpart Date: Wed, 25 Sep 2024 21:32:50 +0200 Subject: Sort pinned orders by priority --- .../communicate/popup_message/pinned_item_messages.gd | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'client/menu') 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) -- cgit v1.2.3-70-g09d2