-
-
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.
🚨 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()