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; 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; import org.joml.Vector2i;
public interface Entity { public interface Entity extends Placeable, Renderable, Updatable {
Vector2i getCoordinates(); Vector2i getCoordinates();
void setCoordinates(Vector2i coordinates); void setCoordinates(Vector2i coordinates);
void setCoordinates(int x, int y); void setCoordinates(int x, int y);
Vector2f getPosition();
void setPosition(Vector2f position);
void setPosition(float x, float y);
Movement prepareMovement(Direction direction); Movement prepareMovement(Direction direction);
Direction getFaceDirection(); Direction getFaceDirection();

View File

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

View File

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