« Module:Tableau d'artisanat » : différence entre les versions
mAucun résumé des modifications |
mAucun résumé des modifications |
||
Ligne 3 : | Ligne 3 : | ||
local n_liste = 15 -- Nombre maximal d'éléments de chaque liste. | local n_liste = 15 -- Nombre maximal d'éléments de chaque liste. | ||
-- Liste des paramètres acceptés pour les matériaux et les produits | -- à supprimer lorsque le module Icone sera OK | ||
local icone = { | |||
['portée'] = 'Icon range.png', | |||
['niveau'] = 'Icon level.png' | |||
} | |||
--[[ | |||
Liste des paramètres acceptés pour les matériaux et les produits | |||
Compatible français-anglais | |||
]] | |||
local parametres = { | local parametres = { | ||
materiau = { | materiau = { | ||
Ligne 114 : | Ligne 122 : | ||
local function creerSeparateur(nomIcone, infobulle) | local function creerSeparateur(nomIcone, infobulle) | ||
local res = mw.html.create('span') | local res = mw.html.create('span') | ||
:wikitext(' | :wikitext('[[Fichier:' .. icone.nomIcone .. '|' .. infobulle .. '|15px|link=|alt=' .. infobulle .. ']]') | ||
:allDone() | :allDone() | ||
Version du 5 juin 2021 à 12:31
Ce module génère le modèle {{Tableau d'artisanat}}.
local p = {}
local n_liste = 15 -- Nombre maximal d'éléments de chaque liste.
-- à supprimer lorsque le module Icone sera OK
local icone = {
['portée'] = 'Icon range.png',
['niveau'] = 'Icon level.png'
}
--[[
Liste des paramètres acceptés pour les matériaux et les produits
Compatible français-anglais
]]
local parametres = {
materiau = {
nom = { 'materiau', 'material'},
qte = { 'materiau#', 'matcnt'}
},
produit = {
nom = { 'produit', 'product'},
qte = { 'produit#', 'product#'}
}
}
local function creerListeSimple(args, param, titre)
local items = ''
for i = 1, n_liste do
local materiau = args[param.nom[1] .. i] or args[param.nom[2] .. i] or ''
if materiau == '' then break end
local quantite = args[param.qte[1] .. i] or args[param.qte[2] .. i] or '1'
local item = mw.html.create('li')
:wikitext(materiau .. ' x ' .. quantite)
:done()
items = items .. tostring(item)
end
local res = mw.html.create('div')
:addClass('artisanat-liste')
:tag('div')
:addClass('artisanat-liste-titre')
:wikitext(titre .. ' :')
:done()
:tag('ul')
:node(items)
:allDone()
return tostring(res)
end
local function creerListePrerequis(args)
local items = ''
local atelier = args['atelier'] or args['worspace'] or ''
if atelier ~= '' then
local item = mw.html.create('li')
:wikitext(atelier)
:done()
items = items .. tostring(item)
end
local saison = args['saison'] or args['season'] or ''
if saison ~= '' then
local item = mw.html.create('li')
:wikitext(saison)
:done()
items = items .. tostring(item)
end
local recette = args['recette'] or args['plan'] or ''
if recette ~= '' then
local item = mw.html.create('li')
:wikitext(recette)
:done()
items = items .. tostring(item)
end
local competence = args['compétence'] or args['skill'] or ''
if competence ~= '' then
local niveau = args['niveau'] or args['level'] or 'niveau ?'
local item = mw.html.create('li')
:wikitext(competence .. ' : ' .. niveau)
:done()
items = items .. tostring(item)
end
for i = 1, n_liste do
local aptitude = args['aptitude' .. i] or args['perk' .. i] or ''
if materiau == '' then break end
local item = mw.html.create('li')
:wikitext(aptitude)
:done()
items = items .. tostring(item)
end
local cout = args['coût'] or args['cost'] or ''
if cout ~= '' then
local item = mw.html.create('li')
:wikitext('Coût : ' .. cout)
:done()
items = items .. tostring(item)
end
local res = mw.html.create('div')
:addClass('artisanat-liste')
:tag('div')
:addClass('artisanat-liste-titre')
:wikitext('Prérequis :')
:done()
:tag('ul')
:node(items)
:allDone()
return tostring(res)
end
local function creerSeparateur(nomIcone, infobulle)
local res = mw.html.create('span')
:wikitext('[[Fichier:' .. icone.nomIcone .. '|' .. infobulle .. '|15px|link=|alt=' .. infobulle .. ']]')
:allDone()
return tostring(res)
end
function p._artisanat(args)
local res = mw.html.create('div')
:addClass('artisanat')
res
:node(creerListeSimple(args, parametres.materiau, 'Matériaux'))
:node(creerSeparateur('portée', 'nécessite'))
:node(creerListePrerequis(args, 'prerequis', 'Prérequis'))
:node(creerSeparateur('niveau', 'produit'))
:node(creerListeSimple(args, parametres.produit, 'Produits'))
return res
end
function p.artisanat(frame)
local args = {}
local argsParent = frame:getParent().args
-- Paramètres vides interprétés par Lua.
for cle, val in pairs(argsParent) do
if val ~= '' then
args[cle] = val
end
end
return p._artisanat(args)
end
return p