Module:Room features: Difference between revisions

Jump to navigation Jump to search
Content added Content deleted
No edit summary
No edit summary
Line 6: Line 6:
end
end


local categories = {
local infobox_cat_map = {
['Monster'] = 'Monsters',
'Non-player characters',
['NPC'] = 'Non-player characters',
'Monsters',
['Scenery'] = 'Scenery',
'Skill nodes',
['Skill_node'] = 'Skill nodes'
'Scenery'
}
}


function base_query(location)
function base_query(location)
local ret = {
local ret = {
'[[Has subobject::<q>[[Located in::' .. location .. ']]</q>]]',
'[[Located in::' .. location .. ']]',
'?#-',
'?Location object#-',
'?Name',
'?Location object.Name',
'?Image#-'
'?Location object.Image#-',
'?Location object.Infobox',
'?Location quantity'
}
}
for _,cat in ipairs(categories) do
table.insert(ret, string.format('?Category:%s=%s', cat, cat))
end
return ret
return ret
end
end
Line 34: Line 33:
if query ~= nil then
if query ~= nil then
local results_by_type = {}
local results_by_type = {}
for i,v in pairs(infobox_cat_map) do
results_by_type[v] = {}
end
for i,v in ipairs(query) do
for i,v in ipairs(query) do
local key = infobox_cat_map[v.Infobox]
for _,cat in ipairs(categories) do
table.insert(results_by_type[key], v)
if i == 1 then
results_by_type[cat] = {}
end
if v[cat] == true then
table.insert(results_by_type[cat], v)
end
end
end
end
for cat,results in pairs(results_by_type) do
for cat,results in pairs(results_by_type) do
Line 50: Line 46:
local gallery = '<gallery>\n'
local gallery = '<gallery>\n'
for i,v in ipairs(results) do
for i,v in ipairs(results) do
gallery = gallery .. (v.Image or 'File:Section anchor light.svg') .. '|' .. '[[' .. v[1] .. '|' .. v.Name .. ']]\n'
local image = v.Image or 'File:Section anchor light.svg'
local quantity = ''
if v['Location quantity'] ~= 'Unknown' then
quantity = string.format('%s × ', v['Location quantity'])
end
gallery = gallery .. string.format('%s|%s[[%s|%s]]\n', image, quantity, v['Location object'], v.Name)
end
end
gallery = gallery .. '</gallery>\n\n'
gallery = gallery .. '</gallery>\n\n'
mw.log(gallery)
ret = ret .. gallery
ret = ret .. gallery