120 lines
4.2 KiB
Lua
120 lines
4.2 KiB
Lua
protos = {}
|
|
--Experimental function, not in use right now
|
|
function GetProductionWithQuality(surface)
|
|
|
|
log("StartQualProd"..surface.name)
|
|
local prodWithQualityParts = {}
|
|
local prodstat = game.forces["player"].get_item_production_statistics(surface)
|
|
for key, _ in pairs(prodstat.input_counts) do
|
|
for quality,_ in pairs(prototypes.quality) do
|
|
local count = prodstat.get_input_count({name=key,quality=quality})
|
|
if count > 0 then
|
|
prodWithQualityParts[#prodWithQualityParts+1] =
|
|
surface.name..":"..
|
|
key..":"..
|
|
quality..":"..
|
|
count
|
|
end
|
|
end
|
|
end
|
|
log("EndQualProd"..surface.name)
|
|
return table.concat(prodWithQualityParts,"\n")
|
|
end
|
|
|
|
|
|
function SendProductionStats()
|
|
if options.enableProduction then
|
|
local productionParts = {}
|
|
productionParts[#productionParts+1] = "---production-stats---"
|
|
for _,surface in pairs(game.surfaces) do
|
|
local surfaceName = surface.name
|
|
|
|
--TODO
|
|
--local test = GetProductionWithQuality(surface)
|
|
|
|
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
|
|
SendChunked(table.concat(productionParts, "\n"))
|
|
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
|
|
SendChunked(table.concat(productionParts, "\n"))
|
|
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
|
|
SendChunked(table.concat(buildParts, "\n"))
|
|
end
|
|
end
|
|
|
|
|
|
function GetAllPrototypes()
|
|
for ID, _ in pairs(prototypes.item) do
|
|
for quality,_ in pairs(prototypes.quality) do
|
|
protos[#protos+1] = {name=ID,quality=quality}
|
|
end
|
|
end
|
|
end
|