#ifndef TEXTUREMANAGER_H
#define TEXTUREMANAGER_H

#include "SFML/Graphics.hpp"
#include <string>
#include <vector>
#include <memory>

class TextureManager
{
private:
	static TextureManager* instance;
	void InitialiseInstence();

	TextureManager() {}
	TextureManager(const TextureManager&){}
	~TextureManager();

	sf::Texture * tSpriteSheet;
	sf::Texture * tSpriteSheetAlpha;
	sf::Texture * tBackGrounds;
	sf::Texture * tSplashScreen;

	std::string NtSpriteSheet;
	std::string NtSpriteSheetAlpha;
	std::string NtBackgrndSheet;
	std::string NtSplashScreen;

public:
	static TextureManager& getInstance();
	static void destroy();

	// Functions to access the textures
	sf::Texture * rSpriteSheet();
	sf::Texture * rSpriteSheetAlpha();
	sf::Texture * rBackGrounds();
	sf::Texture * rSplashScreen();
};

#endif //TEXTUREMANAGER_H
