Files
Juliet/Game/Entity/EntityManager.cpp
T
Patedam d1b7c5dbbe Adding scratch arena for main thread (and any thread in the future)
Added some function based on raddbg code for string conversion and more.
2026-08-16 18:06:46 -04:00

44 lines
1.1 KiB
C++

#include <Entity/EntityManager.h>
#include <Entity/Entity.h>
#include <Graphics/MeshRenderer.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({ .Name = "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++;
}
void UpdateEntityManager(EntityManager& manager)
{
for (Entity& ent : manager.Entities)
{
if (ent.MeshInstance != indexMax)
{
Juliet::SetMeshInstanceTransform(ent.MeshInstance, Juliet::MatrixTranslation(ent.X, ent.Y, 0.0f));
}
}
}