Swap Sprite and LocationableSprite (now LocationableModel) in inheritance graph
This commit is contained in:
@@ -4,14 +4,13 @@ import com.bartlomiejpluta.base.api.animation.Animated;
|
||||
import com.bartlomiejpluta.base.engine.core.engine.DefaultGameEngine;
|
||||
import com.bartlomiejpluta.base.engine.core.gl.object.material.Material;
|
||||
import com.bartlomiejpluta.base.engine.core.gl.object.mesh.Mesh;
|
||||
import com.bartlomiejpluta.base.engine.world.location.LocationableSprite;
|
||||
import com.bartlomiejpluta.base.engine.world.object.Sprite;
|
||||
import com.bartlomiejpluta.base.util.math.MathUtil;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.joml.Vector2fc;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public abstract class AnimatedSprite extends LocationableSprite implements Animated {
|
||||
public abstract class AnimatedSprite extends Sprite implements Animated {
|
||||
private int time;
|
||||
|
||||
// The time in ms between frames
|
||||
|
||||
@@ -6,14 +6,14 @@ import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
|
||||
import com.bartlomiejpluta.base.engine.core.gl.object.mesh.Mesh;
|
||||
import com.bartlomiejpluta.base.engine.error.AppException;
|
||||
import com.bartlomiejpluta.base.engine.world.icon.manager.IconSetManager;
|
||||
import com.bartlomiejpluta.base.engine.world.location.LocationableSprite;
|
||||
import com.bartlomiejpluta.base.engine.world.object.Sprite;
|
||||
import com.bartlomiejpluta.base.lib.event.EventHandler;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.joml.Vector2f;
|
||||
import org.joml.Vector2fc;
|
||||
|
||||
public class DefaultIcon extends LocationableSprite implements Icon {
|
||||
public class DefaultIcon extends Sprite implements Icon {
|
||||
private final EventHandler eventHandler = new EventHandler();
|
||||
private final IconSetManager iconSetManager;
|
||||
private final Vector2f iconScale = new Vector2f(1, 1);
|
||||
|
||||
@@ -2,9 +2,7 @@ package com.bartlomiejpluta.base.engine.world.location;
|
||||
|
||||
import com.bartlomiejpluta.base.api.location.Locationable;
|
||||
import com.bartlomiejpluta.base.api.move.Direction;
|
||||
import com.bartlomiejpluta.base.engine.core.gl.object.material.Material;
|
||||
import com.bartlomiejpluta.base.engine.core.gl.object.mesh.Mesh;
|
||||
import com.bartlomiejpluta.base.engine.world.object.Sprite;
|
||||
import com.bartlomiejpluta.base.engine.world.object.Model;
|
||||
import com.bartlomiejpluta.base.util.math.Distance;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.joml.Vector2f;
|
||||
@@ -13,16 +11,13 @@ import org.joml.Vector2i;
|
||||
import org.joml.Vector2ic;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public abstract class LocationableSprite extends Sprite implements Locationable {
|
||||
private enum PlacingMode {BY_POSITION, BY_COORDINATES}
|
||||
|
||||
private PlacingMode placingMode;
|
||||
public abstract class LocationableModel extends Model implements Locationable {
|
||||
protected final Vector2f coordinateStepSize = new Vector2f(0, 0);
|
||||
protected final Vector2i coordinates = new Vector2i(0, 0);
|
||||
protected final Vector2f positionOffset = new Vector2f(0, 0);
|
||||
private PlacingMode placingMode;
|
||||
|
||||
public LocationableSprite(Mesh mesh, Material material) {
|
||||
super(mesh, material);
|
||||
public LocationableModel() {
|
||||
setCoordinates(0, 0);
|
||||
}
|
||||
|
||||
@@ -31,6 +26,11 @@ public abstract class LocationableSprite extends Sprite implements Locationable
|
||||
return coordinates;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCoordinates(Vector2ic coordinates) {
|
||||
setCoordinates(coordinates.x(), coordinates.y());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCoordinates(int x, int y) {
|
||||
coordinates.x = x;
|
||||
@@ -53,11 +53,6 @@ public abstract class LocationableSprite extends Sprite implements Locationable
|
||||
setPosition(position.x(), position.y());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCoordinates(Vector2ic coordinates) {
|
||||
setCoordinates(coordinates.x(), coordinates.y());
|
||||
}
|
||||
|
||||
public void setStepSize(float x, float y) {
|
||||
coordinateStepSize.x = x;
|
||||
coordinateStepSize.y = y;
|
||||
@@ -112,4 +107,6 @@ public abstract class LocationableSprite extends Sprite implements Locationable
|
||||
public int manhattanDistance(Locationable other) {
|
||||
return Distance.manhattan(this.coordinates, other.getCoordinates());
|
||||
}
|
||||
|
||||
private enum PlacingMode {BY_POSITION, BY_COORDINATES}
|
||||
}
|
||||
@@ -26,7 +26,7 @@ public class DefaultTileLayer extends BaseLayer implements TileLayer {
|
||||
@Override
|
||||
public void setTile(int row, int column, int tileId) {
|
||||
var tile = tileSet.tileById(tileId);
|
||||
tile.setCoordinates(row, column);
|
||||
tile.setLocation(row, column);
|
||||
layer[row][column] = tile;
|
||||
|
||||
}
|
||||
@@ -34,7 +34,7 @@ public class DefaultTileLayer extends BaseLayer implements TileLayer {
|
||||
@Override
|
||||
public void setTile(int row, int column, int tileSetRow, int tileSetColumn) {
|
||||
var tile = tileSet.tileAt(tileSetRow, tileSetColumn);
|
||||
tile.setCoordinates(row, column);
|
||||
tile.setLocation(row, column);
|
||||
layer[row][column] = tile;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.bartlomiejpluta.base.api.screen.Screen;
|
||||
import com.bartlomiejpluta.base.engine.core.gl.object.material.Material;
|
||||
import com.bartlomiejpluta.base.engine.core.gl.object.mesh.Mesh;
|
||||
import com.bartlomiejpluta.base.engine.core.gl.shader.constant.UniformName;
|
||||
import com.bartlomiejpluta.base.engine.world.location.LocationableModel;
|
||||
import com.bartlomiejpluta.base.internal.render.Renderable;
|
||||
import com.bartlomiejpluta.base.internal.render.ShaderManager;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -13,7 +14,7 @@ import lombok.NonNull;
|
||||
import lombok.Setter;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public abstract class Sprite extends Model implements Renderable {
|
||||
public abstract class Sprite extends LocationableModel implements Renderable {
|
||||
private final float farthestVertexDistance;
|
||||
|
||||
protected final Mesh mesh;
|
||||
|
||||
@@ -16,7 +16,7 @@ public class Tile extends Sprite {
|
||||
private final Vector2f tileScale = new Vector2f(1, 1);
|
||||
private final Vector2fc tileSpriteSize;
|
||||
|
||||
public Tile setCoordinates(int row, int column) {
|
||||
public Tile setLocation(int row, int column) {
|
||||
var stepSize = material.getTexture().getSpriteSize();
|
||||
setPosition(column * stepSize.x(), row * stepSize.y());
|
||||
return this;
|
||||
|
||||
Reference in New Issue
Block a user