Advertisement
LuaWeaver

wOOP 0.1.1

Nov 8th, 2012
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 0.94 KB | None | 0 0
  1. wO={}
  2. wO.global={}
  3. wO.global.clone=function(self) local cloneObj={} setmetatable(cloneObj, {__index=self}) return cloneObj end
  4. wO.global.isA=function(self, arg)
  5.     if self.className==arg then
  6.         return true
  7.     elseif self.className~="base" then
  8.         if wO.classes[self.extends]:isA(arg) then
  9.             return true
  10.         end
  11.     else
  12.         return false
  13.     end
  14. end
  15. wO.global.className="base"
  16.  
  17. wO.classes={base=wO.global}
  18.  
  19. function wO.newClass(a, ...)
  20.     arg={...}
  21.     b=(arg[1] or {})
  22.     b.className=a
  23.     b.name=a.."Obj"
  24.     if #arg==2 then
  25.         b.mt={__index=wO.classes[arg[2]]}
  26.         b.extends=arg[2]
  27.     else
  28.         b.mt={__index=wO.classes["base"]}
  29.         b.extends="base"
  30.     end
  31.     b.mt.__tostring=function(a) return "Class "..a end
  32.     setmetatable(b, b.mt)
  33.     wO.classes[a]=b
  34. end
  35.  
  36. function wO.newObj(a, ...)
  37.     arg={...}
  38.     local o=(arg[1] or {})
  39.     local mt={__index=wO.classes[a]}
  40.     mt.__tostring=function(a) return "Object "..o.name..", a "..o.className end
  41.     setmetatable(o, mt)
  42.     return o
  43. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement