Module:CustomCosmeticsFP
Jump to navigation
Jump to search
Documentation for this module may be created at Module:CustomCosmeticsFP/doc
local Arkitecture = require( 'Module:Arkitecture' )
local Html = Arkitecture.Html
local ColumnTypes = Arkitecture.Cargo.ColumnTypes
local ParameterTypes = Arkitecture.ParameterTypes
local ParameterConstraint = Arkitecture.ParameterConstraints
local Color = require( 'Module:Color' )
local Utility = require( 'Module:Utility' )
local Data = mw.loadJsonData( 'Module:CustomCosmeticsFP/data.json' )
return Arkitecture.makeRenderer{
RequiredLibraries = {
'Module:Arkitecture/Common library',
},
PrivateComponents = {
ModEntry = Arkitecture.Component{
render = function ( self, ctx, instance )
return mw.getCurrentFrame():expandTemplate{
title = 'Template:ModListEntry',
args = {
isCosmetic = true,
name = instance.Name,
image = instance.PreviewImage,
curseforgeId = instance.CfSlug,
pvpCosmetic = instance.IsAllowedInPvp,
pveCosmetic = instance.IsAllowedInPve,
}
}
end
},
},
Parameters = {},
wrapRendered = function ( self, html )
return Html.Element{
tag = 'div',
classes = 'mod-list',
html,
}
end,
getSetup = function ( self, ctx )
local results = {}
for _, record in ipairs( Data ) do
results[ #results + 1 ] = {
Component = 'ModEntry',
Name = record.name,
PreviewImage = Utility.pickFileExtension(
string.format( 'UGC cosmetic %d', record.cfId ),
{ 'png', 'jpg' }
),
IsAllowedInPvp = record.isPvP,
IsAllowedInPve = record.isPvE,
CfId = record.cfId,
CfSlug = record.cfSlug,
}
end
return results
end
}