diff options
| author | Vanessa Ezekowitz <vanessaezekowitz@gmail.com> | 2013-12-18 20:41:08 -0500 | 
|---|---|---|
| committer | Vanessa Ezekowitz <vanessaezekowitz@gmail.com> | 2013-12-18 20:41:08 -0500 | 
| commit | f3bba0aaacd3fe1791405b27f6a93deb630178f7 (patch) | |
| tree | 3604aee4ec153a915f7655517b1340509f53dfec | |
| parent | 92db8e1f76dd481262884dd39426a9fbce3eb579 (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.lua | 87 | 
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  | 
