PC Gaming Shelter
An archive dedicated to preserving PC Gaming history and more

Module:Game: Difference between revisions

From PC Gaming Shelter
No edit summary
No edit summary
Line 4: Line 4:


local function propertiesPlan()
local function propertiesPlan()
-- ['Form field name'] = { 'Semantic property', 'delimiter', 'template' }
-- ['Form field name'] = { 'Semantic property', 'delimiter' }
local propMap = {
local propMap = {
['Release date']        = {'Has release date', '', '' },
['Release date']        = {'Has release date', '' },
['Developer']          = {'Has developer', ',', '' },
['Developer']          = {'Has developer', ',' },
['Publisher']          = {'Has publisher', '', '' },
['Publisher']          = {'Has publisher', '' },
['Series']              = {'Has series', ',', '' },
['Series']              = {'Has series', ',' },
['Image']              = {'Image', 'file', '' },
['Image']              = {'Image', 'file' },
['Current version']    = {'Has version', '', '' },
['Current version']    = {'Has version', '' },
['Genre']              = {'Has genre', ',', '' },
['Genre']              = {'Has genre', ',' },
['Setting']            = {'Has setting', ',', '' },
['Setting']            = {'Has setting', ',' },
['Has game mode']      = {'Has game mode', ',', '' },
['Has game mode']      = {'Has game mode', ',' },
['Platform']            = {'Has platform', ',', '' },
['Platform']            = {'Has platform', ',' },
}
}
return propMap
return propMap
Line 33: Line 33:
}
}
return propOrder
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
}
}
return sectionFormat
end
end


Line 43: Line 59:
local properties = propertiesPlan()
local properties = propertiesPlan()
local order      = infoboxOrderPlan()
local order      = infoboxOrderPlan()
local data      = dataPlan()
local subobjects = subobjectPlan()
local subobjects = subobjectPlan()
local infobox    = utils.createInfobox(frame, category, properties, order, subobjects)
local infobox    = utils.createInfobox(frame, category, properties, order, data, subobjects)
return infobox
return infobox
end
end


return p
return p

Revision as of 19:36, 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', ',' },
	}
	return propMap
end

local function infoboxOrderPlan()
	local propOrder = {
		'Release date',
		'Developer',
		'Publisher',
		'Series',
		'Current version',
		'Genre',
		'Setting',
		'Has game mode',
		'Platform'
	}
	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
		}
	}
	return sectionFormat
end

local function subobjectPlan()
	return {}
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