Module:RequiredCraftingStations
Aller à la navigation
Aller à la recherche
Affiche la liste des stations de fabrication pour une ressource donnée.
Paramètres
craftedin
: station nécessaire pour fabriquer l'objet- Liste des ressources, séparées par |
Utilisation
{{RequiredCraftingStations|<resources>}} {{RequiredCraftingStations|craftedin=<station>|<resources>}}
Exemple
{{RequiredCraftingStations|Narcotique|Lingot de métal}}
{{RequiredCraftingStations|craftedin=Centre d'usinage|Narcotique|Lingot de métal}}
Mortier et Pilon
Centre d'usinage
Forge
local p = {}
function p.neededstations( f )
local args = f:getParent().args
local stations = {["Feu de Camp"] = false, ["Mortier et Pilon"] = false, ["Forge"] = false, ["Armoire de conservation"] = false, ["Atelier"] = false, ["Centre d'usinage"] = false}
local dependencies = {
["Feu de Camp"] = {
"Charbon",
"Viande cuite",
"Viande cuite supérieure",
"Poudre à Canon"
},
["Mortier et Pilon"] = {
"Poudre-étincelle",
"Narcotique",
"Poudre à Canon",
"Stimulant",
"Ciment",
"Répulsif à insectes",
"Polymère",
"Argile",
"Carburant"
},
["Forge"] = {
"Lingot de métal",
"Essence",
"Électroniques",
"Brique",
"Verre",
"Lingot de fer",
"Lingot d'acier"
},
["Armoire de conservation"] = {
"Viande cuite séchée",
"Viande supérieure séchée"
},
["Atelier"] = {
"Fléchette tranquillisante"
},
["Centre d'usinage"] = {
"Électroniques",
"Polymère"
},
["Labo de chimie"] = {
"Substrat absorbant"
},
--Primitive Plus
["Chaudron"] = {
"Levure naturelle",
"Lait de Noix de Cajou"
},
["Bétonnière"] = {
"Ciment Frais"
},
["Atelier de Cuisine"] = {
"Pâte à pain"
},
["Moulin à main"] = {
"Argile (Primitive+)",
"Sac de Farine",
"Sel"
},
["Station de Travail du Bois"] = {
"Bois de Charpente"
},
["Feu de Camp de Préservation"] = {
"Orge Séché",
"Sachets de Thé Séchés",
"Blé Séché"
},
["Presse à fruits"] = {
"Seau de jus de Sucre Frais"
},
["Chevalet de Tannage"] = {
"Cuir"
}
}
-- check if item itself needs a station to be crafted in. if yes, set to true
if args.craftedin ~= nil and stations[args.craftedin] ~= nil then
stations[args.craftedin] = true
end
-- get iconsize
local iconsize = '20px'
if args.iconsize ~= nil then
iconsize = args.iconsize
end
-- test all given resources and set station to true if needed and station is not already on true
for _,res in ipairs(args) do
if res ~= '' then
for station,_ in pairs(dependencies) do
if not stations[station] and p.inTable(dependencies[station], res) then
stations[station] = true
end
end
end
end
local returnTable = {}
for station, needed in pairs(stations) do
if needed then
table.insert(returnTable,'[[File:'..station..'.png|'..iconsize..']] [['..station..']]')
end
end
return table.concat(returnTable,'<br/>')
end
function p.inTable(tbl, item)
for _, value in pairs(tbl) do
if string.lower(value) == string.lower(item) then return true end
end
return false
end
return p