From 8717a3e58270cee47b317e64dd9a46e93bc75111 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Przemys=C5=82aw=20Pluta?= Date: Mon, 22 Mar 2021 23:04:00 +0100 Subject: [PATCH] Refactor MovableSprite --- .../bartlomiejpluta/base/api/move/Movable.java | 4 ++++ .../base/lib/animation/AnimationDelegate.java | 10 ++++++++++ .../base/lib/entity/EntityDelegate.java | 10 ++++++++++ .../base/engine/world/movement/MovableSprite.java | 15 ++++++++++----- 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/api/src/main/java/com/bartlomiejpluta/base/api/move/Movable.java b/api/src/main/java/com/bartlomiejpluta/base/api/move/Movable.java index 34603827..f2bf93d9 100644 --- a/api/src/main/java/com/bartlomiejpluta/base/api/move/Movable.java +++ b/api/src/main/java/com/bartlomiejpluta/base/api/move/Movable.java @@ -23,4 +23,8 @@ public interface Movable { Movement getMovement(); boolean isMoving(); + + int chebyshevDistance(Vector2ic coordinates); + + int manhattanDistance(Vector2ic coordinates); } diff --git a/api/src/main/java/com/bartlomiejpluta/base/lib/animation/AnimationDelegate.java b/api/src/main/java/com/bartlomiejpluta/base/lib/animation/AnimationDelegate.java index 0816ec03..e3b676eb 100644 --- a/api/src/main/java/com/bartlomiejpluta/base/lib/animation/AnimationDelegate.java +++ b/api/src/main/java/com/bartlomiejpluta/base/lib/animation/AnimationDelegate.java @@ -160,6 +160,16 @@ public abstract class AnimationDelegate implements Animation { return animation.isMoving(); } + @Override + public int chebyshevDistance(Vector2ic coordinates) { + return animation.chebyshevDistance(coordinates); + } + + @Override + public int manhattanDistance(Vector2ic coordinates) { + return animation.manhattanDistance(coordinates); + } + @Override public void setPositionOffset(Vector2fc offset) { animation.setPositionOffset(offset); diff --git a/api/src/main/java/com/bartlomiejpluta/base/lib/entity/EntityDelegate.java b/api/src/main/java/com/bartlomiejpluta/base/lib/entity/EntityDelegate.java index a9f4ac35..96d781ff 100644 --- a/api/src/main/java/com/bartlomiejpluta/base/lib/entity/EntityDelegate.java +++ b/api/src/main/java/com/bartlomiejpluta/base/lib/entity/EntityDelegate.java @@ -174,6 +174,16 @@ public abstract class EntityDelegate implements Entity { return entity.euclideanDistance(other); } + @Override + public int chebyshevDistance(Vector2ic coordinates) { + return entity.chebyshevDistance(coordinates); + } + + @Override + public int manhattanDistance(Vector2ic coordinates) { + return entity.manhattanDistance(coordinates); + } + @Override public Matrix4fc getModelMatrix() { return entity.getModelMatrix(); diff --git a/engine/src/main/java/com/bartlomiejpluta/base/engine/world/movement/MovableSprite.java b/engine/src/main/java/com/bartlomiejpluta/base/engine/world/movement/MovableSprite.java index 10c074fc..d1689822 100644 --- a/engine/src/main/java/com/bartlomiejpluta/base/engine/world/movement/MovableSprite.java +++ b/engine/src/main/java/com/bartlomiejpluta/base/engine/world/movement/MovableSprite.java @@ -31,6 +31,12 @@ public abstract class MovableSprite extends AnimatedSprite implements Movable, U @Getter private Movement movement; + public MovableSprite(Mesh mesh, Material material) { + super(mesh, material); + setCoordinates(0, 0); + } + + @Override public Vector2ic getCoordinates() { return coordinates; } @@ -92,6 +98,7 @@ public abstract class MovableSprite extends AnimatedSprite implements Movable, U return true; } + @Override public void setCoordinates(int x, int y) { coordinates.x = x; coordinates.y = y; @@ -112,6 +119,7 @@ public abstract class MovableSprite extends AnimatedSprite implements Movable, U coordinates.y = (int) ((position.y() - positionOffset.y) / coordinateStepSize.y); } + @Override public void setCoordinates(Vector2ic coordinates) { setCoordinates(coordinates.x(), coordinates.y()); } @@ -139,16 +147,13 @@ public abstract class MovableSprite extends AnimatedSprite implements Movable, U this.positionOffset.y = offsetY; } + @Override public int chebyshevDistance(Vector2ic coordinates) { return max(abs(this.coordinates.x - coordinates.x()), abs(this.coordinates.y - coordinates.y())); } + @Override public int manhattanDistance(Vector2ic coordinates) { return abs(this.coordinates.x - coordinates.x()) + abs(this.coordinates.y - coordinates.y()); } - - public MovableSprite(Mesh mesh, Material material) { - super(mesh, material); - setCoordinates(0, 0); - } }