diff options
Diffstat (limited to 'src/main/java/fr')
-rw-r--r-- | src/main/java/fr/umlv/java/wallj/board/BoardConverter.java | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/src/main/java/fr/umlv/java/wallj/board/BoardConverter.java b/src/main/java/fr/umlv/java/wallj/board/BoardConverter.java index 9f5736a..0f8359b 100644 --- a/src/main/java/fr/umlv/java/wallj/board/BoardConverter.java +++ b/src/main/java/fr/umlv/java/wallj/board/BoardConverter.java | |||
@@ -1,5 +1,43 @@ | |||
1 | package fr.umlv.java.wallj.board; | 1 | package fr.umlv.java.wallj.board; |
2 | 2 | ||
3 | public class BoardConverter { | 3 | import fr.umlv.java.wallj.model.*; |
4 | |||
5 | import java.util.ArrayList; | ||
6 | import java.util.List; | ||
7 | |||
8 | /** | ||
9 | * @author Adam NAILI | ||
10 | */ | ||
11 | public final class BoardConverter { | ||
4 | //TODO | 12 | //TODO |
13 | private BoardConverter() { | ||
14 | } | ||
15 | |||
16 | public static Board worldToBoard(List<Block> blocks) { | ||
17 | int width = blocks.stream().map(Block::getTile).mapToInt(TileVec2::getRow).max().orElse(-1) + 1; | ||
18 | int height = blocks.stream().map(Block::getTile).mapToInt(TileVec2::getCol).max().orElse(-1) + 1; | ||
19 | |||
20 | Board.Builder builder = new Board.Builder(width, height); | ||
21 | for (Block block : blocks) { | ||
22 | builder.setBlockTypeAt(block.getTile(), block.getType()); | ||
23 | } | ||
24 | return builder.build(); | ||
25 | } | ||
26 | |||
27 | public static List<Block> boardToWorld(Board board) { | ||
28 | ArrayList<Block> blocks = new ArrayList<>(); | ||
29 | int nbRow = board.getDim().getRow(); | ||
30 | int nbCol = board.getDim().getCol(); | ||
31 | for (int i = 0; i < nbRow; i++) { | ||
32 | for (int j = 0; i < nbCol; j++) { | ||
33 | Block block; | ||
34 | TileVec2 location = TileVec2.of(i, j); | ||
35 | block = BlockFactory.build(board.getBlockTypeAt(location), location); | ||
36 | if (block != null) { | ||
37 | blocks.add(block); | ||
38 | } | ||
39 | } | ||
40 | } | ||
41 | return blocks; | ||
42 | } | ||
5 | } | 43 | } |