diff options
Diffstat (limited to 'source/base/StarAssets.cpp')
-rw-r--r-- | source/base/StarAssets.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/source/base/StarAssets.cpp b/source/base/StarAssets.cpp index b334b31..357fca0 100644 --- a/source/base/StarAssets.cpp +++ b/source/base/StarAssets.cpp @@ -147,8 +147,10 @@ Assets::Assets(Settings settings, StringList assetSources) { pushGlobalContext("assets", makeBaseAssetCallbacks()); auto decorateLuaContext = [&](LuaContext& context, MemoryAssetSourcePtr newFiles) { - auto callbacks = makeBaseAssetCallbacks(); if (newFiles) { + // re-add the assets callbacks with more functions + context.remove("assets"); + auto callbacks = makeBaseAssetCallbacks(); callbacks.registerCallback("add", [&newFiles](LuaEngine& engine, String const& path, LuaValue const& data) { ByteArray bytes; if (auto str = engine.luaMaybeTo<String>(data)) @@ -184,9 +186,9 @@ Assets::Assets(Settings settings, StringList assetSources) { m_filesByExtension[AssetPath::extension(path).toLower()].erase(path); return erased; }); - } - context.setCallbacks("assets", callbacks); + context.setCallbacks("assets", callbacks); + } }; auto addSource = [&](String const& sourcePath, AssetSourcePtr source) { |