Module:Render/Item

local render_icon = require('Module:Render').icon local cargo -- lazy local model -- lazy local wikiSafeName = require('Module:LinkUtils').wikiSafeName

local p = {}

function p.icon(frame) local args = require('Module:Arguments').getArgs(frame, {   parentFirst = true,    wrappers = {      'Template:Item/Icon',    }  }) return p._icon(args) end

function p._icon(args) local iname = args[1] if iname == nil then return nil end cargo = cargo or require('Module:CargoUtil') local page = cargo.query{ tables = 'Pages', fields = 'iname', where = { 'type = "Item"', '_pageName = "'..iname..'" OR iname = "'..iname..'"', },		limit = 1, }[1]	if page then iname = page.iname end model = model or require('Module:Data').model local data = args.data or model.query('Item', '_pageName,server,rare,type,icon', {where='iname="'..iname..'"'})[1] or {rini=0} -- TODO Get the correct server local renderArgs = { (data.icon == nil or data.icon == '') and 'ItemIcon,IT_UNKNOWN' or string.sub(data.icon,1,3) == 'AF_' and ('ArtiIcon,'..data.icon) or ('ItemIcon,'..data.icon), model.getLoc(data._pageName, 'name'), data._pageName ~= nil and (args['link'] ~= 'none' and (cargo.query{tables='Pages',fields='_pageName',where='type="Item" and iname="'..iname..'"'}[1] or {_pageName = model.getLoc(data._pageName, 'name')})._pageName) or nil, data.rare, (data.type == 1 or data.type == 11) and 1 or data.type == 14 and 3 or 0, 64,		args['count'] ~= '' and args['count'] or nil, args['classes'], nil, false, }	local name = args['name'] ~= 'none' and (renderArgs[3] and renderArgs[3] ~=  and (..wikiSafeName(renderArgs[2])..'') or renderArgs[2]) or nil if args['size'] == 'large' then renderArgs[6] = 128 end if args['size'] == 'small' then renderArgs[6] = 24 renderArgs[9] = name and ' '..name..' ' renderArgs[10] = true elseif args['size'] == 'compact' then renderArgs[9] = name and ' '..renderArgs[2]..' ' elseif args['size'] == 'noname' then renderArgs[9] = nil else renderArgs[9] = name and ''..name..' ' end return render_icon(unpack(renderArgs)) end

-- Non cargo version function p._icon2(args) local data = args.data or {} local iname = data.iname if not iname then return end

-- TODO Get the correct server local renderArgs = { (data.icon or ) ==  and 'ItemIcon,IT_UNKNOWN' or string.sub(data.icon,1,3) == 'AF_' and ('ArtiIcon,'..data.icon) or ('ItemIcon,'..data.icon), data.name, args.link ~= 'none' and (data._pageName or data.name) or nil, data.rare, (data.type == 1 or data.type == 11) and 1 or data.type == 14 and 3 or 0, 64,		tonumber(args.count), args.classes, nil, false, }	local name = args.name ~= 'none' and (renderArgs[3] and renderArgs[3] ~=  and (..wikiSafeName(renderArgs[2])..'') or renderArgs[2]) or nil if args.size == 'large' then renderArgs[6] = 128 elseif args.size == 'small' then renderArgs[6] = 24 renderArgs[9] = name and ' '..name..' ' renderArgs[10] = true elseif args.size == 'compact' then renderArgs[9] = name and ' '..renderArgs[2]..' ' else renderArgs[9] = name and ''..name..' ' end return render_icon(unpack(renderArgs)) end

return p