diff options
Diffstat (limited to 'lua')
| -rwxr-xr-x | lua/api.lua | 9 | ||||
| -rwxr-xr-x | 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) | 
