public void animateMining(World world, Point2 targetLocation) {
        int currentFrame = sprite.currentFrame;
        switch (entity.orientation) {
            case NORTH:
                sprite.animate(36, 4, Constants.DWARF_ANIMATION_SPEED / 2);
                break;
            default:
                sprite.animate(32, 4, Constants.DWARF_ANIMATION_SPEED / 2);
                break;
        }
        if (sprite.currentFrame != currentFrame && sprite.currentFrame % 8 % 3 == 0) {
            if (entity.playerId.intValue() == GameCore.playerId)
                GameLoop.soundBank.playSound(SoundBank.pickaxeSound, true);

            if (random.nextDouble() < .3) {
                Point2 miningLocation = new Point2(location.x, location.y);
                miningLocation.move(entity.orientation);
                if ((world.temporaryAnimatedSprites.size() < 100) || (entity.playerId.intValue() == GameCore.playerId)) {
                    world.temporaryAnimatedSprites.add(new SolitaryAnimatedSprite(20, 4, 5, miningLocation.x * Constants.TILE_BASE_WIDTH + random.nextInt(24) - 12,
                            miningLocation.y * Constants.TILE_BASE_HEIGHT - 32 + random.nextInt(24) - 12));
                }
            }
        }
    }