Documentation

Designed to be part of a template like so:

{{#invoke:Item|main|{{{1}}}|{{{2}}}}}

Parameter 1 is the game abbreviation and parameter 2 is the item name. This module will output the item icon and name together. If parameter 2 is an emdash, it outputs an emdash.

See also: Template:Item/Documentation


local getArgs = require('Module:Arguments').getArgs
local p = {}

function p.main(frame)
	local args = getArgs(frame)
	local game = args[1]:lower()
	local item = args[2]:lower()
	if item == "—" then
		return item
	end
	local itemData = require('Module:Data/Item/' .. game).item
	local iconPage = mw.title.makeTitle('Module', 'Data/Icon/' .. game)
	if not itemData[item] then
		error("Item ".. item.. "not defined for "..game)
	end
	local iconData = {}
	if iconPage.exists then
		iconData = require('Module:Data/Icon/' .. game)["icon"]
	end
	local link = ""
	local itemIcon = ""
	local gap = " "
	if game == "desum" then
		gap = "<small> </small>"
	end
	if itemData[item]["icon"] then
		itemIcon = itemData[item]["icon"]
	end
	if iconData[itemIcon] then
		link = iconData[itemIcon] .. gap
	end
	if itemData[item]["link"] then
		link = link .. "[[" .. itemData[item]["link"] .. "|" .. itemData[item]["name"] .. "]]"
	else
		link = link .. "[[" .. itemData[item]["name"] .. "]]"
	end
	return link
end

return p