Added chests and furnaces autoconnect to tubes.
authorNovatux <nathanael.courant@laposte.net>
Sun, 20 Jan 2013 06:57:58 +0000 (07:57 +0100)
committerNovatux <nathanael.courant@laposte.net>
Sun, 20 Jan 2013 06:57:58 +0000 (07:57 +0100)
Fixed a bug where autocrafter could bbe used to clone items.
Removed test code.

autocrafter.lua
autoplace.lua
compat.lua
item_transport.lua

index 71aeccf119c7df702afb8b04cb12dec32fcb52a1..9469b7df34a33caccf4b3380497fe3f74c5019f0 100644 (file)
@@ -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",{
index 84c6fde3d60901f51f9453a0705201641594b952..dbcc423a45f31a5bc854effd3e8db7f93e342b43 100644 (file)
@@ -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
 
index 40ed4a1bb4f20bf6f7130d05262c7acb01e88761..04dcadd2c528f9af99ff3539f7ac9f9deb7a92eb 100644 (file)
@@ -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
 })
index 7cc2853c6c4222c5dcadd712dd2c3a7e9b91e700..c1d731594791f5a7398dc1ff41740df49164ca6e 100644 (file)
@@ -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