Add support for z-index parameters in Entity which determines the Entity rendering order
This commit is contained in:
@@ -31,4 +31,8 @@ public interface Entity extends Movable, Renderable, Updatable {
|
|||||||
void setBlocking(boolean blocking);
|
void setBlocking(boolean blocking);
|
||||||
|
|
||||||
void changeEntitySet(String entitySetUid);
|
void changeEntitySet(String entitySetUid);
|
||||||
|
|
||||||
|
int getZIndex();
|
||||||
|
|
||||||
|
void setZIndex(int zIndex);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -219,6 +219,16 @@ public abstract class EntityDelegate implements Entity {
|
|||||||
entity.changeEntitySet(entitySetUid);
|
entity.changeEntitySet(entitySetUid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getZIndex() {
|
||||||
|
return entity.getZIndex();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setZIndex(int zIndex) {
|
||||||
|
entity.setZIndex(zIndex);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(float dt) {
|
public void update(float dt) {
|
||||||
entity.update(dt);
|
entity.update(dt);
|
||||||
|
|||||||
@@ -27,6 +27,10 @@ public class DefaultEntity extends MovableSprite implements Entity {
|
|||||||
private final Vector2f entityScale = new Vector2f(1, 1);
|
private final Vector2f entityScale = new Vector2f(1, 1);
|
||||||
private Vector2fc entitySetSize;
|
private Vector2fc entitySetSize;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private int zIndex = 0;
|
||||||
|
|
||||||
private int animationSpeed = 100;
|
private int animationSpeed = 100;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
|
|||||||
@@ -20,6 +20,9 @@ import java.util.LinkedList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
|
|
||||||
|
import static java.lang.Float.compare;
|
||||||
|
import static java.lang.Integer.compare;
|
||||||
|
|
||||||
public class DefaultObjectLayer extends BaseLayer implements ObjectLayer {
|
public class DefaultObjectLayer extends BaseLayer implements ObjectLayer {
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@@ -190,6 +193,7 @@ public class DefaultObjectLayer extends BaseLayer implements ObjectLayer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private int compareObjects(Entity a, Entity b) {
|
private int compareObjects(Entity a, Entity b) {
|
||||||
return Float.compare(a.getPosition().y(), b.getPosition().y());
|
var z = compare(a.getZIndex(), b.getZIndex());
|
||||||
|
return z == 0 ? compare(a.getPosition().y(), b.getPosition().y()) : z;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user