From 47597910344754199f1400d57262ebaf1e705411 Mon Sep 17 00:00:00 2001 From: Novatux Date: Sun, 20 Jan 2013 07:57:58 +0100 Subject: [PATCH] Added chests and furnaces autoconnect to tubes. Fixed a bug where autocrafter could bbe used to clone items. Removed test code. --- autocrafter.lua | 7 ++++++- autoplace.lua | 2 +- compat.lua | 18 ++++++++++++++++++ item_transport.lua | 2 -- 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/autocrafter.lua b/autocrafter.lua index 71aeccf..9469b7d 100644 --- a/autocrafter.lua +++ b/autocrafter.lua @@ -4,6 +4,9 @@ function autocraft(inventory) local recipe=inventory:get_list("recipe") local result 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}) local input=inventory:get_list("input") if result.item:is_empty() then return end @@ -28,7 +31,9 @@ function autocraft(inventory) inventory:remove_item("src",stack) end inventory:add_item("dst",result) - print(dump(new)) + for i=1,9 do + inventory:add_item("dst",new.items[i]) + end end minetest.register_node("pipeworks:autocrafter",{ diff --git a/autoplace.lua b/autoplace.lua index 84c6fde..dbcc423 100644 --- a/autoplace.lua +++ b/autoplace.lua @@ -54,7 +54,7 @@ end function tube_autoroute(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) and minetest.get_item_group(nctr.name, "tubedevice") ~= 1 then return end diff --git a/compat.lua b/compat.lua index 40ed4a1..04dcadd 100644 --- a/compat.lua +++ b/compat.lua @@ -57,6 +57,12 @@ minetest.register_node(":default:furnace", { end return true 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", { @@ -111,6 +117,12 @@ minetest.register_node(":default:furnace_active", { end return true end, + after_place_node = function(pos) + tube_scanforobjects(pos) + end, + after_dig_node = function(pos) + tube_scanforobjects(pos) + end }) minetest.register_node(":default:chest", { @@ -159,4 +171,10 @@ minetest.register_node(":default:chest", { minetest.log("action", player:get_player_name().. " takes stuff from chest at "..minetest.pos_to_string(pos)) end, + after_place_node = function(pos) + tube_scanforobjects(pos) + end, + after_dig_node = function(pos) + tube_scanforobjects(pos) + end }) diff --git a/item_transport.lua b/item_transport.lua index 7cc2853..c1d7315 100644 --- a/item_transport.lua +++ b/item_transport.lua @@ -282,7 +282,6 @@ function notvel(tbl,vel) end function go_next(pos,velocity,stack) - --print(dump(pos)) local chests={} local tubes={} local cnode=minetest.env:get_node(pos) @@ -313,7 +312,6 @@ function go_next(pos,velocity,stack) npos=addVect(pos,vect) node=minetest.env:get_node(npos) tube_receiver=minetest.get_item_group(node.name,"tubedevice_receiver") - --tubelike=minetest.get_item_group(node.name,"tubelike") meta=minetest.env:get_meta(npos) tubelike=meta:get_int("tubelike") if tube_receiver==1 then