Packs management update WIP

This commit is contained in:
MihailRis
2023-12-18 13:58:43 +03:00
parent 98021f533a
commit 826a743ab9
4 changed files with 69 additions and 36 deletions
+24 -9
View File
@@ -51,8 +51,23 @@ Engine::Engine(EngineSettings& settings, EnginePaths* paths)
}
auto resdir = paths->getResources();
contentPacks.push_back(ContentPack::read(resdir/path("content/base")));
loadContent();
std::cout << "-- loading assets" << std::endl;
std::vector<path> roots {resdir};
resPaths.reset(new ResPaths(resdir, roots));
assets.reset(new Assets());
AssetsLoader loader(assets.get(), resPaths.get());
AssetsLoader::createDefaults(loader);
AssetsLoader::addDefaults(loader);
Shader::preprocessor->setPaths(resPaths.get());
while (loader.hasNext()) {
if (!loader.loadNext()) {
assets.reset();
Window::terminate();
throw initialize_error("could not to initialize assets");
}
}
Audio::initialize();
gui = new GUI();
@@ -169,16 +184,16 @@ void Engine::loadContent() {
Shader::preprocessor->setPaths(resPaths.get());
assets.reset(new Assets());
unique_ptr<Assets> new_assets(new Assets());
std::cout << "-- loading assets" << std::endl;
AssetsLoader loader(assets.get(), resPaths.get());
AssetsLoader::createDefaults(loader);
AssetsLoader::addDefaults(loader);
AssetsLoader loader(new_assets.get(), resPaths.get());
AssetsLoader::createDefaults(loader);
AssetsLoader::addDefaults(loader);
while (loader.hasNext()) {
if (!loader.loadNext()) {
assets.reset();
Window::terminate();
throw initialize_error("could not to initialize assets");
new_assets.reset();
throw std::runtime_error("could not to load assets");
}
}
assets->extend(*new_assets.get());
}