Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local vec3 = {
- x = 0,
- y = 0,
- z = 0,
- w = "Hello, metatables!"
- }
- vec3.__index = vec3
- vec3.__call = function(self, x, y, z)
- local t = { x = x, y = y, z = z }
- setmetatable(t, vec3)
- return t
- end
- vec3.__add = function(o1, o2)
- local v = vec3(o1.x + o2.x, o1.y + o2.y, o1.z + o2.z)
- return v
- end
- function vec3:print()
- print("(" .. self.x .. ", " .. self.y ..", " .. self.z .. ")")
- end
- setmetatable(vec3, vec3)
- local v = vec3(12, 4.5, 3)
- local v2 = vec3(4, 1, 5)
- v:print()
- v2:print()
- local v3 = v + v2
- v3:print()
Advertisement
Add Comment
Please, Sign In to add comment