Private
Public Access
1
0

Add autotrain metrics settings and implement depot train counting

Updated locale
Added Options for autotrain metric
This commit is contained in:
Jan Grießhaber
2026-01-03 20:52:50 +01:00
parent 7dc542e448
commit 9b608fc412
6 changed files with 90 additions and 19 deletions

View File

@@ -16,6 +16,18 @@ function GetTrainName(train)
return ""
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()
local trainKills = {}
trainKills[#trainKills+1] = "---train-player-kills---"
@@ -46,20 +58,20 @@ function GetTrainStates()
local trainsManual = 0
for _, train in pairs(storage.trains) do
if train.state == defines.train_state.wait_station
or train.state == defines.train_state.destination_full
or train.state == defines.train_state.no_schedule
then trainsWaiting = trainsWaiting + 1 end
or train.state == defines.train_state.destination_full
or train.state == defines.train_state.no_schedule
then trainsWaiting = trainsWaiting + 1
if train.state == defines.train_state.on_the_path
or train.state == defines.train_state.arrive_signal
or train.state == defines.train_state.wait_signal
then trainsDriving = trainsDriving + 1 end
elseif train.state == defines.train_state.on_the_path
or train.state == defines.train_state.arrive_signal
or train.state == defines.train_state.wait_signal
then trainsDriving = trainsDriving + 1
if train.state == defines.train_state.manual_control
or train.state == defines.train_state.manual_control_stop
then trainsManual = trainsManual + 1 end
elseif train.state == defines.train_state.manual_control
or train.state == defines.train_state.manual_control_stop
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
end
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] = GetTrainStates()
returnParts[#returnParts+1] = GetTrainStatistics()
returnParts[#returnParts+1] = GetTrainsInDepot()
helpers.send_udp(udpAddress,table.concat(returnParts,"\n"),serverIndex)
end
end