public final void setBoardStyle(BoardStyle newStyle) { // We don't allow any changes to the board's dimensions; only changes to // the appearance of the board. if (boardStyle != null && (boardStyle.getFrameWidth() != newStyle.getFrameWidth() || boardStyle.getSquareSize() != newStyle.getSquareSize() || boardStyle.getHeight() != newStyle.getHeight())) { throw new ChessException( "New board style dimensions do not match the current board dimensions"); } boardStyle = newStyle; chessPieceSet = ChessSet.getChessSet(boardStyle.getPieceStyleName()); }
/** * Board constructor. * * @param origin * @param rotation * @param boardStyleName * @param pieceStyleName * @throws ChessException */ public ChessBoard( Location origin, BoardRotation rotation, String boardStyleName, String pieceStyleName) throws ChessException { setBoardStyle(boardStyleName); setPieceStyle(pieceStyleName != null ? pieceStyleName : boardStyle.getPieceStyleName()); this.rotation = rotation; a1Center = new PersistableLocation(origin); a1Corner = initA1Corner(origin, rotation); h8Corner = initH8Corner(a1Corner.getLocation()); board = new Cuboid(a1Corner.getLocation(), h8Corner.getLocation()); areaBoard = board.expand(CuboidDirection.Up, boardStyle.getHeight()); frameBoard = board.outset(CuboidDirection.Horizontal, boardStyle.getFrameWidth()); aboveFullBoard = frameBoard .shift(CuboidDirection.Up, 1) .expand(CuboidDirection.Up, boardStyle.getHeight() - 1); fullBoard = frameBoard.expand(CuboidDirection.Up, boardStyle.getHeight() + 1); validateBoardPosition(); }