Building Game Engines
ResourceManager.hpp
Go to the documentation of this file.
1 #ifndef RESOURCE_MANAGER_HPP
2 #define RESOURCE_MANAGER_HPP
3 
4 #include <SDL2/SDL.h>
5 #include <unordered_map>
6 #include <sstream>
7 
8 #include "GameObject.hpp"
9 #include "GameManager.hpp"
10 
15  public:
19  static ResourceManager* GetInstance();
20 
24  void Start(SDL_Renderer* m_renderer);
25 
29  void Shutdown();
30 
34  void SaveState(const char* name);
35 
40  void LoadEnemies(const char* filename);
41 
46  void LoadCollectibles(const char* filename);
47 
51  void AddGameObject(std::string name, GameObject* object);
52 
56  GameObject* GetGameObject(std::string name);
57 
61  std::unordered_map<std::string, GameObject*> GetGameObjects();
62 
66  void RemoveGameObject(std::string name);
67 
71  void Input(SDL_Event e);
72 
76  void PausedInput(SDL_Event e);
77 
81  void Update();
82 
86  void PausedUpdate();
87 
91  void Render(SDL_Renderer* m_renderer);
92 
93  //Makes an enemy
94  GameObject* MakeEnemy(int x, int y, int range, int type);
95  GameObject* MakeFruit(int xpos, int ypos, int width, int height, int type);
96  /*
97  *Choses whitch mode of placing is done in editing mode
98  */
99  void ChangePlaceWhat(int to);
100 
104  void changeBlock(int valueBlock);
105  //
106  int currentTile = 0;
107  //
108  SDL_Renderer* the_renderer;
109  //this is just a test
111  private:
112  int show = 0;
113  // The static instance of the resource manager
114  static ResourceManager* instance;
115 
116  // A private constructor
117  //ResourceManager() {};
121  void DeleteFruitEnemy(int placeX, int placeY);
122 
123  // A private alternate constructor that cannot be used
125 
126  // A private copy constructor that cannot be used
127  void operator=(ResourceManager const&);
128 
129  // A list of all game objects
130  std::unordered_map<std::string, GameObject*> gameObjects;
131 
132  //Makes an enemy
133  //GameObject* MakeEnemy(int x, int y, int range, TileMap* tm, SDL_Renderer* renderer);
134  //GameObject* MakeFruit(int xpos, int ypos, int width, int height, TileMap* tm, SDL_Renderer* renderer);
135 
136  GameManager* gMang = nullptr;
137 
138  //int currentTile;
139 
140  TileMap* theTileMap;
141 
142  //SDL_Renderer* the_renderer
143  SDL_Texture* player_texture;
144  std::vector<SDL_Texture*> enemy_textures;
145  std::vector<SDL_Texture*> item_textures;
146  SDL_Texture* tilemap_texture;
147  SDL_Texture* background_texture;
148 };
149 
150 /*
151 #include <pybind11/pybind11.h>
152 
153 namespace py = pybind11;
154 
155 PYBIND11_MODULE(mygameengine, m){
156  py::class_<ResourceManager>(m, "resourceManager")
157  .def("getInstance", &ResourceManager::GetInstance, py::return_value_policy::reference)
158  .def("addGameObject", &ResourceManager::AddGameObject)
159  .def("makeFruit", &ResourceManager::MakeFruit, py::return_value_policy::reference)
160  .def("makeEnemy", &ResourceManager::MakeEnemy, py::return_value_policy::reference);
161 
162 // We do not need to expose everything to our users!
163 // .def("getSDLWindow", &SDLGraphicsProgram::getSDLWindow, py::return_value_policy::reference)
164 }
165 */
166 #endif
void Shutdown()
Definition: ResourceManager.cpp:496
void RemoveGameObject(std::string name)
Definition: ResourceManager.cpp:517
void Input(SDL_Event e)
Definition: ResourceManager.cpp:528
void PausedUpdate()
Definition: ResourceManager.cpp:32
GameObject * MakeEnemy(int x, int y, int range, int type)
Definition: ResourceManager.cpp:480
ResourceManager()
Definition: ResourceManager.hpp:110
void SaveState(const char *name)
Definition: ResourceManager.cpp:265
void Start(SDL_Renderer *m_renderer)
Definition: ResourceManager.cpp:280
Definition: ResourceManager.hpp:14
Definition: GameObject.hpp:16
void Render(SDL_Renderer *m_renderer)
Definition: ResourceManager.cpp:541
void Update()
Definition: ResourceManager.cpp:534
SDL_Renderer * the_renderer
Definition: ResourceManager.hpp:108
void changeBlock(int valueBlock)
Definition: ResourceManager.cpp:27
void LoadEnemies(const char *filename)
Definition: ResourceManager.cpp:457
Definition: GameManager.hpp:16
static ResourceManager * GetInstance()
Definition: ResourceManager.cpp:19
void LoadCollectibles(const char *filename)
Definition: ResourceManager.cpp:434
void PausedInput(SDL_Event e)
Definition: ResourceManager.cpp:43
Definition: TileMap.hpp:14
void ChangePlaceWhat(int to)
Definition: ResourceManager.cpp:37
GameObject * MakeFruit(int xpos, int ypos, int width, int height, int type)
Definition: ResourceManager.cpp:247
GameObject * GetGameObject(std::string name)
Definition: ResourceManager.cpp:507
void AddGameObject(std::string name, GameObject *object)
Definition: ResourceManager.cpp:503
int currentTile
Definition: ResourceManager.hpp:106
std::unordered_map< std::string, GameObject * > GetGameObjects()