Zum Inhalt springen

Modul:Item/Type

Aus Firestone Idle Rpg Wiki
Version vom 24. November 2025, 09:45 Uhr von Webmaster (Diskussion | Beiträge) (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…“)
(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 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