]> git.localhorst.tv Git - blobs.git/blob - src/app/Assets.hpp
fun with resources
[blobs.git] / src / app / Assets.hpp
1 #ifndef BLOBS_APP_ASSETS_HPP_
2 #define BLOBS_APP_ASSETS_HPP_
3
4 #include "../graphics/ArrayTexture.hpp"
5 #include "../graphics/CreatureSkin.hpp"
6 #include "../graphics/PlanetSurface.hpp"
7 #include "../graphics/SunSurface.hpp"
8 #include "../world/Resource.hpp"
9 #include "../world/Set.hpp"
10 #include "../world/TileType.hpp"
11
12 #include <string>
13
14
15 namespace blobs {
16 namespace app {
17
18 struct Assets {
19
20         std::string path;
21         std::string tile_path;
22         std::string skin_path;
23
24         struct {
25                 world::Set<world::Resource> resources;
26                 world::Set<world::TileType> tiles;
27         } data;
28
29         struct {
30                 graphics::ArrayTexture tiles;
31                 graphics::ArrayTexture skins;
32         } textures;
33
34         struct {
35                 graphics::PlanetSurface planet_surface;
36                 graphics::SunSurface sun_surface;
37                 graphics::CreatureSkin creature_skin;
38         } shaders;
39
40         Assets();
41         ~Assets();
42
43         Assets(const Assets &) = delete;
44         Assets &operator =(const Assets &) = delete;
45
46         Assets(Assets &&) = delete;
47         Assets &operator =(Assets &&) = delete;
48
49         void LoadTileTexture(const std::string &name, graphics::ArrayTexture &, int layer) const;
50         void LoadSkinTexture(const std::string &name, graphics::ArrayTexture &, int layer) const;
51
52 };
53
54 }
55 }
56
57 #endif