From a8a64da0943a3d50ac39e2d7baf4e821dbf40c6c Mon Sep 17 00:00:00 2001 From: Patrick 'Quezler' Mounier Date: Fri, 26 Jan 2024 22:04:24 +0100 Subject: [PATCH] Improve performance by only listening to events of the one entity it cares about --- .../control.lua | 21 +++++++++---------- .../scripts/poles.lua | 4 +--- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/mods/glutenfree-se-addon-power-pole-subtile-snapper/control.lua b/mods/glutenfree-se-addon-power-pole-subtile-snapper/control.lua index 4b667dbc..c5b307f0 100644 --- a/mods/glutenfree-se-addon-power-pole-subtile-snapper/control.lua +++ b/mods/glutenfree-se-addon-power-pole-subtile-snapper/control.lua @@ -3,7 +3,6 @@ local poles = require('scripts.poles') -- local function init() - log("init") global = {} poles.init() @@ -14,16 +13,16 @@ script.on_configuration_changed(init) -- -local events = { - [defines.events.on_built_entity] = poles.on_created_entity, - [defines.events.on_robot_built_entity] = poles.on_created_entity, - [defines.events.script_raised_built] = poles.on_created_entity, - [defines.events.script_raised_revive] = poles.on_created_entity, - [defines.events.on_entity_cloned] = poles.on_created_entity, -} - -for event, handler in pairs(events) do - script.on_event(event, handler) +for _, event in ipairs({ + defines.events.on_built_entity, + defines.events.on_robot_built_entity, + defines.events.script_raised_built, + defines.events.script_raised_revive, + defines.events.on_entity_cloned, +}) do + script.on_event(event, poleson_created_entity, { + {filter = 'name', name = 'se-addon-power-pole'}, + }) end -- diff --git a/mods/glutenfree-se-addon-power-pole-subtile-snapper/scripts/poles.lua b/mods/glutenfree-se-addon-power-pole-subtile-snapper/scripts/poles.lua index 7f1c9aa9..8b64cf59 100644 --- a/mods/glutenfree-se-addon-power-pole-subtile-snapper/scripts/poles.lua +++ b/mods/glutenfree-se-addon-power-pole-subtile-snapper/scripts/poles.lua @@ -4,7 +4,7 @@ local poles = {} function poles.init() for _, surface in pairs(game.surfaces) do - for _, entity in pairs(surface.find_entities_filtered({ type = "electric-pole", name = "se-addon-power-pole" })) do + for _, entity in pairs(surface.find_entities_filtered({ name = 'se-addon-power-pole' })) do poles.random_tick(entity) end end @@ -12,8 +12,6 @@ end function poles.on_created_entity(event) local entity = event.created_entity or event.entity or event.destination - if entity.type ~= "electric-pole" then return end - if entity.name ~= "se-addon-power-pole" then return end poles.random_tick(entity) end