mirror of
https://github.com/HybridDog/vector_extras.git
synced 2024-11-26 17:33:50 +01:00
89 lines
2.1 KiB
Lua
89 lines
2.1 KiB
Lua
local funcs = vector_extras_functions
|
|
|
|
function funcs.get_data_from_pos(tab, z,y,x)
|
|
minetest.log("deprecated", "[vector_extras] get_data_from_pos is " ..
|
|
"deprecated, use the minetest pos hash function instead.")
|
|
local data = tab[z]
|
|
if data then
|
|
data = data[y]
|
|
if data then
|
|
return data[x]
|
|
end
|
|
end
|
|
end
|
|
|
|
function funcs.set_data_to_pos(tab, z,y,x, data)
|
|
minetest.log("deprecated", "[vector_extras] set_data_to_pos is " ..
|
|
"deprecated, use the minetest pos hash function instead.")
|
|
if tab[z] then
|
|
if tab[z][y] then
|
|
tab[z][y][x] = data
|
|
return
|
|
end
|
|
tab[z][y] = {[x] = data}
|
|
return
|
|
end
|
|
tab[z] = {[y] = {[x] = data}}
|
|
end
|
|
|
|
function funcs.set_data_to_pos_optional(tab, z,y,x, data)
|
|
minetest.log("deprecated", "[vector_extras] set_data_to_pos_optional is " ..
|
|
"deprecated, use the minetest pos hash function instead.")
|
|
if vector.get_data_from_pos(tab, z,y,x) ~= nil then
|
|
return
|
|
end
|
|
funcs.set_data_to_pos(tab, z,y,x, data)
|
|
end
|
|
|
|
function funcs.remove_data_from_pos(tab, z,y,x)
|
|
minetest.log("deprecated", "[vector_extras] remove_data_from_pos is " ..
|
|
"deprecated, use the minetest pos hash function instead.")
|
|
if vector.get_data_from_pos(tab, z,y,x) == nil then
|
|
return
|
|
end
|
|
tab[z][y][x] = nil
|
|
if not next(tab[z][y]) then
|
|
tab[z][y] = nil
|
|
end
|
|
if not next(tab[z]) then
|
|
tab[z] = nil
|
|
end
|
|
end
|
|
|
|
function funcs.get_data_pos_table(tab)
|
|
minetest.log("deprecated", "[vector_extras] get_data_pos_table likely " ..
|
|
"is deprecated, use the minetest pos hash function instead.")
|
|
local t,n = {},1
|
|
local minz, miny, minx, maxz, maxy, maxx
|
|
for z,yxs in pairs(tab) do
|
|
if not minz then
|
|
minz = z
|
|
maxz = z
|
|
else
|
|
minz = math.min(minz, z)
|
|
maxz = math.max(maxz, z)
|
|
end
|
|
for y,xs in pairs(yxs) do
|
|
if not miny then
|
|
miny = y
|
|
maxy = y
|
|
else
|
|
miny = math.min(miny, y)
|
|
maxy = math.max(maxy, y)
|
|
end
|
|
for x,v in pairs(xs) do
|
|
if not minx then
|
|
minx = x
|
|
maxx = x
|
|
else
|
|
minx = math.min(minx, x)
|
|
maxx = math.max(maxx, x)
|
|
end
|
|
t[n] = {z,y,x, v}
|
|
n = n+1
|
|
end
|
|
end
|
|
end
|
|
return t, {x=minx, y=miny, z=minz}, {x=maxx, y=maxy, z=maxz}, n-1
|
|
end
|