Módulo:LocLine

De RuneScape Wiki
Ir para: navegação, pesquisa
Documentação do módulo
Esta documentação é transcluída de Módulo:LocLine/doc. [editar] [atualizar]
Módulo:LocLine's a função main é invocada por Predefinição:LocalLinha.
Módulo:LocLine requer Módulo:Edit button.
Módulo:LocLine requer Módulo:Paramtest.
Módulo:LocLine requer Módulo:Yesno.

Este módulo garante funcionalidade para a tabela de localização de monstros. Veja {{LocalLinha}} para usos.


local p = {}

local editBtn = '<small>' .. require('Módulo:Edit button')() .. '</small>'
local yesno = require('Módulo:Yesno')
local isEmpty = require('Módulo:Paramtest').is_empty

function p.main(frame)
	local membscol = {
		[true] = '[[Arquivo:P2P ícone.png|30px|link=Membros]]',
		[false] = '[[Arquivo:F2P ícone.png|30px|link=Jogadores gratuitos]]',
	}
	local args = frame:getParent().args
	local loc = args['local'] or '? ' .. editBtn
	local levels = args['níveis'] or '? ' .. editBtn
	local membs = membscol[yesno(args.membros ~= nil and args.membros or "não")]
	local mapID = args.mapID
	local plane = args.plano
	local name = args.nome or mw.title.getCurrentTitle().text
	local spawns
	local map
	local ret = mw.html.create('tr')
	
	if(isEmpty(loc)) then loc = '? ' .. editBtn end
	if(isEmpty(levels)) then levels = '? ' .. editBtn end
	
	-- build up {{Maplink}} string to be preprocess()'d
	map = '{{Maplink|mtype=pin|icon=redPin|desc=' .. name
	if mapID then
		map = map .. '|mapID=' .. mapID
	end
	if plane then
		map = map .. '|plane=' .. plane
	end
	
	local i = 1
	while args[i] do
		map = map .. '|' .. args[i]
		
		-- add "NPC ID: ####" pin descriptions only if description not already provided
		if not string.find(args[i], 'desc:') then
			local desc = ''
			local npcid = string.match(args[i], 'npcid:(%d+)')
			if npcid then
				desc = 'NPC ID&#58; ' .. npcid
			end
			
			map = map .. ',desc:' .. desc
		end
		
		i = i + 1
	end
	spawns = i - 1
	map = map .. '}}'
	
	-- build table row to return
	-- column order (from {{LocTableHead}}): Location, Levels, Members, Spawns, Map
	ret
		:tag('td'):wikitext(loc):done()
		:tag('td'):wikitext(levels):done()
		:tag('td'):wikitext(membs):done()
		:tag('td'):wikitext(tostring(spawns)):done()
		:tag('td'):wikitext(frame:preprocess(map)):done()
	
	return ret
end

return p