diff options
-rw-r--r-- | client/menu/communicate/popup_message/pinned_item_messages.gd | 16 |
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) |