Automatic Lawnmower (#311)

* Create lawnmower.lua

* Update _file_loader.lua

* Delete modules/commands/lawnmower.lua

* Update lawnmower.lua

* Create lawnmower.lua

* Update lawnmower.lua

* Update _file_loader.lua

* Update lawnmower.lua
This commit is contained in:
2024-09-02 06:01:44 +09:00
committed by GitHub
parent d6a8614334
commit e8f2c53fca
3 changed files with 35 additions and 3 deletions

View File

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

6
config/lawnmower.lua Normal file
View File

@@ -0,0 +1,6 @@
--- Settings for lawnmower
-- @config lawnmower
return {
destroy_decoratives = false
}

View File

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