]> git.localhorst.tv Git - blobs.git/blobdiff - src/app/Assets.hpp
simple name generator
[blobs.git] / src / app / Assets.hpp
index 4ea7f57458f1f8c2435114eb561f40688c364bbc..0512f7e5642c3f67c85a6a92b56d11ea233648df 100644 (file)
@@ -1,22 +1,50 @@
 #ifndef BLOBS_APP_ASSETS_HPP_
 #define BLOBS_APP_ASSETS_HPP_
 
+#include "../creature/NameGenerator.hpp"
+#include "../graphics/AlphaSprite.hpp"
 #include "../graphics/ArrayTexture.hpp"
+#include "../graphics/Canvas.hpp"
 #include "../graphics/CreatureSkin.hpp"
+#include "../graphics/Font.hpp"
 #include "../graphics/PlanetSurface.hpp"
 #include "../graphics/SunSurface.hpp"
+#include "../math/GaloisLFSR.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 tile_path;
+       std::string data_path;
+       std::string font_path;
        std::string skin_path;
+       std::string tile_path;
+
+       math::GaloisLFSR random;
+
+       creature::NameGenerator name;
+
+       struct {
+               world::Set<world::Resource> resources;
+               world::Set<world::TileType> tile_types;
+       } data;
+
+       struct {
+               graphics::Font large;
+               graphics::Font medium;
+               graphics::Font small;
+       } fonts;
 
        struct {
                graphics::ArrayTexture tiles;
@@ -24,6 +52,8 @@ struct Assets {
        } textures;
 
        struct {
+               graphics::AlphaSprite alpha_sprite;
+               graphics::Canvas canvas;
                graphics::PlanetSurface planet_surface;
                graphics::SunSurface sun_surface;
                graphics::CreatureSkin creature_skin;
@@ -38,6 +68,9 @@ struct Assets {
        Assets(Assets &&) = delete;
        Assets &operator =(Assets &&) = delete;
 
+       void ReadResources(io::TokenStreamReader &);
+       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;