]> git.localhorst.tv Git - blank.git/blob - src/app/Assets.hpp
use (and fix) new shape implementation
[blank.git] / src / 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 ShapeRegistry;
15 class Sound;
16 class Texture;
17 class TextureIndex;
18
19 class AssetLoader {
20
21 public:
22         explicit AssetLoader(const std::string &base);
23
24         void LoadBlockTypes(
25                 const std::string &set_name,
26                 BlockTypeRegistry &,
27                 TextureIndex &,
28                 const ShapeRegistry &) const;
29         CubeMap LoadCubeMap(const std::string &name) const;
30         Font LoadFont(const std::string &name, int size) const;
31         void LoadShapes(const std::string &set_name, ShapeRegistry &) const;
32         Sound LoadSound(const std::string &name) const;
33         Texture LoadTexture(const std::string &name) const;
34         void LoadTexture(const std::string &name, ArrayTexture &, int layer) const;
35         void LoadTextures(const TextureIndex &, ArrayTexture &) const;
36
37 private:
38         std::string fonts;
39         std::string sounds;
40         std::string textures;
41         std::string data;
42
43 };
44
45 struct Assets {
46
47         Font large_ui_font;
48         Font small_ui_font;
49
50         Assets(const AssetLoader &);
51
52 };
53
54 }
55
56 #endif