fix seed and mods, stylua on everything, up to 0.0.20

This commit is contained in:
remi
2023-03-09 23:03:13 +01:00
parent d6f0b5ccd5
commit b64638627a
5 changed files with 82 additions and 75 deletions

View File

@@ -3,6 +3,9 @@
VERSION=$$(git describe --abbrev=0 --tags)
stylua:
stylua -g '*.lua' -- .
release:
mkdir -p pkg && \
rm -f ./pkg/*.zip && \

View File

@@ -14,8 +14,8 @@ gauge_tick = prometheus.gauge("factorio_tick", "game tick")
gauge_connected_player_count = prometheus.gauge("factorio_connected_player_count", "connected players")
gauge_total_player_count = prometheus.gauge("factorio_total_player_count", "total registered players")
gauge_seed = prometheus.gauge("factorio_seed", "seed", {"surface"})
gauge_mods = prometheus.gauge("factorio_mods", "mods", {"name", "version"})
gauge_seed = prometheus.gauge("factorio_seed", "seed", { "surface" })
gauge_mods = prometheus.gauge("factorio_mods", "mods", { "name", "version" })
gauge_item_production_input = prometheus.gauge("factorio_item_production_input", "items produced", { "force", "name" })
gauge_item_production_output =
@@ -35,14 +35,13 @@ gauge_entity_build_count_output =
prometheus.gauge("factorio_entity_build_count_output", "entities removed", { "force", "name" })
gauge_pollution_production_input =
prometheus.gauge("factorio_pollution_production_input", "pollutions produced", {"force", "name"})
prometheus.gauge("factorio_pollution_production_input", "pollutions produced", { "force", "name" })
gauge_pollution_production_output =
prometheus.gauge("factorio_pollution_production_output", "pollutions consumed", {"force", "name"})
prometheus.gauge("factorio_pollution_production_output", "pollutions consumed", { "force", "name" })
gauge_evolution = prometheus.gauge("factorio_evolution", "evolution", {"force", "type"})
gauge_evolution = prometheus.gauge("factorio_evolution", "evolution", { "force", "type" })
gauge_research_queue =
prometheus.gauge("factorio_research_queue", "research", {"force", "name", "level", "index"})
gauge_research_queue = prometheus.gauge("factorio_research_queue", "research", { "force", "name", "level", "index" })
gauge_items_launched =
prometheus.gauge("factorio_items_launched_total", "items launched in rockets", { "force", "name" })
@@ -131,14 +130,6 @@ script.on_init(function()
script.on_event(global.yarm_on_site_update_event_id, handleYARM)
end
for _, surface in pairs(game.surfaces) do
gauge_seed:set(surface.map_gen_settings.seed, {surface.name})
end
for name, version in pairs(game.active_mods) do
gauge_mods:set(1, {name, version})
end
on_power_init()
script.on_nth_tick(nth_tick, register_events)
@@ -163,8 +154,8 @@ script.on_init(function()
script.on_event(defines.events.on_entity_died, on_power_destroy)
script.on_event(defines.events.script_raised_destroy, on_power_destroy)
-- research events
script.on_event(defines.events.on_research_finished, on_research_finished)
-- research events
script.on_event(defines.events.on_research_finished, on_research_finished)
end)
script.on_load(function()
@@ -198,8 +189,8 @@ script.on_load(function()
script.on_event(defines.events.on_entity_died, on_power_destroy)
script.on_event(defines.events.script_raised_destroy, on_power_destroy)
-- research events
script.on_event(defines.events.on_research_finished, on_research_finished)
-- research events
script.on_event(defines.events.on_research_finished, on_research_finished)
end)
script.on_configuration_changed(function(event)

View File

@@ -1,6 +1,14 @@
function register_events(event)
gauge_tick:set(game.tick)
for _, surface in pairs(game.surfaces) do
gauge_seed:set(surface.map_gen_settings.seed, { surface.name })
end
for name, version in pairs(game.active_mods) do
gauge_mods:set(1, { name, version })
end
for _, player in pairs(game.players) do
stats = {
{ player.force.item_production_statistics, gauge_item_production_input, gauge_item_production_output },
@@ -11,11 +19,11 @@ function register_events(event)
gauge_entity_build_count_input,
gauge_entity_build_count_output,
},
{
game.pollution_statistics,
gauge_pollution_production_input,
gauge_pollution_production_output,
},
{
game.pollution_statistics,
gauge_pollution_production_input,
gauge_pollution_production_output,
},
}
for _, stat in pairs(stats) do
@@ -28,16 +36,16 @@ function register_events(event)
end
end
evolution = {
{player.force.evolution_factor, "total"},
{player.force.evolution_factor_by_pollution, "by_pollution"},
{player.force.evolution_factor_by_time, "by_time"},
{player.force.evolution_factor_by_killing_spawners, "by_killing_spawners"}
}
evolution = {
{ player.force.evolution_factor, "total" },
{ player.force.evolution_factor_by_pollution, "by_pollution" },
{ player.force.evolution_factor_by_time, "by_time" },
{ player.force.evolution_factor_by_killing_spawners, "by_killing_spawners" },
}
for _, stat in pairs(evolution) do
gauge_evolution:set(stat[1], {player.force.name, stat[2]})
end
for _, stat in pairs(evolution) do
gauge_evolution:set(stat[1], { player.force.name, stat[2] })
end
for name, n in pairs(player.force.items_launched) do
gauge_items_launched:set(n, { player.force.name, name })
@@ -74,12 +82,11 @@ function register_events(event)
end
end
end
end
end
-- research tick handler
on_research_tick(player, event)
end
-- research tick handler
on_research_tick(player, event)
end
-- power tick handler
on_power_tick(event)

View File

@@ -1,6 +1,6 @@
{
"name": "graftorio2",
"version": "0.0.19",
"version": "0.0.20",
"title": "graftorio2",
"author": "remijouannet",
"description": "visualize metrics from your factorio game in grafana",

View File

@@ -1,36 +1,42 @@
function on_research_finished(event)
local research = event.research
if not global.last_research then
global.last_research = {}
end
local level = research.level
-- Previous research is incorrect lvl if it has more than one research
if level > 1 then
level = level - 1
end
global.last_research[research.force.name] = {
researched = 1,
name = research.name,
level = level
}
end
function on_research_tick(player, event)
if event.tick then
gauge_research_queue:reset()
local researched_queue = global.last_research and global.last_research["player.force.name"] or false
if researched_queue then
gauge_research_queue:set(researched_queue.researched and 1 or 0, {player.force.name, researched_queue.name, researched_queue.level, -1})
end
-- Levels dont get matched properly so store and save
local levels = {}
for idx, tech in pairs(player.force.research_queue or {player.force.current_research}) do
levels[tech.name] = levels[tech.name] and levels[tech.name] + 1 or tech.level
gauge_research_queue:set(idx == 1 and player.force.research_progress or 0, {player.force.name, tech.name, levels[tech.name], idx})
end
end
end
function on_research_finished(event)
local research = event.research
if not global.last_research then
global.last_research = {}
end
local level = research.level
-- Previous research is incorrect lvl if it has more than one research
if level > 1 then
level = level - 1
end
global.last_research[research.force.name] = {
researched = 1,
name = research.name,
level = level,
}
end
function on_research_tick(player, event)
if event.tick then
gauge_research_queue:reset()
local researched_queue = global.last_research and global.last_research["player.force.name"] or false
if researched_queue then
gauge_research_queue:set(
researched_queue.researched and 1 or 0,
{ player.force.name, researched_queue.name, researched_queue.level, -1 }
)
end
-- Levels dont get matched properly so store and save
local levels = {}
for idx, tech in pairs(player.force.research_queue or { player.force.current_research }) do
levels[tech.name] = levels[tech.name] and levels[tech.name] + 1 or tech.level
gauge_research_queue:set(
idx == 1 and player.force.research_progress or 0,
{ player.force.name, tech.name, levels[tech.name], idx }
)
end
end
end