ExperimentalGear/scripts/common/class.lua

23 lines
599 B
Lua
Raw Normal View History

---Declare table as a base class
---@param cls table class table
---@param o table class instance table
---@return table o base class instance table
function Base(cls, o)
cls.__index = cls
o = o or {}
setmetatable(o, cls)
return o
end
---Declare table as a derived class
---@param cls table class table
---@param base table base class table
---@param o table class instance table
---@return table o derived class instance table
function Inherit(cls, base, o)
cls.__index = cls
setmetatable(cls, {__index = base})
o = base:new(o)
setmetatable(o, cls)
return o
end