Acheron
Loading...
Searching...
No Matches
entity.hpp
1#pragma once
2
3#include <unordered_map>
4#include <vector>
5
6#include "types.hpp"
7
8namespace acheron::ecs {
9 class World;
13 class EntityManager {
14 public:
15 EntityManager();
21 Entity Spawn();
22
30 void Despawn(Entity entity);
31
41 void SetSignature(Entity entity, Signature signature);
42
50 Signature GetSignature(Entity entity);
51
52 std::unordered_map<Entity, Signature> signatures;
53 private:
54 std::vector<Entity> availableEntities;
55 Entity idCounter = 0;
56 };
57};
Signature GetSignature(Entity entity)
Gets the signature for an entity.
Definition entity.cpp:37
void Despawn(Entity entity)
Despawn(destroy) an entity.
Definition entity.cpp:24
void SetSignature(Entity entity, Signature signature)
Sets the signature of an entity.
Definition entity.cpp:33
Entity Spawn()
Spawns an entity.
Definition entity.cpp:10
std::unordered_map< Entity, Signature > signatures
Map for entities and their associated signature.
Definition entity.hpp:52
Central context for the ECS.
Definition world.hpp:20