模块:NavLevel

来自滚动的天空Wiki
跳到导航 跳到搜索

本模块用于{{关卡导航}}模板,会根据模块:Data/Level返回的数据来生成一个导航框。


return {
main=function(frame)
local d=mw.loadData"模块:Data/Level"
local args={ --传入模板的参数
	title='[[关卡]]',
	name='关卡导航',
	listclass='hlist',
}
local list={} --其键为关卡星数(数字)或问号(字符串),其至为包含关卡名称链接的表
for k,v in pairs(d) do
	local m=v.star
	if m==nil then m='?' end --如果不知道这个关卡是几星
	if list[m]==nil then list[m]={} end
	table.insert(list[m],"<li>[["..v.name.."]]"..(v.coming and "(即将到来)" or "").."</li>")
end
for k,v in ipairs(list) do --其中k为星数,只能是数字,不能是字符串'?'
	args['group'..k]=tostring(k)..'星'
	args['list'..k]='<ul>'..table.concat(list[k])..'</ul>'
end

if list['?'] and #list['?']>0 then --如果存在未知星数的关卡
	--“未知星数”关卡列表
	local k=#list+1
	args['group'..k]='未知星数'
	args['list'..k]='<ul>'..table.concat(list['?'])..'</ul>'
end

return require'模块:Navbox'._navbox(args) end
}