|
|
|
@ -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()
|
|
|
|
|