package com.indignado.functional.test.levels.buoyancy.entities; import com.badlogic.ashley.core.Entity; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.assets.AssetManager; 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.IdentityComponent; import com.indignado.logicbricks.components.RigidBodiesComponents; import com.indignado.logicbricks.core.EntityFactory; import com.indignado.logicbricks.utils.builders.BodyBuilder; import com.indignado.logicbricks.utils.builders.EntityBuilder; import com.indignado.logicbricks.utils.builders.LBBuilders; /** * @author Rubentxu. */ public class Pool extends EntityFactory { public Pool(LBBuilders builders, AssetManager assetManager) { super(builders, assetManager); } @Override public void loadAssets() { } @Override public Entity createEntity() { EntityBuilder entityBuilder = builders.getEntityBuilder(); entityBuilder.initialize(); BodyBuilder bodyBuilder = builders.getBodyBuilder(); IdentityComponent identity = entityBuilder.getComponent(IdentityComponent.class); identity.tag = "Pool"; Body bodyPool = bodyBuilder .fixture(bodyBuilder.fixtureDefBuilder() .boxShape(7, 2.5f) .density(2) .sensor()) .position(0, 0) .mass(1f) .type(BodyDef.BodyType.StaticBody) .build(); RigidBodiesComponents rigidByPool = entityBuilder.getComponent(RigidBodiesComponents.class); rigidByPool.rigidBodies.add(bodyPool); BuoyancyComponent buoyancyComponent = entityBuilder.getComponent(BuoyancyComponent.class); buoyancyComponent.offset = 4f; Entity entity = entityBuilder.getEntity(); Gdx.app.log("Pool", "instance" + entity); return entity; } }