fixed false positive bug

This commit is contained in:
mamoniot
2022-12-17 11:48:35 -05:00
parent b353b0b586
commit 915ed0b0f2
3 changed files with 31 additions and 16 deletions

View File

@@ -14,6 +14,7 @@
"__Profiler", "__Profiler",
"create_inactivity_order" "create_inactivity_order"
], ],
"Lua.workspace.checkThirdParty": false,
"runtime": { "runtime": {
"plugin": "C:\\Users\\mmoni\\files\\data\\projects\\factorio\\cybersyn\\.vscode\\lua\\plugin.lua", "plugin": "C:\\Users\\mmoni\\files\\data\\projects\\factorio\\cybersyn\\.vscode\\lua\\plugin.lua",
"pluginArgs": [ "pluginArgs": [
@@ -35,4 +36,4 @@
"useGitIgnore": false "useGitIgnore": false
}, },
"workspace.ignoreSubmodules": false "workspace.ignoreSubmodules": false
} }

View File

@@ -1,4 +1,9 @@
--------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------
Version: 1.1.7
Date: 2022-12-17
Changes:
- Fixed false positives in copy-paste by blueprint detection logic
---------------------------------------------------------------------------------------------------
Version: 1.1.6 Version: 1.1.6
Date: 2022-12-16 Date: 2022-12-16
Changes: Changes:

View File

@@ -398,24 +398,33 @@ function combinator_update(map_data, comb, reset_display)
local params = control.parameters local params = control.parameters
local old_params = map_data.to_comb_params[unit_number] local old_params = map_data.to_comb_params[unit_number]
local has_changed = false local has_changed = false
local station
local id
local stop = map_data.to_stop[comb.unit_number]
if reset_display and stop then if params.operation == MODE_PRIMARY_IO_ACTIVE or params.operation == MODE_PRIMARY_IO_FAILED_REQUEST or params.operation == MODE_PRIMARY_IO then
id = stop.unit_number --the follow is only present to fix combinators that have been copy-pasted by blueprint with the wrong operation
station = map_data.stations[id] local stop = map_data.to_stop[comb.unit_number--[[@as uint]]]
if station then if stop then
--make sure only MODE_PRIMARY_IO gets stored on map_data.to_comb_params id = stop.unit_number--[[@as uint]]
if station.display_state >= 2 then station = map_data.stations[id]
params.operation = MODE_PRIMARY_IO_ACTIVE if reset_display then
elseif station.display_state == 1 then if station and station.entity_comb1 == comb then
params.operation = MODE_PRIMARY_IO_FAILED_REQUEST --make sure only MODE_PRIMARY_IO gets stored on map_data.to_comb_params
else if station.display_state >= 2 then
params.operation = MODE_PRIMARY_IO 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
else
params.operation = MODE_PRIMARY_IO
control.parameters = params
end
end end
control.parameters = params
end end
end
if params.operation == MODE_PRIMARY_IO_ACTIVE or params.operation == MODE_PRIMARY_IO_FAILED_REQUEST then
params.operation = MODE_PRIMARY_IO params.operation = MODE_PRIMARY_IO
end end
if params.operation ~= old_params.operation then if params.operation ~= old_params.operation then