private boolean pathTowards(World world, NetworkConnection network, boolean goAround) {
        if (targetLocation.equals(pathingTarget))
            return false;

        Orientation orientation = orientationToward(world, goAround);
        if (orientation == Orientation.NONE)
            return false;

        tempPoint.set(targetLocation);
        tempPoint.move(orientation);

        if (tempPoint.equals(pathingTarget) && aiMode == CharacterAIMode.BUILD) {

            return false;
        }

        if (world.isTileOccupied(tempPoint, entity)) {
            pathingFailStrike -= 1;
            if (pathingFailStrike <= 0) {
                return false;
            }
            return true;
        }

        if (location.equals(tempPoint)) {
            pathingFailStrike -= 1;
            if (pathingFailStrike <= 0)
                return false;
        } else
            clearFailStrikes();

        network.send(new DwarfRequestPacket(entity.id, DwarfRequest.Walk, orientation));
        return true;
    }