local getArgs = require('Module:Arguments').getArgs
local p = {}
local function collectRaceCostumes(args)
local raceCostumes = {}
local i = 1
while args['race' .. i] do
local race = args['race' .. i]
local icon = args['icon' .. i]
local style = args['style_' .. i] or 'margin-top:-55px;margin-left:10px;'
local width = args['width_' .. i] or '290px'
local label = '<div class="TabLabelText race">[[File:' .. icon .. '|60px|link=]]</div>'
local content = '<div class="TabContentText"><div class="umamusume-cloth-img" style="'.. style ..'"> [[File:' .. race .. '|' .. width .. ']]</div></div>'
if race and race ~= '' then
table.insert(raceCostumes, {
label = label,
content = content
})
end
i = i + 1
end
for s = 1, (8 - i) do
local label = '<div class="TabLabelText placeholder">.</div>'
local content = '<div class="TabContentText"></div>'
table.insert(raceCostumes, {
label = label,
content = content
})
end
return raceCostumes
end
local function collectCostumes(args)
local costumes = {}
local i = 1
costumes = collectRaceCostumes(args)
while args['file' .. i] do
local file = args['file' .. i]
local text = args['text' .. i] or i
local style = args['style' .. i] or 'margin-top:-55px;margin-left:10px;'
local width = args['width' .. i] or '290px'
local label = '<div class="TabLabelText"><div class="umamusume-cloth-text">' .. text .. '</div></div>'
local content = '<div class="TabContentText"><div class="umamusume-cloth-img" style="'.. style ..'"> [[File:' .. file .. '|' .. width .. ']]</div></div>'
if file and file ~= '' then
table.insert(costumes, {
label = label,
content = content
})
end
i = i + 1
end
return costumes
end
function p.main(frame)
local args = getArgs(frame)
local out = {}
local title = "'''" .. args['name'] .. "的着服'''"
table.insert(out, '{| class="umamusume-cloth-table"\n|+ ' .. title .. '\n|-\n|')
table.insert(out, '<div class="umamusume-cloth">')
table.insert(out, '<div class="Tabs tabLabelRight reverse AutoWidth" data-label-side="right" data-label-color-side-reverse="true" data-divider-size="5" data-default-tab="8" data-label-padding="0" data-label-border-color="transparent" data-label-color="transparent" data-text-border-color="transparent" data-text-padding="0" data-label-background-color="transparent" data-text-background-color="transparent" data-auto-width="yes">')
local costumes = collectCostumes(args)
for k, costume in ipairs(costumes) do
table.insert(out, '<div class="Tab">' .. costume.label .. costume.content .. '</div>')
end
table.insert(out, '</div></div>')
table.insert(out, '\n|}')
return frame:preprocess(table.concat(out))
end
return p