Add ECS framework

This commit is contained in:
Thraix
2023-05-11 22:33:10 +02:00
parent 94d4aa9356
commit 412d74ade3
12 changed files with 673 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
#pragma once
#include "copium/ecs/Config.h"
#include <unordered_map>
#include <vector>
namespace Copium
{
class EntitySet
{
private:
std::vector<EntityID> entitiesList;
std::unordered_map<EntityID, size_t> entitiesMap; // Maps the entity id to a component index
public:
bool Emplace(EntityID entity);
bool Erase(EntityID entity);
bool Pop();
size_t Find(EntityID entity);
size_t Size() const;
std::vector<EntityID>& GetList();
const std::vector<EntityID>& GetList() const;
std::vector<EntityID>::iterator begin();
std::vector<EntityID>::iterator end();
};
}