Module:Mmgtable2
Jump to navigation
Jump to search
Documentation for this module may be created at Module:Mmgtable2/doc
local p = {}
local function getItemValue(name)
-- Use mw.loadData if needed, or fetch values another way
return tonumber(mw.ext.VariablesLua.var{name}) or 0
end
function p.main(frame)
local args = frame:getParent().args
local totalInput = 0
local totalOutput = 0
-- Loop inputs
for i = 1, 20 do
local name = args["Input" .. i]
local num = tonumber(args["Input" .. i .. "num"]) or 0
local isPerHour = args["Input" .. i .. "isph"] == "y"
if name then
local value = getItemValue(name)
if isPerHour then
num = num / (tonumber(args.kph) or 1)
end
totalInput = totalInput + (value * num)
end
end
-- Loop outputs
for i = 1, 30 do
local name = args["Output" .. i]
local num = tonumber(args["Output" .. i .. "num"]) or 0
if name then
local value = getItemValue(name)
totalOutput = totalOutput + (value * num)
end
end
local profit = totalOutput - totalInput
return math.floor(profit + 0.5) -- Rounded profit
end
return p