package se.danielj.skuttandenyancat.systems;
import se.danielj.skuttandenyancat.components.Position;
import se.danielj.skuttandenyancat.components.Velocity;
import com.artemis.Aspect;
import com.artemis.ComponentMapper;
import com.artemis.Entity;
import com.artemis.annotations.Mapper;
import com.artemis.systems.EntityProcessingSystem;
/**
*
* @author Daniel Jonsson
* @license GNU GPLv3
*
*/
public class MovementSystem extends EntityProcessingSystem {
@Mapper ComponentMapper<Position> pm;
@Mapper ComponentMapper<Velocity> vm;
@SuppressWarnings("unchecked")
public MovementSystem() {
super(Aspect.getAspectForAll(Position.class, Velocity.class));
}
@Override
protected void process(Entity e) {
Position position = pm.get(e);
Velocity velocity = vm.get(e);
position.setX(position.getX() + velocity.getX() * world.delta);
position.setY(position.getY() + velocity.getY() * world.delta);
}
}