local Event = require 'utils.event' global.allowed_entites = { ['transport-belt'] = true, ['fast-transport-belt'] = true, ['express-transport-belt'] = true, ['underground-belt'] = true, ['fast-underground-belt'] = true, ['express-underground-belt'] = true, ['small-electric-pole'] = true, ['medium-electric-pole'] = true, ['big-electric-pole'] = true, ['substation'] = true, ['electric-mining-drill'] = true, ['burner-mining-drill'] = true, ['pumpjack'] = true } Event.add( defines.events.on_built_entity, function(event) local entity = event.created_entity if not entity or not entity.valid then return end local name = entity.name if name == 'tile-ghost' then return end local ghost = false if name == 'entity-ghost' then name = entity.ghost_name ghost = true end if global.allowed_entites[name] then return end -- Some entities have a bounding_box area of zero, eg robots. local area = entity.bounding_box local left_top, right_bottom = area.left_top, area.right_bottom if left_top.x == right_bottom.x and left_top.y == right_bottom.y then return end local count = entity.surface.count_entities_filtered {area = area, type = 'resource', limit = 1} if count == 0 then return end local p = game.players[event.player_index] if not p or not p.valid then return end entity.destroy() if not ghost then p.insert(event.stack) end end )