package net.onedaybeard.dominatrix.demo.system.spatial;
import net.onedaybeard.dominatrix.demo.component.Position;
import net.onedaybeard.dominatrix.demo.component.Renderable;
import com.artemis.Aspect;
import com.artemis.ComponentMapper;
import com.artemis.Entity;
import com.artemis.systems.EntityProcessingSystem;
import com.badlogic.gdx.graphics.g2d.Sprite;
public final class SpritePositionUpdateSystem extends EntityProcessingSystem
{
private ComponentMapper<Position> positionMapper;
private ComponentMapper<Renderable> renderableMapper;
@SuppressWarnings("unchecked")
public SpritePositionUpdateSystem()
{
super(Aspect.getAspectForAll(Position.class, Renderable.class));
}
@Override
protected void initialize()
{
positionMapper = world.getMapper(Position.class);
renderableMapper = world.getMapper(Renderable.class);
}
@Override
protected void process(Entity e)
{
Renderable renderable = renderableMapper.get(e);
Position position = positionMapper.get(e);
Sprite s = renderable.getSprite();
s.setPosition(position.x() - (s.getOriginX()), position.y() - (s.getOriginY()));
}
}