From c9a9b3c9d0d4fed0b02d9935923bfd7dcbc45d1e Mon Sep 17 00:00:00 2001 From: Mattes D Date: Tue, 14 Apr 2020 16:43:21 +0200 Subject: Bindings: Allow coercion between Vector3 subtypes. (#4646) In manually bound functions, allows one to use any Vector3 value, as well as a {x, y, z} table, in Lua as any Vector3 parameter. Has example in Debuggers' /vector command. Unfortunately doesn't work in auto-bindings. --- Server/Plugins/Debuggers/Debuggers.lua | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'Server/Plugins/Debuggers/Debuggers.lua') diff --git a/Server/Plugins/Debuggers/Debuggers.lua b/Server/Plugins/Debuggers/Debuggers.lua index 1505904a8..657599b84 100644 --- a/Server/Plugins/Debuggers/Debuggers.lua +++ b/Server/Plugins/Debuggers/Debuggers.lua @@ -1727,6 +1727,26 @@ end +function HandleVectorCmd(a_Split, a_Player) + a_Player:SendMessage("Testing the Vector3 APIs...") + + -- Test the Vector3 coercion in ManualBindings - any Vector3 type should be accepted for any Vector3 parameter: + local pos = a_Player:GetPosition() + local c = cCuboid:new() + c:Assign(pos - Vector3d(2, 2, 2), pos + Vector3d(2, 2, 2)) + assert(c:IsInside(Vector3d(pos))) + assert(c:IsInside(Vector3f(pos))) + assert(c:IsInside(Vector3i(pos))) + assert(c:IsInside({pos.x, pos.y, pos.z})) + + a_Player:SendMessage("Test successful.") + return true +end + + + + + function HandleWESel(a_Split, a_Player) -- Check if the selection is a cuboid: local IsCuboid = cPluginManager:CallPlugin("WorldEdit", "IsPlayerSelectionCuboid") -- cgit v1.2.3