Merge pull request #11 from Novatux/master

Fixed a bug where autocrafter could be used to clone items.
This commit is contained in:
VanessaE 2013-01-19 23:14:44 -08:00
commit a2fc554700
4 changed files with 25 additions and 4 deletions

View File

@ -4,6 +4,9 @@ function autocraft(inventory)
local recipe=inventory:get_list("recipe") local recipe=inventory:get_list("recipe")
local result local result
local new local new
for i=1,9 do
recipe[i]=ItemStack({name=recipe[i]:get_name(),count=1})
end
result,new=minetest.get_craft_result({method="normal",width=3,items=recipe}) result,new=minetest.get_craft_result({method="normal",width=3,items=recipe})
local input=inventory:get_list("input") local input=inventory:get_list("input")
if result.item:is_empty() then return end if result.item:is_empty() then return end
@ -28,7 +31,9 @@ function autocraft(inventory)
inventory:remove_item("src",stack) inventory:remove_item("src",stack)
end end
inventory:add_item("dst",result) inventory:add_item("dst",result)
print(dump(new)) for i=1,9 do
inventory:add_item("dst",new.items[i])
end
end end
minetest.register_node("pipeworks:autocrafter",{ minetest.register_node("pipeworks:autocrafter",{

View File

@ -54,7 +54,7 @@ end
function tube_autoroute(pos) function tube_autoroute(pos)
nctr = minetest.env:get_node(pos) nctr = minetest.env:get_node(pos)
print ("minetest.get_item_group("..nctr.name..',"tubedevice") == '..minetest.get_item_group(nctr.name, "tubedevice")) --print ("minetest.get_item_group("..nctr.name..',"tubedevice") == '..minetest.get_item_group(nctr.name, "tubedevice"))
if (is_tube(nctr.name) == nil) if (is_tube(nctr.name) == nil)
and minetest.get_item_group(nctr.name, "tubedevice") ~= 1 then return end and minetest.get_item_group(nctr.name, "tubedevice") ~= 1 then return end

View File

@ -57,6 +57,12 @@ minetest.register_node(":default:furnace", {
end end
return true return true
end, end,
after_place_node = function(pos)
tube_scanforobjects(pos)
end,
after_dig_node = function(pos)
tube_scanforobjects(pos)
end
}) })
minetest.register_node(":default:furnace_active", { minetest.register_node(":default:furnace_active", {
@ -111,6 +117,12 @@ minetest.register_node(":default:furnace_active", {
end end
return true return true
end, end,
after_place_node = function(pos)
tube_scanforobjects(pos)
end,
after_dig_node = function(pos)
tube_scanforobjects(pos)
end
}) })
minetest.register_node(":default:chest", { minetest.register_node(":default:chest", {
@ -159,4 +171,10 @@ minetest.register_node(":default:chest", {
minetest.log("action", player:get_player_name().. minetest.log("action", player:get_player_name()..
" takes stuff from chest at "..minetest.pos_to_string(pos)) " takes stuff from chest at "..minetest.pos_to_string(pos))
end, end,
after_place_node = function(pos)
tube_scanforobjects(pos)
end,
after_dig_node = function(pos)
tube_scanforobjects(pos)
end
}) })

View File

@ -282,7 +282,6 @@ function notvel(tbl,vel)
end end
function go_next(pos,velocity,stack) function go_next(pos,velocity,stack)
--print(dump(pos))
local chests={} local chests={}
local tubes={} local tubes={}
local cnode=minetest.env:get_node(pos) local cnode=minetest.env:get_node(pos)
@ -313,7 +312,6 @@ function go_next(pos,velocity,stack)
npos=addVect(pos,vect) npos=addVect(pos,vect)
node=minetest.env:get_node(npos) node=minetest.env:get_node(npos)
tube_receiver=minetest.get_item_group(node.name,"tubedevice_receiver") tube_receiver=minetest.get_item_group(node.name,"tubedevice_receiver")
--tubelike=minetest.get_item_group(node.name,"tubelike")
meta=minetest.env:get_meta(npos) meta=minetest.env:get_meta(npos)
tubelike=meta:get_int("tubelike") tubelike=meta:get_int("tubelike")
if tube_receiver==1 then if tube_receiver==1 then