Refactor MovableSprite
This commit is contained in:
@@ -23,4 +23,8 @@ public interface Movable {
|
|||||||
Movement getMovement();
|
Movement getMovement();
|
||||||
|
|
||||||
boolean isMoving();
|
boolean isMoving();
|
||||||
|
|
||||||
|
int chebyshevDistance(Vector2ic coordinates);
|
||||||
|
|
||||||
|
int manhattanDistance(Vector2ic coordinates);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -160,6 +160,16 @@ public abstract class AnimationDelegate implements Animation {
|
|||||||
return animation.isMoving();
|
return animation.isMoving();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int chebyshevDistance(Vector2ic coordinates) {
|
||||||
|
return animation.chebyshevDistance(coordinates);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int manhattanDistance(Vector2ic coordinates) {
|
||||||
|
return animation.manhattanDistance(coordinates);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setPositionOffset(Vector2fc offset) {
|
public void setPositionOffset(Vector2fc offset) {
|
||||||
animation.setPositionOffset(offset);
|
animation.setPositionOffset(offset);
|
||||||
|
|||||||
@@ -174,6 +174,16 @@ public abstract class EntityDelegate implements Entity {
|
|||||||
return entity.euclideanDistance(other);
|
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
|
@Override
|
||||||
public Matrix4fc getModelMatrix() {
|
public Matrix4fc getModelMatrix() {
|
||||||
return entity.getModelMatrix();
|
return entity.getModelMatrix();
|
||||||
|
|||||||
@@ -31,6 +31,12 @@ public abstract class MovableSprite extends AnimatedSprite implements Movable, U
|
|||||||
@Getter
|
@Getter
|
||||||
private Movement movement;
|
private Movement movement;
|
||||||
|
|
||||||
|
public MovableSprite(Mesh mesh, Material material) {
|
||||||
|
super(mesh, material);
|
||||||
|
setCoordinates(0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Vector2ic getCoordinates() {
|
public Vector2ic getCoordinates() {
|
||||||
return coordinates;
|
return coordinates;
|
||||||
}
|
}
|
||||||
@@ -92,6 +98,7 @@ public abstract class MovableSprite extends AnimatedSprite implements Movable, U
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setCoordinates(int x, int y) {
|
public void setCoordinates(int x, int y) {
|
||||||
coordinates.x = x;
|
coordinates.x = x;
|
||||||
coordinates.y = y;
|
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);
|
coordinates.y = (int) ((position.y() - positionOffset.y) / coordinateStepSize.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setCoordinates(Vector2ic coordinates) {
|
public void setCoordinates(Vector2ic coordinates) {
|
||||||
setCoordinates(coordinates.x(), coordinates.y());
|
setCoordinates(coordinates.x(), coordinates.y());
|
||||||
}
|
}
|
||||||
@@ -139,16 +147,13 @@ public abstract class MovableSprite extends AnimatedSprite implements Movable, U
|
|||||||
this.positionOffset.y = offsetY;
|
this.positionOffset.y = offsetY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public int chebyshevDistance(Vector2ic coordinates) {
|
public int chebyshevDistance(Vector2ic coordinates) {
|
||||||
return max(abs(this.coordinates.x - coordinates.x()), abs(this.coordinates.y - coordinates.y()));
|
return max(abs(this.coordinates.x - coordinates.x()), abs(this.coordinates.y - coordinates.y()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public int manhattanDistance(Vector2ic coordinates) {
|
public int manhattanDistance(Vector2ic coordinates) {
|
||||||
return abs(this.coordinates.x - coordinates.x()) + abs(this.coordinates.y - coordinates.y());
|
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