pos.z = pos1.z\r
while pos.z <= pos2.z do\r
local node = env:get_node(pos)\r
+ local meta1 = env:get_meta(pos):to_table()\r
local value = pos[axis]\r
pos[axis] = value + amount\r
env:add_node(pos, node)\r
+ local meta2 = env:get_meta(pos)\r
+ meta2:from_table(meta1)\r
pos[axis] = value\r
pos.z = pos.z + 1\r
end\r
pos.z = pos2.z\r
while pos.z >= pos1.z do\r
local node = minetest.env:get_node(pos)\r
+ local meta1 = env:get_meta(pos):to_table()\r
local value = pos[axis]\r
pos[axis] = value + amount\r
minetest.env:add_node(pos, node)\r
+ local meta2 = env:get_meta(pos)\r
+ meta2:from_table(meta1)\r
pos[axis] = value\r
pos.z = pos.z - 1\r
end\r
pos.z = pos1.z\r
while pos.z <= pos2.z do\r
local node = env:get_node(pos)\r
+ local meta1 = env:get_meta(pos):to_table()\r
env:remove_node(pos)\r
local value = pos[axis]\r
pos[axis] = value + amount\r
env:add_node(pos, node)\r
+ local meta2 = env:get_meta(pos)\r
+ meta2:from_table(meta1)\r
pos[axis] = value\r
pos.z = pos.z + 1\r
end\r
while pos.y >= pos1.y do\r
pos.z = pos2.z\r
while pos.z >= pos1.z do\r
- local node = minetest.env:get_node(pos)\r
+ local node = env:get_node(pos)\r
+ local meta1 = env:get_meta(pos):to_table()\r
env:remove_node(pos)\r
local value = pos[axis]\r
pos[axis] = value + amount\r
- minetest.env:add_node(pos, node)\r
+ env:add_node(pos, node)\r
+ local meta2 = env:get_meta(pos)\r
+ meta2:from_table(meta1)\r
pos[axis] = value\r
pos.z = pos.z - 1\r
end\r
local extent1, extent2 = pos[axis1] - pos1[axis1], pos[axis2] - pos1[axis2]\r
if extent1 < extent2 then\r
local node1 = env:get_node(pos)\r
+ local meta1a = env:get_meta(pos):to_table()\r
local value1, value2 = pos[axis1], pos[axis2]\r
pos[axis1], pos[axis2] = pos1[axis1] + extent1, pos1[axis2] + extent2\r
local node2 = env:get_node(pos)\r
+ local meta2a = env:get_meta(pos):to_table()\r
env:add_node(pos, node1)\r
+ local meta1b = env:get_meta(pos)\r
+ meta1b:from_table(meta1a)\r
pos[axis1], pos[axis2] = value1, value2\r
env:add_node(pos, node2)\r
+ local meta2b = env:get_meta(pos)\r
+ meta2b:from_table(meta2a)\r
end\r
pos.z = pos.z + 1\r
end\r
pos.z = pos1.z\r
while pos.z <= pos2.z do\r
local node1 = env:get_node(pos)\r
+ local meta1a = env:get_meta(pos):to_table()\r
local value = pos[axis]\r
pos[axis] = start - value\r
local node2 = env:get_node(pos)\r
+ local meta2a = env:get_meta(pos):to_table()\r
env:add_node(pos, node1)\r
+ local meta1b = env:get_meta(pos)\r
+ meta1b:from_table(meta1a)\r
pos[axis] = value\r
env:add_node(pos, node2)\r
+ local meta2b = env:get_meta(pos)\r
+ meta2b:from_table(meta2a)\r
pos.z = pos.z + 1\r
end\r
pos.y = pos.y + 1\r