// if destination not yet established, search for shelter
if(destination == null){
Point candidate = new Point();
for(int i = 0; i < 10; ++i){
candidate.polarTranslation(Utility.rng.nextRadian(), Math.PI/2, Utility.rng.nextInt(20));
candidate.plus(citizen.posX, citizen.posY, citizen.posZ);
Utility.terrainAdjustment(citizen.worldObj, candidate);
if(!citizen.worldObj.canBlockSeeTheSky((int)candidate.x, (int)candidate.y, (int)candidate.z)){
destination = candidate;
citizen.getNavigator().tryMoveToXYZ(destination.x, destination.y, destination.z, 0.35f);
} // else try another spot