Modul:Item/Type
Die Dokumentation für dieses Modul kann unter Modul:Item/Type/Doku erstellt werden
-- Modul:Item/Type
-- Liefert den Typ eines Items anhand der Gruppen in [[Modul:Item/Types]].
-- Beispiel:
-- {{#invoke:Item/Type|typename|gold}} --> currencies
-- {{#invoke:Item/Type|typename|firestones}} --> currencies
local p = {}
local TYPES = mw.loadData('Modul:Item/Types')
local ustr = mw.ustring
local function normalize(name)
if not name then
return nil
end
local s = ustr.lower(tostring(name))
s = s:gsub('%s+', '')
return s
end
function p.typenameForKey(name)
local key = normalize(name)
if not key or key == '' then
return 'unknown'
end
for group, list in pairs(TYPES) do
for _, v in ipairs(list) do
if normalize(v) == key then
return group
end
end
end
return 'unknown'
end
-- #invoke-Schnittstelle:
-- {{#invoke:Item/Type|typename|gold}}
function p.typename(frame)
local key
if frame and frame.args then
key = frame.args[1] or frame.args.name or frame.args.key or frame.args.id
end
if (not key or key == '') and frame and frame.getParent then
local parent = frame:getParent()
if parent and parent.args then
key = parent.args[1] or parent.args.name or parent.args.key or parent.args.id
end
end
return p.typenameForKey(key)
end
return p