Add autotrain metrics settings and implement depot train counting
Updated locale Added Options for autotrain metric
This commit is contained in:
12
control.lua
12
control.lua
@@ -13,6 +13,8 @@ sendIndex = 0
|
|||||||
serverIndex = 0
|
serverIndex = 0
|
||||||
scannedGrids = false
|
scannedGrids = false
|
||||||
scannedLabs = false
|
scannedLabs = false
|
||||||
|
autotrainGroupName = ""
|
||||||
|
autotrainDepotName = ""
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
enableMod = false,
|
enableMod = false,
|
||||||
@@ -60,6 +62,8 @@ script.on_init(function ()
|
|||||||
options.enableResearch = settings.global["factorio-metrics-exporter-export_research_stats"].value
|
options.enableResearch = settings.global["factorio-metrics-exporter-export_research_stats"].value
|
||||||
options.enableRobots = settings.global["factorio-metrics-exporter-export_logistic_stats"].value
|
options.enableRobots = settings.global["factorio-metrics-exporter-export_logistic_stats"].value
|
||||||
options.enableTrains = settings.global["factorio-metrics-exporter-export_train_stats"].value
|
options.enableTrains = settings.global["factorio-metrics-exporter-export_train_stats"].value
|
||||||
|
autotrainGroupName = settings.global["factorio-metrics-exporter-autotrain_group_name"].value
|
||||||
|
autotrainDepotName = settings.global["factorio-metrics-exporter-autotrain_depot_name"].value
|
||||||
|
|
||||||
|
|
||||||
end)
|
end)
|
||||||
@@ -79,6 +83,8 @@ script.on_load(function ()
|
|||||||
options.enableResearch = settings.global["factorio-metrics-exporter-export_research_stats"].value
|
options.enableResearch = settings.global["factorio-metrics-exporter-export_research_stats"].value
|
||||||
options.enableRobots = settings.global["factorio-metrics-exporter-export_logistic_stats"].value
|
options.enableRobots = settings.global["factorio-metrics-exporter-export_logistic_stats"].value
|
||||||
options.enableTrains = settings.global["factorio-metrics-exporter-export_train_stats"].value
|
options.enableTrains = settings.global["factorio-metrics-exporter-export_train_stats"].value
|
||||||
|
autotrainGroupName = settings.global["factorio-metrics-exporter-autotrain_group_name"].value
|
||||||
|
autotrainDepotName = settings.global["factorio-metrics-exporter-autotrain_depot_name"].value
|
||||||
end)
|
end)
|
||||||
|
|
||||||
script.on_configuration_changed(function()
|
script.on_configuration_changed(function()
|
||||||
@@ -149,6 +155,12 @@ script.on_event(defines.events.on_runtime_mod_setting_changed, function(event)
|
|||||||
if event.setting == "factorio-metrics-exporter-export_train_stats" then
|
if event.setting == "factorio-metrics-exporter-export_train_stats" then
|
||||||
options.enableTrains = settings.global["factorio-metrics-exporter-export_train_stats"].value
|
options.enableTrains = settings.global["factorio-metrics-exporter-export_train_stats"].value
|
||||||
end
|
end
|
||||||
|
if event.setting == "factorio-metrics-exporter-autotrain_depot_name" then
|
||||||
|
autotrainDepotName = settings.global["factorio-metrics-exporter-autotrain_depot_name"].value
|
||||||
|
end
|
||||||
|
if event.setting == "factorio-metrics-exporter-autotrain_group_name" then
|
||||||
|
autotrainGroupName = settings.global["factorio-metrics-exporter-autotrain_group_name"].value
|
||||||
|
end
|
||||||
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "factorio-metrics-exporter",
|
"name": "factorio-metrics-exporter",
|
||||||
"version": "0.1.22",
|
"version": "0.2.0",
|
||||||
"title": "Prometheus Metrics Exporter",
|
"title": "Prometheus Metrics Exporter",
|
||||||
"author": "Jan Grießhaber",
|
"author": "Jan Grießhaber",
|
||||||
"contact": "jan@griesshaber.systems",
|
"contact": "jan@griesshaber.systems",
|
||||||
|
|||||||
@@ -1,6 +1,33 @@
|
|||||||
[mod-setting-name]
|
[mod-setting-name]
|
||||||
factorio-metrics-exporter-export_production_stats = Enable ProductionD
|
factorio-metrics-exporter-enable=Mod aktivieren
|
||||||
factorio-metrics-exporter-export_logistic_stats=Enable LogisticsD
|
factorio-metrics-exporter-tick-interval=Tick-Intervall
|
||||||
factorio-metrics-exporter-export_pollution_stats=Enable PollutionD
|
factorio-metrics-exporter-udp-address=UDP-Port
|
||||||
|
factorio-metrics-exporter-export_production_stats=Produktion aktivieren
|
||||||
|
factorio-metrics-exporter-export_fluid_stats=Flüssigkeiten aktivieren
|
||||||
|
factorio-metrics-exporter-export_logistic_stats=Logistik aktivieren
|
||||||
|
factorio-metrics-exporter-export_pollution_stats=Verschmutzung aktivieren
|
||||||
|
factorio-metrics-exporter-export_kill_stats=Kills aktivieren
|
||||||
|
factorio-metrics-exporter-export_research_stats=Forschung aktivieren
|
||||||
|
factorio-metrics-exporter-export_power_stats=Energie aktivieren
|
||||||
|
factorio-metrics-exporter-export_player_stats=Spieler aktivieren
|
||||||
|
factorio-metrics-exporter-export_train_stats=Züge aktivieren
|
||||||
|
factorio-metrics-exporter-enable_denkmalschutz=Denkmalschutz aktivieren
|
||||||
|
factorio-metrics-exporter-autotrain_group_name=AutoTrain-Metrik Gruppenname
|
||||||
|
factorio-metrics-exporter-autotrain_depot_name=AutoTrain-Metrik Depotname
|
||||||
|
|
||||||
[mod-setting-description]
|
[mod-setting-description]
|
||||||
factorio-metrics-exporter-export_production_stats = Enables sending of the production statistics per surface. Not very expensive
|
factorio-metrics-exporter-export_production_stats=Aktiviert das Senden der Produktionsstatistiken pro Oberfläche. Nicht sehr rechenintensiv.
|
||||||
|
factorio-metrics-exporter-enable=Aktiviert das Senden der UDP-Pakete.
|
||||||
|
factorio-metrics-exporter-tick-interval=Legt das Tick-Intervall fest, in dem Metriken gesammelt werden.
|
||||||
|
factorio-metrics-exporter-udp-address=Wähle einen UDP-Port, an den die Daten gesendet werden. Factorio muss mit --enable-lua-udp <Sendeport> gestartet werden. Es ist wichtig, einen anderen Port als den Zielport zu verwenden.
|
||||||
|
factorio-metrics-exporter-export_fluid_stats=Aktiviert das Senden von Flüssigkeits-Produktionsstatistiken. Nicht sehr rechenintensiv.
|
||||||
|
factorio-metrics-exporter-export_logistic_stats=Aktiviert das Senden von Logistiknetz-Statistiken. Moderat rechenintensiv.
|
||||||
|
factorio-metrics-exporter-export_pollution_stats=Aktiviert das Senden von verschmutzungsbezogenen Statistiken. Nicht sehr rechenintensiv.
|
||||||
|
factorio-metrics-exporter-export_kill_stats=Aktiviert das Senden von Kill-Statistiken. Nicht sehr rechenintensiv.
|
||||||
|
factorio-metrics-exporter-export_research_stats=Aktiviert das Senden von Forschungsstatistiken. Moderat rechenintensiv.
|
||||||
|
factorio-metrics-exporter-export_power_stats=Aktiviert Energie-Statistiken. Skaliert linear mit der Anzahl der Stromnetze.
|
||||||
|
factorio-metrics-exporter-export_player_stats=Aktiviert das Senden von Spielerstatistiken.
|
||||||
|
factorio-metrics-exporter-export_train_stats=Aktiviert das Senden von Zug-Statistiken. Geringer Aufwand, außer es sind sehr viele Züge im Einsatz.
|
||||||
|
factorio-metrics-exporter-enable_denkmalschutz=Aktiviert die Spaß-Option „Denkmalschutz“. Im Mehrspielermodus wird der Spieler gebannt, der das Starter-Raumschiff-Objekt abbaut.
|
||||||
|
factorio-metrics-exporter-autotrain_group_name=Legt den Namen der Zuggruppe fest, die für die AutoTrain-Metrik verwendet werden soll.
|
||||||
|
factorio-metrics-exporter-autotrain_depot_name=Legt den Namen des Depots fest, das für die AutoTrain-Metrik verwendet werden soll.
|
||||||
@@ -11,6 +11,9 @@ factorio-metrics-exporter-export_research_stats=Enable Research
|
|||||||
factorio-metrics-exporter-export_power_stats=Enable Power
|
factorio-metrics-exporter-export_power_stats=Enable Power
|
||||||
factorio-metrics-exporter-export_player_stats=Enable Player
|
factorio-metrics-exporter-export_player_stats=Enable Player
|
||||||
factorio-metrics-exporter-export_train_stats=Enable Train
|
factorio-metrics-exporter-export_train_stats=Enable Train
|
||||||
|
factorio-metrics-exporter-enable_denkmalschutz=Enable Denkmalschutz
|
||||||
|
factorio-metrics-exporter-autotrain_group_name=AutoTrain metrics group name
|
||||||
|
factorio-metrics-exporter-autotrain_depot_name=AutoTrain metrics depot name
|
||||||
[mod-setting-description]
|
[mod-setting-description]
|
||||||
factorio-metrics-exporter-export_production_stats=Enables sending of the production statistics per surface. Not very expensive
|
factorio-metrics-exporter-export_production_stats=Enables sending of the production statistics per surface. Not very expensive
|
||||||
factorio-metrics-exporter-enable=Enable sending of the UDP packets
|
factorio-metrics-exporter-enable=Enable sending of the UDP packets
|
||||||
@@ -21,6 +24,9 @@ factorio-metrics-exporter-export_logistic_stats=Enables sending of logistic netw
|
|||||||
factorio-metrics-exporter-export_pollution_stats=Enable sending of Pollution related statistics. Not very expensive
|
factorio-metrics-exporter-export_pollution_stats=Enable sending of Pollution related statistics. Not very expensive
|
||||||
factorio-metrics-exporter-export_kill_stats=Enable sending of kill statistics. Not very expensive
|
factorio-metrics-exporter-export_kill_stats=Enable sending of kill statistics. Not very expensive
|
||||||
factorio-metrics-exporter-export_research_stats=Enable sending of research statistics. Moderatly expensive
|
factorio-metrics-exporter-export_research_stats=Enable sending of research statistics. Moderatly expensive
|
||||||
factorio-metrics-exporter-export_power_stats=Enable Power. Not yet implemented!
|
factorio-metrics-exporter-export_power_stats=Enable Power. Scales linearly with power grid count
|
||||||
factorio-metrics-exporter-export_player_stats=Enable sending of player statistics
|
factorio-metrics-exporter-export_player_stats=Enable sending of player statistics
|
||||||
factorio-metrics-exporter-export_train_stats=Enable sending of train statistics. Not yet implemented!
|
factorio-metrics-exporter-export_train_stats=Enable sending of train statistics. Inexpensive unless very many trains are in use
|
||||||
|
factorio-metrics-exporter-enable_denkmalschutz=Enable the fun option of Denkmalschutz. In multiplayer, the player who deconstructs the starter spaceship entity will get banned
|
||||||
|
factorio-metrics-exporter-autotrain_group_name=Set the name of the traingroup you want to use for the autotrain metric
|
||||||
|
factorio-metrics-exporter-autotrain_depot_name=Set the name of the depot you want to use for the autotrain metric
|
||||||
15
settings.lua
15
settings.lua
@@ -91,6 +91,19 @@ data:extend({
|
|||||||
setting_type = "runtime-global",
|
setting_type = "runtime-global",
|
||||||
default_value = false,
|
default_value = false,
|
||||||
order = "z"
|
order = "z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type = "string-setting",
|
||||||
|
name = "factorio-metrics-exporter-autotrain_group_name",
|
||||||
|
setting_type = "runtime-global",
|
||||||
|
default_value = "AutoTrain",
|
||||||
|
order = "za"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type = "string-setting",
|
||||||
|
name = "factorio-metrics-exporter-autotrain_depot_name",
|
||||||
|
setting_type = "runtime-global",
|
||||||
|
default_value = "[virtual-signal=signal-pink][item=locomotive]",
|
||||||
|
order = "zb"
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
@@ -16,6 +16,18 @@ function GetTrainName(train)
|
|||||||
return ""
|
return ""
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function GetTrainsInDepot()
|
||||||
|
local trainsInDepot = 0
|
||||||
|
for trainsID, train in pairs(storage.trains) do
|
||||||
|
if train.state == defines.train_state.wait_station
|
||||||
|
and train.station and train.station.backer_name == autotrainDepotName then
|
||||||
|
trainsInDepot = trainsInDepot + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local trainsInGroup = #game.train_manager.get_trains({group=autotrainGroupName})
|
||||||
|
return ("---autotrain-stats---\n%d:%d"):format(trainsInDepot,trainsInGroup)
|
||||||
|
end
|
||||||
|
|
||||||
function GetTrainPlayerKills()
|
function GetTrainPlayerKills()
|
||||||
local trainKills = {}
|
local trainKills = {}
|
||||||
trainKills[#trainKills+1] = "---train-player-kills---"
|
trainKills[#trainKills+1] = "---train-player-kills---"
|
||||||
@@ -48,18 +60,18 @@ function GetTrainStates()
|
|||||||
if train.state == defines.train_state.wait_station
|
if train.state == defines.train_state.wait_station
|
||||||
or train.state == defines.train_state.destination_full
|
or train.state == defines.train_state.destination_full
|
||||||
or train.state == defines.train_state.no_schedule
|
or train.state == defines.train_state.no_schedule
|
||||||
then trainsWaiting = trainsWaiting + 1 end
|
then trainsWaiting = trainsWaiting + 1
|
||||||
|
|
||||||
if train.state == defines.train_state.on_the_path
|
elseif train.state == defines.train_state.on_the_path
|
||||||
or train.state == defines.train_state.arrive_signal
|
or train.state == defines.train_state.arrive_signal
|
||||||
or train.state == defines.train_state.wait_signal
|
or train.state == defines.train_state.wait_signal
|
||||||
then trainsDriving = trainsDriving + 1 end
|
then trainsDriving = trainsDriving + 1
|
||||||
|
|
||||||
if train.state == defines.train_state.manual_control
|
elseif train.state == defines.train_state.manual_control
|
||||||
or train.state == defines.train_state.manual_control_stop
|
or train.state == defines.train_state.manual_control_stop
|
||||||
then trainsManual = trainsManual + 1 end
|
then trainsManual = trainsManual + 1
|
||||||
|
|
||||||
if train.state == defines.train_state.no_path
|
elseif train.state == defines.train_state.no_path
|
||||||
then trainsProblems = trainsProblems + 1 end
|
then trainsProblems = trainsProblems + 1 end
|
||||||
end
|
end
|
||||||
return ("---trains-states---\n%d:%d:%d:%d"):format(trainsDriving,trainsManual,trainsProblems,trainsWaiting)
|
return ("---trains-states---\n%d:%d:%d:%d"):format(trainsDriving,trainsManual,trainsProblems,trainsWaiting)
|
||||||
@@ -180,6 +192,7 @@ function SendTrainStats()
|
|||||||
returnParts[#returnParts+1] = GetTrainTotalKills()
|
returnParts[#returnParts+1] = GetTrainTotalKills()
|
||||||
returnParts[#returnParts+1] = GetTrainStates()
|
returnParts[#returnParts+1] = GetTrainStates()
|
||||||
returnParts[#returnParts+1] = GetTrainStatistics()
|
returnParts[#returnParts+1] = GetTrainStatistics()
|
||||||
|
returnParts[#returnParts+1] = GetTrainsInDepot()
|
||||||
helpers.send_udp(udpAddress,table.concat(returnParts,"\n"),serverIndex)
|
helpers.send_udp(udpAddress,table.concat(returnParts,"\n"),serverIndex)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
Reference in New Issue
Block a user