1
0
mirror of https://github.com/mt-mods/pipeworks.git synced 2024-12-24 18:00:22 +01:00

Merge pull request #45 from hdastwb/lockedchest

Locked chest integration
This commit is contained in:
VanessaE 2013-07-08 20:40:13 -07:00
commit f42486f038
2 changed files with 69 additions and 1 deletions

View File

@ -218,7 +218,50 @@ function tube_autoroute(pos)
-- does not scan for the front side of the node.
--chests
--locked chests
-- check for left/right connects
if string.find(nxm.name, "default:chest_locked") ~= nil
and (nxm.param2 == 0 or nxm.param2 == 2) then
pxm=1 end
if string.find(nxp.name, "default:chest_locked") ~= nil
and (nxp.param2 == 0 or nxp.param2 == 2) then
pxp=1 end
if string.find(nzm.name, "default:chest_locked") ~= nil
and (nzm.param2 == 1 or nzm.param2 == 3) then
pzm=1 end
if string.find(nzp.name, "default:chest_locked") ~= nil
and (nzp.param2 == 1 or nzp.param2 == 3) then
pzp=1 end
-- check for backside connects
if string.find(nxm.name, "default:chest_locked") ~= nil
and nxm.param2 == 1 then
pxm = 1 end
if string.find(nxp.name, "default:chest_locked") ~= nil
and nxp.param2 == 3 then
pxp = 1 end
if string.find(nzm.name, "default:chest_locked") ~= nil
and nzm.param2 == 0 then
pzm = 1 end
if string.find(nzp.name, "default:chest_locked") ~= nil
and nzp.param2 == 2 then
pzp = 1 end
-- check for top/bottom connections
if string.find(nym.name, "default:chest_locked") ~= nil then pym = 1 end
if string.find(nyp.name, "default:chest_locked") ~= nil then pyp = 1 end
-- does not scan for the front side of the node.
--furnaces
-- check for left/right connects

View File

@ -97,3 +97,28 @@ chest=clone_node("default:chest")
end
minetest.register_node(":default:chest",chest)
chest_locked=clone_node("default:chest_locked")
chest_locked.groups.tubedevice=1
chest_locked.groups.tubedevice_receiver=1
chest_locked.tube={insert_object = function(pos,node,stack,direction)
local meta=minetest.env:get_meta(pos)
local inv=meta:get_inventory()
return inv:add_item("main",stack)
end,
can_insert=function(pos,node,stack,direction)
local meta=minetest.env:get_meta(pos)
local inv=meta:get_inventory()
return inv:room_for_item("main",stack)
end}
local old_after_place = minetest.registered_nodes["default:chest_locked"].after_place_node;
chest_locked.after_place_node = function(pos, placer)
tube_scanforobjects(pos)
old_after_place(pos, placer)
end
chest_locked.after_dig_node = function(pos)
tube_scanforobjects(pos)
end
minetest.register_node(":default:chest_locked",chest_locked)