package net.onedaybeard.dominatrix.demo.artemis; import com.artemis.Aspect; import com.artemis.Entity; import com.artemis.utils.Bag; import com.artemis.utils.ImmutableBag; public abstract class TimerIntervalEntityProcessingSystem extends TimerIntervalEntitySystem { public TimerIntervalEntityProcessingSystem(Aspect aspect, float interval) { super(aspect, interval); } protected abstract void process(Entity e); @Override protected void processEntities(ImmutableBag<Entity> entities) { Object[] data = ((Bag<Entity>)entities).getData(); for (int i = 0, s = entities.size(); s > i; i++) { process((Entity)data[i]); } } }