use of com.b3dgs.lionengine.game.feature.TransformableModel in project lionengine by b3dgs.
the class ExtractorModelTest method testCannotExtract.
/**
* Test the extractor cannot extract.
*/
@Test
void testCannotExtract() {
final ObjectExtractor object = new ObjectExtractor(services, setup, false, true);
object.addFeature(new TransformableModel(services, setup));
final Extractor extractor = new ExtractorModel(services, setup);
extractor.setCapacity(1);
extractor.setExtractionSpeed(50.0);
extractor.setDropOffSpeed(50.0);
extractor.prepare(object);
final AtomicReference<String> goTo = new AtomicReference<>();
final AtomicReference<String> skip = new AtomicReference<>();
extractor.addListener(UtilExtractable.createListener(goTo, skip, skip, skip, skip, skip));
extractor.setResource("wood", 1, 2, 1, 1);
extractor.startExtraction();
extractor.update(1.0);
assertFalse(extractor.isExtracting());
assertNotNull(goTo.get());
extractor.update(1.0);
assertFalse(extractor.isExtracting());
assertNotNull(goTo.get());
object.getFeature(Identifiable.class).notifyDestroyed();
}
use of com.b3dgs.lionengine.game.feature.TransformableModel in project lionengine by b3dgs.
the class ExtractorModelTest method testExtractorExtractableNoResource.
/**
* Test the extractor with extractable without resource.
*/
@Test
void testExtractorExtractableNoResource() {
final ObjectExtractorSelf object = new ObjectExtractorSelf(services, setup);
object.addFeature(new TransformableModel(services, setup));
final Extractor extractor = new ExtractorModel(services, setup);
extractor.setCapacity(6);
extractor.setExtractionSpeed(50.0);
extractor.setDropOffSpeed(100.0);
extractor.prepare(object);
extractor.addListener(object);
assertNull(extractor.getResourceLocation());
assertNull(extractor.getResourceType());
final Extractable extractable = UtilExtractable.createExtractable(services, setup);
extractable.setResourcesQuantity(0);
extractor.setResource(extractable);
assertFalse(extractor.isExtracting());
extractor.startExtraction();
assertFalse(extractor.isExtracting());
assertEquals(1, object.flag.get());
extractor.update(1.0);
assertTrue(extractor.isExtracting());
assertEquals(2, object.flag.get());
extractor.update(1.0);
assertTrue(extractor.isExtracting());
assertEquals(2, object.flag.get());
object.getFeature(Identifiable.class).notifyDestroyed();
extractable.getFeature(Identifiable.class).notifyDestroyed();
}
use of com.b3dgs.lionengine.game.feature.TransformableModel in project lionengine by b3dgs.
the class MapTilePathModelTest method createObject.
/**
* Create object test.
*
* @return The object test.
*/
private Pathfindable createObject() {
final FeaturableModel object = new FeaturableModel(services, setup);
final Transformable transformable = object.addFeatureAndGet(new TransformableModel(services, setup));
transformable.setSize(1, 1);
return object.addFeatureAndGet(new PathfindableModel(services, setup));
}
use of com.b3dgs.lionengine.game.feature.TransformableModel in project lionengine by b3dgs.
the class ExtractorModelTest method testExtractor.
/**
* Test the extractor.
*/
@Test
void testExtractor() {
final Featurable object = new FeaturableModel(services, setup);
object.addFeature(new TransformableModel(services, setup));
final ExtractorModel extractor = new ExtractorModel(services, setup);
extractor.recycle();
extractor.setCapacity(6);
extractor.setExtractionSpeed(50.0);
extractor.setDropOffSpeed(100.0);
extractor.prepare(object);
final AtomicReference<String> goTo = new AtomicReference<>();
final AtomicReference<String> startExtract = new AtomicReference<>();
final AtomicReference<String> extracted = new AtomicReference<>();
final AtomicReference<String> carry = new AtomicReference<>();
final AtomicReference<String> startDrop = new AtomicReference<>();
final AtomicReference<String> endDrop = new AtomicReference<>();
extractor.addListener(UtilExtractable.createListener(goTo, startExtract, extracted, carry, startDrop, endDrop));
assertNull(extractor.getResourceLocation());
assertNull(extractor.getResourceType());
extractor.setResource("wood", 1, 2, 1, 1);
final Tiled location = extractor.getResourceLocation();
assertEquals(1.0, location.getInTileX());
assertEquals(2.0, location.getInTileY());
assertEquals(1.0, location.getInTileWidth());
assertEquals(1.0, location.getInTileHeight());
assertEquals("wood", extractor.getResourceType());
assertFalse(extractor.isExtracting());
extractor.startExtraction();
assertFalse(extractor.isExtracting());
assertEquals("wood", goTo.get());
extractor.update(1.0);
assertTrue(extractor.isExtracting());
assertEquals("wood", startExtract.get());
assertNotEquals("wood", extracted.get());
extractor.update(1.0);
assertTrue(extractor.isExtracting());
assertEquals("wood", extracted.get());
extractor.update(1.0);
extractor.update(1.0);
extractor.update(1.0);
extractor.update(1.0);
extractor.update(1.0);
assertTrue(extractor.isExtracting());
assertEquals("wood", carry.get());
extractor.update(1.0);
assertFalse(extractor.isExtracting());
assertEquals("wood", startDrop.get());
extractor.update(1.0);
extractor.update(1.0);
extractor.update(1.0);
assertTrue(extractor.isExtracting());
assertEquals("wood", endDrop.get());
object.getFeature(Identifiable.class).notifyDestroyed();
}
use of com.b3dgs.lionengine.game.feature.TransformableModel in project lionengine by b3dgs.
the class ExtractableModelTest method testConfigWithNode.
/**
* Test the extraction config with node.
*/
@Test
void testConfigWithNode() {
final MapTile map = new MapTileGame();
map.create(16, 16, 4, 4);
services.add(map);
final Featurable featurable = new FeaturableModel(services, setup);
featurable.addFeatureAndGet(new TransformableModel(services, setup)).teleport(16, 32);
final Media media = UtilExtractable.createMedia();
final Extractable extractable = new ExtractableModel(services, new Setup(media));
extractable.prepare(featurable);
assertEquals(10, extractable.getResourceQuantity());
assertEquals("gold", extractable.getResourceType());
assertEquals(1, extractable.getInTileX());
assertEquals(2, extractable.getInTileY());
assertEquals(1, extractable.getInTileWidth());
assertEquals(2, extractable.getInTileHeight());
extractable.getFeature(Identifiable.class).notifyDestroyed();
assertTrue(media.getFile().delete());
}
Aggregations