Zum Inhalt springen

Modul:Item/Type

Aus Firestone Idle Rpg Wiki
Version vom 29. November 2025, 11:37 Uhr von Webmaster (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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