summaryrefslogtreecommitdiffstats
path: root/core/src/ch/asynk/gdx/boardgame/Overlays.java
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2018-10-18 16:48:50 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2018-10-18 16:48:50 +0200
commit3be9db7d4d603791727b2cb3bcec7ae38d3cda50 (patch)
tree4d61605148fd394bb9523b0f8207132769b7ef21 /core/src/ch/asynk/gdx/boardgame/Overlays.java
parentab02adb2df8edd794c036547fb61e7f904da780c (diff)
downloadgdx-boardgame-3be9db7d4d603791727b2cb3bcec7ae38d3cda50.zip
gdx-boardgame-3be9db7d4d603791727b2cb3bcec7ae38d3cda50.tar.gz
kill pieces subdirectory for now
Diffstat (limited to 'core/src/ch/asynk/gdx/boardgame/Overlays.java')
-rw-r--r--core/src/ch/asynk/gdx/boardgame/Overlays.java118
1 files changed, 118 insertions, 0 deletions
diff --git a/core/src/ch/asynk/gdx/boardgame/Overlays.java b/core/src/ch/asynk/gdx/boardgame/Overlays.java
new file mode 100644
index 0000000..fb77d55
--- /dev/null
+++ b/core/src/ch/asynk/gdx/boardgame/Overlays.java
@@ -0,0 +1,118 @@
+package ch.asynk.gdx.boardgame;
+
+import com.badlogic.gdx.graphics.g2d.Sprite;
+import com.badlogic.gdx.graphics.g2d.Batch;
+import com.badlogic.gdx.graphics.g2d.TextureAtlas;
+import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
+import com.badlogic.gdx.utils.Array;
+
+import ch.asynk.gdx.boardgame.Drawable;
+import ch.asynk.gdx.boardgame.Positionable;
+import ch.asynk.gdx.boardgame.Rotable;
+import ch.asynk.gdx.boardgame.Scalable;
+
+public class Overlays implements Drawable, Positionable, Rotable, Scalable
+{
+ private boolean enabled[];
+ private Array<Sprite> sprites;
+
+ public Overlays(TextureAtlas atlas)
+ {
+ this.sprites = atlas.createSprites();
+ this.enabled = new boolean[sprites.size];
+ }
+
+ public void disableAll()
+ {
+ for (int i = 0; i < sprites.size; i++)
+ enabled[i] = false;
+ }
+
+ public void enable(int i, boolean enable)
+ {
+ enabled[i] = enable;
+ }
+
+ public boolean isEnabled(int i)
+ {
+ return enabled[i];
+ }
+
+ public boolean isEnabled()
+ {
+ for (int i = 0; i < sprites.size; i++) {
+ if (enabled[i]) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override public float getX() { return sprites.get(0).getX(); }
+ @Override public float getY() { return sprites.get(0).getY(); }
+ @Override public float getWidth() { return sprites.get(0).getWidth(); }
+ @Override public float getHeight() { return sprites.get(0).getHeight(); }
+
+ @Override public void translate(float dx, float dy)
+ {
+ for (Sprite sprite : sprites) {
+ sprite.translate(dx, dy);
+ }
+ }
+
+ @Override public void centerOn(float cx, float cy)
+ {
+ for (Sprite sprite : sprites) {
+ sprite.setPosition(
+ (cx - (sprite.getWidth() / 2f)),
+ (cy - (sprite.getHeight() / 2f)));
+ }
+ }
+
+ @Override public void setPosition(float x, float y)
+ {
+ for (Sprite sprite : sprites) {
+ sprite.setPosition(x, y);
+ }
+ }
+
+ @Override public float getRotation()
+ {
+ return sprites.get(0).getRotation();
+ }
+
+ @Override public void setRotation(float rotation)
+ {
+ for (Sprite sprite : sprites) {
+ sprite.setRotation(rotation);
+ }
+ }
+
+ @Override public float getScale()
+ {
+ return sprites.get(0).getScaleX();
+ }
+
+ @Override public void setScale(float scale)
+ {
+ for (Sprite sprite : sprites) {
+ sprite.setScale(scale);
+ }
+ }
+
+ @Override public void setAlpha(float alpha)
+ {
+ for (Sprite sprite : sprites) {
+ sprite.setAlpha(alpha);
+ }
+ }
+
+ @Override public void draw(Batch batch)
+ {
+ for (int i = 0, n = sprites.size; i < n; i++) {
+ if (enabled[i]) {
+ sprites.get(i).draw(batch);
+ }
+ }
+ }
+}