Swap Sprite and LocationableSprite (now LocationableModel) in inheritance graph

This commit is contained in:
2022-08-23 19:23:06 +02:00
parent 09af7d0f8a
commit 1715b75eab
6 changed files with 19 additions and 22 deletions

View File

@@ -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

View File

@@ -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);

View File

@@ -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}
}

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;