Implemented system priorities and created SystemPriority to store them

This commit is contained in:
Collin Smith
2019-10-20 16:41:53 -07:00
parent c09160230f
commit 69b607324e
5 changed files with 20 additions and 4 deletions

View File

@ -0,0 +1,10 @@
package com.riiablo.engine;
public final class SystemPriority {
public static final int IdSystem = Integer.MIN_VALUE;
public static final int CofSystem = -100;
public static final int CofLoaderSystem = -90;
public static final int AnimationLoaderSystem = -80;
private SystemPriority() {}
}

View File

@ -11,6 +11,7 @@ import com.riiablo.codec.Animation;
import com.riiablo.codec.COF;
import com.riiablo.codec.DC;
import com.riiablo.engine.Dirty;
import com.riiablo.engine.SystemPriority;
import com.riiablo.engine.component.AnimationComponent;
import com.riiablo.engine.component.CofComponent;
@ -24,7 +25,7 @@ public class AnimationLoaderSystem extends IteratingSystem {
private final ComponentMapper<AnimationComponent> animComponent = ComponentMapper.getFor(AnimationComponent.class);
public AnimationLoaderSystem() {
super(Family.all(CofComponent.class, AnimationComponent.class).get()); // TODO: priority
super(Family.all(CofComponent.class, AnimationComponent.class).get(), SystemPriority.AnimationLoaderSystem);
}
@Override

View File

@ -12,6 +12,7 @@ import com.riiablo.codec.COF;
import com.riiablo.codec.DC;
import com.riiablo.codec.DCC;
import com.riiablo.engine.Dirty;
import com.riiablo.engine.SystemPriority;
import com.riiablo.engine.component.CofComponent;
import com.riiablo.engine.component.TypeComponent;
@ -31,7 +32,7 @@ public class CofLoaderSystem extends IteratingSystem {
private final StringBuilder builder = new StringBuilder(64);
public CofLoaderSystem() {
super(Family.all(TypeComponent.class, CofComponent.class).get());
super(Family.all(TypeComponent.class, CofComponent.class).get(), SystemPriority.CofLoaderSystem);
}
@Override

View File

@ -8,6 +8,7 @@ import com.badlogic.ashley.systems.IteratingSystem;
import com.badlogic.gdx.Gdx;
import com.riiablo.codec.COF;
import com.riiablo.engine.Dirty;
import com.riiablo.engine.SystemPriority;
import com.riiablo.engine.component.CofComponent;
import com.riiablo.engine.component.TypeComponent;
@ -21,7 +22,7 @@ public class CofSystem extends IteratingSystem {
private final ComponentMapper<CofComponent> cofComponent = ComponentMapper.getFor(CofComponent.class);
public CofSystem() {
super(Family.all(TypeComponent.class, CofComponent.class).get());
super(Family.all(TypeComponent.class, CofComponent.class).get(), SystemPriority.CofSystem);
}
@Override

View File

@ -7,6 +7,7 @@ import com.badlogic.ashley.core.EntityListener;
import com.badlogic.ashley.core.EntitySystem;
import com.badlogic.ashley.core.Family;
import com.badlogic.gdx.utils.IntMap;
import com.riiablo.engine.SystemPriority;
import com.riiablo.engine.component.IdComponent;
public class IdSystem extends EntitySystem implements EntityListener {
@ -15,7 +16,9 @@ public class IdSystem extends EntitySystem implements EntityListener {
private final IntMap<Entity> entitiesById = new IntMap<>();
private int nextEntityId = IdComponent.INVALID_ID;
public IdSystem() {}
public IdSystem() {
super(SystemPriority.IdSystem);
}
public Entity getEntity(int id) {
return entitiesById.get(id);