Module:Mmgtable2

From Roat Pkz
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