Module:Collection : Différence entre versions
m (46 révisions importées) |
|||
(34 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
local p = {} | local p = {} | ||
− | local Boite = | + | local Boite = mw.loadData('Module:Collection/Boite') |
− | Boite | + | local Vaisseau = mw.loadData('Module:Collection/Vaisseau') |
− | + | local FabListe = mw.loadData('Module:Collection/FabListe') | |
− | + | local AffichageModule = require('Module:Collection/Affichage') | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | local | + | function trim(s) |
− | " | + | return (string.gsub(s, "^%s*(.-)%s*$", "%1")) |
− | " | + | end |
− | " | + | |
− | " | + | function p.boite(frame) |
− | + | local fabSelectStr = trim(frame.args[1]) or "" | |
+ | local affIfZero = trim(frame.args[2]) or false | ||
+ | fabSelectTab={} | ||
+ | fabSelectStr:gsub(".",function(c) table.insert(fabSelectTab,c) end) | ||
+ | retour = "" | ||
+ | for i, v in ipairs (fabSelectTab) do | ||
+ | if fabSelectTab[i] ~= nil then | ||
+ | if FabListe[i] ~= nil then | ||
+ | if Boite[FabListe[i]] ~= nil then | ||
+ | if (fabSelectTab[i] ~= "0") or (affIfZero == "true") then | ||
+ | retour = retour .. "* [[" .. Boite[FabListe[i]].titre .. "]] x " .. fabSelectTab[i] .. "\n" | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | return retour | ||
+ | end | ||
function p.vaisseau(frame) | function p.vaisseau(frame) | ||
− | local fabSelectStr = frame.args[1] or "" | + | local fabSelectStr = trim(frame.args[1]) or "" |
+ | local affIfZero = trim(frame.args[2]) or false | ||
+ | local affType = trim(frame.args[3]) or "Faction" | ||
fabSelectTab={} | fabSelectTab={} | ||
fabSelectStr:gsub(".",function(c) table.insert(fabSelectTab,c) end) | fabSelectStr:gsub(".",function(c) table.insert(fabSelectTab,c) end) | ||
− | retour = " | + | local vaissCollecTab={} |
+ | retour = "" | ||
for i, v in ipairs (fabSelectTab) do | for i, v in ipairs (fabSelectTab) do | ||
if fabSelectTab[i] ~= nil then | if fabSelectTab[i] ~= nil then | ||
− | if FabListe[ i ] ~= nil then | + | if FabListe[i] ~= nil then |
− | + | if Boite[FabListe[i]] ~= nil then | |
+ | for k, v in pairs (Boite[FabListe[i]].vaisseaux) do | ||
+ | if vaissCollecTab[k] == nil then | ||
+ | vaissCollecTab[k] = v * fabSelectTab[i] | ||
+ | else | ||
+ | vaissCollecTab[k] = vaissCollecTab[k] + (v * fabSelectTab[i]) | ||
+ | end | ||
+ | end | ||
+ | end | ||
end | end | ||
end | end | ||
end | end | ||
− | return retour | + | if affType == "Liste" then |
+ | return retour .. AffichageModule.affichageVaisseauListe(vaissCollecTab, affIfZero) | ||
+ | else | ||
+ | return retour .. AffichageModule.affichageVaisseauByFaction(vaissCollecTab, affIfZero) | ||
+ | end | ||
end | end | ||
return p | return p |
Version actuelle datée du 30 août 2018 à 21:50
La documentation pour ce module peut être créée à Module:Collection/doc
local p = {} local Boite = mw.loadData('Module:Collection/Boite') local Vaisseau = mw.loadData('Module:Collection/Vaisseau') local FabListe = mw.loadData('Module:Collection/FabListe') local AffichageModule = require('Module:Collection/Affichage') function trim(s) return (string.gsub(s, "^%s*(.-)%s*$", "%1")) end function p.boite(frame) local fabSelectStr = trim(frame.args[1]) or "" local affIfZero = trim(frame.args[2]) or false fabSelectTab={} fabSelectStr:gsub(".",function(c) table.insert(fabSelectTab,c) end) retour = "" for i, v in ipairs (fabSelectTab) do if fabSelectTab[i] ~= nil then if FabListe[i] ~= nil then if Boite[FabListe[i]] ~= nil then if (fabSelectTab[i] ~= "0") or (affIfZero == "true") then retour = retour .. "* [[" .. Boite[FabListe[i]].titre .. "]] x " .. fabSelectTab[i] .. "\n" end end end end end return retour end function p.vaisseau(frame) local fabSelectStr = trim(frame.args[1]) or "" local affIfZero = trim(frame.args[2]) or false local affType = trim(frame.args[3]) or "Faction" fabSelectTab={} fabSelectStr:gsub(".",function(c) table.insert(fabSelectTab,c) end) local vaissCollecTab={} retour = "" for i, v in ipairs (fabSelectTab) do if fabSelectTab[i] ~= nil then if FabListe[i] ~= nil then if Boite[FabListe[i]] ~= nil then for k, v in pairs (Boite[FabListe[i]].vaisseaux) do if vaissCollecTab[k] == nil then vaissCollecTab[k] = v * fabSelectTab[i] else vaissCollecTab[k] = vaissCollecTab[k] + (v * fabSelectTab[i]) end end end end end end if affType == "Liste" then return retour .. AffichageModule.affichageVaisseauListe(vaissCollecTab, affIfZero) else return retour .. AffichageModule.affichageVaisseauByFaction(vaissCollecTab, affIfZero) end end return p