]> git.localhorst.tv Git - blobs.git/blobdiff - src/app/Assets.hpp
read (basic) tile information from file
[blobs.git] / src / app / Assets.hpp
index ed3c2e2605d8dd6bda3c16f0d4962d34fcfb1fd7..68606cb62e070b4956c7e440b8a5c13d9166a6e5 100644 (file)
@@ -2,20 +2,43 @@
 #define BLOBS_APP_ASSETS_HPP_
 
 #include "../graphics/ArrayTexture.hpp"
+#include "../graphics/CreatureSkin.hpp"
 #include "../graphics/PlanetSurface.hpp"
+#include "../graphics/SunSurface.hpp"
+#include "../world/Resource.hpp"
+#include "../world/Set.hpp"
+#include "../world/TileType.hpp"
+
+#include <string>
 
 
 namespace blobs {
+namespace io {
+       class TokenStreamReader;
+}
 namespace app {
 
 struct Assets {
 
+       std::string path;
+       std::string data_path;
+       std::string skin_path;
+       std::string tile_path;
+
+       struct {
+               world::Set<world::Resource> resources;
+               world::Set<world::TileType> tiles;
+       } data;
+
        struct {
                graphics::ArrayTexture tiles;
+               graphics::ArrayTexture skins;
        } textures;
 
        struct {
                graphics::PlanetSurface planet_surface;
+               graphics::SunSurface sun_surface;
+               graphics::CreatureSkin creature_skin;
        } shaders;
 
        Assets();
@@ -27,6 +50,11 @@ struct Assets {
        Assets(Assets &&) = delete;
        Assets &operator =(Assets &&) = delete;
 
+       void ReadTileTypes(io::TokenStreamReader &);
+
+       void LoadTileTexture(const std::string &name, graphics::ArrayTexture &, int layer) const;
+       void LoadSkinTexture(const std::string &name, graphics::ArrayTexture &, int layer) const;
+
 };
 
 }