use of com.b3dgs.lionengine.game.feature.FeaturableModel in project lionengine by b3dgs.
the class ExtractorModelTest method testCheckListener.
/**
* Test the check listener.
*/
@Test
void testCheckListener() {
final ObjectExtractorSelf object = new ObjectExtractorSelf(services, setup);
object.addFeature(new TransformableModel(services, setup));
final AtomicBoolean add = new AtomicBoolean();
final Extractor extractor = new ExtractorModel(services, setup) {
@Override
public void addListener(ExtractorListener listener) {
add.set(true);
}
};
extractor.prepare(new FeaturableModel(services, setup));
assertFalse(add.get());
extractor.checkListener(object);
assertTrue(add.get());
}
use of com.b3dgs.lionengine.game.feature.FeaturableModel in project lionengine by b3dgs.
the class ExtractorModelTest method testRemoveListener.
/**
* Test the remove listener.
*/
@Test
void testRemoveListener() {
final AtomicBoolean check = new AtomicBoolean();
final Extractor extractor = new ExtractorModel(services, setup);
final ExtractorListener listener = new ExtractorListenerVoid() {
@Override
public void notifyStartGoToRessources(String type, Tiled resourceLocation) {
check.set(true);
}
};
extractor.addListener(listener);
extractor.prepare(new FeaturableModel(services, setup));
extractor.startExtraction();
assertTrue(check.get());
extractor.removeListener(listener);
check.set(false);
extractor.startExtraction();
assertFalse(check.get());
}
use of com.b3dgs.lionengine.game.feature.FeaturableModel 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.FeaturableModel 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.FeaturableModel 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