Package com.badlogic.ashley.core

Examples of com.badlogic.ashley.core.Engine


    }

    @Test
    @SuppressWarnings("unchecked")
    public void shouldIterateEntitiesWithCorrectFamily(){
        final Engine engine = new Engine();

        final Family family = Family.all(ComponentA.class, ComponentB.class).get();
        final IteratingSystemMock system = new IteratingSystemMock(family);
        final Entity e = new Entity();

        engine.addSystem(system);
        engine.addEntity(e);

        //When entity has ComponentA
        e.add(new ComponentA());
        engine.update(deltaTime);

        assertEquals(0, system.numUpdates);

        //When entity has ComponentA and ComponentB
        system.numUpdates = 0;
        e.add(new ComponentB());
        engine.update(deltaTime);

        assertEquals(1, system.numUpdates);

        //When entity has ComponentA, ComponentB and ComponentC
        system.numUpdates = 0;
        e.add(new ComponentC());
        engine.update(deltaTime);

        assertEquals(1, system.numUpdates);

        //When entity has ComponentB and ComponentC
        system.numUpdates = 0;
        e.remove(ComponentA.class);
        e.add(new ComponentC());
        engine.update(deltaTime);

        assertEquals(0, system.numUpdates);
    }
View Full Code Here


        assertEquals(0, system.numUpdates);
    }
   
    @Test
    public void entityRemovalWhileIterating(){
        Engine engine = new Engine();
        ImmutableArray<Entity> entities = engine.getEntitiesFor(Family.all(SpyComponent.class, IndexComponent.class).get());
        ComponentMapper<SpyComponent> sm = ComponentMapper.getFor(SpyComponent.class);
       
        engine.addSystem(new IteratingRemovalSystem());
       
        final int numEntities = 10;
       
        for (int i = 0; i < numEntities; ++i) {
          Entity e = new Entity();
          e.add(new SpyComponent());
         
          IndexComponent in = new IndexComponent();
          in.index = i + 1;
         
          e.add(in);
         
          engine.addEntity(e);
        }
       
        engine.update(deltaTime);
       
        assertEquals(numEntities / 2, entities.size());
       
        for (int i = 0; i < entities.size(); ++i) {
          Entity e = entities.get(i);
View Full Code Here

        }
    }
   
    @Test
    public void componentRemovalWhileIterating(){
        Engine engine = new Engine();
        ImmutableArray<Entity> entities = engine.getEntitiesFor(Family.all(SpyComponent.class, IndexComponent.class).get());
        ComponentMapper<SpyComponent> sm = ComponentMapper.getFor(SpyComponent.class);
       
        engine.addSystem(new IteratingComponentRemovalSystem());
       
        final int numEntities = 10;
       
        for (int i = 0; i < numEntities; ++i) {
          Entity e = new Entity();
          e.add(new SpyComponent());
         
          IndexComponent in = new IndexComponent();
          in.index = i + 1;
         
          e.add(in);
         
          engine.addEntity(e);
        }
       
        engine.update(deltaTime);
       
        assertEquals(numEntities / 2, entities.size());
       
        for (int i = 0; i < entities.size(); ++i) {
          Entity e = entities.get(i);
View Full Code Here

    }
    }
   
    @Test
    public void intervalSystem(){
        Engine engine = new Engine();
        IntervalIteratingSystemSpy intervalSystemSpy = new IntervalIteratingSystemSpy();
        ImmutableArray<Entity> entities = engine.getEntitiesFor(Family.all(IntervalComponentSpy.class).get());
        ComponentMapper<IntervalComponentSpy> im = ComponentMapper.getFor(IntervalComponentSpy.class);
       
        engine.addSystem(intervalSystemSpy);
       
        for (int i = 0; i < 10; ++i) {
          Entity entity = new Entity();
          entity.add(new IntervalComponentSpy());
          engine.addEntity(entity);
        }

        for (int i = 1; i <= 10; ++i) {
          engine.update(deltaTime);
         
          for (int j = 0; j < entities.size(); ++j) {
              assertEquals(i / 2, im.get(entities.get(j)).numUpdates);
            }
        }
View Full Code Here

      engine.update(Constants.DELTA_TIME);
    }
  }
 
  private static Engine prepareEngine(int numEntities) {
    Engine engine = new Engine();
   
    engine.addSystem(new MovementSystem());
    engine.addSystem(new StateSystem());
    engine.addSystem(new CollisionSystem());
    engine.addSystem(new RemovalSystem());
   
    for (int i = 0; i < numEntities; ++i) {
      Entity entity = new Entity();
     
      if (Constants.shouldHaveComponent(ComponentType.POSITION, i)) {
        PositionComponent pos = new PositionComponent();
        pos.pos.x = MathUtils.random(Constants.MIN_POS, Constants.MAX_POS);
        pos.pos.y = MathUtils.random(Constants.MIN_POS, Constants.MAX_POS);
        entity.add(pos);
      }
     
      if (Constants.shouldHaveComponent(ComponentType.MOVEMENT, i)) {
        MovementComponent mov = new MovementComponent();
        mov.velocity.x = MathUtils.random(Constants.MIN_VEL, Constants.MAX_VEL);
        mov.velocity.y = MathUtils.random(Constants.MIN_VEL, Constants.MAX_VEL);
        mov.accel.x = MathUtils.random(Constants.MIN_ACC, Constants.MAX_ACC);
        mov.accel.y = MathUtils.random(Constants.MIN_ACC, Constants.MAX_ACC);
       
        entity.add(mov);
      }
     
      if (Constants.shouldHaveComponent(ComponentType.RADIUS, i)) {
        RadiusComponent rad = new RadiusComponent();
        rad.radius = MathUtils.random(Constants.MIN_RADIUS, Constants.MAX_RADIUS);
        entity.add(rad);
      }
     
      if (Constants.shouldHaveComponent(ComponentType.STATE, i)) {
        entity.add(new StateComponent());
      }
     
      engine.addEntity(entity);
    }
   
    return engine;
  }
View Full Code Here

import com.badlogic.ashley.core.Engine;
import com.badlogic.ashley.core.EntitySystem;

public class SystemPriorityTest {
  public static void main(String[] args){
    Engine engine = new Engine();
   
    engine.addSystem(new SystemA(10));
    engine.addSystem(new SystemB(5));
    engine.addSystem(new SystemA(2));
   
    engine.update(0);
  }
View Full Code Here

  }

  @Test
  @SuppressWarnings("unchecked")
  public void shouldIterateEntitiesWithCorrectFamily(){
    final Engine engine = new Engine();

    final Family family = Family.getFor(OrderComponent.class, ComponentB.class);
    final SortedIteratingSystemMock system = new SortedIteratingSystemMock(family);
    final Entity e = new Entity();

    engine.addSystem(system);
    engine.addEntity(e);
   
    //When entity has OrderComponent
    e.add(new OrderComponent("A", 0));
    engine.update(deltaTime);

    //When entity has OrderComponent and ComponentB
    e.add(new ComponentB());
    system.expectedNames.addLast("A");
    engine.update(deltaTime);

    //When entity has OrderComponent, ComponentB and ComponentC
    e.add(new ComponentC());
    system.expectedNames.addLast("A");
    engine.update(deltaTime);

    //When entity has ComponentB and ComponentC
    e.remove(OrderComponent.class);
    e.add(new ComponentC());
    engine.update(deltaTime);
  }
View Full Code Here

    engine.update(deltaTime);
  }
 
  @Test
  public void entityRemovalWhileIterating(){
    Engine engine = new Engine();
    ImmutableArray<Entity> entities = engine.getEntitiesFor(Family.getFor(SpyComponent.class, IndexComponent.class));
    ComponentMapper<SpyComponent> sm = ComponentMapper.getFor(SpyComponent.class);
   
    engine.addSystem(new IteratingRemovalSystem());
   
    final int numEntities = 10;
   
    for (int i = 0; i < numEntities; ++i) {
      Entity e = new Entity();
      e.add(new SpyComponent());
      e.add(new OrderComponent("" + i, i));
     
      IndexComponent in = new IndexComponent();
      in.index = i + 1;
     
      e.add(in);
     
      engine.addEntity(e);
    }
   
    engine.update(deltaTime);
   
    assertEquals(numEntities / 2, entities.size());
   
    for (int i = 0; i < entities.size(); ++i) {
      Entity e = entities.get(i);
View Full Code Here

    }
  }
 
  @Test
  public void componentRemovalWhileIterating(){
    Engine engine = new Engine();
    ImmutableArray<Entity> entities = engine.getEntitiesFor(Family.getFor(SpyComponent.class, IndexComponent.class));
    ComponentMapper<SpyComponent> sm = ComponentMapper.getFor(SpyComponent.class);
   
    engine.addSystem(new IteratingComponentRemovalSystem());
   
    final int numEntities = 10;
   
    for (int i = 0; i < numEntities; ++i) {
      Entity e = new Entity();
      e.add(new SpyComponent());
      e.add(new OrderComponent("" + i, i));
     
      IndexComponent in = new IndexComponent();
      in.index = i + 1;
     
      e.add(in);
     
      engine.addEntity(e);
    }
   
    engine.update(deltaTime);
   
    assertEquals(numEntities / 2, entities.size());
   
    for (int i = 0; i < entities.size(); ++i) {
      Entity e = entities.get(i);
View Full Code Here

    return entity;
  }
 
  @Test
  public void entityOrder(){
    Engine engine = new Engine();
   
    final Family family = Family.getFor(OrderComponent.class);
    final SortedIteratingSystemMock system = new SortedIteratingSystemMock(family);
    engine.addSystem(system);
   
    Entity a = createOrderEntity("A", 0);
    Entity b = createOrderEntity("B", 1);
    Entity c = createOrderEntity("C", 3);
    Entity d = createOrderEntity("D", 2);
   
    engine.addEntity(a);
    engine.addEntity(b);
    engine.addEntity(c);
    system.expectedNames.addLast("A");
    system.expectedNames.addLast("B");
    system.expectedNames.addLast("C");
    engine.update(0);
   
    engine.addEntity(d);
    system.expectedNames.addLast("A");
    system.expectedNames.addLast("B");
    system.expectedNames.addLast("D");
    system.expectedNames.addLast("C");
    engine.update(0);
   
    orderMapper.get(a).zLayer = 3;
    orderMapper.get(b).zLayer = 2;
    orderMapper.get(c).zLayer = 1;
    orderMapper.get(d).zLayer = 0;
    system.forceSort();
    system.expectedNames.addLast("D");
    system.expectedNames.addLast("C");
    system.expectedNames.addLast("B");
    system.expectedNames.addLast("A");
    engine.update(0);
  }
View Full Code Here

TOP

Related Classes of com.badlogic.ashley.core.Engine

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.