#ifndef ASSETS_ASSETS_H_ #define ASSETS_ASSETS_H_ #include "../graphics/TextureAnimation.h" #include #include #include #include class Texture; class Shader; class Font; class Atlas; class UiDocument; namespace audio { class Sound; } class Assets { std::unordered_map> textures; std::unordered_map> shaders; std::unordered_map> fonts; std::unordered_map> atlases; std::unordered_map> layouts; std::unordered_map> sounds; std::vector animations; public: ~Assets(); Texture* getTexture(std::string name) const; void store(Texture* texture, std::string name); Shader* getShader(std::string name) const; void store(Shader* shader, std::string name); Font* getFont(std::string name) const; void store(Font* font, std::string name); Atlas* getAtlas(std::string name) const; void store(Atlas* atlas, std::string name); audio::Sound* getSound(std::string name) const; void store(audio::Sound* sound, std::string name); const std::vector& getAnimations(); void store(const TextureAnimation& animation); UiDocument* getLayout(std::string name) const; void store(UiDocument* layout, std::string name); void extend(const Assets& assets); }; #endif /* ASSETS_ASSETS_H_ */