Dart DocumentationdartemisEntityManager

EntityManager class

class EntityManager extends Manager {

 Bag<Entity> _entities;
 Bag<Entity> _deletedEntities;
 Bag<bool> _disabled;

 int _active = 0;
 int _added = 0;
 int _created = 0;
 int _deleted = 0;

 _IdentifierPool _identifierPool;

 EntityManager() : _entities = new Bag<Entity>(),
                   _deletedEntities = new Bag<Entity>(),
                   _disabled = new Bag<bool>(),
                   _identifierPool = new _IdentifierPool();

 void initialize() {}

 Entity _createEntityInstance() {
   Entity e = _deletedEntities.removeLast();
   if (null == e) {
     e = new Entity._(_world, _identifierPool.checkOut());
   }
   _created++;
   return e;
 }

 void added(Entity e) {
   _active++;
   _added++;
   _entities[e.id] = e;
 }

 void enabled(Entity e) {
   _disabled[e.id] = false;
 }

 void disabled(Entity e) {
   _disabled[e.id] = true;
 }

 void deleted(Entity e) {
   _entities[e.id] = null;

   _disabled[e.id] = false;

   _deletedEntities.add(e);

   _active--;
   _deleted++;
 }


 /**
  * Check if this entity is active.
  * Active means the entity is being actively processed.
  */
 bool isActive(int entityId) => _entities[entityId] != null;

 /**
  * Check if the specified entityId is enabled.
  */
 bool isEnabled(int entityId) => !_disabled[entityId];

 /**
  * Get a entity with this id.
  */
 Entity _getEntity(int entityId) => _entities[entityId];

 /**
  * Get how many entities are active in this world.
  */
 int get activeEntityCount => _active;

 /**
  * Get how many entities have been created in the world since start.
  * Note: A created entity may not have been added to the world, thus
  * created count is always equal or larger than added count.
  */
 int get totalCreated => _created;

 /**
  * Get how many entities have been added to the world since start.
  */
 int get totalAdded => _added;

 /**
  * Get how many entities have been deleted from the world since start.
  */
 int get totalDeleted => _deleted;
}

Extends

Manager > EntityManager

Constructors

new EntityManager() #

EntityManager() : _entities = new Bag<Entity>(),
                 _deletedEntities = new Bag<Entity>(),
                 _disabled = new Bag<bool>(),
                 _identifierPool = new _IdentifierPool();

Properties

final int activeEntityCount #

Get how many entities are active in this world.

int get activeEntityCount => _active;

final int totalAdded #

Get how many entities have been added to the world since start.

int get totalAdded => _added;

final int totalCreated #

Get how many entities have been created in the world since start. Note: A created entity may not have been added to the world, thus created count is always equal or larger than added count.

int get totalCreated => _created;

final int totalDeleted #

Get how many entities have been deleted from the world since start.

int get totalDeleted => _deleted;

Methods

void added(Entity e) #

void added(Entity e) {
 _active++;
 _added++;
 _entities[e.id] = e;
}

void changed(Entity e) #

inherited from Manager
void changed(Entity e) {}

void deleted(Entity e) #

void deleted(Entity e) {
 _entities[e.id] = null;

 _disabled[e.id] = false;

 _deletedEntities.add(e);

 _active--;
 _deleted++;
}

void disabled(Entity e) #

void disabled(Entity e) {
 _disabled[e.id] = true;
}

void enabled(Entity e) #

void enabled(Entity e) {
 _disabled[e.id] = false;
}

void initialize() #

void initialize() {}

bool isActive(int entityId) #

Check if this entity is active. Active means the entity is being actively processed.

bool isActive(int entityId) => _entities[entityId] != null;

bool isEnabled(int entityId) #

Check if the specified entityId is enabled.

bool isEnabled(int entityId) => !_disabled[entityId];