Module:Représentations antérieures
Aller à la navigation
Aller à la recherche
Fonction « capacite »[modifier]
Utilisation[modifier]
Ce module sert à générer automatiquement un tableau de fichiers qui montre différentes représentations d'une même capacité. L'application stricte des règles de nomenclature permet au module de détecter les bons éléments qui permettent de former les noms de fichier.
Paramètres[modifier]
Certains paramètres sont accompagnés d'une ou plusieurs icône indiquant leur(s) caractéristique(s) :
|
- paramètre non nommé : définit les jeux pour lesquels il faut afficher des images. Les jeux sont à indiquer avec leurs abréviations définies par le Modèle:Jeu, et séparés par des slashs
/
, de la façon suivante :ROSA/EB/DEPS
.- Ajouter des parenthèses aux codes des jeux permet aussi de préciser de préciser les jeux dans lesquels la capacité est ainsi illustrée. Ainsi, pour afficher l'animation de Pokémon Platine, en précisant qu'elle est aussi utilisée dans Pokémon Or HeartGold et Argent SoulSilver, on indiquera
Pt (Pt, HGSS)
au lieu de simplementPt
.
- Ajouter des parenthèses aux codes des jeux permet aussi de préciser de préciser les jeux dans lesquels la capacité est ainsi illustrée. Ainsi, pour afficher l'animation de Pokémon Platine, en précisant qu'elle est aussi utilisée dans Pokémon Or HeartGold et Argent SoulSilver, on indiquera
- précision : permet d'ajouter une précision entre parenthèses aux noms des fichiers du tableau, notamment lorsque la capacité a plusieurs animations selon le contexte. Par exemple, Champlification a une animation différente lorsqu'un Champ Brumeux est actif. On peut donc rajouter
précision=Champ Brumeux
(sans les parenthèses) pour faire appel à des fichiers de la formeFichier:Champlification (Champ Brumeux) EV.mp4
. - nom : permet de forcer le nom à partir duquel former les noms de fichier. Par défaut, le nom est réglé sur celui de la page en cours (
{{PAGENAME}}
). - type : permet de forcer la coloration de type de la table, s'il n'est pas bien ou s'il doit changer pour une certaine raison, par exemple dans le cas de Ball'Météo. Par défaut, la coloration est automatiquement déterminée selon le nom de la capacité.
Exemples[modifier]
On prend en exemple Ball'Météo :
Exemple basique[modifier]
{{#invoke:Représentations antérieures|capacite|E/HGSS/N2B2/ROSA/USUL/EB}}
donne :
Troisième génération | Quatrième génération | Cinquième génération |
Sixième génération | Septième génération | Huitième génération |
Exemple avec précision et coloration de type[modifier]
{{#invoke:Représentations antérieures|capacite|HGSS/ROSA|précision=Soleil|type=feu}}
donne :
Quatrième génération | Sixième génération |
local p = {} function p.capacite(frame) local game_to_extension = { RV = "gif", RB = "gif", J = "gif", O = "gif", A = "gif", OA = "gif", C = "gif", RS = "gif", RFVF = "gif", E = "gif", DP = "gif", HGSS = "gif", Pt = "gif", NB = "gif", N2B2 = "gif", XY = "mp4|300px", ROSA = "mp4|300px", SL = "mp4|300px", USUL = "mp4|300px", LGPE = "mp4|300px", EB = "mp4|300px", DEPS = "mp4|300px", LPA = "mp4|300px", EV = "mp4|300px", LPZA = "mp4|300px", St1 = "png|300px", Colo = "mp4|300px", XD = "png|300px", PDM1 = "png", PRR = "mp4|200px" } -- Seuls les jeux principaux sont à renseigner local game_to_generation = { RV = 1, RB = 1, J = 1, O = 2, A = 2, OA = 2, C = 2, RS = 3, RFVF = 3, E = 3, DP = 4, HGSS = 4, Pt = 4, NB = 5, N2B2 = 5, XY = 6, ROSA = 6, SL = 7, USUL = 7, LGPE = 7, EB = 8, DEPS = 8, LPA = 8, EV = 9, LPZA = 9, } local generation_number_to_text = {"[[Première génération]]", "[[Deuxième génération]]", "[[Troisième génération]]", "[[Quatrième génération]]", "[[Cinquième génération]]", "[[Sixième génération]]", "[[Septième génération]]", "[[Huitième génération]]", "[[Neuvième génération]]"} local name_untouched = frame.args["nom"] if name_untouched == nil then name_untouched = frame:preprocess("{{PAGENAME}}") end if name_untouched == nil then name_untouched = "Charge" end local name = string.gsub(name_untouched, " %(capacité%)", "") local table_type = frame.args["type"] if table_type == nil then local datatype = require("Module:Data/TypesCapacités") table_type = datatype[name_untouched] if table_type == nil then table_type = "" else table_type = mw.ustring.lower(table_type) end end local precision = frame.args["précision"] if precision then precision = " (" .. precision .. ")" else precision = "" end local result = {"<table class='tableaustandard centre " .. table_type .. "'>"} local games = frame.args[1] local games_split = {} if games ~= nil then games_split = mw.text.split(games, "/") end -- First pass to check duplicate generations local generations_seen = {} local duplicate_generations = {} local i = 1 while games_split[i] ~= nil do local game_image = mw.ustring.gsub(games_split[i], "(.-) %((.-)%)", "%1") local generation_number = game_to_generation[game_image] if generation_number == nil then generation_number = 1 end if generations_seen[generation_number] == nil then generations_seen[generation_number] = true else duplicate_generations[generation_number] = true end i = i + 1 end local i = 1 local image_line = {} local game_line = {} while games_split[i] ~= nil do -- Start of line if i % 3 == 1 then table.insert(image_line, "<tr>") table.insert(game_line, "<tr>") end local game_input = games_split[i] local game_image = mw.ustring.gsub(game_input, "(.-) %((.-)%)", "%1") local game_text_list = {game_input} local custom_game_text = false if game_image ~= game_input then local game_text_list_unsplit = mw.ustring.gsub(game_input, "(.-) %((.-)%)", "%2") game_text_list = mw.text.split(game_text_list_unsplit, ", ") custom_game_text = true end local game_text = "" local first_game_text = true local j = 1 while game_text_list[j] do if first_game_text then first_game_text = false else game_text = game_text .. ", " end game_text = game_text .. frame:expandTemplate{title='Jeu', args={game_text_list[j]}} j = j + 1 end local extension = game_to_extension[game_image] if extension == nil then extension = "mp4" end local generation_number = game_to_generation[game_image] if generation_number == nil then generation_number = 0 end local generation if generation_number == 0 then generation = frame:expandTemplate{title='Jeu', args={game_image}} else generation = generation_number_to_text[generation_number] end -- Cell table.insert(image_line, "<td>[[Fichier:" .. name .. precision .. " " .. game_image .. "." .. extension .. "]]</td>") table.insert(game_line, "<td>" .. generation) -- Adding game for duplicate generations if custom_game_text or (generation ~= 0 and (generation_number >= 8 or duplicate_generations[generation_number] ~= nil)) then table.insert(game_line, "<br><div style='width:280px; margin-left:auto; margin-right:auto'><small>(" .. game_text .. ")</small></div>") end table.insert(game_line, "</td>") -- End of line if i % 3 == 0 then table.insert(image_line, "</tr>") table.insert(game_line, "</tr>") table.insert(result, table.concat(image_line, "")) table.insert(result, table.concat(game_line, "")) image_line = {} game_line = {} end i = i + 1 end -- Adding the incomplete line if i % 3 ~= 1 then table.insert(image_line, "</tr>") table.insert(game_line, "</tr>") table.insert(result, table.concat(image_line, "")) table.insert(result, table.concat(game_line, "")) end table.insert(result, '</table>') return table.concat(result, "") end return p