EinsDreiDreiSieben/mods/i_have_hands/utils.lua
2025-05-18 04:02:23 +02:00

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