replace streams

noStream
Clemens Klug 2017-05-04 13:32:49 +02:00
parent 58f55f19bf
commit 7f21cb1ad7
3 changed files with 31 additions and 13 deletions

View File

@ -27,7 +27,9 @@ public class GroupGridPainter<C extends GroupCell> implements GridPainter<C> {
@Override @Override
public void draw(Canvas canvas, Map<Offset, C> cells, Pair<Integer, Integer> realDimensions) { public void draw(Canvas canvas, Map<Offset, C> cells, Pair<Integer, Integer> realDimensions) {
cells.forEach((offset, groupCell) -> drawCell(canvas, offset, groupCell, realDimensions)); for (Map.Entry<Offset, C> entry : cells.entrySet()) {
drawCell(canvas, entry.getKey(),entry.getValue(), realDimensions);
}
} }
private void drawCell(Canvas canvas, Offset offset, C cell, Pair<Integer, Integer> realDimensions) { private void drawCell(Canvas canvas, Offset offset, C cell, Pair<Integer, Integer> realDimensions) {

View File

@ -48,7 +48,9 @@ public class SpawnPainterGroup<G extends GridObject<C>, C extends GroupCell> imp
@Override @Override
public void drawDragging(Canvas canvas, Pair<Float, Float> xy, G object) { public void drawDragging(Canvas canvas, Pair<Float, Float> xy, G object) {
object.getObjects().forEach((offset, c) -> drawCellDragging(canvas, xy, offset, c)); for (Map.Entry<Offset, C> entry : object.getObjects().entrySet()) {
drawCellDragging(canvas, xy, entry.getKey(), entry.getValue());
}
} }
private Pair<Integer, Integer> getPosition(Offset offset, G obj, int count, Area spawnSize) { private Pair<Integer, Integer> getPosition(Offset offset, G obj, int count, Area spawnSize) {
@ -61,7 +63,9 @@ public class SpawnPainterGroup<G extends GridObject<C>, C extends GroupCell> imp
private void drawBlock(Canvas canvas, G groupCellGridBlock) { private void drawBlock(Canvas canvas, G groupCellGridBlock) {
Pair<Integer, Integer> origin = positions.get(groupCellGridBlock); Pair<Integer, Integer> origin = positions.get(groupCellGridBlock);
groupCellGridBlock.getObjects().forEach((offset1, groupCell) -> drawCell(canvas, origin, offset1, groupCell)); for (Map.Entry<Offset, C> entry : groupCellGridBlock.getObjects().entrySet()) {
drawCell(canvas, origin, entry.getKey(), entry.getValue());
}
} }
private void drawCell(Canvas canvas, Pair<Integer, Integer> origin, Offset offset1, C cell) { private void drawCell(Canvas canvas, Pair<Integer, Integer> origin, Offset offset1, C cell) {

View File

@ -34,7 +34,7 @@ public class GridBoard<G extends GridObject<C>, C extends Cell> implements Grid<
@Override @Override
public boolean drop(Offset xy, G object) { public boolean drop(Offset xy, G object) {
if (fits(xy, object)) { if (fits(xy, object)) {
object.getObjects().forEach((offset, cell) -> contents.put(Offset.add(xy, offset), cell)); contents.putAll(object.getObjects());
return true; return true;
} }
return false; return false;
@ -65,10 +65,15 @@ public class GridBoard<G extends GridObject<C>, C extends Cell> implements Grid<
*/ */
public int collapseFilledLines() { public int collapseFilledLines() {
List<Offset> deletionQueue = findFullLines(); List<Offset> deletionQueue = findFullLines();
deletionQueue.stream().map(contents::get).distinct().forEach(Cell::markCollapsed); for (Offset offset : deletionQueue) {
contents.get(offset).markCollapsed();
}
int count = deletionQueue.size(); int count = deletionQueue.size();
System.out.println("DELETION QUEUE ("+count+"): "+deletionQueue); System.out.println("DELETION QUEUE ("+count+"): "+deletionQueue);
deletionQueue.forEach(contents::remove); //FIXME: move to removeCollapsed()
for (Offset offset : deletionQueue) {
contents.remove(offset);
}
deletionQueue.clear(); deletionQueue.clear();
return count; return count;
} }
@ -126,11 +131,18 @@ public class GridBoard<G extends GridObject<C>, C extends Cell> implements Grid<
*/ */
private boolean fits(Offset xy, G newObject) { private boolean fits(Offset xy, G newObject) {
Map<Offset, C> objects = newObject.getObjects(); Map<Offset, C> objects = newObject.getObjects();
return (objects.isEmpty()) || // object has no cells => fits boolean fits = objects.isEmpty();
(objects.keySet().stream(). if (!fits){
filter(Objects::nonNull). // null cells are ignored for (Offset offset : objects.keySet()) {
filter(offset -> !isSettable(xy, offset)). //clash with existing key if (offset != null) {
count() == 0); if (!isSettable(xy,offset)){
return false;
}
}
}
fits=true;
}
return fits;
} }
/** /**