From ad3bbe8664199c1b27eaece422f23784512e5d05 Mon Sep 17 00:00:00 2001 From: LNJ Date: Wed, 5 Apr 2017 13:17:08 +0200 Subject: [PATCH] Adjust pipeworks support (on insert object) for 2x2 drawers --- lua/api.lua | 9 ++++++--- lua/visual.lua | 12 ++++++++++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/lua/api.lua b/lua/api.lua index 414245e..af91e0f 100755 --- a/lua/api.lua +++ b/lua/api.lua @@ -109,10 +109,13 @@ function drawers.drawer_on_dig(pos, node, player) end function drawers.drawer_insert_object(pos, node, stack, direction) - local drawer_visual = drawers.drawer_visuals[core.serialize(pos)] - if not drawer_visual then return stack end + local drawer_visuals = drawers.drawer_visuals[core.serialize(pos)] + if not drawer_visuals then return stack end - local leftover = drawer_visual.try_insert_stack(drawer_visual, stack, true) + local leftover = stack + for _, visual in pairs(drawer_visuals) do + leftover = visual.try_insert_stack(visual, leftover, true) + end return leftover end diff --git a/lua/visual.lua b/lua/visual.lua index f0d3cc6..e85bd53 100755 --- a/lua/visual.lua +++ b/lua/visual.lua @@ -70,9 +70,17 @@ core.register_entity("drawers:visual", { -- add self to public drawer visuals -- this is needed because there is no other way to get this class - -- only the underlying ObjectRef + -- only the underlying LuaEntitySAO -- PLEASE contact me, if this is wrong - drawers.drawer_visuals[core.serialize(self.drawer_pos)] = self + local vId = self.visualId + if vId == "" then vId = 1 end + local posstr = core.serialize(self.drawer_pos) + if not drawers.drawer_visuals[posstr] then + drawers.drawer_visuals[posstr] = {[vId] = self} + else + drawers.drawer_visuals[posstr][vId] = self + end + local node = core.get_node(self.drawer_pos)