mirror of
https://github.com/Xevion/project-cybersyn.git
synced 2025-12-14 18:12:44 -06:00
fixed cache invalidation bug
This commit is contained in:
@@ -3,4 +3,4 @@
|
|||||||
--- It is used in migrations.lua to determine if any migrations need to be run for beta testers.
|
--- It is used in migrations.lua to determine if any migrations need to be run for beta testers.
|
||||||
--- It is expected these are only meaningful between releases during beta testing.
|
--- It is expected these are only meaningful between releases during beta testing.
|
||||||
--- It should be set to nil for any release version.
|
--- It should be set to nil for any release version.
|
||||||
return 1
|
return 2
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ local get_distance = require("__flib__.position").distance
|
|||||||
local table_insert = table.insert
|
local table_insert = table.insert
|
||||||
local bit_extract = bit32.extract
|
local bit_extract = bit32.extract
|
||||||
local bit_replace = bit32.replace
|
local bit_replace = bit32.replace
|
||||||
|
local string_sub = string.sub
|
||||||
|
local string_len = string.len
|
||||||
|
|
||||||
local DEFINES_WORKING = defines.entity_status.working
|
local DEFINES_WORKING = defines.entity_status.working
|
||||||
local DEFINES_LOW_POWER = defines.entity_status.low_power
|
local DEFINES_LOW_POWER = defines.entity_status.low_power
|
||||||
@@ -38,19 +40,14 @@ end
|
|||||||
function se_get_space_elevator_name(cache, surface)
|
function se_get_space_elevator_name(cache, surface)
|
||||||
---@type LuaEntity?
|
---@type LuaEntity?
|
||||||
local entity = nil
|
local entity = nil
|
||||||
---@type string?
|
local cache_idx = surface.index
|
||||||
local name = nil
|
|
||||||
local cache_idx = 2*surface.index
|
|
||||||
if cache.se_get_space_elevator_name then
|
if cache.se_get_space_elevator_name then
|
||||||
entity = cache.se_get_space_elevator_name[cache_idx - 1]
|
entity = cache.se_get_space_elevator_name[cache_idx]
|
||||||
name = cache.se_get_space_elevator_name[cache_idx]
|
|
||||||
else
|
else
|
||||||
cache.se_get_space_elevator_name = {}
|
cache.se_get_space_elevator_name = {}
|
||||||
end
|
end
|
||||||
|
|
||||||
if entity and entity.valid then
|
if not entity or not entity.valid then
|
||||||
return name
|
|
||||||
else
|
|
||||||
--Chaching failed, default to expensive lookup
|
--Chaching failed, default to expensive lookup
|
||||||
entity = surface.find_entities_filtered({
|
entity = surface.find_entities_filtered({
|
||||||
name = SE_ELEVATOR_STOP_PROTO_NAME,
|
name = SE_ELEVATOR_STOP_PROTO_NAME,
|
||||||
@@ -59,15 +56,16 @@ function se_get_space_elevator_name(cache, surface)
|
|||||||
})[1]
|
})[1]
|
||||||
|
|
||||||
if entity then
|
if entity then
|
||||||
name = string.sub(entity.backer_name, 1, string.len(entity.backer_name) - SE_ELEVATOR_SUFFIX_LENGTH)
|
cache.se_get_space_elevator_name[cache_idx] = entity
|
||||||
cache.se_get_space_elevator_name[cache_idx - 1] = entity
|
end
|
||||||
cache.se_get_space_elevator_name[cache_idx] = name
|
end
|
||||||
return name
|
|
||||||
|
if entity and entity.valid then
|
||||||
|
return string_sub(entity.backer_name, 1, string_len(entity.backer_name) - SE_ELEVATOR_SUFFIX_LENGTH)
|
||||||
else
|
else
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
---@param cache PerfCache
|
---@param cache PerfCache
|
||||||
---@param surface_index uint
|
---@param surface_index uint
|
||||||
local function se_get_zone_from_surface_index(cache, surface_index)
|
local function se_get_zone_from_surface_index(cache, surface_index)
|
||||||
|
|||||||
Reference in New Issue
Block a user