package com.galvarez.ttw.rendering;
import com.artemis.Aspect;
import com.artemis.ComponentMapper;
import com.artemis.Entity;
import com.artemis.annotations.Wire;
import com.artemis.systems.EntityProcessingSystem;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.galvarez.ttw.rendering.components.Sprite;
import com.galvarez.ttw.rendering.components.SpriteAnimation;
@Wire
public final class SpriteAnimationSystem extends EntityProcessingSystem {
private ComponentMapper<Sprite> sm;
private ComponentMapper<SpriteAnimation> sam;
@SuppressWarnings("unchecked")
public SpriteAnimationSystem() {
super(Aspect.getAspectForAll(Sprite.class, SpriteAnimation.class));
}
@Override
protected void process(Entity e) {
Sprite sprite = sm.get(e);
SpriteAnimation anim = sam.get(e);
anim.stateTime += world.getDelta();
TextureRegion region = anim.getFrame();
sprite.x = region.getRegionX();
sprite.y = region.getRegionY();
sprite.width = region.getRegionWidth();
sprite.height = region.getRegionHeight();
}
@Override
protected boolean checkProcessing() {
return true;
}
}