diff options
| author | Jérémy Zurcher <jeremy@asynk.ch> | 2020-06-08 23:10:37 +0200 | 
|---|---|---|
| committer | Jérémy Zurcher <jeremy@asynk.ch> | 2020-06-08 23:10:37 +0200 | 
| commit | 015c4c7cb2f1af63bb7015e5200988e3186f6384 (patch) | |
| tree | d95f935c0279157d7f0b4bf06efb0a72f3fb1d37 /test/src/ch/asynk | |
| parent | 03910af56d0dd6f49c9c911e7f89dae3665577ab (diff) | |
| download | gdx-boardgame-015c4c7cb2f1af63bb7015e5200988e3186f6384.zip gdx-boardgame-015c4c7cb2f1af63bb7015e5200988e3186f6384.tar.gz | |
HexScreen : cleanup tiles management
Diffstat (limited to 'test/src/ch/asynk')
| -rw-r--r-- | test/src/ch/asynk/gdx/boardgame/test/HexScreen.java | 29 | 
1 files changed, 12 insertions, 17 deletions
| diff --git a/test/src/ch/asynk/gdx/boardgame/test/HexScreen.java b/test/src/ch/asynk/gdx/boardgame/test/HexScreen.java index cdaa33b..ed87e3c 100644 --- a/test/src/ch/asynk/gdx/boardgame/test/HexScreen.java +++ b/test/src/ch/asynk/gdx/boardgame/test/HexScreen.java @@ -223,8 +223,8 @@ public class HexScreen extends AbstractScreen  {      private class MyBoard      { +        private final IterableSet<Tile> losTiles;          private final IterableSet<Tile> moveTiles; -        private final IterableSet<Tile> tilesToDraw;          private final Vector2 v;          private final Vector3 v3;          private final Assets assets; @@ -251,8 +251,8 @@ public class HexScreen extends AbstractScreen              this.panzer = new Unit(assets.getTexture(assets.PANZER), true);              this.engineer = new Unit(assets.getTexture(assets.ENGINEER), false);              this.line = new Sprite(assets.getTexture(assets.LINE)); +            this.losTiles = new IterableSet<Tile>(15);              this.moveTiles = new IterableSet<Tile>(20); -            this.tilesToDraw = new IterableSet<Tile>(15);              Tile.defaultOverlay = assets.getAtlas(app.assets.HEX_OVERLAYS);          } @@ -262,8 +262,8 @@ public class HexScreen extends AbstractScreen          public void draw(SpriteBatch batch)          {              batch.draw(map, dx, dy, map.getWidth()/2, map.getHeight()/2, map.getWidth(), map.getHeight(), 1, 1, r, 0, 0, map.getWidth(), map.getHeight(), false, false); +            for (Tile tile: losTiles) tile.draw(batch);              for (Tile tile: moveTiles) tile.draw(batch); -            for (Tile tile: tilesToDraw) tile.draw(batch);              panzer.draw(batch);              engineer.draw(batch);              line.draw(batch); @@ -272,14 +272,14 @@ public class HexScreen extends AbstractScreen          public void reset()          {              board.centerOf(0, 0, v); +            losTiles.clear();              moveTiles.clear(); -            tilesToDraw.clear();              v.set(0, 0);              h0 = getHex(0, 0);              setUnitOn(panzer, h0.x, h0.y, Orientation.DEFAULT);              h1 = getHex(8, 5);              setUnitOn(engineer, h1.x, h1.y, Orientation.SW); -            updateLine(); +            updateUnit(h0, panzer);          }          private void setUnitOn(Unit unit, int x, int y, Orientation o) @@ -327,13 +327,11 @@ public class HexScreen extends AbstractScreen                  h0 = hex;              else                  h1 = hex; -            updateLine(); -            for (Tile tile: moveTiles) tile.enableOverlay(3, false); +            for (Tile tile: losTiles) tile.disableOverlays(); +            for (Tile tile: moveTiles) tile.disableOverlays();              board.possibleMoves(u, hex, moveTiles); -            for (Tile tile: moveTiles) { -                tile.enableOverlay(3, true); -                tilesToDraw.remove(tile); -            } +            for (Tile tile: moveTiles) tile.enableOverlay(3, true); +            updateLine();          }          private void updateLine() @@ -347,14 +345,11 @@ public class HexScreen extends AbstractScreen              line.setPosition(x0, y0);              line.setSize(d, line.getHeight());              line.setRotation((float) Math.toDegrees(Math.atan2(dy, dx))); -            for (Tile tile: tilesToDraw) { -                tile.enableOverlay(0, false); -                tile.enableOverlay(2, false); -            } -            board.lineOfSight(h0, h1, tilesToDraw); -            for (Tile tile: tilesToDraw) { +            board.lineOfSight(h0, h1, losTiles); +            for (Tile tile: losTiles) {                  if (tile.blocked) tile.enableOverlay(0, Orientation.N);                  else tile.enableOverlay(2, Orientation.N); +                moveTiles.remove(tile);              }          } | 
