Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 41 additions & 70 deletions include/macro_math.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 }> {}
69 changes: 69 additions & 0 deletions legacy_macro_math.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
/// <reference no-default-lib="true"/>

// 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;
}