Handle both pipeworks APIs

The new API function is now renamed to pipeworks.tube_inject_item(),
so use it under that name.  If it is not available, synthesise the new
API in terms of the old one.
This commit is contained in:
Zefram 2014-08-14 22:12:53 +01:00 committed by Novatux
parent 772c21cb04
commit 049129d9b8
4 changed files with 11 additions and 4 deletions

View File

@ -4,6 +4,13 @@
technic = technic or {}
technic.tube_inject_item = pipeworks.tube_inject_item or function (pos, start_pos, velocity, item)
local tubed = pipeworks.tube_item(vector.new(pos), item)
tubed:get_luaentity().start_pos = vector.new(start_pos)
tubed:setvelocity(velocity)
tubed:setacceleration(vector.new(0, 0, 0))
end
local load_start = os.clock()
local modpath = minetest.get_modpath("technic")
technic.modpath = modpath

View File

@ -119,7 +119,7 @@ end
local function send_items(items, pos, node)
for _, item in pairs(items) do
pipeworks.tube_item(pos, pos, vector.new(0, 1, 0), item)
technic.tube_inject_item(pos, pos, vector.new(0, 1, 0), item)
end
end

View File

@ -13,7 +13,7 @@ local function inject_items (pos)
local item0=stack:to_table()
if item0 then
item0["count"] = "1"
pipeworks.tube_item(pos, pos, vector.new(0, -1, 0), item0)
technic.tube_inject_item(pos, pos, vector.new(0, -1, 0), item0)
stack:take_item(1)
inv:set_stack("main", i, stack)
return
@ -28,7 +28,7 @@ local function inject_items (pos)
if stack then
local item0=stack:to_table()
if item0 then
pipeworks.tube_item(pos, pos, vector.new(0, -1, 0), item0)
technic.tube_inject_item(pos, pos, vector.new(0, -1, 0), item0)
stack:clear()
inv:set_stack("main", i, stack)
return

View File

@ -52,7 +52,7 @@ function technic.send_items(pos, x_velocity, z_velocity, output_name)
local item0 = stack:to_table()
if item0 then
item0["count"] = "1"
pipeworks.tube_item(pos, pos, vector.new(x_velocity, 0, z_velocity), item0)
technic.tube_inject_item(pos, pos, vector.new(x_velocity, 0, z_velocity), item0)
stack:take_item(1)
inv:set_stack(output_name, i, stack)
return