Program Listing for File entityManager.cpp

Return to documentation for file (PrismEngine/src/entityManager.cpp)

#include "entityManager.h"


prism::scene::Entity prism::scene::EntityManager::createEntity()
{
    if (!freeList.empty()) {
        Entity id = freeList.front();
        freeList.pop();
        return id;
    }
    return nextEntityId++;
}

bool prism::scene::EntityManager::destroyEntity(Entity entityId)
{
    if (entityId == INVALID_ENTITY_ID || entityId >= nextEntityId) {
        return false;
    }
    freeList.push(entityId);
    return true;
}

bool prism::scene::EntityManager::isEntityValid(Entity entityId) const
{
    return entityId != INVALID_ENTITY_ID && entityId < nextEntityId;
}