Jump to content

Module:ItemSprite

From Apogea Wiki

Documentation for this module may be created at Module:ItemSprite/doc

local p = {}

function p.render(frame)
    local args = frame:getParent().args
    local itemName = args[1] or args.item or ""
    local size = args[2] or args.size or ""
    
    if itemName == "" then
        return ""
    end
    
    -- Query Cargo for the sprite
    local result = mw.ext.cargo.query('Items', 'sprite', {
        where = 'name="' .. itemName .. '"',
        limit = 1
    })
    
    local spriteName = itemName  -- fallback to item name
    if result and result[1] and result[1].sprite and result[1].sprite ~= "" then
        spriteName = result[1].sprite
    end
    
    -- Build the sprite call
    local spriteCall = '{{Sprite|' .. spriteName
    if size and size ~= "" then
        spriteCall = spriteCall .. '|' .. size
    end
    spriteCall = spriteCall .. '|link=' .. itemName .. '}}'
    
    return frame:preprocess(spriteCall)
end

return p