Module:Cosmetic

-- Imports

local cargo = require('Module:Cargo') local color = require('Module:Color')._main local fileExists = require('Module:FileExists') local getArgs = require('Module:Arguments').getArgs

-- Template

local p = {}

function p.main(frame) local args = getArgs(frame, {   wrappers = {      'Template:Cosmetic'    }  }) return p._main(args) end

function p._main(args) local icon = 'File:Cosmetic icon Blank.png' local size = args.userparam or args[2] or '100px' local border_color = '#a55858' local page = args.link or args[1] local name = args.text or args[1]

local output = cargo.query('cosmetic_items', 'image, rarity', {   where='_pageName="' .. args[1] .. '"',    groupBy='_pageID'  })[1]

if output then icon = output.image border_color = color{('cos_' .. output.rarity):lower} else -- Try to manually generate the icon by name. local file_name = 'File:Cosmetic icon ' .. args[1] .. '.png' if fileExists(file_name) then icon = file_name end end

local image = string.format('%s|link=%s|%s', icon, size, page, name) local link = string.format('%s', page, name)

return mw.html.create('div') :addClass('cosmetic-label') :css('width', size) :tag('div') :css('box-shadow', '0px 0px 2px 4px ' .. border_color) :wikitext(image) :done :wikitext(link) end

-- Return

return p