@Override
 public MC_TYPE at(int x, int y, Aggregates<? extends Boolean> aggregates) {
   int code = 0;
   if (aggregates.get(x - 1, y - 1)) {
     code = code | DOWN_INDEX_LEFT;
   }
   if (aggregates.get(x, y - 1)) {
     code = code | DOWN_INDEX_RIGHT;
   }
   if (aggregates.get(x - 1, y)) {
     code = code | UP_INDEX_LEFT;
   }
   if (aggregates.get(x, y)) {
     code = code | UP_INDEX_RIGHT;
   }
   return MC_TYPE.get(code);
 }