Skip to main content

BaseObject

A base object that you should extend. It provides a sweeper for you as well as a Destroy function so you don't need to do all of that.

For example here is a class which extends BaseObject:

local MyClass = setmetatable({}, BaseObject)
MyClass.ClassName = "MyClass"
MyClass.__index = MyClass

export type MyClass = typeof(setmetatable({} :: {}, BaseObject)) & BaseObject.BaseObject

function MyClass.new()
    local self: MyClass = setmetatable(BaseObject.new(), MyClass)
    return self
end

Notice how we dont need to define a Destroy method, as well as it automatically having a sweeper object at self._Sweeper

Functions

new

BaseObject.new() → ()

Destroy

BaseObject.Destroy(selfBaseObject) → ()
Show raw api
{
    "functions": [
        {
            "name": "new",
            "desc": "",
            "params": [],
            "returns": [],
            "function_type": "static",
            "source": {
                "line": 37,
                "path": "packages/base_object/source/init.luau"
            }
        },
        {
            "name": "Destroy",
            "desc": "",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "BaseObject"
                }
            ],
            "returns": [],
            "function_type": "static",
            "source": {
                "line": 44,
                "path": "packages/base_object/source/init.luau"
            }
        }
    ],
    "properties": [],
    "types": [],
    "name": "BaseObject",
    "desc": "A base object that you should extend. It provides a sweeper for you as well as a Destroy function so you\ndon't need to do all of that.\n\nFor example here is a class which extends BaseObject:\n```lua\nlocal MyClass = setmetatable({}, BaseObject)\nMyClass.ClassName = \"MyClass\"\nMyClass.__index = MyClass\n\nexport type MyClass = typeof(setmetatable({} :: {}, BaseObject)) & BaseObject.BaseObject\n\nfunction MyClass.new()\n    local self: MyClass = setmetatable(BaseObject.new(), MyClass)\n    return self\nend\n```\n\nNotice how we dont need to define a `Destroy` method, as well as it automatically having a sweeper object at `self._Sweeper`",
    "source": {
        "line": 24,
        "path": "packages/base_object/source/init.luau"
    }
}