Files
Basalt2/docs/references/propertySystem.md
2025-09-14 08:55:45 +00:00

4.8 KiB

PropertySystem

PropertySystem is a class that allows Elements to have properties that can be observed and updated. It also allows for properties to have custom getters and setters. This is the base system for all Elements.

Functions

Method Returns Description
PropertySystem.addSetterHook - Adds a setter hook to the PropertySystem
PropertySystem.defineProperty - Defines a property for an element class
PropertySystem.combineProperties - Combines multiple properties
PropertySystem.blueprint table Creates a blueprint of an element class
PropertySystem.createFromBlueprint table Creates an element from a blueprint
PropertySystem:__init table Initializes the PropertySystem
PropertySystem:_updateProperty table Update call for a property
PropertySystem:observe table Observers a property
PropertySystem:removeObserver table Removes an observer from a property
PropertySystem:removeAllObservers table Removes all observers from a property
PropertySystem:instanceProperty table Adds a property to the PropertySystem on instance level
PropertySystem:removeProperty table Removes a property from the PropertySystem
PropertySystem:getPropertyConfig table Gets a property configuration

PropertySystem.addSetterHook(hook)

Adds a setter hook to the PropertySystem. Setter hooks are functions that are called before a property is set.

Parameters

  • hook function The hook function to add

PropertySystem.defineProperty(class, name, config)

Defines a property for an element class

Parameters

  • class table The element class to define the property for
  • name string The name of the property
  • config table The configuration of the property

PropertySystem.combineProperties(class, name)

Combines multiple properties into a single getter and setter

Parameters

  • class table The element class to combine the properties for
  • name string The name of the combined property

PropertySystem.blueprint(elementClass)

Creates a blueprint of an element class with all its properties

Parameters

  • elementClass table The element class to create a blueprint from

Returns

  • table blueprint A table containing all property definitions

PropertySystem.createFromBlueprint(elementClass, blueprint)

Creates an element from a blueprint

Parameters

  • elementClass table The element class to create from the blueprint
  • blueprint table The blueprint to create the element from

Returns

  • table element The created element

PropertySystem:__init()

Initializes the PropertySystem IS USED INTERNALLY

Returns

  • table self The PropertySystem

PropertySystem:_updateProperty(name, value)

Update call for a property IS USED INTERNALLY

Parameters

  • name string The name of the property
  • value any The value of the property

Returns

  • table self The PropertySystem

PropertySystem:observe(name, callback)

Observers a property

Parameters

  • name string The name of the property
  • callback function The callback function to call when the property changes

Returns

  • table self The PropertySystem

PropertySystem:removeObserver(name, callback)

Removes an observer from a property

Parameters

  • name string The name of the property
  • callback function The callback function to remove

Returns

  • table self The PropertySystem

PropertySystem:removeAllObservers(name?)

Removes all observers from a property

Parameters

  • name (optional) string The name of the property

Returns

  • table self The PropertySystem

PropertySystem:instanceProperty(name, config)

Adds a property to the PropertySystem on instance level

Parameters

  • name string The name of the property
  • config table The configuration of the property

Returns

  • table self The PropertySystem

PropertySystem:removeProperty(name)

Removes a property from the PropertySystem on instance level

Parameters

  • name string The name of the property

Returns

  • table self The PropertySystem

PropertySystem:getPropertyConfig(name)

Gets a property configuration

Parameters

  • name string The name of the property

Returns

  • table config The configuration of the property