summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVanessa Ezekowitz <vanessaezekowitz@gmail.com>2013-12-18 20:41:08 -0500
committerVanessa Ezekowitz <vanessaezekowitz@gmail.com>2013-12-18 20:41:08 -0500
commitf3bba0aaacd3fe1791405b27f6a93deb630178f7 (patch)
tree3604aee4ec153a915f7655517b1340509f53dfec
parent92db8e1f76dd481262884dd39426a9fbce3eb579 (diff)
move inject_items to top of file (so that it's above the abm that calls it)
-rw-r--r--technic/machines/other/injector.lua87
1 files changed, 44 insertions, 43 deletions
diff --git a/technic/machines/other/injector.lua b/technic/machines/other/injector.lua
index 205b8b4..14bc984 100644
--- a/technic/machines/other/injector.lua
+++ b/technic/machines/other/injector.lua
@@ -1,6 +1,50 @@
local S = technic.getter
+local function inject_items (pos)
+ local meta=minetest.env:get_meta(pos)
+ local inv = meta:get_inventory()
+ local mode=meta:get_string("mode")
+ if mode=="single items" then
+ local i=0
+ for _,stack in ipairs(inv:get_list("main")) do
+ i=i+1
+ if stack then
+ local item0=stack:to_table()
+ if item0 then
+ item0["count"]="1"
+ local item1=pipeworks.tube_item({x=pos.x,y=pos.y,z=pos.z},item0)
+ item1:get_luaentity().start_pos = {x=pos.x,y=pos.y,z=pos.z}
+ item1:setvelocity({x=0, y=-1, z=0})
+ item1:setacceleration({x=0, y=0, z=0})
+ stack:take_item(1);
+ inv:set_stack("main", i, stack)
+ return
+ end
+ end
+ end
+ end
+ if mode=="whole stacks" then
+ local i=0
+ for _,stack in ipairs(inv:get_list("main")) do
+ i=i+1
+ if stack then
+ local item0=stack:to_table()
+ if item0 then
+ local item1=pipeworks.tube_item({x=pos.x,y=pos.y,z=pos.z},item0)
+ item1:get_luaentity().start_pos = {x=pos.x,y=pos.y,z=pos.z}
+ item1:setvelocity({x=0, y=-1, z=0})
+ item1:setacceleration({x=0, y=0, z=0})
+ stack:clear()
+ inv:set_stack("main", i, stack)
+ return
+ end
+ end
+ end
+ end
+
+end
+
minetest.register_craft({
output = 'technic:injector 1',
recipe = {
@@ -74,46 +118,3 @@ minetest.register_abm({
end,
})
-local function inject_items (pos)
- local meta=minetest.env:get_meta(pos)
- local inv = meta:get_inventory()
- local mode=meta:get_string("mode")
- if mode=="single items" then
- local i=0
- for _,stack in ipairs(inv:get_list("main")) do
- i=i+1
- if stack then
- local item0=stack:to_table()
- if item0 then
- item0["count"]="1"
- local item1=pipeworks.tube_item({x=pos.x,y=pos.y,z=pos.z},item0)
- item1:get_luaentity().start_pos = {x=pos.x,y=pos.y,z=pos.z}
- item1:setvelocity({x=0, y=-1, z=0})
- item1:setacceleration({x=0, y=0, z=0})
- stack:take_item(1);
- inv:set_stack("main", i, stack)
- return
- end
- end
- end
- end
- if mode=="whole stacks" then
- local i=0
- for _,stack in ipairs(inv:get_list("main")) do
- i=i+1
- if stack then
- local item0=stack:to_table()
- if item0 then
- local item1=pipeworks.tube_item({x=pos.x,y=pos.y,z=pos.z},item0)
- item1:get_luaentity().start_pos = {x=pos.x,y=pos.y,z=pos.z}
- item1:setvelocity({x=0, y=-1, z=0})
- item1:setacceleration({x=0, y=0, z=0})
- stack:clear()
- inv:set_stack("main", i, stack)
- return
- end
- end
- end
- end
-
-end