|
|
| Line 1: |
Line 1: |
|
| |
|
| 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
| |