Module:FuelBurnTime
Remarque: Modèle:FuelBurnTime permet d'utiliser ce module plus facilement.
Retourne une liste de temps d'utilisation d'objet (et carburant/min) pour chaque équipement véhicule bâtiment possible qui utilise l'objet spécifié en tant que carburant.
UtiliseModèle:Duration et la table fuel_consumers cargo table.
- Utilisation
{{#invoke:FuelBurnTime|getBurnTime| name=Nom du carburant| energy=Valeur énergétique| stack=Taille de la pile (optionnel)}}
Ou sans les paramètres nommés :
{{#invoke:FuelBurnTime|getBurnTime|Nom du carburant|Valeur énergétique|Taille de la pile (optionnel)}}
Ne donnez la taille de la pile que si vous souhaitez obtenir le temps d'utilisation d'une pile. Si vous souhaitez obtenir le temps d'utilisation d'un seul objet, n'utilisez pas le troisième argument.
- Exemples
{{#invoke:FuelBurnTime|getStackBurnTime|Biocarburant solide|450}}
Erreur Lua : Erreur : table fuel_consumers non trouvée..
{{#invoke:FuelBurnTime|getStackBurnTime|Charbon|180|100}}
Erreur Lua : Erreur : table fuel_consumers non trouvée..
local cargo = mw.ext.cargo
local p = {}
p.getBurnTime = function(frame)
local fuelName = frame.args.name ~= nil and frame.args.name or frame.args[1]
if fuelName == nil then return end
local fuelEnergy = (frame.args.energy ~= nil and frame.args.energy or frame.args[2]) or 0
local stackSize = (frame.args.stack ~= nil and tonumber(frame.args.stack) or tonumber(frame.args[3])) or 1
local isFluid = mw.getCurrentFrame():expandTemplate{title='IsFluid', args={[1]=fuelName}}
isFluid = not (isFluid == '\n' or isFluid == nil or isFluid == '')
local tables = 'fuel_consumers'
local fields = 'power, consumer'
local args = { where = 'acceptedFuel HOLDS "' .. fuelName .. '"',
orderBy = 'power ASC' }
local result = cargo.query(tables, fields, args)
local text = ''
for i=1, #result, 1 do
local usage = result[i]
if i ~= 1 then text = text .. '<br/>' end
local burnTime = fuelEnergy / usage.power * stackSize
local ipm = 60 / burnTime
local displayText = "'''" .. mw.getCurrentFrame():expandTemplate{title='Duration', args={[1]=burnTime}} .. "'''"
-- don't create a tooltip for stack burn time (because something like 0.126 stacks/min is a silly metric)
if stackSize == 1 then
-- note: power of 3 is made with html/unicode ³ instead of <sup> tag because inside of tooltip tags do not work
local tooltipText = string.format('%.1f', ipm) .. (isFluid and ' m³/min' or '/min')
text = text .. mw.getCurrentFrame():expandTemplate{title='Tooltip', args={[1]=displayText, [2]=tooltipText}} .. ' dans [[' .. usage.consumer .. ']]'
else
text = text .. displayText .. ' dans [[' .. usage.consumer .. ']]'
end
end
return text
end
return p
- Pages utilisant la fonction d’analyseur DynamicPageList3