private static final void connectBorders(Tile t1, int b1, Tile t2, int b2) { t1.getBorder()[b1].setZone( t1.getBorder()[b1].getZone().mergeInto(t2.getBorder()[b2].getZone())); t1.getBorderConnections()[b1] = t2.getBorder()[b2]; t2.getBorderConnections()[b2] = t1.getBorder()[b1]; }
public static final void matchTiles(Tile tile, Tile top, Tile bottom, Tile left, Tile right) throws InvalidTileException { if (tile == null) throw new InvalidTileException("Tile can not be null"); if (top != null) { match(tile.getBorder()[0], top.getBorder()[8]); match(tile.getBorder()[1], top.getBorder()[7]); match(tile.getBorder()[2], top.getBorder()[6]); } if (right != null) { match(tile.getBorder()[3], right.getBorder()[11]); match(tile.getBorder()[4], right.getBorder()[10]); match(tile.getBorder()[5], right.getBorder()[9]); } if (bottom != null) { match(tile.getBorder()[6], bottom.getBorder()[2]); match(tile.getBorder()[7], bottom.getBorder()[1]); match(tile.getBorder()[8], bottom.getBorder()[0]); } if (left != null) { match(tile.getBorder()[9], left.getBorder()[5]); match(tile.getBorder()[10], left.getBorder()[4]); match(tile.getBorder()[11], left.getBorder()[3]); } }