From d5ef824360462fa6124e1e98bbb422f635a80ddd Mon Sep 17 00:00:00 2001 From: osyrisrblx Date: Tue, 13 Feb 2024 15:23:08 -0500 Subject: [PATCH] Custom Math Prototype --- include/macro_math.d.ts | 111 +++++++++++++++------------------------- legacy_macro_math.d.ts | 69 +++++++++++++++++++++++++ 2 files changed, 110 insertions(+), 70 deletions(-) create mode 100644 legacy_macro_math.d.ts diff --git a/include/macro_math.d.ts b/include/macro_math.d.ts index 88857a5943..55be5148ce 100644 --- a/include/macro_math.d.ts +++ b/include/macro_math.d.ts @@ -2,73 +2,44 @@ // MACRO MATH API -declare interface CFrame { - /** macro for CFrame + Vector3 */ - add(this: CFrame, v3: Vector3): CFrame; - /** macro for CFrame - Vector3 */ - sub(this: CFrame, v3: Vector3): CFrame; - /** macro for CFrame * CFrame */ - mul(this: CFrame, cf: CFrame): CFrame; - /** macro for CFrame * Vector3 */ - mul(this: CFrame, v3: Vector3): Vector3; - /** macro for CFrame * CFrame | Vector3 */ - mul(this: CFrame, other: CFrame | Vector3): CFrame | Vector3; -} - -declare interface UDim { - /** macro for UDim + UDim */ - add(this: UDim, udim: UDim): UDim; - /** macro for UDim - UDim */ - sub(this: UDim, udim: UDim): UDim; -} - -declare interface UDim2 { - /** macro for UDim2 + UDim2 */ - add(this: UDim2, udim2: UDim2): UDim2; - /** macro for UDim2 - UDim2 */ - sub(this: UDim2, udim2: UDim2): UDim2; -} - -declare interface Vector2 { - /** macro for Vector2 + Vector2 */ - add(this: Vector2, v2: Vector2): Vector2; - /** macro for Vector2 - Vector2 */ - sub(this: Vector2, v2: Vector2): Vector2; - /** macro for Vector2 * Vector2 | number */ - mul(this: Vector2, other: Vector2 | number): Vector2; - /** macro for Vector2 / Vector2 | number */ - div(this: Vector2, other: Vector2 | number): Vector2; -} - -declare interface Vector2int16 { - /** macro for Vector2int16 + Vector2int16 */ - add(this: Vector2int16, v2: Vector2int16): Vector2int16; - /** macro for Vector2int16 - Vector2int16 */ - sub(this: Vector2int16, v2: Vector2int16): Vector2int16; - /** macro for Vector2int16 * Vector2int16 */ - mul(this: Vector2int16, v2: Vector2int16): Vector2int16; - /** macro for Vector2int16 / Vector2int16 */ - div(this: Vector2int16, v2: Vector2int16): Vector2int16; -} - -declare interface Vector3 { - /** macro for Vector3 + Vector3 */ - add(this: Vector3, v3: Vector3): Vector3; - /** macro for Vector3 - Vector3 */ - sub(this: Vector3, v3: Vector3): Vector3; - /** macro for Vector3 * Vector3 | number */ - mul(this: Vector3, other: Vector3 | number): Vector3; - /** macro for Vector3 / Vector3 | number */ - div(this: Vector3, other: Vector3 | number): Vector3; -} - -declare interface Vector3int16 { - /** macro for Vector2int16 + Vector2int16 */ - add(this: Vector3int16, v3: Vector3int16): Vector3int16; - /** macro for Vector2int16 - Vector2int16 */ - sub(this: Vector3int16, v3: Vector3int16): Vector3int16; - /** macro for Vector2int16 * Vector2int16 */ - mul(this: Vector3int16, v3: Vector3int16): Vector3int16; - /** macro for Vector2int16 / Vector2int16 */ - div(this: Vector3int16, v3: Vector3int16): Vector3int16; -} +declare interface Number extends IDiv<{ (this: number, other: number): number }> {} + +declare interface CFrame + extends Add<{ (this: CFrame, v3: Vector3): CFrame }>, + Sub<{ (this: CFrame, v3: Vector3): CFrame }>, + Mul<{ + (this: CFrame, cf: CFrame): CFrame; + (this: CFrame, v3: Vector3): Vector3; + (this: CFrame, other: CFrame | Vector3): CFrame | Vector3; + }> {} + +declare interface UDim extends Add<{ (this: UDim, udim: UDim): UDim }>, Sub<{ (this: UDim, udim: UDim): UDim }> {} + +declare interface UDim2 + extends Add<{ (this: UDim2, udim2: UDim2): UDim2 }>, + Sub<{ (this: UDim2, udim2: UDim2): UDim2 }> {} + +declare interface Vector2 + extends Add<{ (this: Vector2, v2: Vector2): Vector2 }>, + Sub<{ (this: Vector2, v2: Vector2): Vector2 }>, + Mul<{ (this: Vector2, v2: Vector2): Vector2 }>, + Div<{ (this: Vector2, other: Vector2 | number): Vector2 }>, + IDiv<{ (this: Vector2, other: Vector2 | number): Vector2 }> {} + +declare interface Vector2int16 + extends Add<{ (this: Vector2int16, v2: Vector2int16): Vector2int16 }>, + Sub<{ (this: Vector2int16, v2: Vector2int16): Vector2int16 }>, + Mul<{ (this: Vector2int16, v2: Vector2int16): Vector2int16 }>, + Div<{ (this: Vector2int16, v2: Vector2int16): Vector2int16 }> {} + +declare interface Vector3 + extends Add<{ (this: Vector3, v3: Vector3): Vector3 }>, + Sub<{ (this: Vector3, v3: Vector3): Vector3 }>, + Mul<{ (this: Vector3, other: Vector3 | number): Vector3 }>, + Div<{ (this: Vector3, other: Vector3 | number): Vector3 }> {} + +declare interface Vector3int16 + extends Add<{ (this: Vector3int16, v3: Vector3int16): Vector3int16 }>, + Sub<{ (this: Vector3int16, v3: Vector3int16): Vector3int16 }>, + Mul<{ (this: Vector3int16, v3: Vector3int16): Vector3int16 }>, + Div<{ (this: Vector3int16, v3: Vector3int16): Vector3int16 }> {} diff --git a/legacy_macro_math.d.ts b/legacy_macro_math.d.ts new file mode 100644 index 0000000000..5df19f5a97 --- /dev/null +++ b/legacy_macro_math.d.ts @@ -0,0 +1,69 @@ +/// + +// MACRO MATH API + +declare interface CFrame { + add(this: CFrame, v3: Vector3): CFrame; + sub(this: CFrame, v3: Vector3): CFrame; + mul(this: CFrame, cf: CFrame): CFrame; + mul(this: CFrame, v3: Vector3): Vector3; + mul(this: CFrame, other: CFrame | Vector3): CFrame | Vector3; +} + +declare interface UDim { + /** macro for UDim + UDim */ + add(this: UDim, udim: UDim): UDim; + /** macro for UDim - UDim */ + sub(this: UDim, udim: UDim): UDim; +} + +declare interface UDim2 { + /** macro for UDim2 + UDim2 */ + add(this: UDim2, udim2: UDim2): UDim2; + /** macro for UDim2 - UDim2 */ + sub(this: UDim2, udim2: UDim2): UDim2; +} + +declare interface Vector2 { + /** macro for Vector2 + Vector2 */ + add(this: Vector2, v2: Vector2): Vector2; + /** macro for Vector2 - Vector2 */ + sub(this: Vector2, v2: Vector2): Vector2; + /** macro for Vector2 * Vector2 | number */ + mul(this: Vector2, other: Vector2 | number): Vector2; + /** macro for Vector2 / Vector2 | number */ + div(this: Vector2, other: Vector2 | number): Vector2; +} + +declare interface Vector2int16 { + /** macro for Vector2int16 + Vector2int16 */ + add(this: Vector2int16, v2: Vector2int16): Vector2int16; + /** macro for Vector2int16 - Vector2int16 */ + sub(this: Vector2int16, v2: Vector2int16): Vector2int16; + /** macro for Vector2int16 * Vector2int16 */ + mul(this: Vector2int16, v2: Vector2int16): Vector2int16; + /** macro for Vector2int16 / Vector2int16 */ + div(this: Vector2int16, v2: Vector2int16): Vector2int16; +} + +declare interface Vector3 { + /** macro for Vector3 + Vector3 */ + add(this: Vector3, v3: Vector3): Vector3; + /** macro for Vector3 - Vector3 */ + sub(this: Vector3, v3: Vector3): Vector3; + /** macro for Vector3 * Vector3 | number */ + mul(this: Vector3, other: Vector3 | number): Vector3; + /** macro for Vector3 / Vector3 | number */ + div(this: Vector3, other: Vector3 | number): Vector3; +} + +declare interface Vector3int16 { + /** macro for Vector2int16 + Vector2int16 */ + add(this: Vector3int16, v3: Vector3int16): Vector3int16; + /** macro for Vector2int16 - Vector2int16 */ + sub(this: Vector3int16, v3: Vector3int16): Vector3int16; + /** macro for Vector2int16 * Vector2int16 */ + mul(this: Vector3int16, v3: Vector3int16): Vector3int16; + /** macro for Vector2int16 / Vector2int16 */ + div(this: Vector3int16, v3: Vector3int16): Vector3int16; +}