From f604209d14df8389f729825a66e954abcd1382f0 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Thu, 8 Dec 2022 21:52:51 -0500 Subject: [PATCH 1/4] fixed style --- cybersyn/scripts/main.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cybersyn/scripts/main.lua b/cybersyn/scripts/main.lua index 3e778a9..35b728f 100644 --- a/cybersyn/scripts/main.lua +++ b/cybersyn/scripts/main.lua @@ -333,7 +333,7 @@ function on_combinator_network_updated(map_data, comb, network_name) refueler.network_name = network_name if network_name then local network = map_data.to_refuelers[network_name] - if network == nil then + if not network then network = {} map_data.to_refuelers[network_name] = network end From 64e31704562bd34668aefd2d758b19edbcd60732 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Thu, 8 Dec 2022 22:01:08 -0500 Subject: [PATCH 2/4] fixed a crash --- cybersyn/changelog.txt | 9 +++------ cybersyn/info.json | 2 +- cybersyn/scripts/main.lua | 2 +- cybersyn/scripts/migrations.lua | 11 +++++++++++ 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/cybersyn/changelog.txt b/cybersyn/changelog.txt index 6bc22e0..9044384 100644 --- a/cybersyn/changelog.txt +++ b/cybersyn/changelog.txt @@ -1,14 +1,11 @@ --------------------------------------------------------------------------------------------------- -Version: 1.1.2 -Date: 2022-12-8 - Changes: - - Fixed a crash on newly generated worlds ---------------------------------------------------------------------------------------------------- -Version: 1.1.1 +Version: 1.1.3 Date: 2022-12-8 Changes: - Fixed a crash when removing a fuel loader - Fixed a gui bug + - Fixed a crash on newly generated worlds + - Fixed a crash with breaking combinators --------------------------------------------------------------------------------------------------- Version: 1.1.0 Date: 2022-12-8 diff --git a/cybersyn/info.json b/cybersyn/info.json index 7570e63..36da9aa 100644 --- a/cybersyn/info.json +++ b/cybersyn/info.json @@ -1,6 +1,6 @@ { "name": "cybersyn", - "version": "1.1.2", + "version": "1.1.3", "title": "Project Cybersyn", "author": "Mami", "factorio_version": "1.1", diff --git a/cybersyn/scripts/main.lua b/cybersyn/scripts/main.lua index 35b728f..6bd3fdc 100644 --- a/cybersyn/scripts/main.lua +++ b/cybersyn/scripts/main.lua @@ -90,7 +90,7 @@ local function on_refueler_broken(map_data, refueler_id, refueler) map_data.to_refuelers[refueler.network_name] = nil end end - map_data.stations[refueler_id] = nil + map_data.refuelers[refueler_id] = nil interface_raise_refueler_removed(refueler_id, refueler) end diff --git a/cybersyn/scripts/migrations.lua b/cybersyn/scripts/migrations.lua index 1d09167..bb6e7a0 100644 --- a/cybersyn/scripts/migrations.lua +++ b/cybersyn/scripts/migrations.lua @@ -103,6 +103,17 @@ local migrations_table = { map_data.refuelers = map_data.refuelers or {} map_data.to_refuelers = map_data.to_refuelers or {} end, + ["1.1.3"] = function() + ---@type MapData + local map_data = global + map_data.tick_state = STATE_INIT + map_data.tick_data = {} + for k, v in pairs(map_data.refuelers) do + if not v.entity_comb.valid or not v.entity_stop.valid then + map_data.refuelers[k] = nil + end + end + end, } --STATUS_R_TO_D = 5 From 3487746a3ca99a60d6acbfddf89507f4c4dafd1c Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Fri, 9 Dec 2022 16:34:20 -0500 Subject: [PATCH 3/4] cheapened costs --- .vscode/launch.json | 2 +- cybersyn/changelog.txt | 5 ++++ cybersyn/info.json | 2 +- cybersyn/locale/en/base.cfg | 2 +- cybersyn/prototypes/tech.lua | 48 ++++++++++++++---------------------- 5 files changed, 27 insertions(+), 32 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 216cfe6..1add307 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -42,7 +42,7 @@ "flib": true, "cybersyn": true, }, - "disableExtraMods": true + //"disableExtraMods": true }, { "type": "factoriomod", diff --git a/cybersyn/changelog.txt b/cybersyn/changelog.txt index 9044384..b973149 100644 --- a/cybersyn/changelog.txt +++ b/cybersyn/changelog.txt @@ -1,4 +1,9 @@ --------------------------------------------------------------------------------------------------- +Version: 1.1.4 +Date: 2022-12-9 + Changes: + - Made the recipe and research requirements for cybernetic combinators cheaper so that access to them in various modpacks is more in line with my intentions +--------------------------------------------------------------------------------------------------- Version: 1.1.3 Date: 2022-12-8 Changes: diff --git a/cybersyn/info.json b/cybersyn/info.json index 36da9aa..ff96549 100644 --- a/cybersyn/info.json +++ b/cybersyn/info.json @@ -1,6 +1,6 @@ { "name": "cybersyn", - "version": "1.1.3", + "version": "1.1.4", "title": "Project Cybersyn", "author": "Mami", "factorio_version": "1.1", diff --git a/cybersyn/locale/en/base.cfg b/cybersyn/locale/en/base.cfg index 7897d9a..5725f19 100644 --- a/cybersyn/locale/en/base.cfg +++ b/cybersyn/locale/en/base.cfg @@ -32,7 +32,7 @@ cybersyn-combinator-output=Cybernetic combinator output cybersyn-combinator=Has 4 different control modes. Primary control allows providing and requesting. Optional Control allows setting thresholds per-item and reading all in progress deliveries. Depot control allows parked trains to be added to the network. Wagon control allows for reading the desired contents of the adjacent wagon. [technology-name] -cybersyn-train-network=Cybernetic train network +cybersyn-train-network=Cybersyn train network [technology-description] cybersyn-train-network=Train stop controllers capable of coordinating the inputs and outputs of an entire economy. diff --git a/cybersyn/prototypes/tech.lua b/cybersyn/prototypes/tech.lua index d4daad1..445bb53 100644 --- a/cybersyn/prototypes/tech.lua +++ b/cybersyn/prototypes/tech.lua @@ -1,35 +1,25 @@ --By Mami -combinator_recipe = flib.copy_prototype(data.raw["recipe"]["train-stop"], COMBINATOR_NAME) +combinator_recipe = flib.copy_prototype(data.raw["recipe"]["arithmetic-combinator"], COMBINATOR_NAME) combinator_recipe.ingredients = { - {"copper-cable", 5}, - {"advanced-circuit", 5}, + {"copper-cable", 20}, + {"electronic-circuit", 10}, } combinator_recipe.enabled = false -cybersyn_tech = { - type = "technology", - name = "cybersyn-train-network", - icon = "__cybersyn__/graphics/icons/tech.png", - icon_size = 256, - --icon_mipmaps = 4, - prerequisites = { - "automated-rail-transportation", - "circuit-network", - "advanced-electronics" - }, - effects = { - { - type = "unlock-recipe", - recipe = COMBINATOR_NAME - }, - }, - unit = { - ingredients = { - {"automation-science-pack", 1}, - {"logistic-science-pack", 1} - }, - count = 250, - time = 30 - }, - order = "c-g-c" + +cybersyn_tech = flib.copy_prototype(data.raw["technology"]["automated-rail-transportation"], "cybersyn-train-network") + +cybersyn_tech.icon = "__cybersyn__/graphics/icons/tech.png" +cybersyn_tech.icon_size = 256 +cybersyn_tech.prerequisites = { + "automated-rail-transportation", + "circuit-network", } +cybersyn_tech.effects = { + { + type = "unlock-recipe", + recipe = COMBINATOR_NAME + }, +} +cybersyn_tech.unit.count = 3*cybersyn_tech.unit.count +cybersyn_tech.order = "c-g-c" From bbb68c16b809f7a06f645383f4571d77998978db Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Sun, 11 Dec 2022 12:46:31 -0500 Subject: [PATCH 4/4] fixed minro display bugs --- cybersyn/scripts/gui.lua | 2 + cybersyn/scripts/main.lua | 64 ++++++++++++++++++------------- cybersyn/scripts/train-events.lua | 2 - 3 files changed, 39 insertions(+), 29 deletions(-) diff --git a/cybersyn/scripts/gui.lua b/cybersyn/scripts/gui.lua index 65d8219..3b1e27c 100644 --- a/cybersyn/scripts/gui.lua +++ b/cybersyn/scripts/gui.lua @@ -29,6 +29,8 @@ STATUS_NAMES_DEFAULT = "entity-status.disabled" ---@param comb LuaEntity ---@param player LuaPlayer function gui_opened(comb, player) + combinator_update(global, comb) + local rootgui = player.gui.screen local selected_index, signal, check, switch_state = get_comb_gui_settings(comb) diff --git a/cybersyn/scripts/main.lua b/cybersyn/scripts/main.lua index 6bd3fdc..cbe980d 100644 --- a/cybersyn/scripts/main.lua +++ b/cybersyn/scripts/main.lua @@ -398,18 +398,33 @@ function combinator_update(map_data, comb) local old_params = map_data.to_comb_params[unit_number] local has_changed = false - if params.operation ~= old_params.operation then - if (old_params.operation == MODE_PRIMARY_IO) and (params.operation == MODE_PRIMARY_IO_ACTIVE or params.operation == MODE_PRIMARY_IO_FAILED_REQUEST) then + local stop = map_data.to_stop[comb.unit_number] + if stop then + id = stop.unit_number + station = map_data.stations[id] + if station then --make sure only MODE_PRIMARY_IO gets stored on map_data.to_comb_params - params.operation = MODE_PRIMARY_IO - else - --NOTE: This is rather dangerous, we may need to actually implement operation changing - on_combinator_broken(map_data, comb) - on_combinator_built(map_data, comb) - interface_raise_combinator_changed(comb, old_params) - return + if station.display_state >= 2 then + params.operation = MODE_PRIMARY_IO_ACTIVE + elseif station.display_state == 1 then + params.operation = MODE_PRIMARY_IO_FAILED_REQUEST + else + params.operation = MODE_PRIMARY_IO + end + control.parameters = params end end + + if params.operation == MODE_PRIMARY_IO_ACTIVE or params.operation == MODE_PRIMARY_IO_FAILED_REQUEST then + params.operation = MODE_PRIMARY_IO + end + if params.operation ~= old_params.operation then + --NOTE: This is rather dangerous, we may need to actually implement operation changing + on_combinator_broken(map_data, comb) + on_combinator_built(map_data, comb) + interface_raise_combinator_changed(comb, old_params) + return + end local new_signal = params.first_signal local old_signal = old_params.first_signal local new_network = new_signal and new_signal.name or nil @@ -420,24 +435,19 @@ function combinator_update(map_data, comb) end if params.second_constant ~= old_params.second_constant then has_changed = true - local stop = map_data.to_stop[comb.unit_number] - if stop then - local id = stop.unit_number - local station = map_data.stations[id] - if station then - local pre = station.allows_all_trains - set_station_from_comb_state(station) - if station.allows_all_trains ~= pre then - update_stop_if_auto(map_data, station, true) - end - else - local refueler = map_data.refuelers[id] - if refueler then - local pre = refueler.allows_all_trains - set_refueler_from_comb(mod_settings, refueler) - if refueler.allows_all_trains ~= pre then - update_stop_if_auto(map_data, refueler, false) - end + if station then + local pre = station.allows_all_trains + set_station_from_comb_state(station) + if station.allows_all_trains ~= pre then + update_stop_if_auto(map_data, station, true) + end + else + local refueler = map_data.refuelers[id] + if refueler then + local pre = refueler.allows_all_trains + set_refueler_from_comb(mod_settings, refueler) + if refueler.allows_all_trains ~= pre then + update_stop_if_auto(map_data, refueler, false) end end end diff --git a/cybersyn/scripts/train-events.lua b/cybersyn/scripts/train-events.lua index 818e8d5..76ceb42 100644 --- a/cybersyn/scripts/train-events.lua +++ b/cybersyn/scripts/train-events.lua @@ -374,9 +374,7 @@ local function on_train_leaves_stop(map_data, mod_settings, train_id, train) interface_raise_train_status_changed(train_id, STATUS_F, train.status) elseif train.status == STATUS_D then --The train is leaving the depot without a manifest, the player likely intervened - local depot = map_data.depots[train.parked_at_depot_id--[[@as uint]]] remove_train(map_data, train_id, train) - send_lost_train_alert(train.entity, depot.entity_stop.backer_name) end end