diff --git a/src/shared/AssetPreload.lua b/src/shared/AssetPreload.lua new file mode 100644 index 0000000..2c1c209 --- /dev/null +++ b/src/shared/AssetPreload.lua @@ -0,0 +1,33 @@ +local Preloader = { + Assets = {}, + AssetsCache = {} +} + +local ContentProvider = game:GetService("ContentProvider") + +function Preloader.Add(Asset) + table.insert(Preloader.Assets, Asset) +end + +function Preloader:Start() + local function Callback(assetId, assetFetchStatus) + print(assetId, assetFetchStatus) + + --proper switch statements would be cool, 12/28/23 + if assetFetchStatus == Enum.AssetFetchStatus.Success then + table.insert(self.AssetsCache, assetId) + end + end + + local Load, err = pcall(ContentProvider.PreloadAsync, ContentProvider, self.Assets, Callback) + if not Load then + warn("ContentProvider: ", err) + end +end + +function Preloader:WipeTracking() --security + table.clear(self.Assets) + table.clear(self.AssetsCache) +end + +return Preloader \ No newline at end of file