mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-12 15:04:52 +09:00
Change module loading to use a module.json file describing the module and patch in all files in a directory path passed to the patcher instead of having to pass the files names and their content. This allows the specification of which files should be passed to the event_handler lib and an easy implementation of loading stand alone modules.
40 lines
1.1 KiB
Lua
40 lines
1.1 KiB
Lua
local statistics = {
|
|
"item_production_statistics",
|
|
"fluid_production_statistics",
|
|
"kill_count_statistics",
|
|
"entity_build_count_statistics",
|
|
}
|
|
|
|
local function export()
|
|
local stats = {
|
|
game_tick = game.tick,
|
|
player_count = #game.connected_players,
|
|
game_flow_statistics = {
|
|
pollution_statistics = {
|
|
input = game.pollution_statistics.input_counts,
|
|
output = game.pollution_statistics.output_counts,
|
|
},
|
|
},
|
|
force_flow_statistics = {}
|
|
}
|
|
for _, force in pairs(game.forces) do
|
|
local flow_statistics = {}
|
|
for _, statName in pairs(statistics) do
|
|
flow_statistics[statName] = {
|
|
input = force[statName].input_counts,
|
|
output = force[statName].output_counts,
|
|
}
|
|
end
|
|
stats.force_flow_statistics[force.name] = flow_statistics
|
|
end
|
|
|
|
|
|
rcon.print(game.table_to_json(stats))
|
|
end
|
|
|
|
return {
|
|
add_remote_interface = function()
|
|
remote.add_interface("statistics_exporter", { export = export })
|
|
end
|
|
}
|