use of com.b3dgs.lionengine.game.feature.FeaturableModel in project lionengine by b3dgs.
the class UtilAssignable method createAssignable.
/**
* Create the assignable.
*
* @param services The services.
* @param setup The setup.
* @return The prepared assignable.
*/
public static AssignableModel createAssignable(Services services, Setup setup) {
final Featurable featurable = new FeaturableModel(services, setup);
final AssignableModel assignable = new AssignableModel(services, setup);
assignable.prepare(featurable);
return assignable;
}
use of com.b3dgs.lionengine.game.feature.FeaturableModel in project lionengine by b3dgs.
the class UtilActionnable method createActionable.
/**
* Create the actionable.
*
* @param media The media.
* @param services The services.
* @return The prepared actionable.
*/
public static ActionableModel createActionable(Media media, Services services) {
final Setup setup = new Setup(media);
final Featurable featurable = new FeaturableModel(services, setup);
final ActionableModel actionable = new ActionableModel(services, setup);
actionable.prepare(featurable);
return actionable;
}
use of com.b3dgs.lionengine.game.feature.FeaturableModel in project lionengine by b3dgs.
the class ProducerModelTest method testDefaultProduction.
/**
* Test the default production with default checker.
*/
@Test
void testDefaultProduction() {
final ProducerModel producer = new ProducerModel(services, setup);
producer.prepare(new FeaturableModel(services, setup));
producer.recycle();
producer.setStepsSpeed(0.5);
final AtomicReference<Featurable> start = new AtomicReference<>();
final AtomicReference<Featurable> current = new AtomicReference<>();
final AtomicReference<Featurable> done = new AtomicReference<>();
final AtomicReference<Featurable> cant = new AtomicReference<>();
producer.addListener(UtilProducible.createProducerListener(start, current, done, cant));
producer.update(1.0);
assertNull(producer.getProducingElement());
assertEquals(-1.0, producer.getProgress());
assertEquals(-1, producer.getProgressPercent());
assertEquals(0, producer.getQueueLength());
assertFalse(producer.isProducing());
final Featurable featurable = UtilProducible.createProducible(services);
producer.addToProductionQueue(featurable);
assertEquals(0, producer.getQueueLength());
assertNull(start.get());
assertFalse(producer.isProducing());
producer.update(1.0);
assertEquals(0.0, producer.getProgress());
assertEquals(0, producer.getProgressPercent());
assertEquals(0, producer.getQueueLength());
assertEquals(featurable, start.get());
assertNull(current.get());
assertTrue(producer.isProducing());
assertEquals(featurable, producer.getProducingElement());
producer.update(1.0);
assertEquals(0.5, producer.getProgress());
assertEquals(50, producer.getProgressPercent());
assertEquals(featurable, current.get());
assertNull(done.get());
assertTrue(producer.isProducing());
producer.update(1.0);
assertEquals(1.0, producer.getProgress());
assertEquals(100, producer.getProgressPercent());
assertEquals(featurable, current.get());
assertNull(done.get());
assertFalse(producer.isProducing());
producer.update(1.0);
assertEquals(featurable, done.get());
assertNull(cant.get());
assertFalse(producer.isProducing());
}
use of com.b3dgs.lionengine.game.feature.FeaturableModel in project lionengine by b3dgs.
the class SceneRasterable method add.
private void add(SetupSurfaceRastered setup, int offsetX) {
final SpriteAnimated surface = Drawable.loadSpriteAnimated(setup.getSurface(), 4, 4);
final Featurable featurable = new FeaturableModel(services, setup);
featurable.addFeature(new MirrorableModel(services, setup));
featurable.addFeature(new AnimatableModel(services, setup, surface));
final Transformable transformable = featurable.addFeatureAndGet(new TransformableModel(services, setup));
final Rasterable rasterable = new RasterableModel(services, setup);
rasterable.setOrigin(Origin.MIDDLE);
rasterable.setFrameOffsets(1, 2);
featurable.addFeature(rasterable);
featurable.addFeature(new RefreshableModel(extrp -> {
transformable.setLocationY(UtilMath.sin(count) * 240);
surface.setLocation(camera, transformable);
rasterable.update(extrp);
surface.update(extrp);
}));
featurable.addFeature(new DisplayableModel(g -> rasterable.render(g)));
transformable.setLocationX(120 + offsetX);
handler.add(featurable);
}
use of com.b3dgs.lionengine.game.feature.FeaturableModel in project lionengine by b3dgs.
the class TileCollidableModelTest method testFromBottom.
/**
* Test the collidable from bottom.
*/
@Test
void testFromBottom() {
final Transformable transformable = createObject(new FeaturableModel(services, setup));
final AtomicReference<Tile> collided = new AtomicReference<>();
final TileCollidableListener listener = createListener(collided);
collidable.addListener(listener);
transformable.teleport(0.0, -1.0);
transformable.moveLocation(1.0, 0.0, 3.0);
collidable.update(1.0);
assertEquals(map.getTile(0, 0), collided.get());
}
Aggregations