modlib/class.lua
Lars Mueller 892a27deef rolling-9
2020-03-23 20:20:43 +01:00

26 lines
607 B
Lua

classes = {}
function define(name, def)
if def.extends then
setmetatable(def, get(def.extends))
end
classes[name] = def
end
function new(classname, ...)
local obj = get(classname).new(...)
obj = setmetatable(obj, {__index = classes[classname]})
return obj
end
function get(classname)
return classes[classname]
end
function call(classname, funcname, object, ...)
if object then
setfenv(1, object)
get(classname)[funcname](object, ...)
else
setfenv(1, classes[classname])
get(classname)[funcname](...)
end
setfenv(1, _G)
end