1
0
mirror of https://github.com/Refactorio/RedMew.git synced 2024-12-14 10:13:13 +02:00
RedMew/features/clear_corpses.lua

51 lines
1.1 KiB
Lua
Raw Normal View History

local Global = require 'utils.global'
local this = {
radius = 128
}
Global.register(this, function(tbl) this = tbl end)
local Public = {}
function Public.clear_corpses(player, args)
if not player or not player.valid then
return
end
local surface = player.surface
if not surface or not surface.valid then
return
end
local whole_surface = false
if args and args.surface then
local surface_arg = args.surface:lower()
whole_surface = player.admin and (surface_arg == 's' or surface_arg == 'surface')
end
local corpses
if whole_surface then
corpses = surface.find_entities_filtered({ type = 'corpse' })
else
local pos = player.position
local area = { { pos.x - this.radius, pos.y - this.radius }, { pos.x + this.radius, pos.y + this.radius } }
corpses = surface.find_entities_filtered({ type = 'corpse', area = area })
end
for i = 1, #corpses do
corpses[i].destroy()
end
if #corpses > 0 then
player.print({ 'clear_corpses.count', #corpses })
else
player.print({ 'clear_corpses.clear' })
end
end
function Public.radius(value)
this.radius = value or 128
end
return Public