mad1231999

Untitled

Feb 9th, 2013
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 0.60 KB | None | 0 0
  1. local vec3 = {
  2.     x = 0,
  3.     y = 0,
  4.     z = 0,
  5.     w = "Hello, metatables!"
  6. }
  7. local vec3_mt = {
  8.     __index = vec3
  9. }
  10. vec3_mt.__call = function(self, x, y, z)
  11.     local t = { x = _x, y = y,  z = z }
  12.     setmetatable(t, vec3_mt)
  13.     return t
  14. end
  15.  
  16. vec3_mt.__add = function(o1, o2)
  17.     local v = vec3(o1.x + o2.x, o1.y + o2.y, o1.z + o2.z)
  18.     return v
  19. end
  20. setmetatable(vec3, vec3_mt)
  21.  
  22. local v = vec3(12, 4.5, 3)
  23. local v2 = vec3(4, 1, 5)
  24.  
  25. print(v.x .. " " .. v.y .. " " .. v.z)
  26. print(v2.x .. " " .. v2.y .. " " .. v2.z)
  27.  
  28. local v3 = v + v2
  29. print("\n" .. v3.x .. " " .. v3.y .. " " .. v3.z)
Advertisement
Add Comment
Please, Sign In to add comment