From 0af27a5225622a111675085adad68c14114a1c0c Mon Sep 17 00:00:00 2001 From: mamoniot Date: Sat, 24 Dec 2022 20:13:22 -0500 Subject: [PATCH] begun work on 1.2.1 --- TODO | 3 +++ cybersyn/changelog.txt | 23 ++++++++++++++++------- cybersyn/info.json | 2 +- cybersyn/scripts/layout.lua | 18 +++++++++++++----- cybersyn/scripts/main.lua | 9 +++++++++ cybersyn/scripts/remote-interface.lua | 7 +++++-- 6 files changed, 47 insertions(+), 15 deletions(-) diff --git a/TODO b/TODO index 540d57c..fc1fec5 100644 --- a/TODO +++ b/TODO @@ -6,6 +6,8 @@ major: add in game guide move to an event based algorithm models & art + train always returns to same depot setting + make train inactivity condition a setting minor: handle if signals are removed from the game during migration @@ -14,3 +16,4 @@ minor: do not play close sound when a different gui is opened gui can desync if settings are changed outside of it while it is open give the combinators a sensible reaction to low or no power + picker dollies compat? diff --git a/cybersyn/changelog.txt b/cybersyn/changelog.txt index 74ad707..f06c202 100644 --- a/cybersyn/changelog.txt +++ b/cybersyn/changelog.txt @@ -1,15 +1,22 @@ --------------------------------------------------------------------------------------------------- +Version: 1.2.1 +Date: 2022-12-24 + Bugfixes: + - Fixed an bug where sometimes refuelers would reject trains they should accept +--------------------------------------------------------------------------------------------------- Version: 1.2.0 Date: 2022-12-23 - Changes: + Features: - Forced provide stations to wait until they can service the highest priority request station - Provide stations now override request thresholds with the per-item thresholds set by their station control combinator - Allowed station and fuel combinators to be set to network id "each", for each virtual signal they recieve as input, the stop is added to that network and its signal strength is used as the network mask - Added the ability to specify per-station whether request thresholds represent total items or total stacks - - Prioritized a train's distance from the provide station over the train's cargo capacity - Added more detailed missing train alerts + Changes: + - Prioritized a train's distance from the provide station over the train's cargo capacity - Nonempty trains in depot are no longer put in manual mode, instead they are forced to park at the depot - Made several alerts persistent + Bugfixes: - Fixed bug with depot priority not working - Fixed a memory leak relating to train layouts - Fixed a rare crash when building stations @@ -18,12 +25,12 @@ Date: 2022-12-23 --------------------------------------------------------------------------------------------------- Version: 1.1.7 Date: 2022-12-17 - Changes: + Bugfixes: - Fixed false positives in copy-paste by blueprint detection logic --------------------------------------------------------------------------------------------------- Version: 1.1.6 Date: 2022-12-16 - Changes: + Bugfixes: - Fixed a crash relating to per-item request thresholds --------------------------------------------------------------------------------------------------- Version: 1.1.5 @@ -40,7 +47,7 @@ Date: 2022-12-9 --------------------------------------------------------------------------------------------------- Version: 1.1.3 Date: 2022-12-8 - Changes: + Bugfixes: - Fixed a crash when removing a fuel loader - Fixed a gui bug - Fixed a crash on newly generated worlds @@ -48,12 +55,14 @@ Date: 2022-12-8 --------------------------------------------------------------------------------------------------- Version: 1.1.0 Date: 2022-12-8 - Changes: - - Added the ability to use the priority signal as input to station control combinators so one can override priority on items with station control combinators thresholds + Features: - Added refueler stations + - Added the ability to use the priority signal as input to station control combinators so one can override priority on items with station control combinators thresholds + Changes: - Slightly more permissive allow-list logic - Made non-backwards compatible improvements and bugfixes to the modding interface - Updated localization + Bugfixes: - Fixed a crash relating to wagon control combinators on request stations --------------------------------------------------------------------------------------------------- Version: 1.0.9 diff --git a/cybersyn/info.json b/cybersyn/info.json index aff5c6b..4391f74 100644 --- a/cybersyn/info.json +++ b/cybersyn/info.json @@ -1,6 +1,6 @@ { "name": "cybersyn", - "version": "1.2.0", + "version": "1.2.1", "title": "Project Cybersyn", "author": "Mami", "factorio_version": "1.1", diff --git a/cybersyn/scripts/layout.lua b/cybersyn/scripts/layout.lua index 90c7b32..42d5e19 100644 --- a/cybersyn/scripts/layout.lua +++ b/cybersyn/scripts/layout.lua @@ -93,8 +93,11 @@ function remove_train(map_data, train_id, train) if count <= 1 then global.layout_train_count[layout_id] = nil global.layouts[layout_id] = nil - for _, station in pairs(global.stations) do - station.accepted_layouts[layout_id] = nil + for _, stop in pairs(global.stations) do + stop.accepted_layouts[layout_id] = nil + end + for _, stop in pairs(global.refuelers) do + stop.accepted_layouts[layout_id] = nil end else global.layout_train_count[layout_id] = count - 1 @@ -147,9 +150,14 @@ function set_train_layout(map_data, train) map_data.layouts[layout_id] = layout map_data.layout_train_count[layout_id] = 1 - for _, station in pairs(map_data.stations) do - if station.layout_pattern then - station.accepted_layouts[layout_id] = is_layout_accepted(station.layout_pattern, layout) or nil + for _, stop in pairs(map_data.stations) do + if stop.layout_pattern then + stop.accepted_layouts[layout_id] = is_layout_accepted(stop.layout_pattern, layout) or nil + end + end + for _, stop in pairs(map_data.refuelers) do + if stop.layout_pattern then + stop.accepted_layouts[layout_id] = is_refuel_layout_accepted(stop.layout_pattern, layout) or nil end end else diff --git a/cybersyn/scripts/main.lua b/cybersyn/scripts/main.lua index 9983db6..e61ca0a 100644 --- a/cybersyn/scripts/main.lua +++ b/cybersyn/scripts/main.lua @@ -591,6 +591,14 @@ local function on_built(event) update_stop_from_pump(global, entity) elseif entity.type == "straight-rail" then update_stop_from_rail(global, entity) + elseif entity.type == "arithmetic-combinator" then + local control = get_comb_control(entity) + local params = control.parameters + params.first_constant = 12345 + params.second_constant = 67890 + params.first_signal = NETWORK_SIGNAL_DEFAULT + params.second_signal = {name = NETWORK_EACH, type = "virtual"} + control.parameters = params end end local function on_broken(event) @@ -788,6 +796,7 @@ local filter_built = { {filter = "type", type = "inserter"}, {filter = "type", type = "pump"}, {filter = "type", type = "straight-rail"}, + {filter = "type", type = "arithmetic-combinator"}, } local filter_broken = { {filter = "name", name = "train-stop"}, diff --git a/cybersyn/scripts/remote-interface.lua b/cybersyn/scripts/remote-interface.lua index 04863ac..1f5bf73 100644 --- a/cybersyn/scripts/remote-interface.lua +++ b/cybersyn/scripts/remote-interface.lua @@ -198,8 +198,11 @@ function interface.update_train_layout(train_id) if count <= 1 then global.layout_train_count[old_layout_id] = nil global.layouts[old_layout_id] = nil - for station_id, station in pairs(global.stations) do - station.accepted_layouts[old_layout_id] = nil + for _, stop in pairs(global.stations) do + stop.accepted_layouts[old_layout_id] = nil + end + for _, stop in pairs(global.refuelers) do + stop.accepted_layouts[old_layout_id] = nil end else global.layout_train_count[old_layout_id] = count - 1