item_transport.lua: update return statements in go_next() to include multimode parameter

This commit is contained in:
thetaepsilon-gamedev 2017-12-19 18:38:02 +00:00
parent 755dd26208
commit 97522b6a24

@ -70,6 +70,15 @@ end
-- function called by the on_step callback of the pipeworks tube luaentity.
-- the routine is passed the current node position, velocity, itemstack,
-- and owner name.
-- returns three values:
-- * a boolean "found destination" status;
-- * a new velocity vector that the tubed item should use, or nil if not found;
-- * a "multi-mode" data table (or nil if N/A) where a stack was split apart.
-- if this is not nil, the luaentity spawns new tubed items for each new fragment stack,
-- then deletes itself (i.e. the original item stack).
local function go_next(pos, velocity, stack, owner) local function go_next(pos, velocity, stack, owner)
local next_positions = {} local next_positions = {}
local max_priority = 0 local max_priority = 0
@ -120,7 +129,7 @@ local function go_next(pos, velocity, stack, owner)
end end
if not next_positions[1] then if not next_positions[1] then
return false, nil return false, nil, nil
end end
local n = (cmeta:get_int("tubedir") % (#next_positions)) + 1 local n = (cmeta:get_int("tubedir") % (#next_positions)) + 1
@ -128,9 +137,11 @@ local function go_next(pos, velocity, stack, owner)
cmeta:set_int("tubedir", n) cmeta:set_int("tubedir", n)
end end
local new_velocity = vector.multiply(next_positions[n].vect, vel.speed) local new_velocity = vector.multiply(next_positions[n].vect, vel.speed)
return true, new_velocity return true, new_velocity, nil
end end
minetest.register_entity("pipeworks:tubed_item", { minetest.register_entity("pipeworks:tubed_item", {
initial_properties = { initial_properties = {
hp_max = 1, hp_max = 1,