diff --git a/.tests/Vector3/concat.test.lua b/.tests/Vector3/concat.test.lua new file mode 100644 index 0000000..0760eda --- /dev/null +++ b/.tests/Vector3/concat.test.lua @@ -0,0 +1,28 @@ +local Vector3 = require("worldeditadditions.utils.vector3") + +describe("Vector3.__concat", function() + it("should work when concatenating a Vector3 + Vector3", function() + local a = Vector3.new(3, 4, 5) + local b = Vector3.new(6, 7, 8) + + assert.are.is_true( + type(tostring(a .. b)) == "string" + ) + end) + it("should work when concatenating a string + Vector3", function() + local a = "yay" + local b = Vector3.new(6, 7, 8) + + assert.are.is_true( + type(tostring(a .. b)) == "string" + ) + end) + it("should work when concatenating a Vector3 + string", function() + local a = Vector3.new(3, 4, 5) + local b = "yay" + + assert.are.is_true( + type(tostring(a .. b)) == "string" + ) + end) +end) diff --git a/worldeditadditions/utils/vector3.lua b/worldeditadditions/utils/vector3.lua index 252b49d..734aabb 100644 --- a/worldeditadditions/utils/vector3.lua +++ b/worldeditadditions/utils/vector3.lua @@ -389,5 +389,11 @@ function Vector3.__tostring(a) return "("..a.x..", "..a.y..", "..a.z..")" end +function Vector3.__concat(a, b) + if type(a) ~= "string" then a = tostring(a) end + if type(b) ~= "string" then b = tostring(b) end + return a .. b +end + return Vector3