Compare commits

...

2 Commits

Author SHA1 Message Date
Vivianne d686f94080 Use the correct hook 2023-02-24 23:10:26 -08:00
Vivianne fd4316b844 Untested but perhaps this shall work. 2023-02-24 21:53:55 -08:00
1 changed files with 11 additions and 10 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,12 +547,12 @@ 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_revive }, 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)
script.on_event({ defines.events.on_pre_player_mined_item, defines.events.on_pre_robot_mined_item, defines.events.on_entity_died }, preEntityRemoved)
-- 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, defines.events.script_raised_destroy }, preEntityRemoved)
local functions = generateFunctions()