The Alchemist Code Wiki

READ MORE

The Alchemist Code Wiki
(wrapper (by SublimeText.Mediawiker))
m (I cannot spell.)
Line 6: Line 6:
 
function p.icon(frame)
 
function p.icon(frame)
 
if frame.getParent and frame:getParent() and frame:getParent():getTitle() == 'Template:Item/Icon' then frame = frame:getParent() end
 
if frame.getParent and frame:getParent() and frame:getParent():getTitle() == 'Template:Item/Icon' then frame = frame:getParent() end
local args = framge.args
+
local args = frame.args
 
return p._icon(args)
 
return p._icon(args)
 
end
 
end

Revision as of 22:52, 16 December 2019

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

local render_icon = require('Module:Render').icon
local model  = require('Module:Data').model

local p = {}

function p.icon(frame)
  if frame.getParent and frame:getParent() and frame:getParent():getTitle() == 'Template:Item/Icon' then frame = frame:getParent() end
  local args = frame.args
  return p._icon(args)
end

function p._icon(args)
  local iname = args[1]
  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 (mw.ext.cargo.query('Pages','_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 ('[['..renderArgs[3]..'|'..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 '<span>'..name..'</span>'
    renderArgs[10] = true
  elseif args['size'] == 'compact' then
    renderArgs[9] = name and '<div class="item-count" style="font-size: 0.7em;overflow: hidden;right: 0">'..renderArgs[2]..'</div>'
  else
    renderArgs[9] = name and '<div style="width: '..renderArgs[6]..'px">'..name..'</div>'
  end
  
  return render_icon(unpack(renderArgs))
end

return p