diff --git a/.vscode/settings.json b/.vscode/settings.json index e72654f..52d9edf 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,6 +1,6 @@ { "Lua.workspace.userThirdParty": [ - "c:\\Users\\jangr\\AppData\\Roaming\\Code\\User\\workspaceStorage\\f0146bacf23a7548830b73867851c66a\\justarandomgeek.factoriomod-debug\\sumneko-3rd" + "c:\\Users\\jangr\\AppData\\Roaming\\Code\\User\\workspaceStorage\\3b31e6f4ee2e6f815dd0701fecf3b460\\justarandomgeek.factoriomod-debug\\sumneko-3rd" ], "Lua.workspace.checkThirdParty": "ApplyInMemory", "factorio.versions": [ diff --git a/control.lua b/control.lua index e76b970..5fa2aaf 100644 --- a/control.lua +++ b/control.lua @@ -103,7 +103,7 @@ script.on_configuration_changed(function() storage.playerDeathCause = storage.playerDeathCause or {} storage.constructedEntites = storage.constructedEntites or {} storage.deconstructedEntities = storage.deconstructedEntities or{} - storage.networkCache =storage.networkCache or {} + storage.networkCache = storage.networkCache or {} storage.trains = storage.trains or {} ---@type table storage.trainStats = storage.trainStats or {} @@ -230,10 +230,11 @@ function SendAll(event) isInitialized = true if scannedGrids == false then + storage.networkCache = nil ScanNetworks() scannedGrids = true end - + if scannedLabs == false then ScanLabs() scannedLabs = true diff --git a/info.json b/info.json index 8f79398..502203e 100644 --- a/info.json +++ b/info.json @@ -1,6 +1,6 @@ { "name": "factorio-metrics-exporter", - "version": "0.2.1", + "version": "0.2.2", "title": "Prometheus Metrics Exporter", "author": "Jan Grießhaber", "contact": "jan@griesshaber.systems", diff --git a/power-stats.lua b/power-stats.lua index a49d993..fa87293 100644 --- a/power-stats.lua +++ b/power-stats.lua @@ -3,9 +3,7 @@ function AddPowerPole(event) if e then storage.representativePoles[e.unit_number] = e -- Update cache with new network - if e.electric_network_id then - storage.networkCache[e.electric_network_id] = e - end + storage.networkCache = nil end end @@ -50,7 +48,7 @@ function ScanNetworks() end end end -end +end function SendPowerStats() if options.enablePower then diff --git a/research-stats.lua b/research-stats.lua index f3ee4bf..4119b84 100644 --- a/research-stats.lua +++ b/research-stats.lua @@ -19,7 +19,6 @@ function UpdateLabs(event) if lab and lab.valid then storage.labs[lab.unit_number] = lab end - end function RemoveLab(event) @@ -43,7 +42,7 @@ function GetEstimatedResearchTime() local totalSpeed = storage.totalResearchSpeed - local remainingPercentage = 1-playerForce.research_progress + local remainingPercentage = 1-math.min(playerForce.research_progress,1) local remainingUnits = remainingPercentage*researchTotalCost local estimatedSeconds = remainingUnits/totalSpeed @@ -51,10 +50,11 @@ function GetEstimatedResearchTime() local returnTime = "---research-time---\n"..estimatedSeconds.."\n" local returnNameID = "---research-info---\n"..researchName.."\n" local returnProgress = "---research-progress---\n"..playerForce.research_progress.."\n" + local returnCost = "---research-cost---\n"..researchTotalCost.."\n" log("Reseach remaining "..returnTime) - return returnSpeed..returnTime..returnNameID..returnProgress + return returnSpeed..returnTime..returnNameID..returnProgress..returnCost end function UpdateLabInfos() diff --git a/train-stats.lua b/train-stats.lua index f9f0ac8..fa026bd 100644 --- a/train-stats.lua +++ b/train-stats.lua @@ -64,6 +64,7 @@ function GetTrainStates() elseif train.state == defines.train_state.on_the_path or train.state == defines.train_state.arrive_signal + or train.state == defines.train_state.arrive_station or train.state == defines.train_state.wait_signal then trainsDriving = trainsDriving + 1 @@ -167,6 +168,7 @@ function onTrainStateChange(event) if event.train.state == defines.train_state.wait_station then if train.station.unit_number == stat.lastStationUnitNumber then return end + stat.lastStationUnitNumber = stat.currentStationUnitNumber stat.lastInventory = stat.currentInventory stat.lastArrivalTime = stat.currentArrivalTime @@ -176,7 +178,8 @@ function onTrainStateChange(event) stat.currentArrivalTime = game.tick if stat.lastStationUnitNumber - and stat.currentStationUnitNumber then + and stat.currentStationUnitNumber + and (stat.lastStationUnitNumber ~= stat.currentStationUnitNumber) then local tripIdentifier = tostring(stat.lastStationUnitNumber) .. tostring(stat.currentStationUnitNumber) stat.trips[tripIdentifier] = { startStation = game.get_entity_by_unit_number(stat.lastStationUnitNumber),