diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2014-09-29 23:51:20 +0200 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2014-09-29 23:51:20 +0200 |
commit | d3b9d0f40f23d9ae6439e733a7e41c0d0a2899c3 (patch) | |
tree | 9a77056bc2741566cad5e134f7868babb754c5f0 /core/src/ch/asynk/tankontank/engine | |
parent | 6e04839bd5e0189e99d72a20d7dce6d918fb4439 (diff) | |
download | RustAndDust-d3b9d0f40f23d9ae6439e733a7e41c0d0a2899c3.zip RustAndDust-d3b9d0f40f23d9ae6439e733a7e41c0d0a2899c3.tar.gz |
add lineOfSight testing code
Diffstat (limited to 'core/src/ch/asynk/tankontank/engine')
-rw-r--r-- | core/src/ch/asynk/tankontank/engine/Board.java | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/core/src/ch/asynk/tankontank/engine/Board.java b/core/src/ch/asynk/tankontank/engine/Board.java index 440f38b..871f9e8 100644 --- a/core/src/ch/asynk/tankontank/engine/Board.java +++ b/core/src/ch/asynk/tankontank/engine/Board.java @@ -348,6 +348,25 @@ public abstract class Board implements Disposable return areaPoints; } + public List<GridPoint2> lineOfSight(int col0, int row0, int col1, int row1) + { + for (GridPoint2 p : areaPoints) + gridPoint2Pool.free(p); + areaPoints.clear(); + + for (SearchBoard.Node node : searchBoard.lineOfSight(col0, row0, col1, row1)) { + GridPoint2 point = gridPoint2Pool.obtain(); + if (point != null) { + point.set(node.col, node.row); + areaPoints.add(point); + } else { + System.err.println("null point"); + } + } + + return areaPoints; + } + public void disableOverlaysOn(int col, int row) { disableOverlaysOn(getTile(col, row)); @@ -413,6 +432,11 @@ public abstract class Board implements Disposable return n; } + public Vector2 getTileCenter(int col, int row) + { + return getTile(col, row).getCenter(); + } + public Vector2 getPawnPosAt(Pawn pawn, GridPoint2 tile) { return getPawnPosAt(pawn, tile.x, tile.y); |