Module asset

Asset manager for Lua.

Loads asset and cache them.

This only provides a streamlined way to handle asset, and doesn’t handle the actual file loading/object creation itself; you are expected to provide your own asset loaders.

See the Asset:__call method for more details on how assets are loaded. Hopefully this will allow you to use asset which are more game-specific than “image” or “audio”.

TODO: async loading

No dependencies.

Usage:

    TODO
    

Functions

new (directory, loaders[, mode="auto"]) Create a new asset manager.

Asset objects

Asset.prefix A prefix for asset names.
Asset.cache The asset cache.
Asset.loaders The loaders table.
Asset:__call (assetName, ...) Load (and cache) an asset.
Asset:load (list) Preload a list of assets.
Asset:clear () Allow loaded assets to be garbage collected.


Functions

new (directory, loaders[, mode="auto"])
Create a new asset manager.

If the caching “mode” is set to auto (default), the asset manager will allow assets to be automaticaly garbage collected by Lua.

If set to “manual”, the assets will not be garbage collected unless the clear method is called. “manual” mode is useful if you have assets that are particularly slow to load and you want full control on when they are loaded and unloaded (typically a loading screen).

Parameters:

  • directory string the directory in which the assets will be loaded
  • loaders table loaders table: {prefix = function, …}
  • mode string caching mode (default "auto")

Returns:

    Asset the new asset manager

Asset objects

Asset manager.
Asset.prefix
A prefix for asset names.

Type:

    string
Asset.cache
The asset cache. Each cached asset is indexed with a string key “type.assetName”.

Type:

    table {["assetName"]=asset}
Asset.loaders
The loaders table.

Type:

    table {["prefix"]=function, ...}
Asset:__call (assetName, ...)

Load (and cache) an asset.

Asset name are similar to Lua module names (directory separator is the dot . and no extention should be specified). To load an asset, ubiquitousse will try every loaders in the loader list with a name that prefix the asset name. The first value returned will be used as the asset value.

Loaders are called with the arguments:

  • path: the asset full path, except extension
  • …: other arguments given after the asset name. Can only be number and strings.

Parameters:

  • assetName string string the asset’s full name
  • ... number/string other arguments for the asset loader

Returns:

    the asset

Usage:

    local image = asset("image.example")
Asset:load (list)
Preload a list of assets.

Parameters:

  • list {"asset1",...} list of assets to load
Asset:clear ()
Allow loaded assets to be garbage collected. Only useful if the caching mode is set to “manual” duritng creation.
generated by LDoc 1.4.6 Last updated 2022-10-13 00:23:58