Untested but perhaps this shall work.

This commit is contained in:
Vivianne 2023-02-24 21:53:55 -08:00
parent c359a92d45
commit fd4316b844
1 changed files with 10 additions and 9 deletions

View File

@ -463,10 +463,11 @@ end
-- when a new machine is created, add it to the list of filters
-- on whichever chunk it is on
function onEntityCreated(event)
if isAirFilterMachine(event.created_entity) then
local chunkPos = positionToChunk(event.created_entity.position)
local chunk = getFilteredChunk(event.created_entity.surface, chunkPos.x, chunkPos.y)
chunk:addFilter(event.created_entity)
local entity = event.created_entity or event.entity
if isAirFilterMachine(entity) then
local chunkPos = positionToChunk(entity.position)
local chunk = getFilteredChunk(entity.surface, chunkPos.x, chunkPos.y)
chunk:addFilter(entity)
end
end
@ -536,8 +537,8 @@ function preEntityRemoved(event)
end
end
-- On entity died has no pre version -> call onEntityRemoved manually
if event.name == defines.events.on_entity_died then
-- On entity died and script_raised_destroy have no pre version -> call onEntityRemoved manually
if event.name == defines.events.on_entity_died or event.name == defines.events.script_raised_destroy then
onEntityRemoved(event)
end
end
@ -546,11 +547,11 @@ end
-- Set up callbacks
script.on_event({ defines.events.on_built_entity, defines.events.on_robot_built_entity }, onEntityCreated)
script.on_event({ defines.events.on_built_entity, defines.events.on_robot_built_entity, defines.events.script_raised_built }, onEntityCreated)
-- on_entity_died should trigger both functions -> called manually
script.on_event({ defines.events.on_player_mined_entity, defines.events.on_robot_mined_entity, defines.events.on_entity_died }, onEntityRemoved)
-- on_entity_died and script_raised_destroy should trigger both functions -> called manually
script.on_event({ defines.events.on_player_mined_entity, defines.events.on_robot_mined_entity, defines.events.on_entity_died, defines.events.script_raised_destroy }, onEntityRemoved)
script.on_event({ defines.events.on_pre_player_mined_item, defines.events.on_pre_robot_mined_item, defines.events.on_entity_died }, preEntityRemoved)