跳转到内容

模組:Class

被永久保护的模块
维基百科,自由的百科全书

这是本页的一个历史版本,由風中的刀劍留言 | 贡献2015年8月28日 (五) 08:05编辑。这可能和当前版本存在着巨大的差异。

local getArgs = require('Module:Arguments').getArgs

local class = mw.loadData('Module:Class/data')

local function getIdx(cont)
	if cont == nil then
		return 1
	end
	
	cont = string.lower(cont)
	
	for i, v in ipairs(class) do
		
		if cont == v.code then
			return i
		end
		
		if cont == v.name then
			return i
		end
		
		if cont == v.name2 then
			return i
		end
		
		for _, w in ipairs(v.alias) do
			if cont == w then
				return i
			end
		end
	end
	
	return 1
end

local function makeInvokeFunc(funcName)
	return function (frame)
		local args = getArgs(frame)
		return p[funcName](args)
	end
end

p = {}

p.colour = makeInvokeFunc('_colour')

function p._colour(args)
	local idx = getIdx(args[1])
	
	return mw.text.nowiki(class[idx].color)
end

p.icon = makeInvokeFunc('_icon')

function p._icon(args)
	local idx = getIdx(args[1])
	local ret = ''
		
	if class[idx].icon then
		ret = string.format('[[File:%s|%s|16px]]', class[idx].icon, class[idx].name)
	end
	
	return ret
end

return p