package com.indignado.logicbricks.systems;
import com.badlogic.ashley.core.Entity;
import com.badlogic.gdx.physics.box2d.Body;
import com.badlogic.gdx.physics.box2d.BodyDef;
import com.indignado.logicbricks.components.BuoyancyComponent;
import com.indignado.logicbricks.components.RigidBodiesComponents;
import com.indignado.logicbricks.core.bricks.base.BaseTest;
import com.indignado.logicbricks.utils.Log;
import org.junit.Before;
import org.junit.Test;
/**
* @author Rubentxu.
*/
public class BuoyancySystemTest extends BaseTest{
private BuoyancyComponent buoyancyComponent;
private Body bodyPlayer;
@Before
public void setup() {
// Player
entityBuilder.initialize();
bodyPlayer = bodyBuilder
.fixture(bodyBuilder.fixtureDefBuilder()
.boxShape(1, 1)
.restitution(0f)
.density(1))
.position(0, 8)
.mass(1f)
.type(BodyDef.BodyType.DynamicBody)
.build();
RigidBodiesComponents rigidByPlayer = entityBuilder.getComponent(RigidBodiesComponents.class);
rigidByPlayer.rigidBodies.add(bodyPlayer);
engine.addEntity(entityBuilder.getEntity());
// Pool
entityBuilder.initialize();
Body bodyPool = bodyBuilder
.fixture(bodyBuilder.fixtureDefBuilder()
.boxShape(3, 3)
.restitution(0f)
.density(1)
.sensor())
.position(0, 0)
.mass(1f)
.type(BodyDef.BodyType.StaticBody)
.build();
RigidBodiesComponents rigidByPool = entityBuilder.getComponent(RigidBodiesComponents.class);
rigidByPool.rigidBodies.add(bodyPool);
buoyancyComponent = entityBuilder.getComponent(BuoyancyComponent.class);
Entity pool = entityBuilder.getEntity();
engine.addEntity(pool);
Log.debug("BuoyancySystemTest", "Pool Entity Component size %s", pool.getComponents().size());
}
@Test
public void defaultTest() {
buoyancyComponent.offset = 6;
game.update(1);
Log.debug("BuoyancySystemTest", "A) Player position %s", bodyPlayer.getPosition());
game.update(1);
Log.debug("BuoyancySystemTest", "B) Player position %s", bodyPlayer.getPosition());
game.update(1);
Log.debug("BuoyancySystemTest", "C) Player position %s", bodyPlayer.getPosition());
game.update(1);
Log.debug("BuoyancySystemTest", "D) Player position %s", bodyPlayer.getPosition());
game.update(1);
Log.debug("BuoyancySystemTest", "E) Player position %s", bodyPlayer.getPosition());
game.update(1);
Log.debug("BuoyancySystemTest", "F) Player position %s", bodyPlayer.getPosition());
game.update(1);
Log.debug("BuoyancySystemTest", "G) Player position %s", bodyPlayer.getPosition());
//assertEquals(deltaTime, stateComponent.time, 0.1);
}
}