cc-automation/item.lua
2025-05-15 17:14:39 +02:00

41 lines
932 B
Lua

local util = require("util")
local item = {}
local metatable = {
__eq = util.deepEqual,
__tostring = function(ser)
return textutils.serialise(ser, { compact = true })
end
}
function item.fromDetail(detail)
local detailItem = {
name = detail.name,
displayName = detail.displayName,
tags = detail.tags,
itemGroups = detail.itemGroups,
maxCount = detail.maxCount
}
setmetatable(detailItem, metatable)
return detailItem
end
function item.fromString(str)
local strItem = textutils.unserialize(str)
if type(strItem.name) ~= "string" or
type(strItem.displayName) ~= "string" or
type(strItem.tags) ~= "table" or
type(strItem.itemGroups) ~= "table" or
type(strItem.maxCount) ~= "number" then
error("Could not parse item: "..str)
end
setmetatable(strItem, metatable)
return strItem
end
return item