Refactor Entity and ObjectLayer
This commit is contained in:
@@ -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();
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user