Files
Basalt2/docs/references/elementManager.md
2025-10-29 16:56:08 +00:00

136 lines
4.0 KiB
Markdown

# ElementManager
_This class manages elements and plugins. It loads elements and plugins from the elements and plugins directories_
_and then applies the plugins to the elements. It also provides a way to get elements and APIs._
## Functions
|Method|Returns|Description|
|---|---|---|
|[ElementManager.configure](#elementmanager-configure-config)|-|Configures the ElementManager|
|[ElementManager.registerDiskMount](#elementmanager-registerdiskmount-mountpath)|-|Registers a disk mount point for loading elements|
|[ElementManager.registerRemoteSource](#elementmanager-registerremotesource-elementname-url)|-|Registers a remote source for an element|
|[ElementManager.tryAutoLoad](#elementmanager-tryautoload-name)|boolean|Tries to load an element from any available source|
|[ElementManager.loadElement](#elementmanager-loadelement-name)|-|Loads an element by name. This will load the element and apply any plugins to it.|
|[ElementManager.getElement](#elementmanager-getelement-name)|table|Gets an element by name. If the element is not loaded, it will try to load it first.|
|[ElementManager.getElementList](#elementmanager-getelementlist)|table|Gets a list of all elements|
|[ElementManager.getAPI](#elementmanager-getapi-name)|table|Gets an Plugin API by name|
|[ElementManager.hasElement](#elementmanager-haselement-name)|boolean|Checks if an element exists (is registered)|
|[ElementManager.isElementLoaded](#elementmanager-iselementloaded-name)|boolean|Checks if an element is loaded|
|[ElementManager.clearGlobalCache](#elementmanager-clearglobalcache)|-|Clears the global cache (_G)|
|[ElementManager.getCacheStats](#elementmanager-getcachestats)|table|Gets cache statistics|
|[ElementManager.preloadElements](#elementmanager-preloadelements-elementnames)|-|Preloads elements into the global cache|
## ElementManager.configure(config)
Configures the ElementManager
### Parameters
* `config` `table` Configuration options
## ElementManager.registerDiskMount(mountPath)
Registers a disk mount point for loading elements
### Parameters
* `mountPath` `string` The path to the disk mount
## ElementManager.registerRemoteSource(elementName, url)
Registers a remote source for an element
### Parameters
* `elementName` `string` The name of the element
* `url` `string` The URL to load the element from
## ElementManager.tryAutoLoad(name)
Tries to load an element from any available source
### Parameters
* `name` `string` The element name
### Returns
* `boolean` `success` Whether the element was loaded
## ElementManager.loadElement(name)
Loads an element by name. This will load the element and apply any plugins to it.
### Parameters
* `name` `string` The name of the element to load
### Usage
```lua run
ElementManager.loadElement("Button")
```
## ElementManager.getElement(name)
Gets an element by name. If the element is not loaded, it will try to load it first.
### Parameters
* `name` `string` The name of the element to get
### Returns
* `table` `Element` The element class
## ElementManager.getElementList()
Gets a list of all elements
### Returns
* `table` `ElementList` A list of all elements
## ElementManager.getAPI(name)
Gets an Plugin API by name
### Parameters
* `name` `string` The name of the API to get
### Returns
* `table` `API` The API
## ElementManager.hasElement(name)
Checks if an element exists (is registered)
### Parameters
* `name` `string` The element name
### Returns
* `boolean` `exists` Whether the element exists
## ElementManager.isElementLoaded(name)
Checks if an element is loaded
### Parameters
* `name` `string` The element name
### Returns
* `boolean` `loaded` Whether the element is loaded
## ElementManager.clearGlobalCache()
Clears the global cache (_G)
### Usage
```lua run
ElementManager.clearGlobalCache()
```
## ElementManager.getCacheStats()
Gets cache statistics
### Returns
* `table` `stats` Cache statistics with size and element names
## ElementManager.preloadElements(elementNames)
Preloads elements into the global cache
### Parameters
* `elementNames` `table` List of element names to preload