-
-
Notifications
You must be signed in to change notification settings - Fork 2
Library: Namespace
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 globally once in either of the shared .lua
script of the resource you want to use within:
loadstring(exports.assetify_library:import("namespace"))()
-
✨ Creates the specified namespace.
🚨 Always ensure to localize the namespace instance to avoid being exposed to global scope.--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.
🚨 Destroying namespace will also destroy any further classes & their instances located within it.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.
🚨 Always ensure to localize the class instance to avoid being exposed to global scope.--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.
🚨 Destroying class also destroys all of its belonging instances.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()