move inject_items to top of file (so that it's above the abm that calls it)

This commit is contained in:
Vanessa Ezekowitz 2013-12-18 20:41:08 -05:00
parent 92db8e1f76
commit f3bba0aaac
1 changed files with 44 additions and 43 deletions

View File

@ -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