]> git.lizzy.rs Git - dragonblocks3d-lua.git/blob - src/class.lua
f424d733bca6aa9b422722e6a2f854ea18c6eec3
[dragonblocks3d-lua.git] / src / class.lua
1 local class = {}
2
3 local instance_metatable = {
4         __index = function(t, k)
5                 if k == "_call" then return end
6                 local f = rawget(t._class, k)
7                 if type(f) == "function" then
8                         return f
9                 end
10         end
11 }
12
13 function class:_call(...)
14         local o = {class = self}
15         setmetatable(o, instance_metatable)
16         if o.constructor then
17                 o:constructor(table.unpack(...))
18         end
19 end 
20
21 return class