From 5ccd52d214b93af83b8fee4c5c3ebc540fd3cd66 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Sat, 12 Nov 2022 01:16:20 -0500 Subject: [PATCH] added minor improvement --- cybersyn/prototypes/signal.lua | 18 +++++----- cybersyn/scripts/central-planning.lua | 49 +++++++++++++++------------ 2 files changed, 37 insertions(+), 30 deletions(-) diff --git a/cybersyn/prototypes/signal.lua b/cybersyn/prototypes/signal.lua index a29220d..fa053d2 100644 --- a/cybersyn/prototypes/signal.lua +++ b/cybersyn/prototypes/signal.lua @@ -14,15 +14,6 @@ r_threshold_signal = { subgroup = "cybersyn-signal", order = "a" } -priority_signal = { - type = "virtual-signal", - name = SIGNAL_PRIORITY, - icon = "__cybersyn__/graphics/icons/priority.png", - icon_size = 64, - icon_mipmaps = 4, - subgroup = "cybersyn-signal", - order = "b" -} locked_slots_signal = { type = "virtual-signal", name = LOCKED_SLOTS, @@ -30,5 +21,14 @@ locked_slots_signal = { icon_size = 64, icon_mipmaps = 4, subgroup = "cybersyn-signal", + order = "b" +} +priority_signal = { + type = "virtual-signal", + name = SIGNAL_PRIORITY, + icon = "__cybersyn__/graphics/icons/priority.png", + icon_size = 64, + icon_mipmaps = 4, + subgroup = "cybersyn-signal", order = "c" } diff --git a/cybersyn/scripts/central-planning.lua b/cybersyn/scripts/central-planning.lua index 0994233..29bb3b6 100644 --- a/cybersyn/scripts/central-planning.lua +++ b/cybersyn/scripts/central-planning.lua @@ -324,30 +324,37 @@ local function tick_poll_station(map_data, mod_settings) local item_name = v.signal.name local item_count = v.count local effective_item_count = item_count + (station.deliveries[item_name] or 0) - local r_threshold = get_threshold(map_data, station, v.signal) - if station.is_r and -effective_item_count >= r_threshold and -item_count >= r_threshold then - local item_network_name = station.network_name..":"..item_name - local stations = all_r_stations[item_network_name] - if stations == nil then - stations = {} - all_r_stations[item_network_name] = stations - all_names[#all_names + 1] = item_network_name - all_names[#all_names + 1] = v.signal + local flag = true + if station.is_r then + local r_threshold = get_threshold(map_data, station, v.signal) + if -effective_item_count >= r_threshold and -item_count >= r_threshold then + flag = false + local item_network_name = station.network_name..":"..item_name + local stations = all_r_stations[item_network_name] + if stations == nil then + stations = {} + all_r_stations[item_network_name] = stations + all_names[#all_names + 1] = item_network_name + all_names[#all_names + 1] = v.signal + end + stations[#stations + 1] = station_id + station.p_count_or_r_threshold_per_item[item_name] = r_threshold end - stations[#stations + 1] = station_id - station.p_count_or_r_threshold_per_item[item_name] = r_threshold - elseif station.is_p and effective_item_count > 0 and item_count > 0 then - local item_network_name = station.network_name..":"..item_name - local stations = all_p_stations[item_network_name] - if stations == nil then - stations = {} - all_p_stations[item_network_name] = stations + end + if flag then + if station.is_p and effective_item_count > 0 and item_count > 0 then + local item_network_name = station.network_name..":"..item_name + local stations = all_p_stations[item_network_name] + if stations == nil then + stations = {} + all_p_stations[item_network_name] = stations + end + stations[#stations + 1] = station_id + station.p_count_or_r_threshold_per_item[item_name] = effective_item_count + else + signals[k] = nil end - stations[#stations + 1] = station_id - station.p_count_or_r_threshold_per_item[item_name] = effective_item_count - else - signals[k] = nil end end end