summaryrefslogtreecommitdiffstats
path: root/core/src/ch/asynk/tankontank/engine
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2014-09-23 17:16:51 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2014-09-23 17:16:51 +0200
commit9ee2981d965be9c937d87cfdb0821b7b9a407bf0 (patch)
tree4ab2fde5882a4b71992f67cfb6e8ddfff7aef2d4 /core/src/ch/asynk/tankontank/engine
parentca172c2ab35280a27a89ce1da1bfebca4923b849 (diff)
downloadRustAndDust-9ee2981d965be9c937d87cfdb0821b7b9a407bf0.zip
RustAndDust-9ee2981d965be9c937d87cfdb0821b7b9a407bf0.tar.gz
board allocation goes into Board, hex setup goes into MapA extends Map
Diffstat (limited to 'core/src/ch/asynk/tankontank/engine')
-rw-r--r--core/src/ch/asynk/tankontank/engine/Board.java19
-rw-r--r--core/src/ch/asynk/tankontank/engine/Tile.java2
2 files changed, 18 insertions, 3 deletions
diff --git a/core/src/ch/asynk/tankontank/engine/Board.java b/core/src/ch/asynk/tankontank/engine/Board.java
index dc6ce63..a78e3b0 100644
--- a/core/src/ch/asynk/tankontank/engine/Board.java
+++ b/core/src/ch/asynk/tankontank/engine/Board.java
@@ -58,7 +58,7 @@ public abstract class Board extends Image implements Disposable
}
private Config cfg;
- private Tile[][] board;
+ protected Tile[][] board;
boolean transform;
private Matrix4 prevTransform;
@@ -72,11 +72,24 @@ public abstract class Board extends Image implements Disposable
private final LinkedHashSet<Tile> tilesToDraw = new LinkedHashSet<Tile>();
protected final LinkedHashSet<Pawn> pawnsToDraw = new LinkedHashSet<Pawn>();
- public Board(Config cfg, Tile[][] board, Texture texture)
+ public Board(Config cfg, Texture texture, Tile tileBuilder)
{
super(texture);
this.cfg = cfg;
- this.board = board;
+
+ this.board = new Tile[cfg.rows][];
+ boolean evenRow = true;
+ for (int i = 0; i < cfg.rows; i++) {
+ float y = cfg.y0 + (i * cfg.h) - cfg.dh;
+ int c = (evenRow ? cfg.cols : cfg.cols - 1);
+ this.board[i] = new Tile[c];
+ for ( int j = 0; j < c; j ++) {
+ float x = cfg.x0 + (j * cfg.w);
+ if (!evenRow) x += cfg.dw;
+ this.board[i][j] = tileBuilder.getNewAt(x, y);
+ }
+ evenRow = !evenRow;
+ }
}
@Override
diff --git a/core/src/ch/asynk/tankontank/engine/Tile.java b/core/src/ch/asynk/tankontank/engine/Tile.java
index d517b27..85987d6 100644
--- a/core/src/ch/asynk/tankontank/engine/Tile.java
+++ b/core/src/ch/asynk/tankontank/engine/Tile.java
@@ -15,6 +15,8 @@ public abstract class Tile implements BasicDrawable
private StackedImages overlays;
private ArrayDeque<Pawn> stack;
+ public abstract Tile getNewAt(float x, float y);
+
public Tile(TextureAtlas atlas)
{
this.stack = null;