diff --git a/config/_file_loader.lua b/config/_file_loader.lua index 00d2484b..cb4b9b58 100644 --- a/config/_file_loader.lua +++ b/config/_file_loader.lua @@ -39,7 +39,6 @@ return { 'modules.commands.pollution', 'modules.commands.train', 'modules.commands.friendly-fire', - 'modules.commands.lawnmower', 'modules.commands.research', 'modules.commands.vlayer', 'modules.commands.enemy', @@ -67,6 +66,7 @@ return { 'modules.addons.nukeprotect', 'modules.addons.inserter', 'modules.addons.miner', + 'modules.addons.lawnmower', 'modules.addons.logging', -- Control diff --git a/config/lawnmower.lua b/config/lawnmower.lua new file mode 100644 index 00000000..80506da0 --- /dev/null +++ b/config/lawnmower.lua @@ -0,0 +1,6 @@ +--- Settings for lawnmower +-- @config lawnmower + +return { + destroy_decoratives = false +} diff --git a/modules/commands/lawnmower.lua b/modules/addons/lawnmower.lua similarity index 54% rename from modules/commands/lawnmower.lua rename to modules/addons/lawnmower.lua index 04e7eb66..8391dc55 100644 --- a/modules/commands/lawnmower.lua +++ b/modules/addons/lawnmower.lua @@ -1,9 +1,11 @@ ---[[-- Commands Module - Lawnmower +--[[-- Addon Lawnmower - Adds a command that clean up biter corpse and nuclear hole - @commands Lawnmower + @addon Lawnmower ]] local Commands = require 'expcore.commands' --- @dep expcore.commands +local Event = require 'utils.event' --- @dep utils.event +local config = require 'config.lawnmower' --- @dep config.lawnmower require 'config.expcore.command_general_parse' Commands.new_command('lawnmower', 'Clean up biter corpse, decoratives and nuclear hole') @@ -31,3 +33,27 @@ Commands.new_command('lawnmower', 'Clean up biter corpse, decoratives and nuclea return Commands.success end) + +local function destroy_decoratives(entity) + if entity.type ~= 'entity-ghost' and entity.type ~= 'tile-ghost' and entity.prototype.selectable_in_game then + entity.surface.destroy_decoratives{area=entity.selection_box} + end +end + +if config.destroy_decoratives then + Event.add(defines.events.on_built_entity, function(event) + destroy_decoratives(event.created_entity) + end) + + Event.add(defines.events.on_robot_built_entity, function(event) + destroy_decoratives(event.created_entity) + end) + + Event.add(defines.events.script_raised_built, function(event) + destroy_decoratives(event.entity) + end) + + Event.add(defines.events.script_raised_revive, function(event) + destroy_decoratives(event.entity) + end) +end