package com.galvarez.ttw;
import com.artemis.Aspect;
import com.artemis.ComponentMapper;
import com.artemis.Entity;
import com.artemis.PooledComponent;
import com.artemis.systems.EntityProcessingSystem;
public class ExpiringSystem extends EntityProcessingSystem {
ComponentMapper<Expires> em;
@SuppressWarnings("unchecked")
public ExpiringSystem() {
super(Aspect.getAspectForAll(Expires.class));
}
@Override
public void initialize() {
em = world.getMapper(Expires.class);
}
@Override
protected boolean checkProcessing() {
return true;
}
@Override
protected void process(Entity e) {
Expires exp = em.get(e);
exp.delay -= world.getDelta();
if (exp.delay <= 0) {
e.deleteFromWorld();
}
}
public static final class Expires extends PooledComponent {
public float delay;
public Expires() {
}
@Override
public void reset() {
delay = 0f;
}
}
}