2016-03-22 19:03:19 +00:00
|
|
|
#ifndef __PTF_RESOURCE_MANAGER_HPP__
|
|
|
|
#define __PTF_RESOURCE_MANAGER_HPP__
|
|
|
|
|
|
|
|
#include <SFML/Graphics.hpp>
|
2016-03-30 11:32:49 +00:00
|
|
|
#include <SFML/Audio.hpp>
|
2016-04-09 20:36:07 +00:00
|
|
|
#include <unordered_map>
|
2016-03-22 19:03:19 +00:00
|
|
|
#include <string>
|
2016-04-09 20:36:07 +00:00
|
|
|
#include <fstream>
|
|
|
|
#include <memory>
|
|
|
|
|
2016-04-10 03:10:27 +00:00
|
|
|
/**
|
|
|
|
* Gestionnaire de ressources du jeu. Conserve des
|
|
|
|
* références vers toutes les ressources pour éviter
|
|
|
|
* de les charger deux fois, permet l'accès uniforme
|
|
|
|
* aux ressources
|
|
|
|
*/
|
2016-03-22 19:03:19 +00:00
|
|
|
class ResourceManager {
|
|
|
|
private:
|
2016-04-09 20:36:07 +00:00
|
|
|
std::string resources_dir;
|
|
|
|
|
2016-04-10 03:10:27 +00:00
|
|
|
std::unordered_map<std::string, std::unique_ptr<sf::Texture>> textures;
|
|
|
|
std::unordered_map<std::string, std::unique_ptr<sf::Font>> fonts;
|
2016-04-09 20:36:07 +00:00
|
|
|
|
|
|
|
float music_volume;
|
2016-03-30 11:32:49 +00:00
|
|
|
sf::Music music;
|
2016-03-22 19:03:19 +00:00
|
|
|
|
|
|
|
public:
|
2016-03-30 18:40:59 +00:00
|
|
|
ResourceManager();
|
2016-03-22 19:03:19 +00:00
|
|
|
~ResourceManager();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Récupère une image. Réutilise l'image déjà chargée
|
|
|
|
* si elle l'a déjà été, sinon, tente de la charger
|
|
|
|
* depuis son emplacement
|
|
|
|
*/
|
|
|
|
sf::Texture& getTexture(std::string name);
|
2016-03-30 11:32:49 +00:00
|
|
|
|
2016-04-05 15:37:43 +00:00
|
|
|
/**
|
|
|
|
* Récupère la police demandée. Réutilise une police
|
|
|
|
* déjà chargée si elle a déjà été demandée, sinon, la
|
|
|
|
* charge depuis son emplacement
|
|
|
|
*/
|
|
|
|
sf::Font& getFont(std::string name);
|
|
|
|
|
2016-03-30 11:32:49 +00:00
|
|
|
/**
|
2016-04-09 20:36:07 +00:00
|
|
|
* Récupère un lecteur de fichier vers le niveau donné
|
2016-03-30 11:32:49 +00:00
|
|
|
*/
|
2016-04-10 03:10:27 +00:00
|
|
|
std::ifstream getLevelReader(std::string name);
|
2016-03-30 11:32:49 +00:00
|
|
|
|
|
|
|
/**
|
2016-04-09 20:36:07 +00:00
|
|
|
* Récupère un jacob de fichier vers le niveau donné
|
2016-03-30 11:32:49 +00:00
|
|
|
*/
|
2016-04-10 03:10:27 +00:00
|
|
|
std::ofstream getLevelWriter(std::string name);
|
2016-03-30 11:32:49 +00:00
|
|
|
|
|
|
|
/**
|
2016-04-09 20:36:07 +00:00
|
|
|
* Démarre la musique de fond donnée
|
2016-03-30 11:32:49 +00:00
|
|
|
*/
|
2016-04-09 20:36:07 +00:00
|
|
|
void playMusic(std::string name);
|
2016-03-30 11:32:49 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Arrête la musique de fond
|
|
|
|
*/
|
|
|
|
void stopMusic();
|
2016-04-09 20:36:07 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Récupère le volume de la musique de fond
|
|
|
|
*/
|
|
|
|
float getMusicVolume();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Modifie le volume de la musique de fond
|
|
|
|
*/
|
|
|
|
void setMusicVolume(float set_music_volume);
|
2016-03-22 19:03:19 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|