-
-
Notifications
You must be signed in to change notification settings - Fork 2
Library: Math
This module provides a robust implementation of namespaces and classes in Lua, offering:
- Controlled variable and handler scope management
- Code organization into logical groups
- Prevention of naming collisions
- Support for public and private members
- Lightweight class simulation with instance management
- Namespace and class creation with scope control
- Public and private member support
- Nested class and namespace capabilities
- Safe instance management
Add the below code once in either of the shared .lua
script of the resource you want to use within:
--Declare it globally only once
loadstring(exports.assetify_library:import("namespacer"))()
✨ Creates the specified namespace.
--Note: Public & Private members can be appended later via cNamespace.public & cNamespace.private respectively.
local namespace: cNamespace = assetify.namespace:create(
string: name --Name of your namespace,
table: parent --Optional: Any non class table that you wish to utilize for creating the namespace.
)
✨ Destroys an existing namespace.
local bool: result = assetify.namespace:destroy(
string: name --Name of your namespace
)
✨ Retrieves class's name.
local string: name = self:getName()
✨ Creates the specified class.
--Note: Public & Private members can be appended later via cClass.public & cClass.private respectively.
local class: cClass = assetify.class:create(
string: name, --Name of your class
table: parent, --Optional: Any non class table that you wish to utilize for creating the class.
string: namespace --Optional: Valid namespace that you prefer to scope the class within. If not specified the instance will be created within the global scope.
)
✨ Destroys the specified class.
local bool: result = assetify.class:destroy(
class: instance
)
✨ Verifies whether the table is an instance of the specified class.
local bool: result = self:isInstance(
class <instance>: cInstance
)
✨ Creates an instance of the specified class.
local class <instance>: cInstance = self:createInstance()
✨ Destroys specified instance.
local bool: result = cInstance:destroyInstance()