Modul:Item/Type: Unterschied zwischen den Versionen
Die Seite wurde neu angelegt: „-- 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:gsu…“ |
Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
-- Modul:Item/Type | -- Modul:Item/Type – liefert den Gruppentyp (z.B. "currencies") | ||
local p = {} | local p = {} | ||
| Zeile 35: | Zeile 31: | ||
end | end | ||
-- #invoke- | -- optionaler #invoke-Wrapper: | ||
-- {{#invoke:Item/Type|typename|gold}} | -- {{#invoke:Item/Type|typename|gold}} → currencies | ||
function p.typename(frame) | function p.typename(frame) | ||
local key | local key | ||
if frame and frame.args then | if frame and frame.args then | ||
key = frame.args[1] or frame.args.name or frame.args.key or frame.args.id | key = frame.args[1] or frame.args.name or frame.args.key or frame.args.id | ||
end | end | ||
if (not key or key == '') and frame and frame.getParent then | if (not key or key == '') and frame and frame.getParent then | ||
local parent = frame:getParent() | local parent = frame:getParent() | ||
| Zeile 50: | Zeile 44: | ||
end | end | ||
end | end | ||
return p.typenameForKey(key) | return p.typenameForKey(key) | ||
end | end | ||
return p | return p | ||
Aktuelle Version vom 29. November 2025, 11:37 Uhr
Die Dokumentation für dieses Modul kann unter Modul:Item/Type/Doku erstellt werden
-- Modul:Item/Type – liefert den Gruppentyp (z.B. "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
-- optionaler #invoke-Wrapper:
-- {{#invoke:Item/Type|typename|gold}} → currencies
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