56 lines
1.5 KiB
Lua
56 lines
1.5 KiB
Lua
utils = {}
|
|
|
|
function utils.Distance(x1, y1, z1, x2, y2, z2)
|
|
local dx = x2 - x1
|
|
local dy = y2 - y1
|
|
local dz = z2 - z1
|
|
return math.sqrt(dx * dx + dy * dy + dz * dz)
|
|
end
|
|
|
|
function utils.StringContains(str, find)
|
|
str = string.upper(str)
|
|
find = string.upper(find)
|
|
local i, _ = string.find(str, find)
|
|
return i
|
|
end
|
|
|
|
function utils.SerializeMetaData(data)
|
|
local node_containers = {}
|
|
for i, v in pairs(data:to_table()) do
|
|
local found_container = {}
|
|
for container, container_items in pairs(v) do
|
|
local found_inv = {}
|
|
if type(container_items) == "table" then
|
|
for slot, item in pairs(container_items) do
|
|
table.insert(found_inv, slot, item:to_string())
|
|
end
|
|
found_container[container] = found_inv
|
|
else
|
|
found_container[container] = container_items
|
|
end
|
|
end
|
|
node_containers[i] = found_container
|
|
end
|
|
return core.serialize(node_containers)
|
|
end
|
|
|
|
function utils.DeserializeMetaData(data)
|
|
local node_containers = {}
|
|
for i, v in pairs(data) do
|
|
local found_container = {}
|
|
for container, container_items in pairs(v) do
|
|
local found_inv = {}
|
|
if type(container_items) == "string" then
|
|
found_container[container] = container_items
|
|
else
|
|
for slot, item in pairs(container_items) do
|
|
found_inv[slot] = item
|
|
end
|
|
found_container[container] = found_inv
|
|
end
|
|
end
|
|
node_containers[i] = found_container
|
|
end
|
|
return node_containers
|
|
end
|
|
|