@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); }