Private
Public Access
1
0
Files
lua-prometheus-exporter/production-stats.lua
Jan Grießhaber d803bce9d3 Fixed options
2026-01-02 00:50:58 +01:00

83 lines
3.2 KiB
Lua

function SendProductionStats()
if options.enableProduction then
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
end
function SendFluidProductionStats()
if options.enableFluid then
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
end
function SendBuildStats()
if options.enableProduction then
local buildParts = {}
buildParts[#buildParts+1] = "---build-stats---"
for _,surface in pairs(game.surfaces) do
local surfaceName = surface.name
local inputStats = game.forces["player"].get_entity_build_count_statistics(surfaceName).input_counts
local outputStats = game.forces["player"].get_entity_build_count_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
buildParts[#buildParts+1] = ("%s:in:%s:%d"):format(surfaceName, itemName, itemCount)
end
for itemName, itemCount in pairs(outputStats) do
buildParts[#buildParts+1] = ("%s:out:%s:%d"):format(surfaceName, itemName, itemCount)
end
end
helpers.send_udp(udpAddress, table.concat(buildParts, "\n"), serverIndex)
end
end