From 14f21a434e69f682b84009ff558ef959b0ad3bd6 Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Sun, 19 May 2019 01:09:29 +0200 Subject: [PATCH] Try to insert incom. stacks to the correct drawer slot first --- lua/api.lua | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lua/api.lua b/lua/api.lua index 06c5cfd..80a58e5 100755 --- a/lua/api.lua +++ b/lua/api.lua @@ -181,9 +181,19 @@ function drawers.drawer_insert_object(pos, node, stack, direction) local drawer_visuals = drawers.drawer_visuals[core.serialize(pos)] if not drawer_visuals then return stack end + -- first try to insert in the correct slot (if there are already items) local leftover = stack for _, visual in pairs(drawer_visuals) do - leftover = visual:try_insert_stack(leftover, true) + if visual.itemName == stack:get_name() then + leftover = visual:try_insert_stack(leftover, true) + end + end + + -- if there's still something left, also use other slots + if leftover:get_count() > 0 then + for _, visual in pairs(drawer_visuals) do + leftover = visual:try_insert_stack(leftover, true) + end end return leftover end