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