SDL Minigame  1.0
Loading...
Searching...
No Matches
Manager.h
1#pragma once
2#include <iostream>
3#include <array>
4#include <memory>
5#include <vector>
6
7#include "Constants.h"
8#include "Entity.h"
9
20{
21public:
22 void update();
23 void draw();
26 void refresh();
27
28 void addToGroup(Entity* mEntity, Group mGroup);
29 std::vector<Entity*>& getGroup(Group mGroup);
30
31 void addToTeam(Entity* mEntity, Team mTeam);
32 std::vector<Entity*>& getTeam(Team mTeam);
33
34 std::vector<Entity*> getAll();
35
36 Entity& addEntity();
37
38private:
39 std::vector<std::unique_ptr<Entity>> entities;
40 std::array<std::vector<Entity*>, MAX_GROUPS> entitiesByGroup;
41 std::array<std::vector<Entity*>, MAX_TEAMS> entitiesByTeam;
42};
Main class for any object in game, stores associations, labeling and components.
Definition Entity.h:29
Is responsible for managing all entities.
Definition Manager.h:20
std::vector< Entity * > & getGroup(Group mGroup)
Definition Manager.cpp:56
std::vector< Entity * > & getTeam(Team mTeam)
Definition Manager.cpp:66
Entity & addEntity()
Creates and returns a new, empty entity.
Definition Manager.cpp:80
void addToTeam(Entity *mEntity, Team mTeam)
Definition Manager.cpp:61
void addToGroup(Entity *mEntity, Group mGroup)
Definition Manager.cpp:51
std::vector< Entity * > getAll()
Definition Manager.cpp:71
void draw()
Definition Manager.cpp:9
void refresh()
Definition Manager.cpp:14
void update()
Definition Manager.cpp:46