Editing Module:Room features
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 11: | Line 11: | ||
['Scenery'] = 'Scenery', |
['Scenery'] = 'Scenery', |
||
['Skill_node'] = 'Skill nodes' |
['Skill_node'] = 'Skill nodes' |
||
} |
|||
local header_text_override = { |
|||
['Non-player characters'] = 'Personalities' |
|||
} |
} |
||
Line 21: | Line 17: | ||
'[[Located in::' .. location .. ']]', |
'[[Located in::' .. location .. ']]', |
||
'?Location object#-', |
'?Location object#-', |
||
'?Location object.Name |
'?Location object.Name', |
||
'?Location object.Image#- |
'?Location object.Image#-', |
||
'?Location object.Infobox |
'?Location object.Infobox', |
||
'?Location quantity' |
'?Location quantity' |
||
'?#-', |
|||
'?Name=name', |
|||
'?Image#-=image', |
|||
'?Infobox=infobox' |
|||
} |
} |
||
return ret |
return ret |
||
Line 35: | Line 27: | ||
function p._main(args) |
function p._main(args) |
||
local frame = mw.getCurrentFrame() |
local frame = mw.getCurrentFrame() |
||
local ret = |
local ret = '' |
||
local location = args[1] or mw.title.getCurrentTitle() |
local location = args[1] or mw.title.getCurrentTitle() |
||
local query = mw.smw.ask(base_query(location)) |
local query = mw.smw.ask(base_query(location)) |
||
if query ~= nil then |
if query ~= nil then |
||
Line 45: | Line 37: | ||
end |
end |
||
for i,v in ipairs(query) do |
for i,v in ipairs(query) do |
||
local key = infobox_cat_map[v. |
local key = infobox_cat_map[v.Infobox] |
||
⚫ | |||
-- Can be nil - See East Beach for example |
|||
if key ~= nil then |
|||
⚫ | |||
⚫ | |||
end |
end |
||
for cat,results in pairs(results_by_type) do |
for cat,results in pairs(results_by_type) do |
||
if #results > 0 then |
if #results > 0 then |
||
ret = ret .. '===' .. cat .. '===\n' |
|||
table.insert(ret, tostring(mw.html.create('h3'):wikitext(header_text_override[cat] or cat))) |
|||
⚫ | |||
local |
local gallery = '<gallery>\n' |
||
for i,v in ipairs(results) do |
for i,v in ipairs(results) do |
||
local image = v. |
local image = v.Image or 'File:Section anchor light.svg' |
||
local quantity = '' |
local quantity = '' |
||
if |
if v['Location quantity'] ~= 'Unknown' then |
||
quantity = string.format('%s × ', v['Location quantity']) |
quantity = string.format('%s × ', v['Location quantity']) |
||
end |
end |
||
gallery = gallery .. string.format('%s|%s[[%s|%s]]\n', image, quantity, v['Location object'], v.Name) |
|||
local version_name = '' |
|||
local version = string.match(obj_name, "[^#]+%#([^#]+)") |
|||
if version then |
|||
version_name = string.format(" <sub>''%s''</sub>", version) |
|||
⚫ | |||
local display_name = v.name_sub or v.name |
|||
table.insert(gallery_lines, string.format('%s|link=%s|%s[[%s|%s%s]]', image, obj_name, quantity, obj_name, display_name, version_name)) |
|||
end |
end |
||
gallery = gallery .. '</gallery>\n\n' |
|||
⚫ | |||
table.insert(ret, tostring(frame:extensionTag{ name = 'gallery', content = table.concat(gallery_lines, '\n'), args = {} })) |
|||
ret = ret .. gallery |
|||
end |
end |
||
end |
end |
||
end |
end |
||
return |
return frame:preprocess(ret) |
||
end |
end |
||