forked from mirrors/graftorio2
fix seed and mods, stylua on everything, up to 0.0.20
This commit is contained in:
3
Makefile
3
Makefile
@@ -3,6 +3,9 @@
|
||||
|
||||
VERSION=$$(git describe --abbrev=0 --tags)
|
||||
|
||||
stylua:
|
||||
stylua -g '*.lua' -- .
|
||||
|
||||
release:
|
||||
mkdir -p pkg && \
|
||||
rm -f ./pkg/*.zip && \
|
||||
|
||||
29
control.lua
29
control.lua
@@ -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)
|
||||
|
||||
45
events.lua
45
events.lua
@@ -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)
|
||||
|
||||
@@ -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",
|
||||
|
||||
78
research.lua
78
research.lua
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user