summaryrefslogtreecommitdiff
path: root/autoplace_tubes.lua
diff options
context:
space:
mode:
Diffstat (limited to 'autoplace_tubes.lua')
-rw-r--r--autoplace_tubes.lua17
1 files changed, 9 insertions, 8 deletions
diff --git a/autoplace_tubes.lua b/autoplace_tubes.lua
index 40a041f..51ee383 100644
--- a/autoplace_tubes.lua
+++ b/autoplace_tubes.lua
@@ -53,27 +53,28 @@ local function tube_autoroute(pos)
}
-- xm = 1, xp = 2, ym = 3, yp = 4, zm = 5, zp = 6
- local positions = {}
- local nodes = {}
+ local adjlist = {} -- this will be used in item_transport
+
for i, adj in ipairs(adjustments) do
- positions[i] = vector.add(pos, adj)
- nodes[i] = minetest.get_node(positions[i])
- end
+ local position = vector.add(pos, adj)
+ local node = minetest.get_node(position)
- for i, node in ipairs(nodes) do
local idef = minetest.registered_nodes[node.name]
-- handle the tubes themselves
if is_tube(node.name) then
active[i] = 1
+ table.insert(adjlist, adj)
-- handle new style connectors
elseif idef and idef.tube and idef.tube.connect_sides then
- local dir = adjustments[i]
- if idef.tube.connect_sides[nodeside(node, vector.multiply(dir, -1))] then
+ if idef.tube.connect_sides[nodeside(node, vector.multiply(adj, -1))] then
active[i] = 1
+ table.insert(adjlist, adj)
end
end
end
+ minetest.get_meta(pos):set_string("adjlist", minetest.serialize(adjlist))
+
-- all sides checked, now figure which tube to use.
local nodedef = minetest.registered_nodes[nctr.name]