@Override
 protected void processEntity(Entity entity, float deltaTime) {
   PositionComponent position = positionMapper.get(entity);
   OutOfBoundsComponent outOfBounds = outOfBoundsMapper.get(entity);
   if (position.x > viewport.getWorldWidth() / 2
       || position.x < -viewport.getWorldWidth() / 2
       || position.y > viewport.getWorldHeight() / 2
       || position.y < -viewport.getWorldHeight() / 2) {
     if (outOfBounds.action == AdequateAction.RESPAWN) {
       position.x = MathUtils.random(-viewport.getWorldWidth() / 2, viewport.getWorldWidth() / 2);
       position.y =
           MathUtils.random(-viewport.getWorldHeight() / 2, viewport.getWorldHeight() / 2);
     } else if (outOfBounds.action == AdequateAction.ALERT) {
       lightsManager.ambientLight = 0.1f;
     } else if (outOfBounds.action == AdequateAction.DISPOSE) {
       BodyComponent body = bodyMapper.get(entity);
       if (body != null) bodyGenerator.destroyBody(entity);
       engine.removeEntity(entity);
     }
   }
 }