CarryItemsSystem.java
package com.devcharles.piazzapanic.componentsystems;
import java.util.HashMap;
import java.util.Map;
import com.badlogic.ashley.core.Entity;
import com.badlogic.ashley.core.Family;
import com.badlogic.ashley.systems.IteratingSystem;
import com.badlogic.gdx.math.Vector3;
import com.devcharles.piazzapanic.components.ItemComponent;
import com.devcharles.piazzapanic.components.TransformComponent;
import com.devcharles.piazzapanic.utility.Mappers;
import com.devcharles.piazzapanic.utility.WalkAnimator;
import com.devcharles.piazzapanic.utility.WalkAnimator.Direction;
public class CarryItemsSystem extends IteratingSystem {
public CarryItemsSystem() {
super(Family.all(ItemComponent.class, TransformComponent.class).get());
}
Map<Direction, Vector3> dirToVector = new HashMap<Direction, Vector3>() {
{
put(Direction.down, new Vector3(0, -0.5f, 0));
put(Direction.up, new Vector3(0, 0.5f, 1));
put(Direction.left, new Vector3(-1, 0, 1));
put(Direction.right, new Vector3(1, 0, 1));
}
};
@Override
protected void processEntity(Entity entity, float deltaTime) {
ItemComponent item = Mappers.item.get(entity);
TransformComponent transform = Mappers.transform.get(entity);
Direction cookDirection = WalkAnimator.rotationToDirection(item.holderTransform.rotation);
Vector3 directionVector = dirToVector.get(cookDirection).cpy();
transform.position.set(item.holderTransform.position.cpy().add(directionVector.scl(1)));
}
}