From 44a09d09919891cedd1d5c36597d69fd617f3aad Mon Sep 17 00:00:00 2001 From: Cooldude2606 Date: Sun, 5 Apr 2020 21:33:52 +0100 Subject: [PATCH] Fixed rocket progress status --- modules/control/production.lua | 2 +- modules/control/rockets.lua | 4 +++- modules/gui/rocket-info.lua | 12 ++++++++---- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/modules/control/production.lua b/modules/control/production.lua index f6e6c1c2..026bad7c 100644 --- a/modules/control/production.lua +++ b/modules/control/production.lua @@ -33,7 +33,7 @@ ]] local Colors = require 'utils.color_presets' --- @dep utils.color_presets -local format_number = _C.format_number --- @dep util +local format_number = require('util').format_number --- @dep util local precision_index = defines.flow_precision_index local Production = {} diff --git a/modules/control/rockets.lua b/modules/control/rockets.lua index 0dff7f84..a09c74ce 100644 --- a/modules/control/rockets.lua +++ b/modules/control/rockets.lua @@ -135,12 +135,14 @@ end function Rockets.get_rolling_average(force_name,count) local force = game.forces[force_name] local rocket_count = force.rockets_launched + if rocket_count == 0 then return 0 end + local last_launch_time = rocket_times[force_name][rocket_count] local start_rocket_time = 0 if count < rocket_count then start_rocket_time = rocket_times[force_name][rocket_count-count+1] rocket_count = count end - return rocket_count > 0 and math.floor((game.tick-start_rocket_time)/rocket_count) or 0 + return math.floor((last_launch_time-start_rocket_time)/rocket_count) end --- Event used to update the stats and the hui when a rocket is launched diff --git a/modules/gui/rocket-info.lua b/modules/gui/rocket-info.lua index 2081cb9e..c15ea688 100644 --- a/modules/gui/rocket-info.lua +++ b/modules/gui/rocket-info.lua @@ -73,11 +73,7 @@ Gui.element{ local rocket_silo_name = element.parent.name:sub(8) local silo_data = Rockets.get_silo_data_by_name(rocket_silo_name) if silo_data.entity.launch_rocket() then - silo_data.awaiting_reset = true element.enabled = false - local progress_label = element.parent.parent[rocket_silo_name].label - progress_label.caption = {'rocket-info.progress-launched'} - progress_label.style.font_color = Colors.green else player.print({'rocket-info.launch-failed'},Colors.orange_red) end @@ -555,6 +551,14 @@ local function update_rocket_gui_progress(force_name) end end +--- Event used to set a rocket silo to be awaiting reset +Event.add(defines.events.on_rocket_launch_ordered,function(event) + local silo = event.rocket_silo + local silo_data = Rockets.get_silo_data(silo) + silo_data.awaiting_reset = true + update_rocket_gui_progress(silo.force.name) +end) + Event.on_nth_tick(150,function() for _,force in pairs(game.forces) do if #Rockets.get_silos(force.name) > 0 then