Private
Public Access
1
0
Files
lua-prometheus-exporter/production-stats.lua
Jan Grießhaber 5accb091b0 Added more functions
Streamlined the process
2025-12-29 16:32:47 +01:00

51 lines
2.1 KiB
Lua

function SendProductionStats()
local productionParts = {}
productionParts[#productionParts+1] = "---production-stats---"
for _,surface in pairs(game.surfaces) do
local surfaceName = surface.name
local inputStats = game.forces["player"].get_item_production_statistics(surfaceName).input_counts
local outputStats = game.forces["player"].get_item_production_statistics(surfaceName).output_counts
if(surface.platform ~= nil) then
--surface is a space platform and has a seperate name we can use
surfaceName = surface.platform.name
end
for itemName, itemCount in pairs(inputStats) do
productionParts[#productionParts+1] = ("%s:in:%s:%d"):format(surfaceName, itemName, itemCount)
end
for itemName, itemCount in pairs(outputStats) do
productionParts[#productionParts+1] = ("%s:out:%s:%d"):format(surfaceName, itemName, itemCount)
end
end
helpers.send_udp(udpAddress, table.concat(productionParts, "\n"), serverIndex)
end
function SendFluidProductionStats()
local productionParts = {}
productionParts[#productionParts+1] = "---fluid-production-stats---"
for _,surface in pairs(game.surfaces) do
local surfaceName = surface.name
local inputStats = game.forces["player"].get_fluid_production_statistics(surfaceName).input_counts
local outputStats = game.forces["player"].get_fluid_production_statistics(surfaceName).output_counts
if(surface.platform ~= nil) then
--surface is a space platform and has a seperate name we can use
surfaceName = surface.platform.name
end
for itemName, itemCount in pairs(inputStats) do
productionParts[#productionParts+1] = ("%s:in:%s:%d"):format(surfaceName, itemName, itemCount)
end
for itemName, itemCount in pairs(outputStats) do
productionParts[#productionParts+1] = ("%s:out:%s:%d"):format(surfaceName, itemName, itemCount)
end
end
helpers.send_udp(udpAddress, table.concat(productionParts, "\n"), serverIndex)
end