public boolean canMove() {
		resetIdle();
		if(snoozing){
			//force mob to wake up
			wake();
		}
		
		//can't move if the current action disallows it
		if(immobileActions.contains(getAction(), true) || frozen)
			return false;
		
		float min = visionRange, d;
		for(Entity e : discovered){
			if(e instanceof Ground || e.layer==layer){
				d = e.getPosition().x - getPosition().x;
				if(d<min) min = d;
			}
		}
		
		if(min<Vars.TILE_SIZE-rh)
			return false;
		return true;
	}