summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/src/ch/asynk/tankontank/engine/Pawn.java51
-rw-r--r--core/src/ch/asynk/tankontank/game/Unit.java1
2 files changed, 51 insertions, 1 deletions
diff --git a/core/src/ch/asynk/tankontank/engine/Pawn.java b/core/src/ch/asynk/tankontank/engine/Pawn.java
index 3061346..2bc78e3 100644
--- a/core/src/ch/asynk/tankontank/engine/Pawn.java
+++ b/core/src/ch/asynk/tankontank/engine/Pawn.java
@@ -4,11 +4,15 @@ import java.util.ArrayDeque;
import com.badlogic.gdx.utils.Disposable;
+import com.badlogic.gdx.graphics.g2d.Batch;
+import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
+import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.math.Vector3;
import ch.asynk.tankontank.engine.gfx.Image;
+import ch.asynk.tankontank.engine.gfx.StackedImages;
import ch.asynk.tankontank.engine.gfx.animations.MoveToAnimation;
import ch.asynk.tankontank.engine.gfx.animations.RunnableAnimation;
import ch.asynk.tankontank.engine.gfx.animations.AnimationSequence;
@@ -17,11 +21,14 @@ public abstract class Pawn extends Image implements Disposable
{
private static final float MOVE_TIME = 0.3f;
+ private StackedImages overlays;
private ArrayDeque<Vector3> path = new ArrayDeque<Vector3>();
- public Pawn(TextureRegion region)
+ public Pawn(TextureRegion region, TextureAtlas atlas)
{
super(region);
+ if (atlas != null)
+ this.overlays = new StackedImages(atlas);
}
public Vector3 getLastPosition()
@@ -65,4 +72,46 @@ public abstract class Pawn extends Image implements Disposable
return seq;
}
+
+ public boolean hasOverlayEnabled()
+ {
+ if (overlays == null) return false;
+ return overlays.isEnabled();
+ }
+
+ public boolean enableOverlay(int i, boolean enable)
+ {
+ if (overlays == null) return false;
+ overlays.enable(i, enable);
+ if (enable) return true;
+ return hasOverlayEnabled();
+ }
+
+ @Override
+ public void translate(float x, float y)
+ {
+ super.translate(x, y);
+ if (overlays != null) overlays.translate(x, y);
+ }
+
+ @Override
+ public void setPosition(float x, float y, float z)
+ {
+ super.setPosition(x, y, z);
+ if (overlays != null) overlays.setPosition(x, y, z);
+ }
+
+ @Override
+ public void draw(Batch batch, float parentAlpha)
+ {
+ super.draw(batch, parentAlpha);
+ if (overlays != null) overlays.draw(batch, parentAlpha);
+ }
+
+ @Override
+ public void drawDebug(ShapeRenderer debugShapes)
+ {
+ super.drawDebug(debugShapes);
+ if (overlays != null) overlays.drawDebug(debugShapes);
+ }
}
diff --git a/core/src/ch/asynk/tankontank/game/Unit.java b/core/src/ch/asynk/tankontank/game/Unit.java
index 31a822d..3a144b2 100644
--- a/core/src/ch/asynk/tankontank/game/Unit.java
+++ b/core/src/ch/asynk/tankontank/game/Unit.java
@@ -1,6 +1,7 @@
package ch.asynk.tankontank.game;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
+import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import ch.asynk.tankontank.engine.Pawn;