Module:Game: Difference between revisions
From PC Gaming Shelter
No edit summary |
No edit summary |
||
| Line 121: | Line 121: | ||
subobject = 'Store links', | subobject = 'Store links', | ||
label = 'Store', | label = 'Store', | ||
order = ' | order = '7' | ||
}, | }, | ||
{ | { | ||
subobject = 'Community links', | subobject = 'Community links', | ||
label = 'Community | label = 'Community' | ||
} | } | ||
} | } | ||
Revision as of 22:23, 22 March 2026
Documentation for this module may be created at Module:Game/doc
local utils = require( 'Module:Utils' )
local p = {}
local function propertiesPlan()
-- ['Form field name'] = { 'Semantic property', 'delimiter' }
local propMap = {
['Release date'] = {'Has release date' },
['Developer'] = {'Has developer', ',' },
['Publisher'] = {'Has publisher' },
['Series'] = {'Has series', ',' },
['Image'] = {'Image', 'file' },
['Current version'] = {'Has version' },
['Genre'] = {'Has genre', ',' },
['Setting'] = {'Has setting', ',' },
['Has game mode'] = {'Has game mode', ',' },
['Platform'] = {'Has platform', ',' },
['Multiplayer tools'] = {'Has multiplayer tools', ',' }
}
return propMap
end
local function infoboxOrderPlan()
local propOrder = {
'Developer',
'Publisher',
'Genre',
'Setting',
'Has game mode',
'Platform',
'Release date',
'Multiplayer tools',
'Current version'
}
return propOrder
end
local function dataPlan()
local onecolumn = utils.infoboxSectionClasses()['onecolumn']
local twocolumns = utils.infoboxSectionClasses()['twocolumns']
local sectionFormat = {
['Developer'] = {
label = 'Developer',
value = '%s',
separator = ',',
template = 'render',
valuefmt = 'wikilink',
class = twocolumns
},
['Publisher'] = {
label = 'Publisher',
value = '%s',
separator = ',',
template = 'render',
valuefmt = 'wikilink',
class = twocolumns
},
['Genre'] = {
label = 'Genre',
value = '%s',
separator = ',',
template = 'render',
valuefmt = '',
class = twocolumns
},
['Setting'] = {
label = 'Setting',
value = '%s',
separator = ',',
template = 'render',
valuefmt = '',
class = twocolumns
},
['Has game mode'] = {
label = 'Game Mode',
value = '%s',
separator = ',',
template = 'render',
valuefmt = '',
class = twocolumns
},
['Platform'] = {
label = 'Platform',
value = '%s',
separator = ',',
template = 'render',
valuefmt = '',
class = twocolumns
},
['Release date'] = {
label = 'Released',
value = '%s',
separator = ',',
template = 'render',
valuefmt = 'date',
class = twocolumns
},
['Current version'] = {
label = 'Version',
value = '%s',
separator = ',',
template = 'render',
valuefmt = '',
class = twocolumns
},
['Multiplayer tools'] = {
label = 'Multiplayer',
value = '%s',
separator = ',',
template = 'render',
valuefmt = '',
class = twocolumns
}
}
return sectionFormat
end
local function subobjectPlan()
return {
{
subobject = 'Store links',
label = 'Store',
order = '7'
},
{
subobject = 'Community links',
label = 'Community'
}
}
end
function p.infobox(frame)
local category = 'Games'
local properties = propertiesPlan()
local order = infoboxOrderPlan()
local data = dataPlan()
local subobjects = subobjectPlan()
local infobox = utils.createInfobox(frame, category, properties, order, data, subobjects)
return infobox
end
return p
