From 9c70be8caaca8378e4b7c2e23488fb004f7e6231 Mon Sep 17 00:00:00 2001 From: Joseph Walton-Rivers <joseph@walton-rivers.uk> Date: Sat, 26 Nov 2022 11:13:40 +0000 Subject: [PATCH] only run asset discovery for viewer when viewer is loaded --- demo/demo/main.cpp | 1 - demo/demo/models/viewer.cpp | 3 +++ include/fggl/assets/packed/adapter.hpp | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/demo/demo/main.cpp b/demo/demo/main.cpp index d98a6a4..ff0734b 100644 --- a/demo/demo/main.cpp +++ b/demo/demo/main.cpp @@ -108,7 +108,6 @@ int main(int argc, const char* argv[]) { auto* assetFinder = app.service<fggl::assets::CheckinAdapted>(); assetFinder->discover("core"); - assetFinder->discover("viewer"); // force asset loading { diff --git a/demo/demo/models/viewer.cpp b/demo/demo/models/viewer.cpp index 17ec4ee..5c1f15a 100644 --- a/demo/demo/models/viewer.cpp +++ b/demo/demo/models/viewer.cpp @@ -109,6 +109,9 @@ namespace demo { void Viewer::activate() { Game::activate(); + auto* assetFinder = m_owner.service<fggl::assets::CheckinAdapted>(); + assetFinder->discover("viewer"); + // setup the assets we can select between // TODO some form of introspection to automatically find declared/discovered assets of a given type m_assets.clear(); diff --git a/include/fggl/assets/packed/adapter.hpp b/include/fggl/assets/packed/adapter.hpp index 022eee6..1c86492 100644 --- a/include/fggl/assets/packed/adapter.hpp +++ b/include/fggl/assets/packed/adapter.hpp @@ -96,6 +96,10 @@ namespace fggl::assets { } void discover( const char* packName, bool useCache = false, bool updateCache = true) { + if ( m_packs.contains(packName) ) { + return; + } + std::string packRoot = "packs/"; auto packDir = m_storage->resolvePath( data::StorageType::Data, packRoot + packName ); discover(packDir, useCache, updateCache); -- GitLab