LPCGame
A Simple 2d Game Engine
 All Classes Namespaces Functions Variables Enumerations Enumerator Pages
entitymanager.h
1 #ifndef ENTITYMANAGER_H
2 #define ENTITYMANAGER_H
3 
4 #include <vector>
5 #include <memory>
6 #include "external/json/json.h"
7 #include "entity.h"
8 #include "map.h"
9 #include "camera.h"
10 
13 typedef std::vector<std::shared_ptr<Entity>> EntityList;
14 
16 
21 public:
22  EntityManager();
23  ~EntityManager();
25  virtual void Draw();
27  virtual void Update();
32  virtual void Move(float deltaT);
37  void SetCollisionMaps(Map *map);
42  void Register(std::shared_ptr<Entity> obj);
48  void Register(std::shared_ptr<Camera> camera);
53  void Remove(std::shared_ptr<Entity> entity);
59  std::shared_ptr<Entity> GetEntity(const std::string &name);
63  virtual void CheckMouseEvents();
69  virtual void HandleMouseEvent(const SDL_MouseButtonEvent &mouseEvent);
74  virtual void HandleMouseEvent(const SDL_MouseMotionEvent &mouseEvent);
79  Json::Value Save();
80  //Testing shared pointers in Lua
81  void PrintSharedPtrCount();
82 
83 private:
90  CollisionMap GetEntityCollisionMap(const Rectf &target, int distance = 2 * TILE_WIDTH);
91 
92 protected:
94  EntityList mEntities;
95  std::shared_ptr<Camera> mCamera;
96 };
97 
98 #endif