package com.ychstudio.systems;

import com.artemis.Aspect;
import com.artemis.ComponentMapper;
import com.artemis.systems.IteratingSystem;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.ychstudio.components.Particle;

public class ParticleSystem extends IteratingSystem {

    protected ComponentMapper<Particle> mParticle;

    private SpriteBatch batch;

    public ParticleSystem(SpriteBatch batch) {
        super(Aspect.all(Particle.class));
        this.batch = batch;
    }

    @Override
    protected void begin() {
        batch.begin();
    }

    @Override
    protected void end() {
        batch.end();
    }

    @Override
    protected void process(int entityId) {
        Particle particle = mParticle.get(entityId);

        if (!particle.particleEffect.isComplete()) {
            particle.particleEffect.draw(batch, world.getDelta());
        } else {
            world.delete(entityId);
        }
    }

}