Refactor Entity and ObjectLayer

This commit is contained in:
2021-03-03 13:44:06 +01:00
parent 403453efba
commit ed180b2bc4
3 changed files with 11 additions and 15 deletions

View File

@@ -1,21 +1,17 @@
package com.bartlomiejpluta.base.api.game.entity;
import org.joml.Vector2f;
import com.bartlomiejpluta.base.api.internal.logic.Updatable;
import com.bartlomiejpluta.base.api.internal.object.Placeable;
import com.bartlomiejpluta.base.api.internal.render.Renderable;
import org.joml.Vector2i;
public interface Entity {
public interface Entity extends Placeable, Renderable, Updatable {
Vector2i getCoordinates();
void setCoordinates(Vector2i coordinates);
void setCoordinates(int x, int y);
Vector2f getPosition();
void setPosition(Vector2f position);
void setPosition(float x, float y);
Movement prepareMovement(Direction direction);
Direction getFaceDirection();

View File

@@ -1,31 +1,31 @@
package com.bartlomiejpluta.base.engine.world.map.layer.object;
import com.bartlomiejpluta.base.api.game.entity.Direction;
import com.bartlomiejpluta.base.api.game.entity.Entity;
import com.bartlomiejpluta.base.api.game.map.PassageAbility;
import com.bartlomiejpluta.base.api.internal.camera.Camera;
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
import com.bartlomiejpluta.base.api.internal.window.Window;
import com.bartlomiejpluta.base.engine.world.map.layer.base.Layer;
import com.bartlomiejpluta.base.engine.world.movement.MovableSprite;
import org.joml.Vector2i;
import java.util.List;
public class ObjectLayer implements Layer {
private final List<MovableSprite> objects;
private final List<Entity> objects;
private final PassageAbility[][] passageMap;
public ObjectLayer(List<MovableSprite> objects, PassageAbility[][] passageMap) {
public ObjectLayer(List<Entity> objects, PassageAbility[][] passageMap) {
this.objects = objects;
this.passageMap = passageMap;
}
public void addObject(MovableSprite object) {
public void addObject(Entity object) {
objects.add(object);
}
public void removeObject(MovableSprite object) {
public void removeObject(Entity object) {
objects.remove(object);
}
@@ -63,7 +63,7 @@ public class ObjectLayer implements Layer {
}
}
private int compareObjects(MovableSprite a, MovableSprite b) {
private int compareObjects(Entity a, Entity b) {
return Float.compare(a.getPosition().y, b.getPosition().y);
}

View File

@@ -120,7 +120,7 @@ public class DefaultGameMap implements Renderable, Updatable, GameMap {
@Override
public void removeEntity(int objectLayerIndex, Entity entity) {
((ObjectLayer) layers.get(objectLayerIndex)).removeObject((DefaultEntity) entity);
((ObjectLayer) layers.get(objectLayerIndex)).removeObject(entity);
}
@Override