Module:Mmgtable2: Difference between revisions
Jump to navigation
Jump to search
(Replaced content with "local p = {} -- Maximum allowed entries local MAX_INPUTS = 75 local MAX_OUTPUTS = 75 -- Main function to return only the profit as a number function p.profit(frame) local args = frame:getParent().args local inputs = calculateTotal(args, 'Input', MAX_INPUTS) local outputs = calculateTotal(args, 'Output', MAX_OUTPUTS) local profit = outputs - inputs return tostring(profit) end -- Calculates total value from prefixed args (Input/Output) function...") Tag: Replaced |
No edit summary |
||
(2 intermediate revisions 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 | |||
end | |||
function p.main(frame) | |||
function p. | |||
local args = frame:getParent().args | 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) | |||
for i = 1, | end | ||
local name = args[ | end | ||
local | |||
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 | end | ||
return | local profit = totalOutput - totalInput | ||
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