]> git.localhorst.tv Git - blank.git/blob - app/Assets.hpp
new gcc version
[blank.git] / app / Assets.hpp
1 #ifndef BLANK_APP_ASSETS_HPP_
2 #define BLANK_APP_ASSETS_HPP_
3
4 #include "../graphics/Font.hpp"
5
6 #include <string>
7
8
9 namespace blank {
10
11 class ArrayTexture;
12 class BlockTypeRegistry;
13 class CubeMap;
14 class ModelRegistry;
15 class ResourceIndex;
16 class ShapeRegistry;
17 class Sound;
18 class Texture;
19
20 class AssetLoader {
21
22 public:
23         explicit AssetLoader(const std::string &base);
24
25         void LoadBlockTypes(
26                 const std::string &set_name,
27                 BlockTypeRegistry &,
28                 ResourceIndex &snd,
29                 ResourceIndex &tex,
30                 const ShapeRegistry &) const;
31         CubeMap LoadCubeMap(const std::string &name) const;
32         Font LoadFont(const std::string &name, int size) const;
33         void LoadModels(
34                 const std::string &set_name,
35                 ModelRegistry &,
36                 ResourceIndex &,
37                 const ShapeRegistry &) const;
38         void LoadShapes(const std::string &set_name, ShapeRegistry &) const;
39         Sound LoadSound(const std::string &name) const;
40         Texture LoadTexture(const std::string &name) const;
41         void LoadTexture(const std::string &name, ArrayTexture &, int layer) const;
42         void LoadTextures(const ResourceIndex &, ArrayTexture &) const;
43
44 private:
45         std::string fonts;
46         std::string sounds;
47         std::string textures;
48         std::string data;
49
50 };
51
52 struct Assets {
53
54         Font large_ui_font;
55         Font small_ui_font;
56
57         explicit Assets(const AssetLoader &);
58
59 };
60
61 }
62
63 #endif