Module:Mmgtable2: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
local p = {} | 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 | |||
local function | |||
end | end | ||
function p. | function p.main(frame) | ||
local args = frame:getParent().args | local args = frame:getParent().args | ||
local | local totalInput = 0 | ||
local totalOutput = 0 | |||
-- | -- Loop inputs | ||
for | for i = 1, 20 do | ||
if | 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 | ||
end | end | ||
local | -- 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 = | local profit = totalOutput - totalInput | ||
return | return math.floor(profit + 0.5) -- Rounded profit | ||
end | end | ||
return p | return p |
Latest revision as of 11:01, 5 May 2025
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