32 lines
789 B
C++
32 lines
789 B
C++
#include <Entity/EntityManager.h>
|
|
|
|
#include <Entity/Entity.h>
|
|
|
|
EntityID EntityManager::ID = 0;
|
|
|
|
void InitEntityManager(Juliet::NonNullPtr<World> world)
|
|
{
|
|
EntityManager* newManager = Juliet::ArenaPushStruct<EntityManager>(world->WorldArena);
|
|
world->EntityManager = newManager;
|
|
|
|
newManager->Entities.Create(world->WorldArena JULIET_DEBUG_PARAM("Entities"));
|
|
|
|
newManager->Arena = Juliet::ArenaAllocate({} JULIET_DEBUG_PARAM("Entity Arena"));
|
|
}
|
|
|
|
void ShutdownEntityManager()
|
|
{
|
|
GetEntityManager().Entities.Destroy();
|
|
}
|
|
|
|
EntityManager& GetEntityManager()
|
|
{
|
|
Juliet::NonNullPtr entityManager = GetGameState()->World->EntityManager;
|
|
return *entityManager;
|
|
}
|
|
|
|
void RegisterEntity(EntityManager& /*manager*/, Entity* entity)
|
|
{
|
|
entity->ID = EntityManager::ID++;
|
|
}
|