diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/builders/Builder.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/builders/Builder.java index 2486f2328..fb4facb47 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/builders/Builder.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/builders/Builder.java @@ -57,13 +57,14 @@ public abstract class Builder { ArrayList colliding = new ArrayList<>(collision); do{ - //remove any rooms we aren't currently overlapping + //remove empty rooms and any rooms we aren't currently overlapping Iterator it = colliding.iterator(); while (it.hasNext()){ Room room = it.next(); //if not colliding - if ( Math.max(space.left, room.left) >= Math.min(space.right, room.right) - || Math.max(space.top, room.top) >= Math.min(space.bottom, room.bottom) ){ + if ( room.isEmpty() + || Math.max(space.left, room.left) >= Math.min(space.right, room.right) + || Math.max(space.top, room.top) >= Math.min(space.bottom, room.bottom) ){ it.remove(); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/builders/RegularBuilder.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/builders/RegularBuilder.java index 027a39114..f0494268f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/builders/RegularBuilder.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/builders/RegularBuilder.java @@ -83,6 +83,10 @@ public abstract class RegularBuilder extends Builder { protected ArrayList singleConnections = new ArrayList<>(); protected void setupRooms(ArrayList rooms){ + for(Room r : rooms){ + r.setEmpty(); + } + entrance = exit = shop = null; singleConnections.clear(); multiConnections.clear(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/SewerPipeRoom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/SewerPipeRoom.java index d5ba767cb..f096fc2b1 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/SewerPipeRoom.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/SewerPipeRoom.java @@ -64,7 +64,7 @@ public class SewerPipeRoom extends StandardRoom { Rect c = getConnectionSpace(); - if (connected.size() <= 3) { + if (connected.size() <= 2) { for (Door door : connected.values()) { Point start; @@ -248,22 +248,22 @@ public class SewerPipeRoom extends StandardRoom { //doors on opposite sides Point side; - if (from.y == top+1 || from.y == bottom-1){ + if (from.y == top+2 || from.y == bottom-2){ //connect along the left, or right side if (spaceBetween(left, from.x) + spaceBetween(left, to.x) <= spaceBetween(right, from.x) + spaceBetween(right, to.x)){ - side = new Point(left+1, top + height()/2); + side = new Point(left+2, top + height()/2); } else { - side = new Point(right-1, top + height()/2); + side = new Point(right-2, top + height()/2); } } else { //connect along the top, or bottom side if (spaceBetween(top, from.y) + spaceBetween(top, to.y) <= spaceBetween(bottom, from.y) + spaceBetween(bottom, to.y)){ - side = new Point(left + width()/2, top+1); + side = new Point(left + width()/2, top+2); } else { - side = new Point(left + width()/2, bottom-1); + side = new Point(left + width()/2, bottom-2); } } //treat this as two connections with adjacent sides