summaryrefslogtreecommitdiff
path: root/compat.lua
diff options
context:
space:
mode:
authorVanessa Ezekowitz <vanessaezekowitz@gmail.com>2013-06-23 21:36:13 -0400
committerVanessa Ezekowitz <vanessaezekowitz@gmail.com>2013-06-23 21:36:13 -0400
commit3a0fd39bf670a9210c962381455bb42cd3893fc0 (patch)
tree22094c4990441be31c887c8e31f8ed15b8460106 /compat.lua
parent5537257185bd510828295b0c9d7da0e542e801ff (diff)
downloadpipeworks-3a0fd39bf670a9210c962381455bb42cd3893fc0.tar
pipeworks-3a0fd39bf670a9210c962381455bb42cd3893fc0.tar.gz
pipeworks-3a0fd39bf670a9210c962381455bb42cd3893fc0.tar.bz2
pipeworks-3a0fd39bf670a9210c962381455bb42cd3893fc0.tar.xz
pipeworks-3a0fd39bf670a9210c962381455bb42cd3893fc0.zip
rewrote autoplacement code to make it more aware of filters,
autocrafter, nodebreaker, deployer, and made sure each item will only initiate a connection to those sides which can accept such. Fixed various autorouting bugs as I ran across them. Autorouting for various devices is now: filters: left and right sides only nodebreaker, deployer: back only autocrafter: all six sides chests: top, bottom, left, right, back (not front) furnace: bottom, left, right, back (not the top or front)
Diffstat (limited to 'compat.lua')
-rw-r--r--compat.lua140
1 files changed, 73 insertions, 67 deletions
diff --git a/compat.lua b/compat.lua
index 6f555d0..55d207a 100644
--- a/compat.lua
+++ b/compat.lua
@@ -10,9 +10,9 @@ function clone_node(name)
end
furnace=clone_node("default:furnace")
-furnace.groups.tubedevice=1
-furnace.groups.tubedevice_receiver=1
-furnace.tube={insert_object=function(pos,node,stack,direction)
+ furnace.groups.tubedevice=1
+ furnace.groups.tubedevice_receiver=1
+ furnace.tube={insert_object = function(pos,node,stack,direction)
local meta=minetest.env:get_meta(pos)
local inv=meta:get_inventory()
if direction.y==1 then
@@ -21,73 +21,79 @@ furnace.tube={insert_object=function(pos,node,stack,direction)
return inv:add_item("src",stack)
end
end,
- can_insert=function(pos,node,stack,direction)
- local meta=minetest.env:get_meta(pos)
- local inv=meta:get_inventory()
- if direction.y==1 then
- return inv:room_for_item("fuel",stack)
- elseif direction.y==-1 then
- return inv:room_for_item("src",stack)
- else
- return 0
- end
- end,
- input_inventory="dst"}
-furnace.after_place_node= function(pos)
- tube_scanforobjects(pos)
- end
-furnace.after_dig_node = function(pos)
- tube_scanforobjects(pos)
- end
-minetest.register_node(":default:furnace",furnace)
+ can_insert=function(pos,node,stack,direction)
+ local meta=minetest.env:get_meta(pos)
+ local inv=meta:get_inventory()
+ if direction.y==1 then
+ return inv:room_for_item("fuel",stack)
+ elseif direction.y==-1 then
+ return inv:room_for_item("src",stack)
+ else
+ return 0
+ end
+ end,
+ input_inventory="dst"}
+ furnace.after_place_node= function(pos)
+ tube_scanforobjects(pos)
+ end
+ furnace.after_dig_node = function(pos)
+ tube_scanforobjects(pos)
+ end
+minetest.register_node(":default:furnace",furnace)
furnace=clone_node("default:furnace_active")
-furnace.groups.tubedevice=1
-furnace.groups.tubedevice_receiver=1
-furnace.tube={insert_object=function(pos,node,stack,direction)
- local meta=minetest.env:get_meta(pos)
- local inv=meta:get_inventory()
- if direction.y==1 then
- return inv:add_item("fuel",stack)
- else
- return inv:add_item("src",stack)
- end
- end,
- can_insert=function(pos,node,stack,direction)
- local meta=minetest.env:get_meta(pos)
- local inv=meta:get_inventory()
- if direction.y==1 then
- return inv:room_for_item("fuel",stack)
- elseif direction.y==-1 then
- return inv:room_for_item("src",stack)
- else
- return 0
- end
- end,
- input_inventory="dst"}
-furnace.after_place_node= function(pos)
- tube_scanforobjects(pos)
- end
-furnace.after_dig_node = function(pos)
- tube_scanforobjects(pos)
- end
-minetest.register_node(":default:furnace_active",furnace)
+ furnace.groups.tubedevice=1
+ furnace.groups.tubedevice_receiver=1
+ furnace.tube={insert_object=function(pos,node,stack,direction)
+ local meta=minetest.env:get_meta(pos)
+ local inv=meta:get_inventory()
+ if direction.y==1 then
+ return inv:add_item("fuel",stack)
+ else
+ return inv:add_item("src",stack)
+ end
+ end,
+ can_insert=function(pos,node,stack,direction)
+ local meta=minetest.env:get_meta(pos)
+ local inv=meta:get_inventory()
+ if direction.y==1 then
+ return inv:room_for_item("fuel",stack)
+ elseif direction.y==-1 then
+ return inv:room_for_item("src",stack)
+ else
+ return 0
+ end
+ end,
+ input_inventory="dst"}
+ furnace.after_place_node= function(pos)
+ tube_scanforobjects(pos)
+ end
+ furnace.after_dig_node = function(pos)
+ tube_scanforobjects(pos)
+ end
+ minetest.register_node(":default:furnace_active",furnace)
+
chest=clone_node("default:chest")
-chest.groups.tubedevice=1
-chest.groups.tubedevice_receiver=1
-chest.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,
- input_inventory="main"}
-chest.after_place_node = tube_scanforobjects(pos)
-chest.after_dig_node = tube_scanforobjects
+ chest.groups.tubedevice=1
+ chest.groups.tubedevice_receiver=1
+ chest.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,
+ input_inventory="main"}
+ chest.after_place_node = function(pos)
+ tube_scanforobjects(pos)
+ end
+ chest.after_dig_node = function(pos)
+ tube_scanforobjects(pos)
+ end
+
minetest.register_node(":default:chest",chest)