From f74a7e058d94d81331f03b51024e70f68830545b Mon Sep 17 00:00:00 2001 From: alice <166900055+alicesaidhi@users.noreply.github.com> Date: Sat, 6 Jul 2024 10:07:29 +0200 Subject: [PATCH] convert CFrame world to/from object space to tuple Roblox allows for passing in multiple CFrame's and Vector3's into these functions, but doesn't reflect this in their types. This change fixes this so that they no longer produce type errors. --- scripts/dumpRobloxTypes.py | 14 ++++++++++++++ scripts/globalTypes.LocalUserSecurity.d.luau | 12 ++++++------ scripts/globalTypes.None.d.luau | 12 ++++++------ scripts/globalTypes.PluginSecurity.d.luau | 12 ++++++------ scripts/globalTypes.RobloxScriptSecurity.d.luau | 12 ++++++------ scripts/globalTypes.d.lua | 12 ++++++------ scripts/globalTypes.d.luau | 12 ++++++------ 7 files changed, 50 insertions(+), 36 deletions(-) diff --git a/scripts/dumpRobloxTypes.py b/scripts/dumpRobloxTypes.py index a41874e3..2e4344c9 100644 --- a/scripts/dumpRobloxTypes.py +++ b/scripts/dumpRobloxTypes.py @@ -256,6 +256,14 @@ "ControllerPartSensor": [ "SensedPart", ], + "CFrame": [ + "ToWorldSpace", + "ToObjectSpace", + "PointToWorldSpace", + "PointToObjectSpace", + "VectorToWorldSpace", + "VectorToObjectSpace" + ] } # Extra members to add in to classes, commonly used to add in metamethods, and add corrections @@ -302,6 +310,12 @@ "function __unm(self): UDim", ], "CFrame": [ + "function ToWorldSpace(self, ...: CFrame): ...CFrame", + "function ToObjectSpace(self, ...: CFrame): ...CFrame", + "function PointToWorldSpace(self, ...: Vector3): ...Vector3", + "function PointToObjectSpace(self, ...: Vector3): ...Vector3", + "function VectorToWorldSpace(self, ...: Vector3): ...Vector3", + "function VectorToObjectSpace(self, ...: Vector3): ...Vector3", "function __add(self, other: Vector3): CFrame", "function __sub(self, other: Vector3): CFrame", "function __mul(self, other: CFrame): CFrame", diff --git a/scripts/globalTypes.LocalUserSecurity.d.luau b/scripts/globalTypes.LocalUserSecurity.d.luau index 824e1218..80739f99 100644 --- a/scripts/globalTypes.LocalUserSecurity.d.luau +++ b/scripts/globalTypes.LocalUserSecurity.d.luau @@ -4270,17 +4270,17 @@ declare class CFrame function Inverse(self): CFrame function Lerp(self, goal: CFrame, alpha: number): CFrame function Orthonormalize(self): CFrame - function PointToObjectSpace(self, v3: Vector3): Vector3 - function PointToWorldSpace(self, v3: Vector3): Vector3 + function PointToObjectSpace(self, ...: Vector3): ...Vector3 + function PointToWorldSpace(self, ...: Vector3): ...Vector3 function ToAxisAngle(self): (Vector3, number) function ToEulerAngles(self, order: EnumRotationOrder?): (number, number, number) function ToEulerAnglesXYZ(self): (number, number, number) function ToEulerAnglesYXZ(self): (number, number, number) - function ToObjectSpace(self, cf: CFrame): CFrame + function ToObjectSpace(self, ...: CFrame): ...CFrame function ToOrientation(self): (number, number, number) - function ToWorldSpace(self, cf: CFrame): CFrame - function VectorToObjectSpace(self, v3: Vector3): Vector3 - function VectorToWorldSpace(self, v3: Vector3): Vector3 + function ToWorldSpace(self, ...: CFrame): ...CFrame + function VectorToObjectSpace(self, ...: Vector3): ...Vector3 + function VectorToWorldSpace(self, ...: Vector3): ...Vector3 function __add(self, other: Vector3): CFrame function __mul(self, other: CFrame): CFrame function __mul(self, other: Vector3): Vector3 diff --git a/scripts/globalTypes.None.d.luau b/scripts/globalTypes.None.d.luau index a6ca0dcd..edbf7d19 100644 --- a/scripts/globalTypes.None.d.luau +++ b/scripts/globalTypes.None.d.luau @@ -4270,17 +4270,17 @@ declare class CFrame function Inverse(self): CFrame function Lerp(self, goal: CFrame, alpha: number): CFrame function Orthonormalize(self): CFrame - function PointToObjectSpace(self, v3: Vector3): Vector3 - function PointToWorldSpace(self, v3: Vector3): Vector3 + function PointToObjectSpace(self, ...: Vector3): ...Vector3 + function PointToWorldSpace(self, ...: Vector3): ...Vector3 function ToAxisAngle(self): (Vector3, number) function ToEulerAngles(self, order: EnumRotationOrder?): (number, number, number) function ToEulerAnglesXYZ(self): (number, number, number) function ToEulerAnglesYXZ(self): (number, number, number) - function ToObjectSpace(self, cf: CFrame): CFrame + function ToObjectSpace(self, ...: CFrame): ...CFrame function ToOrientation(self): (number, number, number) - function ToWorldSpace(self, cf: CFrame): CFrame - function VectorToObjectSpace(self, v3: Vector3): Vector3 - function VectorToWorldSpace(self, v3: Vector3): Vector3 + function ToWorldSpace(self, ...: CFrame): ...CFrame + function VectorToObjectSpace(self, ...: Vector3): ...Vector3 + function VectorToWorldSpace(self, ...: Vector3): ...Vector3 function __add(self, other: Vector3): CFrame function __mul(self, other: CFrame): CFrame function __mul(self, other: Vector3): Vector3 diff --git a/scripts/globalTypes.PluginSecurity.d.luau b/scripts/globalTypes.PluginSecurity.d.luau index d03b7d7b..be211766 100644 --- a/scripts/globalTypes.PluginSecurity.d.luau +++ b/scripts/globalTypes.PluginSecurity.d.luau @@ -4270,17 +4270,17 @@ declare class CFrame function Inverse(self): CFrame function Lerp(self, goal: CFrame, alpha: number): CFrame function Orthonormalize(self): CFrame - function PointToObjectSpace(self, v3: Vector3): Vector3 - function PointToWorldSpace(self, v3: Vector3): Vector3 + function PointToObjectSpace(self, ...: Vector3): ...Vector3 + function PointToWorldSpace(self, ...: Vector3): ...Vector3 function ToAxisAngle(self): (Vector3, number) function ToEulerAngles(self, order: EnumRotationOrder?): (number, number, number) function ToEulerAnglesXYZ(self): (number, number, number) function ToEulerAnglesYXZ(self): (number, number, number) - function ToObjectSpace(self, cf: CFrame): CFrame + function ToObjectSpace(self, ...: CFrame): ...CFrame function ToOrientation(self): (number, number, number) - function ToWorldSpace(self, cf: CFrame): CFrame - function VectorToObjectSpace(self, v3: Vector3): Vector3 - function VectorToWorldSpace(self, v3: Vector3): Vector3 + function ToWorldSpace(self, ...: CFrame): ...CFrame + function VectorToObjectSpace(self, ...: Vector3): ...Vector3 + function VectorToWorldSpace(self, ...: Vector3): ...Vector3 function __add(self, other: Vector3): CFrame function __mul(self, other: CFrame): CFrame function __mul(self, other: Vector3): Vector3 diff --git a/scripts/globalTypes.RobloxScriptSecurity.d.luau b/scripts/globalTypes.RobloxScriptSecurity.d.luau index 5d520687..6c6c6af1 100644 --- a/scripts/globalTypes.RobloxScriptSecurity.d.luau +++ b/scripts/globalTypes.RobloxScriptSecurity.d.luau @@ -4270,17 +4270,17 @@ declare class CFrame function Inverse(self): CFrame function Lerp(self, goal: CFrame, alpha: number): CFrame function Orthonormalize(self): CFrame - function PointToObjectSpace(self, v3: Vector3): Vector3 - function PointToWorldSpace(self, v3: Vector3): Vector3 + function PointToObjectSpace(self, ...: Vector3): ...Vector3 + function PointToWorldSpace(self, ...: Vector3): ...Vector3 function ToAxisAngle(self): (Vector3, number) function ToEulerAngles(self, order: EnumRotationOrder?): (number, number, number) function ToEulerAnglesXYZ(self): (number, number, number) function ToEulerAnglesYXZ(self): (number, number, number) - function ToObjectSpace(self, cf: CFrame): CFrame + function ToObjectSpace(self, ...: CFrame): ...CFrame function ToOrientation(self): (number, number, number) - function ToWorldSpace(self, cf: CFrame): CFrame - function VectorToObjectSpace(self, v3: Vector3): Vector3 - function VectorToWorldSpace(self, v3: Vector3): Vector3 + function ToWorldSpace(self, ...: CFrame): ...CFrame + function VectorToObjectSpace(self, ...: Vector3): ...Vector3 + function VectorToWorldSpace(self, ...: Vector3): ...Vector3 function __add(self, other: Vector3): CFrame function __mul(self, other: CFrame): CFrame function __mul(self, other: Vector3): Vector3 diff --git a/scripts/globalTypes.d.lua b/scripts/globalTypes.d.lua index 5d520687..6c6c6af1 100644 --- a/scripts/globalTypes.d.lua +++ b/scripts/globalTypes.d.lua @@ -4270,17 +4270,17 @@ declare class CFrame function Inverse(self): CFrame function Lerp(self, goal: CFrame, alpha: number): CFrame function Orthonormalize(self): CFrame - function PointToObjectSpace(self, v3: Vector3): Vector3 - function PointToWorldSpace(self, v3: Vector3): Vector3 + function PointToObjectSpace(self, ...: Vector3): ...Vector3 + function PointToWorldSpace(self, ...: Vector3): ...Vector3 function ToAxisAngle(self): (Vector3, number) function ToEulerAngles(self, order: EnumRotationOrder?): (number, number, number) function ToEulerAnglesXYZ(self): (number, number, number) function ToEulerAnglesYXZ(self): (number, number, number) - function ToObjectSpace(self, cf: CFrame): CFrame + function ToObjectSpace(self, ...: CFrame): ...CFrame function ToOrientation(self): (number, number, number) - function ToWorldSpace(self, cf: CFrame): CFrame - function VectorToObjectSpace(self, v3: Vector3): Vector3 - function VectorToWorldSpace(self, v3: Vector3): Vector3 + function ToWorldSpace(self, ...: CFrame): ...CFrame + function VectorToObjectSpace(self, ...: Vector3): ...Vector3 + function VectorToWorldSpace(self, ...: Vector3): ...Vector3 function __add(self, other: Vector3): CFrame function __mul(self, other: CFrame): CFrame function __mul(self, other: Vector3): Vector3 diff --git a/scripts/globalTypes.d.luau b/scripts/globalTypes.d.luau index 5d520687..6c6c6af1 100644 --- a/scripts/globalTypes.d.luau +++ b/scripts/globalTypes.d.luau @@ -4270,17 +4270,17 @@ declare class CFrame function Inverse(self): CFrame function Lerp(self, goal: CFrame, alpha: number): CFrame function Orthonormalize(self): CFrame - function PointToObjectSpace(self, v3: Vector3): Vector3 - function PointToWorldSpace(self, v3: Vector3): Vector3 + function PointToObjectSpace(self, ...: Vector3): ...Vector3 + function PointToWorldSpace(self, ...: Vector3): ...Vector3 function ToAxisAngle(self): (Vector3, number) function ToEulerAngles(self, order: EnumRotationOrder?): (number, number, number) function ToEulerAnglesXYZ(self): (number, number, number) function ToEulerAnglesYXZ(self): (number, number, number) - function ToObjectSpace(self, cf: CFrame): CFrame + function ToObjectSpace(self, ...: CFrame): ...CFrame function ToOrientation(self): (number, number, number) - function ToWorldSpace(self, cf: CFrame): CFrame - function VectorToObjectSpace(self, v3: Vector3): Vector3 - function VectorToWorldSpace(self, v3: Vector3): Vector3 + function ToWorldSpace(self, ...: CFrame): ...CFrame + function VectorToObjectSpace(self, ...: Vector3): ...Vector3 + function VectorToWorldSpace(self, ...: Vector3): ...Vector3 function __add(self, other: Vector3): CFrame function __mul(self, other: CFrame): CFrame function __mul(self, other: Vector3): Vector3