Files
rojo/plugin/src/preloadAssets.lua
2025-11-18 18:49:52 -08:00

34 lines
786 B
Lua

local ContentProvider = game:GetService("ContentProvider")
local Packages = script.Parent.Parent.Packages
local Log = require(Packages.Log)
local Assets = require(script.Parent.Assets)
local gatherAssetUrlsRecursive
function gatherAssetUrlsRecursive(currentTable, currentUrls)
currentUrls = currentUrls or {}
for _, value in currentTable do
if typeof(value) == "string" then
table.insert(currentUrls, value)
elseif typeof(value) == "table" then
gatherAssetUrlsRecursive(value, currentUrls)
end
end
return currentUrls
end
local function preloadAssets()
local contentUrls = gatherAssetUrlsRecursive(Assets)
Log.trace("Preloading assets: {:?}", contentUrls)
coroutine.wrap(function()
ContentProvider:PreloadAsync(contentUrls)
end)()
end
return preloadAssets