From 34b001041f93311a318c5124a0bba0fbd6e71172 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Fri, 2 Feb 2024 22:17:30 +0300 Subject: [PATCH] updates default assets policy --- src/assets/AssetsLoader.cpp | 18 +++++++++--------- src/assets/AssetsLoader.h | 2 +- src/assets/assetload_funcs.cpp | 10 ++++++---- src/engine.cpp | 4 ++-- 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/assets/AssetsLoader.cpp b/src/assets/AssetsLoader.cpp index 9ef4696d..00ec8e0a 100644 --- a/src/assets/AssetsLoader.cpp +++ b/src/assets/AssetsLoader.cpp @@ -50,20 +50,20 @@ void AssetsLoader::createDefaults(AssetsLoader& loader) { loader.addLoader(ASSET_ATLAS, assetload::atlas); } -void AssetsLoader::addDefaults(AssetsLoader& loader, bool allAssets) { - if (allAssets) { - loader.add(ASSET_SHADER, SHADERS_FOLDER"/main", "main"); - loader.add(ASSET_SHADER, SHADERS_FOLDER"/lines", "lines"); - loader.add(ASSET_SHADER, SHADERS_FOLDER"/ui", "ui"); +void AssetsLoader::addDefaults(AssetsLoader& loader, bool world) { + loader.add(ASSET_FONT, FONTS_FOLDER"/font", "normal"); + loader.add(ASSET_SHADER, SHADERS_FOLDER"/ui", "ui"); + loader.add(ASSET_SHADER, SHADERS_FOLDER"/main", "main"); + loader.add(ASSET_SHADER, SHADERS_FOLDER"/lines", "lines"); + loader.add(ASSET_TEXTURE, TEXTURES_FOLDER"/gui/menubg.png", "gui/menubg"); + loader.add(ASSET_TEXTURE, TEXTURES_FOLDER"/gui/delete_icon.png", "gui/delete_icon"); + loader.add(ASSET_TEXTURE, TEXTURES_FOLDER"/gui/no_icon.png", "gui/no_icon"); + if (world) { loader.add(ASSET_SHADER, SHADERS_FOLDER"/ui3d", "ui3d"); loader.add(ASSET_SHADER, SHADERS_FOLDER"/background", "background"); loader.add(ASSET_SHADER, SHADERS_FOLDER"/skybox_gen", "skybox_gen"); - loader.add(ASSET_TEXTURE, TEXTURES_FOLDER"/gui/menubg.png", "gui/menubg"); - loader.add(ASSET_TEXTURE, TEXTURES_FOLDER"/gui/delete_icon.png", "gui/delete_icon"); - loader.add(ASSET_TEXTURE, TEXTURES_FOLDER"/gui/no_icon.png", "gui/no_icon"); loader.add(ASSET_TEXTURE, TEXTURES_FOLDER"/misc/moon.png", "misc/moon"); loader.add(ASSET_TEXTURE, TEXTURES_FOLDER"/misc/sun.png", "misc/sun"); - loader.add(ASSET_FONT, FONTS_FOLDER"/font", "normal"); } loader.add(ASSET_ATLAS, TEXTURES_FOLDER"/blocks", "blocks"); loader.add(ASSET_ATLAS, TEXTURES_FOLDER"/items", "items"); diff --git a/src/assets/AssetsLoader.h b/src/assets/AssetsLoader.h index 13ea12fa..61a88b30 100644 --- a/src/assets/AssetsLoader.h +++ b/src/assets/AssetsLoader.h @@ -36,7 +36,7 @@ public: bool loadNext(); static void createDefaults(AssetsLoader& loader); - static void addDefaults(AssetsLoader& loader, bool allAssets); + static void addDefaults(AssetsLoader& loader, bool world); const ResPaths* getPaths() const; }; diff --git a/src/assets/assetload_funcs.cpp b/src/assets/assetload_funcs.cpp index 4ca808f5..2bac2dd7 100644 --- a/src/assets/assetload_funcs.cpp +++ b/src/assets/assetload_funcs.cpp @@ -20,12 +20,14 @@ bool assetload::texture(Assets* assets, const ResPaths* paths, const std::string filename, const std::string name) { - Texture* texture = png::load_texture(paths->find(filename).string()); + std::unique_ptr texture( + png::load_texture(paths->find(filename).string()) + ); if (texture == nullptr) { std::cerr << "failed to load texture '" << name << "'" << std::endl; return false; } - assets->store(texture, name); + assets->store(texture.release(), name); return true; } @@ -163,7 +165,7 @@ bool assetload::animation(Assets* assets, if (!appendAtlas(builder, file)) continue; } - Atlas* srcAtlas = builder.build(2); + std::unique_ptr srcAtlas (builder.build(2)); Texture* srcTex = srcAtlas->getTexture(); Texture* dstTex = dstAtlas->getTexture(); @@ -195,7 +197,7 @@ bool assetload::animation(Assets* assets, } } - assets->store(srcAtlas, name + "_animation"); + assets->store(srcAtlas.release(), name + "_animation"); assets->store(animation); return true; diff --git a/src/engine.cpp b/src/engine.cpp index b6e568d2..a2a8fd27 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -56,7 +56,7 @@ Engine::Engine(EngineSettings& settings, EnginePaths* paths) assets.reset(new Assets()); AssetsLoader loader(assets.get(), resPaths.get()); AssetsLoader::createDefaults(loader); - AssetsLoader::addDefaults(loader, true); + AssetsLoader::addDefaults(loader, false); Shader::preprocessor->setPaths(resPaths.get()); while (loader.hasNext()) { @@ -183,7 +183,7 @@ void Engine::loadContent() { std::cout << "-- loading assets" << std::endl; AssetsLoader loader(new_assets.get(), resPaths.get()); AssetsLoader::createDefaults(loader); - AssetsLoader::addDefaults(loader, false); + AssetsLoader::addDefaults(loader, true); while (loader.hasNext()) { if (!loader.loadNext()) { new_assets.reset();