Refactor MovableSprite
This commit is contained in:
@@ -23,4 +23,8 @@ public interface Movable {
|
||||
Movement getMovement();
|
||||
|
||||
boolean isMoving();
|
||||
|
||||
int chebyshevDistance(Vector2ic coordinates);
|
||||
|
||||
int manhattanDistance(Vector2ic coordinates);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user