@Override public void free (Entity entity) { if (entity != null) { identifierPool.checkIn(entity.id); super.free(entity); } }
@Override public Entity obtain() { Entity entity = super.obtain(); entity.id = identifierPool.checkOut(); return entity; }
deletedEntities = new Array<Entity>(); disabled = new BitSet(); identifierPool = new IdentifierPool(); entityPool = new Pool<Entity>() {
@Override public void dispose() { entityPool.freeAll(entities); entities.clear(); entityPool.freeAll(deletedEntities); deletedEntities.clear(); disabled.clear(); active = 0; added = 0; created = 0; deleted = 0; identifierPool.dispose(); } }
@Override public void freeAll (Array<Entity> entities) { for (Entity entity : entities) { if (entity != null) { identifierPool.checkIn(entity.id); } } super.freeAll(entities); }