Jump to content

Template:Multiblock Slot

From Horizon's End Wiki
Revision as of 04:26, 1 November 2026 by SherbetS (talk | contribs) (chatgpt simplified version of inventory slot)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

local p = {}

local aliases = mw.loadData(

   "Module:Inventory slot/Aliases"

)

local function resolveAlias(material)

   local alias = aliases[material]
   if type(alias) == "string" then
       return alias
   end
   if type(alias) == "table" then
       if alias.name then
           return alias.name
       end
       if alias[1] then
           if type(alias[1]) == "string" then
               return alias[1]
           elseif alias[1].name then
               return alias[1].name
           end
       end
   end
   return material

end

function p.render(frame)

   local args = frame.args or frame:getParent().args
   local material = mw.text.trim(args[1] or "")
   local amount = mw.text.trim(args[2] or "")
   if material == "" then
       return ""
   end
   local spriteName = resolveAlias(material)
   local filename = "Invicon " .. spriteName .. ".png"
   local icon = mw.html.create("span")
       :addClass("multiblock-slot")
       :wikitext(
           "[[File:" .. filename ..
           "|32x32px|link=" .. material ..
           "|alt=" .. material .. "]]"
       )
   if tonumber(amount) and tonumber(amount) > 1 then
       icon:tag("span")
           :addClass("multiblock-slot-amount")
           :wikitext(amount)
   end
   return tostring(icon)

end

return p