Zum Inhalt springen

Modul:Item/Type: Unterschied zwischen den Versionen

Aus Firestone Idle Rpg Wiki
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")
-- 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 p      = {}
Zeile 35: Zeile 31:
end
end


-- #invoke-Schnittstelle:
-- 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