preparing serialization of entities
This commit is contained in:
@@ -28,7 +28,13 @@ void InitEntityManager(NonNullPtr<World> world)
|
||||
|
||||
void ShutdownEntityManager()
|
||||
{
|
||||
GetEntityManager().Entities.Destroy();
|
||||
auto& manager = GetEntityManager();
|
||||
for (typed_entity_array& type : manager.by_type)
|
||||
{
|
||||
ArenaRelease(type.arena);
|
||||
}
|
||||
|
||||
manager.Entities.Destroy();
|
||||
}
|
||||
|
||||
EntityManager& GetEntityManager()
|
||||
@@ -37,8 +43,6 @@ EntityManager& GetEntityManager()
|
||||
return *entityManager;
|
||||
}
|
||||
|
||||
void Serialize(NonNullPtr<EntityManager> entityManager) {}
|
||||
|
||||
entity_template* RegisterEntity(EntityManager& manager, Entity* base, DerivedType entity)
|
||||
{
|
||||
base->ID = EntityManager::ID++;
|
||||
@@ -61,6 +65,11 @@ entity_template* RegisterEntity(EntityManager& manager, Entity* base, DerivedTyp
|
||||
return ptr;
|
||||
}
|
||||
|
||||
void RegisterBaseEntity(EntityManager& manager, Entity&& base)
|
||||
{
|
||||
GetEntityManager().Entities.PushBack(std::move(base));
|
||||
}
|
||||
|
||||
void UpdateEntityManager(EntityManager& manager)
|
||||
{
|
||||
// Todo : inert by definition dont move, but this is for test
|
||||
|
||||
Reference in New Issue
Block a user