diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2018-09-14 09:13:20 +0200 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2018-09-14 09:13:20 +0200 |
commit | 76c4a8eccdc276583c215e5ad09b5fb2f07ac53e (patch) | |
tree | 8e026033a22f2b4d3dfe02235ab40d897309321e /core/src/ch/asynk/zproject/engine | |
parent | a3cc66dc1fe2f468b234083baacd82a37c51fd3f (diff) | |
download | gdx-boardgame-76c4a8eccdc276583c215e5ad09b5fb2f07ac53e.zip gdx-boardgame-76c4a8eccdc276583c215e5ad09b5fb2f07ac53e.tar.gz |
ch/asynk/zproject/engine -> ch/asynk/gdx/board
Diffstat (limited to 'core/src/ch/asynk/zproject/engine')
20 files changed, 0 insertions, 1240 deletions
diff --git a/core/src/ch/asynk/zproject/engine/Assets.java b/core/src/ch/asynk/zproject/engine/Assets.java deleted file mode 100644 index c421aff..0000000 --- a/core/src/ch/asynk/zproject/engine/Assets.java +++ /dev/null @@ -1,30 +0,0 @@ -package ch.asynk.gdx.board.engine; - -import com.badlogic.gdx.assets.AssetManager; -import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.g2d.BitmapFont; -import com.badlogic.gdx.graphics.g2d.NinePatch; -import com.badlogic.gdx.graphics.g2d.TextureAtlas; - -public class Assets extends AssetManager -{ - public Texture getTexture(String assetName) - { - return get(assetName, Texture.class); - } - - public NinePatch getNinePatch(String assetName, int left, int right, int top, int bottom) - { - return new NinePatch(get(assetName, Texture.class), left, right, top, bottom); - } - - public TextureAtlas getAtlas(String assetName) - { - return get(assetName, TextureAtlas.class); - } - - public BitmapFont getFont(String assetName) - { - return get(assetName, BitmapFont.class); - } -} diff --git a/core/src/ch/asynk/zproject/engine/Board.java b/core/src/ch/asynk/zproject/engine/Board.java deleted file mode 100644 index 9487e1d..0000000 --- a/core/src/ch/asynk/zproject/engine/Board.java +++ /dev/null @@ -1,9 +0,0 @@ -package ch.asynk.gdx.board.engine; - -import com.badlogic.gdx.math.Vector2; - -public interface Board -{ - public void centerOf(int x, int y, Vector2 v); - public void toBoard(float x, float y, Vector2 v); -} diff --git a/core/src/ch/asynk/zproject/engine/Camera.java b/core/src/ch/asynk/zproject/engine/Camera.java deleted file mode 100644 index a560d85..0000000 --- a/core/src/ch/asynk/zproject/engine/Camera.java +++ /dev/null @@ -1,218 +0,0 @@ -package ch.asynk.gdx.board.engine; - -import com.badlogic.gdx.graphics.glutils.HdpiUtils; -import com.badlogic.gdx.graphics.OrthographicCamera; - -import com.badlogic.gdx.math.Rectangle; -import com.badlogic.gdx.math.Vector3; -import com.badlogic.gdx.math.MathUtils; -import com.badlogic.gdx.math.Matrix4; - -public class Camera extends OrthographicCamera -{ - private static final float ZEROF = 0.01f; - - private int padding; - private float boardWidth; - private float boardHeight; - private float boardAspectRatio; - private float zoomMax; - private float zoomMin; - private int screenWidth; - private int screenHeight; - private float widthFactor; - private float heightFactor; - private Rectangle viewport; - - private Rectangle hud; - private Matrix4 hudMatrix; - private Matrix4 hudInvProjMatrix; - private int hudLeft; - private int hudBottom; - private boolean hudInBoard; - - public Camera(int padding, float boardWidth, float boardHeight, float zoomMax, float zoomMin, boolean hudInBoard) - { - super(boardWidth, boardHeight); - this.boardWidth = boardWidth; - this.boardHeight = boardHeight; - this.padding = padding; - this.boardAspectRatio = (boardWidth / boardHeight); - this.zoomMax = zoomMax; - this.zoomMin = zoomMin; - this.viewport = new Rectangle(); - - this.hudInBoard = hudInBoard; - this.hud = new Rectangle(); - this.hudMatrix = new Matrix4(); - this.hudInvProjMatrix = new Matrix4(); - } - - public void setDimension(float boardWidth, float boardHeight) - { - setToOrtho(false, boardWidth, boardHeight); - this.boardWidth = boardWidth; - this.boardHeight = boardHeight; - this.boardAspectRatio = (boardWidth / boardHeight); - } - - public void updateViewport(int screenWidth, int screenHeight) - { - this.screenWidth = screenWidth; - this.screenHeight = screenHeight; - - float screenAvailableWidth = screenWidth - (2 * padding); - float screenAvailableHeight = screenHeight - (2 * padding); - float screenAspectRatio = (screenWidth / (float) screenHeight); - float diff = (boardAspectRatio - screenAspectRatio); - - if (diff <= -ZEROF) { - // screen wider than board : use max height, width grows up until max available on zooming - viewport.height = screenAvailableHeight; - viewport.width = java.lang.Math.min((screenAvailableHeight * boardAspectRatio / zoom), screenAvailableWidth); - viewport.x = padding + ((screenAvailableWidth - viewport.width) / 2f); - viewport.y = padding; - // camera aspect ratio must follow viewport aspect ration - viewportHeight = boardHeight; - viewportWidth = (viewportHeight * (viewport.width / viewport.height)); - // hud - hud.y = 0; - hud.x = (hud.y * viewportWidth / viewportHeight); - } else if (diff > ZEROF) { - // word is wider than screen : use max width, height grows up until max available on zooming - viewport.width = screenAvailableWidth; - viewport.height = java.lang.Math.min((screenAvailableWidth / boardAspectRatio / zoom), screenAvailableHeight); - viewport.y = padding + ((screenAvailableHeight - viewport.height) / 2f); - viewport.x = padding; - // camera aspect ratio must follow viewport aspect ration - viewportWidth = boardWidth; - viewportHeight = (viewportWidth * (viewport.height / viewport.width)); - // hud - hud.x = 0; - hud.y = (hud.x * viewportHeight / viewportWidth); - } - - if (hudInBoard) { - hud.x = 0; - hud.y = 0; - hud.width = screenWidth; - hud.height = screenHeight; - } else { - hud.width = (viewport.width - (2 * hud.x)); - hud.height = (viewport.height - (2 * hud.y)); - } - - // ratio viewport -> camera - widthFactor = (viewportWidth / viewport.width); - heightFactor = (viewportHeight / viewport.height); - - clampPosition(); - update(true); - - hudMatrix.setToOrtho2D(hud.x, hud.y, hud.width, hud.height); - hudInvProjMatrix.set(hudMatrix); - Matrix4.inv(hudInvProjMatrix.val); - } - - public void applyMapViewport() - { - HdpiUtils.glViewport((int)viewport.x, (int)viewport.y, (int)viewport.width, (int)viewport.height); - } - - public void applyHudViewport() - { - if (hudInBoard) - HdpiUtils.glViewport(0, 0, screenWidth, screenHeight); - else - applyMapViewport(); - } - - public void centerOnWorld() - { - position.set((boardWidth / 2f), (boardHeight / 2f), 0f); - } - - public void zoom(float dz) - { - zoom += dz; - clampZoom(); - } - - public void clampZoom() - { - zoom = MathUtils.clamp(zoom, zoomMin, zoomMax); - } - - public void translate(float dx, float dy) - { - float deltaX = (dx * zoom * widthFactor); - float deltaY = (dy * zoom * heightFactor); - translate(deltaX, -deltaY, 0); - clampPosition(); - update(true); - } - - public void clampPosition() - { - float cameraWidth = (viewportWidth * zoom); - float cameraHeight = (viewportHeight * zoom); - - // on each axis, clamp on [ cameraDim/2 ; boardDim - cameraDim/2 ] - - if ((boardWidth - cameraWidth) > ZEROF) { - cameraWidth /= 2f; - position.x = MathUtils.clamp(position.x, cameraWidth, (boardWidth - cameraWidth)); - } else { - position.x = (boardWidth / 2f); - } - - if ((boardHeight - cameraHeight) > ZEROF) { - cameraHeight /= 2f; - position.y = MathUtils.clamp(position.y, cameraHeight, (boardHeight - cameraHeight)); - } else { - position.y = (boardHeight / 2f); - } - } - - public void unproject(int x, int y, Vector3 v) - { - unproject(v.set(x, y, 0), viewport.x, viewport.y, viewport.width, viewport.height); - } - - public void unprojectHud(float x, float y, Vector3 v) - { - Rectangle r = (hudInBoard ? hud : viewport); - x = x - r.x; - y = screenHeight - y - 1; - y = y - r.y; - v.x = (2 * x) / r.width - 1; - v.y = (2 * y) / r.height - 1; - v.z = 2 * v.z - 1; - v.prj(hudInvProjMatrix); - } - - public int getScreenWidth() - { - return screenWidth; - } - - public int getScreenHeight() - { - return screenHeight; - } - - public Matrix4 getHudMatrix() - { - return hudMatrix; - } - - public Rectangle getViewport() - { - return viewport; - } - - public Rectangle getHud() - { - return hud; - } -} diff --git a/core/src/ch/asynk/zproject/engine/Drawable.java b/core/src/ch/asynk/zproject/engine/Drawable.java deleted file mode 100644 index 300dd38..0000000 --- a/core/src/ch/asynk/zproject/engine/Drawable.java +++ /dev/null @@ -1,19 +0,0 @@ -package ch.asynk.gdx.board.engine; - -import com.badlogic.gdx.graphics.g2d.Batch; -import com.badlogic.gdx.graphics.glutils.ShapeRenderer; - -public interface Drawable -{ - public float getX(); - public float getY(); - public float getWidth(); - public float getHeight(); - public float getInnerX(); - public float getInnerY(); - public float getInnerWidth(); - public float getInnerHeight(); - public void draw(Batch batch); - default public void drawDebug(ShapeRenderer debugShapes) { } - public void setPosition(float x, float y, float w, float h); -} diff --git a/core/src/ch/asynk/zproject/engine/Touchable.java b/core/src/ch/asynk/zproject/engine/Touchable.java deleted file mode 100644 index a1390be..0000000 --- a/core/src/ch/asynk/zproject/engine/Touchable.java +++ /dev/null @@ -1,6 +0,0 @@ -package ch.asynk.gdx.board.engine; - -public interface Touchable -{ - public boolean touch(float x, float y); -} diff --git a/core/src/ch/asynk/zproject/engine/board/BoardFactory.java b/core/src/ch/asynk/zproject/engine/board/BoardFactory.java deleted file mode 100644 index 7c472b9..0000000 --- a/core/src/ch/asynk/zproject/engine/board/BoardFactory.java +++ /dev/null @@ -1,40 +0,0 @@ -package ch.asynk.gdx.board.engine.board; - -import ch.asynk.gdx.board.engine.Board; - -public class BoardFactory -{ - public enum BoardType - { - HEX, SQUARE, - } - - public enum BoardOrientation - { - VERTICAL, - HORIZONTAL, - } - - public static Board getBoard(BoardType boardType, float side) - { - return getBoard(boardType, side, 0f, 0f, BoardOrientation.VERTICAL); - } - - public static Board getBoard(BoardType boardType, float side, float x0, float y0) - { - return getBoard(boardType, side, x0, y0, BoardOrientation.VERTICAL); - } - - public static Board getBoard(BoardType boardType, float side, float x0, float y0, BoardOrientation boardOrientation) - { - switch(boardType) - { - case HEX: - return new HexBoard(side, x0, y0, boardOrientation); - case SQUARE: - return new SquareBoard(side, x0, y0); - default: - throw new RuntimeException( String.format("%s board type is not implemented yet.", boardType) ); - } - } -} diff --git a/core/src/ch/asynk/zproject/engine/board/HexBoard.java b/core/src/ch/asynk/zproject/engine/board/HexBoard.java deleted file mode 100644 index d639e0c..0000000 --- a/core/src/ch/asynk/zproject/engine/board/HexBoard.java +++ /dev/null @@ -1,144 +0,0 @@ -package ch.asynk.gdx.board.engine.board; - -import com.badlogic.gdx.math.Vector2; - -import ch.asynk.gdx.board.engine.Board; - -public class HexBoard implements Board -{ - private float side; // length of the side of the hex - private float x0; // bottom left x offset - private float y0; // bottom left y offset - private BoardFactory.BoardOrientation orientation; - - private float w; // side to side orthogonal distance - private float dw; // half hex : w/2 - private float dh; // hex top : s/2 - private float h; // square height : s + dh - private float slope; // dh / dw - - // BoardOrientation.VERTICAL : 2 vertical sides : 2 vertices pointing up and down - // coordinates - // \ - // \___ - // cols are horizontal - // rows are at -120° - // bottom left is the bottom vertice of the most bottom-left vertical hex side of the map - // - // BoardOrientation.HORIZONTAL : 2 horizontal sides : 2 vertices pointing left and right - // coordinates - // | - // | - // \ - // \ - // cols are at +120° - // rows are vertical° - // bottom left is the left vertice of the most bottom-left horizontal hex side of the map - - public HexBoard(float side, float x0, float y0, BoardFactory.BoardOrientation boardOrientation) - { - this.side = side; - this.x0 = x0; - this.y0 = y0; - this.orientation = boardOrientation; - - this.w = side * 1.73205f; - this.dw = w / 2.0f; - this.dh = side / 2.0f; - this.h = side + dh; - this.slope = dh / dw; - } - - @Override public void centerOf(int x, int y, Vector2 v) - { - float cx = this.x0; - float cy = this.y0; - - if (this.orientation == BoardFactory.BoardOrientation.VERTICAL) { - cx += (this.dw + (x * this.w) - (y * this.dw)); - cy += (this.dh + (y * this.h)); - } else { - cx += (this.dh + (x * this.h)); - cy += (this.dw + (y * this.w) - (x * this.dw)); - } - - v.set(cx, cy); - } - - @Override public void toBoard(float x, float y, Vector2 v) - { - int col = -1; - int row = -1; - - if (this.orientation == BoardFactory.BoardOrientation.VERTICAL) { - // compute row - float dy = y - this.y0; - row = (int) (dy / this.h); - if (dy < 0.f) { - row -= 1; - } - - // compute col - float dx = x - this.x0 + (row * this.dw); - col = (int) (dx / this.w); - if (dx < 0f) { - col -= 1; - } - - // upper rectangle or hex body - if (dy > ((row * this.h) + this.side)) { - dy -= ((row * this.h) + this.side); - dx -= (col * this.w); - // upper left or right rectangle - if (dx < this.dw) { - if (dy > (dx * this.slope)) { - // upper left hex - row += 1; - } - } else { - // if (dy > ((2 * this.dh) - (dx * this.slope))) { - if (dy > ((this.w - dx) * this.slope)) { - // upper right hex - row += 1; - col += 1; - } - } - } - } else { - // compute col - float dx = x - this.x0; - col = (int) (dx / this.h); - if (dx < 0.f) { - col -= 1; - } - - // compute row - float dy = y - this.y0 + (col * this.dw); - row = (int) (dy / this.w); - if (dy < 0f) { - row -= 1; - } - - // right rectangle or hex body - if (dx > ((col * this.h) + this.side)) { - dx -= ((col * this.h) + this.side); - dy -= (row * this.w); - // upper or lower rectangle - if (dy > ((this.dw - dx) / this.slope)) { - if (dy > ((2 * this.dw) - (dx / this.slope))) { - // upper right hex - col += 1; - row += 1; - } - } else { - if (dy < (dx / this.slope)) { - // lower right hex - col += 1; - } - } - } - } - - v.set(col, row); - } -} diff --git a/core/src/ch/asynk/zproject/engine/board/SquareBoard.java b/core/src/ch/asynk/zproject/engine/board/SquareBoard.java deleted file mode 100644 index 824084f..0000000 --- a/core/src/ch/asynk/zproject/engine/board/SquareBoard.java +++ /dev/null @@ -1,35 +0,0 @@ -package ch.asynk.gdx.board.engine.board; - -import com.badlogic.gdx.math.Vector2; - -import ch.asynk.gdx.board.engine.Board; - -public class SquareBoard implements Board -{ - private float side; // length of the side of a square - private float x0; // bottom left x offset - private float y0; // bottom left y offset - - public SquareBoard(float side, float x0, float y0) - { - this.side = side; - this.x0 = x0; - this.y0 = y0; - } - - @Override public void centerOf(int x, int y, Vector2 v) - { - float cx = this.x0 + (this.side / 2) + (this.side * x); - float cy = this.y0 + (this.side / 2) + (this.side * y); - - v.set(cx, cy); - } - - @Override public void toBoard(float x, float y, Vector2 v) - { - int col = (int) ((x - this.x0) / this.side); - int row = (int) ((y - this.y0) / this.side); - - v.set(col, row); - } -} diff --git a/core/src/ch/asynk/zproject/engine/ui/Alignment.java b/core/src/ch/asynk/zproject/engine/ui/Alignment.java deleted file mode 100644 index 6f2fa12..0000000 --- a/core/src/ch/asynk/zproject/engine/ui/Alignment.java +++ /dev/null @@ -1,168 +0,0 @@ -package ch.asynk.gdx.board.engine.ui; - -public enum Alignment -{ - ABSOLUTE, // Root - RELATIVE, // Default - TOP_LEFT, - TOP_RIGHT, - TOP_CENTER, - MIDDLE_LEFT, - MIDDLE_RIGHT, - MIDDLE_CENTER, - BOTTOM_LEFT, - BOTTOM_RIGHT, - BOTTOM_CENTER; - - public Alignment verticalMirror() - { - switch(this) { - case TOP_LEFT: - return TOP_RIGHT; - case MIDDLE_LEFT: - return MIDDLE_RIGHT; - case BOTTOM_LEFT: - return BOTTOM_RIGHT; - case TOP_RIGHT: - return TOP_LEFT; - case MIDDLE_RIGHT: - return MIDDLE_LEFT; - case BOTTOM_RIGHT: - return BOTTOM_LEFT; - } - return this; - } - - public Alignment horizontalMirror() - { - switch(this) { - case TOP_LEFT: - return BOTTOM_LEFT; - case TOP_CENTER: - return BOTTOM_CENTER; - case TOP_RIGHT: - return BOTTOM_RIGHT; - case BOTTOM_LEFT: - return TOP_LEFT; - case BOTTOM_CENTER: - return TOP_CENTER; - case BOTTOM_RIGHT: - return TOP_RIGHT; - } - return this; - } - - public boolean isTop() - { - switch(this) { - case TOP_LEFT: - case TOP_CENTER: - case TOP_RIGHT: - return true; - } - return false; - } - - public boolean isMiddle() - { - boolean r = false; - switch(this) { - case MIDDLE_LEFT: - case MIDDLE_CENTER: - case MIDDLE_RIGHT: - return true; - } - return false; - } - - public boolean isBottom() - { - boolean r = false; - switch(this) { - case BOTTOM_LEFT: - case BOTTOM_CENTER: - case BOTTOM_RIGHT: - return true; - } - return false; - } - - public boolean isLeft() - { - boolean r = false; - switch(this) { - case TOP_LEFT: - case MIDDLE_LEFT: - case BOTTOM_LEFT: - return true; - } - return false; - } - - public boolean isRight() - { - boolean r = false; - switch(this) { - case TOP_RIGHT: - case MIDDLE_RIGHT: - case BOTTOM_RIGHT: - return true; - } - return false; - } - - public boolean isCenter() - { - switch(this) { - case TOP_CENTER: - case MIDDLE_CENTER: - case BOTTOM_CENTER: - return true; - } - return false; - } - - public float getX(Element element, float width) - { - float x = element.getInnerX(); - switch(this) { - case TOP_LEFT: - case MIDDLE_LEFT: - case BOTTOM_LEFT: - break; - case TOP_CENTER: - case MIDDLE_CENTER: - case BOTTOM_CENTER: - x += ((element.getInnerWidth() - width) / 2); - break; - case TOP_RIGHT: - case MIDDLE_RIGHT: - case BOTTOM_RIGHT: - x += (element.getInnerWidth() - width); - break; - } - return x; - } - - public float getY(Element element, float height) - { - float y = element.getInnerY(); - switch(this) { - case TOP_LEFT: - case TOP_CENTER: - case TOP_RIGHT: - y += (element.getInnerHeight() - height); - break; - case MIDDLE_LEFT: - case MIDDLE_CENTER: - case MIDDLE_RIGHT: - y += ((element.getInnerHeight() - height) / 2); - break; - case BOTTOM_LEFT: - case BOTTOM_CENTER: - case BOTTOM_RIGHT: - break; - } - return y; - } -} diff --git a/core/src/ch/asynk/zproject/engine/ui/Assembly.java b/core/src/ch/asynk/zproject/engine/ui/Assembly.java deleted file mode 100644 index dbd0c97..0000000 --- a/core/src/ch/asynk/zproject/engine/ui/Assembly.java +++ /dev/null @@ -1,62 +0,0 @@ -package ch.asynk.gdx.board.engine.ui; - -import com.badlogic.gdx.graphics.g2d.Batch; -import com.badlogic.gdx.graphics.glutils.ShapeRenderer; - -import ch.asynk.gdx.board.engine.util.IterableSet; - -public abstract class Assembly extends Element -{ - private IterableSet<Element> children; - private Element touched; - - public Assembly(int c) - { - this.children = new IterableSet<Element>(c); - } - - public void add(Element e) - { - if (children.add(e)) { - e.setParent(this); - } - } - - public void remove(Element e) - { - if (children.remove(e)) { - e.setParent(null); - } - } - - public Element touched() - { - return touched; - } - - @Override public boolean touch(float x, float y) - { - for (Element e : children) - if (e.touch(x, y)) { - touched = e; - return true; - } - touched = null; - return false; - } - - @Override public void update() - { - children.forEach( c -> c.update() ); - } - - @Override public void draw(Batch batch) - { - children.forEach( c -> c.draw(batch) ); - } - - @Override public void drawDebug(ShapeRenderer debugShapes) - { - children.forEach( c -> c.drawDebug(debugShapes) ); - } -} diff --git a/core/src/ch/asynk/zproject/engine/ui/Button.java b/core/src/ch/asynk/zproject/engine/ui/Button.java deleted file mode 100644 index 281dc49..0000000 --- a/core/src/ch/asynk/zproject/engine/ui/Button.java +++ /dev/null @@ -1,65 +0,0 @@ -package ch.asynk.gdx.board.engine.ui; - -import com.badlogic.gdx.graphics.g2d.Batch; -import com.badlogic.gdx.graphics.g2d.BitmapFont; -import com.badlogic.gdx.graphics.g2d.NinePatch; -import com.badlogic.gdx.graphics.glutils.ShapeRenderer; - -public class Button extends Patch -{ - private Label label; - private float spacing; - - public Button(BitmapFont font, NinePatch patch) - { - this(font, patch, 0, 0); - } - - public Button(BitmapFont font, NinePatch patch, float padding, float spacing) - { - super(patch); - this.padding = padding; - this.spacing = spacing; - label = new Label(font); - label.setParent(this); - label.setAlignment(Alignment.MIDDLE_CENTER); - } - - public void write(String text) - { - write(text, getX(), getY()); - } - - public void write(String text, float x, float y) - { - label.write(text, x, y); - } - - public void setLabelAlignment(Alignment alignment) - { - label.setAlignment(alignment); - } - - @Override public void update() - { - label.preUpdate(); // compute width and height - rect.width = label.getWidth() + 2 * (padding + spacing); - rect.height = label.getHeight() + 2 * (padding + spacing); - super.update(); - label.doUpdate(); // compute x and y - label.postUpdate(); // compute fx and fy - } - - @Override public void draw(Batch batch) - { - if (!visible) return; - super.draw(batch); - label.draw(batch); - } - - @Override public void drawDebug(ShapeRenderer debugShapes) - { - super.drawDebug(debugShapes); - label.drawDebug(debugShapes); - } -} diff --git a/core/src/ch/asynk/zproject/engine/ui/Element.java b/core/src/ch/asynk/zproject/engine/ui/Element.java deleted file mode 100644 index fc1d985..0000000 --- a/core/src/ch/asynk/zproject/engine/ui/Element.java +++ /dev/null @@ -1,112 +0,0 @@ -package ch.asynk.gdx.board.engine.ui; - -import com.badlogic.gdx.graphics.glutils.ShapeRenderer; -import com.badlogic.gdx.math.Rectangle; - -import ch.asynk.gdx.board.engine.Drawable; -import ch.asynk.gdx.board.engine.Touchable; - -public abstract class Element implements Drawable, Touchable -{ - public boolean blocked; - public boolean visible; - protected float padding; - protected Element parent; - protected Alignment alignment; - protected Rectangle rect; // drawing coordinates - protected float x, y; // given position - - protected Element() - { - this.blocked = false; - this.visible = true; - this.padding = 0; - this.rect = new Rectangle(0, 0, 0, 0); - this.parent = null; - this.alignment = alignment.RELATIVE; - this.x = this.y = 0; - } - - @Override public final float getX() { return rect.x; } - @Override public final float getY() { return rect.y; } - @Override public final float getWidth() { return rect.width; } - @Override public final float getHeight() { return rect.height; } - - @Override public final float getInnerX() { return rect.x + padding; } - @Override public final float getInnerY() { return rect.y + padding; } - @Override public final float getInnerWidth() { return rect.width - 2 * padding; } - @Override public final float getInnerHeight() { return rect.height - 2 * padding; } - - @Override public void drawDebug(ShapeRenderer debugShapes) - { - debugShapes.rect(getX(), getY(), getWidth(), getHeight()); - } - - @Override public boolean touch(float x, float y) - { - if (blocked || !visible) return false; - return rect.contains(x, y); - } - - @Override public void setPosition(float x, float y, float w, float h) - { - this.x = x; - this.y = y; - rect.width = w; - rect.height = h; - // rect.set(rec.x, y, w, h); - } - - public void setParent(Element parent) - { - this.parent = parent; - } - - public void setPadding(float padding) - { - this.padding = padding; - } - - public void setAlignment(Alignment alignment) - { - this.alignment = alignment; - } - - public final void translate(float dx, float dy) - { - setPosition(x + dx, y + dy); - } - - public final void setPosition(Rectangle r) - { - setPosition(r.x, r.x, r.width, r.height); - } - - public final void setPosition(float x, float y) - { - setPosition(x, y, rect.width, rect.height); - } - - protected void preUpdate() { } - protected void postUpdate() { } - protected void doUpdate() - { - if (alignment == Alignment.ABSOLUTE || parent == null) { - rect.x = x; - rect.y = y; - } else if (alignment == Alignment.RELATIVE) { - rect.x = x + parent.getInnerX(); - rect.y = y + parent.getInnerX(); - } else { - rect.x = x + alignment.getX(parent, rect.width); - rect.y = y + alignment.getY(parent, rect.height); - } - } - - public void update() - { - preUpdate(); - doUpdate(); - postUpdate(); - } -} diff --git a/core/src/ch/asynk/zproject/engine/ui/Label.java b/core/src/ch/asynk/zproject/engine/ui/Label.java deleted file mode 100644 index a2a60be..0000000 --- a/core/src/ch/asynk/zproject/engine/ui/Label.java +++ /dev/null @@ -1,62 +0,0 @@ -package ch.asynk.gdx.board.engine.ui; - -import com.badlogic.gdx.graphics.g2d.Batch; -import com.badlogic.gdx.graphics.g2d.BitmapFont; -import com.badlogic.gdx.graphics.g2d.GlyphLayout; - -public class Label extends Element -{ - private BitmapFont font; - private GlyphLayout layout; - private float fx; - private float fy; - private String text; - - public Label(BitmapFont font) - { - this(font, 0); - } - - public Label(BitmapFont font, float padding) - { - this(font, padding, Alignment.RELATIVE); - } - - public Label(BitmapFont font, float padding, Alignment alignment) - { - super(); - this.font = font; - this.padding = padding; - this.alignment = alignment; - this.layout = new GlyphLayout(); - } - - public void write(String text) - { - write(text, getX(), getY()); - } - - public void write(String text, float x, float y) - { - this.text = text; - setPosition(x, y); - } - - @Override protected void preUpdate() - { - this.layout.setText(font, (text == null) ? "" : text); - super.setPosition(x, y, (layout.width + (2 * padding)), (layout.height + (2 * padding))); - } - - @Override protected void postUpdate() - { - fx = getInnerX(); - fy = getInnerY() + layout.height; - } - - @Override public void draw(Batch batch) - { - if (!visible) return; - font.draw(batch, layout, fx, fy); - } -} diff --git a/core/src/ch/asynk/zproject/engine/ui/Patch.java b/core/src/ch/asynk/zproject/engine/ui/Patch.java deleted file mode 100644 index 10fecef..0000000 --- a/core/src/ch/asynk/zproject/engine/ui/Patch.java +++ /dev/null @@ -1,22 +0,0 @@ -package ch.asynk.gdx.board.engine.ui; - -import com.badlogic.gdx.graphics.g2d.Batch; -import com.badlogic.gdx.graphics.g2d.NinePatch; - -public class Patch extends Element -{ - private NinePatch patch; - - public Patch(NinePatch patch) - { - super(); - this.patch = patch; - setPosition(0, 0, patch.getTotalWidth(), patch.getTotalHeight()); - } - - @Override public void draw(Batch batch) - { - if (!visible) return; - patch.draw(batch, getX(), getY(), getWidth(), getHeight()); - } -} diff --git a/core/src/ch/asynk/zproject/engine/ui/Root.java b/core/src/ch/asynk/zproject/engine/ui/Root.java deleted file mode 100644 index 7cd2ba9..0000000 --- a/core/src/ch/asynk/zproject/engine/ui/Root.java +++ /dev/null @@ -1,16 +0,0 @@ -package ch.asynk.gdx.board.engine.ui; - -public class Root extends Assembly -{ - public Root(int c) - { - super(c); - this.alignment = Alignment.ABSOLUTE; - } - - public void resize(float width, float height) - { - setPosition(0, 0, width, height); - update(); - } -} diff --git a/core/src/ch/asynk/zproject/engine/util/Collection.java b/core/src/ch/asynk/zproject/engine/util/Collection.java deleted file mode 100644 index 426bae8..0000000 --- a/core/src/ch/asynk/zproject/engine/util/Collection.java +++ /dev/null @@ -1,28 +0,0 @@ -package ch.asynk.gdx.board.engine.util; - -import java.util.Iterator; - -public interface Collection<E> extends Iterator, Iterable<E> -{ - public int size(); - - public boolean isEmpty(); - - public void clear(); - - public void ensureCapacity(int c); - - public boolean contains(E e); - - public E get(int idx); - - public int indexOf(E e); - - public boolean add(E e); - - public boolean insert(E e, int idx); - - public E remove(int idx); - - public boolean remove(E e); -} diff --git a/core/src/ch/asynk/zproject/engine/util/IterableArray.java b/core/src/ch/asynk/zproject/engine/util/IterableArray.java deleted file mode 100644 index 446dd1b..0000000 --- a/core/src/ch/asynk/zproject/engine/util/IterableArray.java +++ /dev/null @@ -1,143 +0,0 @@ -package ch.asynk.gdx.board.engine.util; - -import java.util.Arrays; -import java.util.Iterator; - -public class IterableArray<E> implements Collection<E> -{ - private int idx; - private int s; - private int c; - transient E[] data; - - @SuppressWarnings("unchecked") - public IterableArray(int capacity) - { - this.s = 0; - this.c = capacity; - this.data = (E[]) new Object[c]; - } - - @Override public int size() - { - return s; - } - - @Override public boolean isEmpty() - { - return (s == 0); - } - - @Override public void clear() - { - for (int i = 0; i < s; i++) - data[i] = null; - s = 0; - } - - @Override public void ensureCapacity(int min) - { - if (c > min) return; - c += (c >> 1); - if (c < min) - c = min; - data = Arrays.copyOf(data, c); - } - - @Override public boolean contains(E e) - { - if (e == null) { - for (int i = 0; i < s; i++) { - if (data[i] == null) - return true; - } - } else { - for (int i = 0; i < s; i++) { - if (e.equals(data[i])) - return true; - } - } - return false; - } - - @Override public E get(int i) - { - return data[i]; - } - - @Override public int indexOf(E e) - { - for (int i = 0; i < data.length; i++) { - if (data[i] != null && data[i].equals(e)) - return i; - } - return -1; - } - - @Override public boolean add(E e) - { - ensureCapacity(s + 1); - data[s] = e; - s += 1; - return true; - } - - @Override public boolean insert(E e, int idx) - { - ensureCapacity(s + 1); - System.arraycopy(data, idx, data, idx+1, (s - idx)); - data[idx] = e; - s += 1; - return true; - } - - @Override public E remove(int i) - { - E e = data[i]; - int m = (s - i - 1); - if (m > 0) - System.arraycopy(data, i+1, data, i, m); - data[--s] = null; - - return e; - } - - @Override public boolean remove(E e) - { - for (int i = 0; i < s; i++) { - if (e.equals(data[i])) { - int m = (s - i - 1); - if (m > 0) - System.arraycopy(data, i+1, data, i, m); - data[--s] = null; - return true; - } - } - return false; - } - - @SuppressWarnings("unchecked") - @Override public Iterator<E> iterator() - { - this.idx = 0; - return (Iterator<E>) this; - } - - @Override public boolean hasNext() - { - return (idx < s); - } - - @Override public E next() - { - E e = get(idx); - idx += 1; - return e; - } - - @Override public void remove() - { - idx -= 1; - remove(idx); - } -} diff --git a/core/src/ch/asynk/zproject/engine/util/IterableQueue.java b/core/src/ch/asynk/zproject/engine/util/IterableQueue.java deleted file mode 100644 index 1c952d3..0000000 --- a/core/src/ch/asynk/zproject/engine/util/IterableQueue.java +++ /dev/null @@ -1,19 +0,0 @@ -package ch.asynk.gdx.board.engine.util; - -public class IterableQueue<E> extends IterableArray<E> -{ - public IterableQueue(int n) - { - super(n); - } - - public void enqueue(E e) - { - add(e); - } - - public E dequeue() - { - return remove(0); - } -} diff --git a/core/src/ch/asynk/zproject/engine/util/IterableSet.java b/core/src/ch/asynk/zproject/engine/util/IterableSet.java deleted file mode 100644 index d28cf28..0000000 --- a/core/src/ch/asynk/zproject/engine/util/IterableSet.java +++ /dev/null @@ -1,16 +0,0 @@ -package ch.asynk.gdx.board.engine.util; - -public class IterableSet<E> extends IterableArray<E> -{ - public IterableSet(int n) - { - super(n); - } - - @Override public boolean add(E e) - { - if (contains(e)) return false; - super.add(e); - return true; - } -} diff --git a/core/src/ch/asynk/zproject/engine/util/IterableStack.java b/core/src/ch/asynk/zproject/engine/util/IterableStack.java deleted file mode 100644 index d62daaa..0000000 --- a/core/src/ch/asynk/zproject/engine/util/IterableStack.java +++ /dev/null @@ -1,26 +0,0 @@ -package ch.asynk.gdx.board.engine.util; - -public class IterableStack<E> extends IterableArray<E> -{ - public IterableStack(int n) - { - super(n); - } - - public void push(E e) - { - add(e); - } - - public E pop() - { - if (size() <= 0) return null; - return remove(size() - 1); - } - - public E getTop() - { - if (size() <= 0) return null; - return get(size() - 1); - } -} |