package com.uwsoft.editor.system;
import com.badlogic.ashley.core.Entity;
import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.physics.box2d.World;
import com.uwsoft.editor.renderer.components.TransformComponent;
import com.uwsoft.editor.renderer.components.physics.PhysicsBodyComponent;
import com.uwsoft.editor.renderer.physics.PhysicsBodyLoader;
import com.uwsoft.editor.renderer.systems.PhysicsSystem;
import com.uwsoft.editor.renderer.utils.ComponentRetriever;
public class PhysicsAdjustSystem extends PhysicsSystem {
private Vector2 transformVec = new Vector2();
public PhysicsAdjustSystem(World world) {
super(world);
}
@Override
protected void processEntity(Entity entity, float deltaTime) {
TransformComponent transformComponent = transformComponentMapper.get(entity);
processBody(entity);
PhysicsBodyComponent physicsBodyComponent = ComponentRetriever.get(entity, PhysicsBodyComponent.class);
if(physicsBodyComponent.body == null) return;
transformVec.x = transformComponent.x * PhysicsBodyLoader.getScale();
transformVec.y = transformComponent.y * PhysicsBodyLoader.getScale();
physicsBodyComponent.body.setTransform(transformVec, transformComponent.rotation * MathUtils.degreesToRadians);
}
}