@nativewrappers/fivem 0.0.17 → 0.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,33 +1,42 @@
1
- <h1 align="center">Monorepo for a FiveM server/client wrapper</h1>
2
-
3
- <p align="center">
4
- <i>:fire: A Javascript/Typescript wrapper for the FiveM server natives :video_game:</i>
5
- <br>
6
- <br>
7
- <a href="https://github.com/nativewrappers/fivem-server/blob/master/LICENSE">
8
- <img src="https://img.shields.io/badge/License-MIT-blue.svg?style=flat" alt="License: MIT">
9
- </a>
10
- <a href="https://github.com/nativewrappers/fivem/commits/master">
11
- <img src="https://img.shields.io/github/last-commit/nativewrappers/fivem.svg?style=flat" alt="Last commit">
12
- </a>
13
- </p>
14
-
15
- <p align="center">
16
- <a href="https://fivemjs-server.avarian.dev/">Documentation</a>
17
- -
18
- <a href="https://forum.fivem.net/t/fivem-js-v1-3-2-javascript-typescript-wrapper-now-with-menu-class-nativeui/268640">Forum</a>
19
- </p>
20
-
21
- This project is in no way affiliated with FiveM or the Cfx Collective.
22
-
23
- ## Features
24
- - No runtime dependencies
25
- - Abstracts common used FiveM practices
26
- - Entity management through class objects (i.e. `Vehicle` and `Ped` entities)
27
-
28
-
29
- ## Download & Install
30
-
31
- `pnpm add @nativewrappers/fivem-server`
32
-
33
-
1
+ <h1 align="center">Monorepo for a FiveM server/client wrapper</h1>
2
+
3
+ <p align="center">
4
+ <i>:fire: A Javascript/Typescript wrapper for the FiveM server natives :video_game:</i>
5
+ <br>
6
+ <br>
7
+ <a href="https://github.com/nativewrappers/fivem/blob/master/LICENSE">
8
+ <img src="https://img.shields.io/badge/License-MIT-blue.svg?style=flat" alt="License: MIT">
9
+ </a>
10
+ <a href="https://www.npmjs.com/package/@nativewrappers/fivem">
11
+ <img src="https://img.shields.io/npm/v/@nativewrappers/fivem?style=flat" alt="npm version">
12
+ </a>
13
+ <a href="https://www.npmjs.com/package/@nativewrappers/fivem">
14
+ <img src="https://img.shields.io/npm/dm/@nativewrappers/fivem?style=flat">
15
+ </a>
16
+ <a href="https://github.com/nativewrappers/fivem/actions/workflows/config.yml">
17
+ <img src="https://github.com/nativewrappers/fivem/actions/workflows/config.yml/badge.svg" alt="Workflow Status">
18
+ </a>
19
+ <a href="https://github.com/nativewrappers/fivem/commits/master">
20
+ <img src="https://img.shields.io/github/last-commit/nativewrappers/fivem.svg?style=flat" alt="Last commit">
21
+ </a>
22
+ </p>
23
+
24
+ <p align="center">
25
+ <a href="https://fivemjs-server.avarian.dev/">Documentation</a>
26
+ -
27
+ <!-- <a href="https://forum.fivem.net/t/fivem-js-v1-3-2-javascript-typescript-wrapper-now-with-menu-class-nativeui/268640">Forum</a> -->
28
+ </p>
29
+
30
+ ## This project is currently interating rapidly, there will be breaking changes.
31
+
32
+ This project is in no way affiliated with FiveM or the Cfx.re Collective.
33
+
34
+ ## Features
35
+ - No runtime dependencies
36
+ - Abstracts common used FiveM practices
37
+ - Entity management through class objects (i.e. `Vehicle` and `Ped` entities)
38
+ - Server and Client side variants on wrapper
39
+
40
+ ## Download & Install
41
+
42
+ `pnpm add @nativewrappers/fivem`
package/client/Events.js CHANGED
@@ -1,9 +1,7 @@
1
1
  /* eslint-disable */
2
2
  import { ClassTypes } from './enums/ClassTypes';
3
3
  import { Ped } from './models/Ped';
4
- import { Vector2 } from './utils/Vector2';
5
- import { Vector3 } from './utils/Vector3';
6
- import { Vector4 } from './utils/Vector4';
4
+ import { Vector2, Vector3, Vector4 } from './utils';
7
5
  import { Player } from './models/Player';
8
6
  import { Prop } from './models/Prop';
9
7
  import { Vehicle } from './models/Vehicle';
@@ -10,7 +10,7 @@ export declare class Vehicle extends BaseEntity {
10
10
  static getClassDisplayName(vehicleClass: VehicleClass): string;
11
11
  static exists(vehicle: Vehicle): boolean;
12
12
  static fromHandle(handle: number): Vehicle | null;
13
- static fromNetworkId(networkId: number, errorOnInvalid?: boolean): Vehicle | null;
13
+ static fromNetworkId(networkId: number): Vehicle | null;
14
14
  private _doors;
15
15
  private _mods;
16
16
  private _wheels;
@@ -64,11 +64,7 @@ export declare class Vehicle extends BaseEntity {
64
64
  get IsSirenActive(): boolean;
65
65
  set IsSirenActive(value: boolean);
66
66
  set HasMutedSirens(value: boolean);
67
- /**
68
- * @deprecated use {@HasMutedSirens} instead.
69
- */
70
- set IsSirenSilent(value: boolean);
71
- soundHorn(duration: number): void;
67
+ soundHorn(duration: number, mode?: number): void;
72
68
  get IsWanted(): boolean;
73
69
  set IsWanted(value: boolean);
74
70
  set ProvidesCover(value: boolean);
@@ -18,11 +18,13 @@ export class Vehicle extends BaseEntity {
18
18
  return typeof vehicle !== 'undefined' && vehicle.exists();
19
19
  }
20
20
  static fromHandle(handle) {
21
+ if (!DoesEntityExist(handle))
22
+ return null;
21
23
  return new Vehicle(handle);
22
24
  }
23
- static fromNetworkId(networkId, errorOnInvalid = false) {
24
- if (errorOnInvalid && NetworkDoesEntityExistWithNetworkId(networkId)) {
25
- throw new Error(`Entity with ${networkId} doesn't exist`);
25
+ static fromNetworkId(networkId) {
26
+ if (!NetworkDoesEntityExistWithNetworkId(networkId)) {
27
+ return null;
26
28
  }
27
29
  return new Vehicle(NetworkGetEntityFromNetworkId(networkId));
28
30
  }
@@ -184,14 +186,8 @@ export class Vehicle extends BaseEntity {
184
186
  set HasMutedSirens(value) {
185
187
  SetVehicleHasMutedSirens(this.handle, value);
186
188
  }
187
- /**
188
- * @deprecated use {@HasMutedSirens} instead.
189
- */
190
- set IsSirenSilent(value) {
191
- SetVehicleHasMutedSirens(this.handle, value);
192
- }
193
- soundHorn(duration) {
194
- StartVehicleHorn(this.handle, duration, Game.generateHash('HELDDOWN'), false);
189
+ soundHorn(duration, mode = Game.generateHash('HELDDOWN')) {
190
+ StartVehicleHorn(this.handle, duration, mode, false);
195
191
  }
196
192
  get IsWanted() {
197
193
  return IsVehicleWanted(this.handle);
@@ -1,4 +1,4 @@
1
- import { Vector3 } from './Vector3';
1
+ import { Vector3 } from '.';
2
2
  export declare class Quaternion {
3
3
  x: number;
4
4
  y: number;
@@ -1,4 +1,4 @@
1
- import { Vector3 } from './Vector3';
1
+ import { Vector3 } from '.';
2
2
  export class Quaternion {
3
3
  constructor(valueXOrVector, yOrW, z, w) {
4
4
  if (valueXOrVector instanceof Vector3) {
@@ -0,0 +1,101 @@
1
+ import type { MsgpackBuffer } from '../types';
2
+ export interface Vec2 {
3
+ x: number;
4
+ y: number;
5
+ }
6
+ export interface Vec3 {
7
+ x: number;
8
+ y: number;
9
+ z: number;
10
+ }
11
+ export interface Vec4 {
12
+ x: number;
13
+ y: number;
14
+ z: number;
15
+ w: number;
16
+ }
17
+ interface VectorObject {
18
+ x: number;
19
+ y: number;
20
+ z?: number;
21
+ w?: number;
22
+ }
23
+ type VectorArray = [number, number, number?, number?] | number[];
24
+ type VectorType = typeof Vector;
25
+ type VectorLike = VectorObject | Vector;
26
+ export declare class Vector {
27
+ size: number;
28
+ x: number;
29
+ y: number;
30
+ z?: number | undefined;
31
+ w?: number | undefined;
32
+ type: string;
33
+ static create<T extends VectorType>(this: T, x: VectorLike | number, y?: number, z?: number, w?: number): InstanceType<T>;
34
+ static fromBuffer({ buffer }: MsgpackBuffer): Vector;
35
+ static clone<T extends VectorType>(this: T, obj: VectorLike): InstanceType<T>;
36
+ private static operate;
37
+ static add<T extends VectorType, U extends VectorLike>(this: T, a: U, b: VectorLike | number): U;
38
+ static subtract<T extends VectorType, U extends VectorLike>(this: T, a: U, b: VectorLike | number): U;
39
+ static multiply<T extends VectorType, U extends VectorLike>(this: T, a: U, b: VectorLike | number): U;
40
+ static divide<T extends VectorType, U extends VectorLike>(this: T, a: U, b: VectorLike | number): U;
41
+ static dotProduct<T extends VectorType, U extends VectorLike>(this: T, a: U, b: U): number;
42
+ static normalize<T extends VectorType, U extends VectorLike>(this: T, a: U): U;
43
+ /**
44
+ * Creates a vector from an array of numbers.
45
+ * @param primitive An array of numbers (usually returned by a native).
46
+ */
47
+ static fromArray<T extends VectorType>(this: T, primitive: VectorArray): InstanceType<T>;
48
+ /**
49
+ * Creates an array of vectors from an array of number arrays
50
+ * @param primitives A multi-dimensional array of number arrays
51
+ */
52
+ static fromArrays<T extends VectorType>(this: T, primitives: VectorArray[]): InstanceType<T>[];
53
+ static Length<T extends VectorType, U extends VectorLike>(this: T, obj: U): number;
54
+ constructor(size: number, x?: number, y?: number, z?: number | undefined, w?: number | undefined);
55
+ [Symbol.iterator](): Iterator<[string, number]>;
56
+ toString(): string;
57
+ toJSON(): string;
58
+ clone(): this;
59
+ /**
60
+ * The product of the Euclidean magnitudes of this and another Vector.
61
+ *
62
+ * @param v Vector to find Euclidean magnitude between.
63
+ * @returns Euclidean magnitude with another vector.
64
+ */
65
+ distanceSquared(v: VectorLike): number;
66
+ /**
67
+ * The distance between two Vectors.
68
+ *
69
+ * @param v Vector to find distance between.
70
+ * @returns Distance between this and another vector.
71
+ */
72
+ distance(v: VectorLike): number;
73
+ get normalize(): this;
74
+ dotProduct(v: this): number;
75
+ add(v: VectorLike | number): this;
76
+ subtract(v: VectorLike): this;
77
+ multiply(v: VectorLike | number): this;
78
+ divide(v: VectorLike | number): this;
79
+ toArray(): [number, number];
80
+ replace(v: VectorLike): void;
81
+ get Length(): number;
82
+ }
83
+ export declare class Vector2 extends Vector {
84
+ type: string;
85
+ constructor(x: number, y?: number);
86
+ static readonly Zero: Vector2;
87
+ }
88
+ export declare class Vector3 extends Vector implements Vec3 {
89
+ type: string;
90
+ z: number;
91
+ constructor(x: number, y?: number, z?: number);
92
+ static readonly Zero: Vector3;
93
+ }
94
+ export declare class Vector4 extends Vector {
95
+ type: string;
96
+ z: number;
97
+ w: number;
98
+ constructor(x: number, y?: number, z?: number, w?: number);
99
+ static readonly Zero: Vector4;
100
+ }
101
+ export {};
@@ -0,0 +1,202 @@
1
+ // Adapted from https://raw.githubusercontent.com/you21979/typescript-vector/master/vector3.ts
2
+ export class Vector {
3
+ static create(x, y, z, w) {
4
+ if (y === undefined && typeof x === 'number')
5
+ return new Vector2(x, x);
6
+ if (typeof x === 'object')
7
+ ({ x, y, z, w } = x);
8
+ const type = this instanceof Vector
9
+ ? this.type
10
+ : `vec${[x, y, z, w].filter(arg => arg !== undefined).length}`;
11
+ switch (type) {
12
+ default:
13
+ case 'vec':
14
+ return new Vector2(x, y);
15
+ case 'vec3':
16
+ return new Vector3(x, y, z);
17
+ case 'vec4':
18
+ return new Vector4(x, y, z, w);
19
+ }
20
+ }
21
+ static fromBuffer({ buffer }) {
22
+ const arr = [];
23
+ for (let offset = 0; offset < buffer.length; offset += 4)
24
+ arr.push(buffer.readFloatLE(offset));
25
+ return this.fromArray(arr);
26
+ }
27
+ static clone(obj) {
28
+ return this.create(obj);
29
+ }
30
+ static operate(a, b, operator) {
31
+ let { x, y, z, w } = a;
32
+ const isNumber = typeof b === 'number';
33
+ x = operator(x, isNumber ? b : b.x);
34
+ y = operator(y, isNumber ? b : b.y);
35
+ if (z)
36
+ z = operator(z, isNumber ? b : b.z ?? 0);
37
+ if (w)
38
+ w = operator(w, isNumber ? b : b.w ?? 0);
39
+ return this.create(x, y, z, w);
40
+ }
41
+ static add(a, b) {
42
+ return this.operate(a, b, (x, y) => x + y);
43
+ }
44
+ static subtract(a, b) {
45
+ return this.operate(a, b, (x, y) => x - y);
46
+ }
47
+ static multiply(a, b) {
48
+ return this.operate(a, b, (x, y) => x * y);
49
+ }
50
+ static divide(a, b) {
51
+ return this.operate(a, b, (x, y) => x / y);
52
+ }
53
+ static dotProduct(a, b) {
54
+ let result = 0;
55
+ for (const key of ['x', 'y', 'z', 'w']) {
56
+ const v1 = a[key];
57
+ const v2 = b[key];
58
+ if (v1 && v2)
59
+ result += v1 * v2;
60
+ else if (v1 || v2) {
61
+ throw new Error('Vectors must have the same dimensions');
62
+ }
63
+ }
64
+ return result;
65
+ }
66
+ static normalize(a) {
67
+ const length = a.Length || this.Length(a);
68
+ return this.divide(a, length);
69
+ }
70
+ /**
71
+ * Creates a vector from an array of numbers.
72
+ * @param primitive An array of numbers (usually returned by a native).
73
+ */
74
+ static fromArray(primitive) {
75
+ const [x, y, z, w] = primitive;
76
+ switch (this.name === 'Vector' ? `Vector${primitive.length < 2 ? 2 : primitive.length}` : this.name) {
77
+ case 'Vector':
78
+ return new Vector(x, y);
79
+ case 'Vector3':
80
+ return new Vector3(x, y, z);
81
+ default:
82
+ case 'Vector4':
83
+ return new Vector4(x, y, z, w);
84
+ }
85
+ }
86
+ /**
87
+ * Creates an array of vectors from an array of number arrays
88
+ * @param primitives A multi-dimensional array of number arrays
89
+ */
90
+ static fromArrays(primitives) {
91
+ return primitives.map(this.fromArray);
92
+ }
93
+ static Length(obj) {
94
+ let sum = 0;
95
+ for (const key of ['x', 'y', 'z', 'w']) {
96
+ const value = obj[key];
97
+ if (value)
98
+ sum += value * value;
99
+ }
100
+ return Math.sqrt(sum);
101
+ }
102
+ constructor(size, x = 0, y = x, z, w) {
103
+ this.size = size;
104
+ this.x = x;
105
+ this.y = y;
106
+ this.z = z;
107
+ this.w = w;
108
+ this.type = 'vec';
109
+ }
110
+ *[Symbol.iterator]() {
111
+ yield ['x', this.x];
112
+ yield ['y', this.y];
113
+ if (this.z)
114
+ yield ['z', this.z];
115
+ if (this.w)
116
+ yield ['w', this.w];
117
+ }
118
+ toString() {
119
+ const { x, y, z, w } = this;
120
+ return `${this.type}(${[x, y, z, w].filter(val => val !== undefined).join(', ')})`;
121
+ }
122
+ toJSON() {
123
+ return this.toString();
124
+ }
125
+ clone() {
126
+ return Vector.clone(this);
127
+ }
128
+ /**
129
+ * The product of the Euclidean magnitudes of this and another Vector.
130
+ *
131
+ * @param v Vector to find Euclidean magnitude between.
132
+ * @returns Euclidean magnitude with another vector.
133
+ */
134
+ distanceSquared(v) {
135
+ const w = this.subtract(v);
136
+ return Vector.dotProduct(w, w);
137
+ }
138
+ /**
139
+ * The distance between two Vectors.
140
+ *
141
+ * @param v Vector to find distance between.
142
+ * @returns Distance between this and another vector.
143
+ */
144
+ distance(v) {
145
+ return Math.sqrt(this.distanceSquared(v));
146
+ }
147
+ get normalize() {
148
+ return Vector.normalize(this);
149
+ }
150
+ dotProduct(v) {
151
+ return Vector.dotProduct(this, v);
152
+ }
153
+ add(v) {
154
+ return Vector.add(this, v);
155
+ }
156
+ subtract(v) {
157
+ return Vector.subtract(this, v);
158
+ }
159
+ multiply(v) {
160
+ return Vector.multiply(this, v);
161
+ }
162
+ divide(v) {
163
+ return Vector.divide(this, v);
164
+ }
165
+ toArray() {
166
+ return [this.x, this.y];
167
+ }
168
+ replace(v) {
169
+ this.x = v.x;
170
+ this.y = v.y;
171
+ }
172
+ get Length() {
173
+ let sum = 0;
174
+ for (let [_, value] of this)
175
+ sum += value * value;
176
+ return Math.sqrt(sum);
177
+ }
178
+ }
179
+ export class Vector2 extends Vector {
180
+ constructor(x, y = x) {
181
+ super(2, x, y);
182
+ this.type = 'vec2';
183
+ }
184
+ }
185
+ Vector2.Zero = new Vector2(0, 0);
186
+ export class Vector3 extends Vector {
187
+ constructor(x, y = x, z = y) {
188
+ super(3, x, y, z);
189
+ this.type = 'vec3';
190
+ this.z = z;
191
+ }
192
+ }
193
+ Vector3.Zero = new Vector3(0, 0, 0);
194
+ export class Vector4 extends Vector {
195
+ constructor(x, y = x, z = y, w = z) {
196
+ super(4, x, y, z, w);
197
+ this.type = 'vec4';
198
+ this.z = z;
199
+ this.w = w;
200
+ }
201
+ }
202
+ Vector4.Zero = new Vector4(0, 0, 0, 0);
@@ -1,58 +1 @@
1
- import type { MsgpackBuffer } from '../types';
2
- export interface Vec2 {
3
- x: number;
4
- y: number;
5
- }
6
- export type Vector2Type = Vector2 | Vec2;
7
- export declare class Vector2 implements Vec2 {
8
- x: number;
9
- y: number;
10
- type: string;
11
- static create(v1: Vec2 | number): Vector2;
12
- /**
13
- * Creates a vector from an array of numbers
14
- * @param primitive An array of numbers (usually returned by a native)
15
- * ```
16
- */
17
- static fromArray(primitive: [number, number] | number[]): Vector2;
18
- /**
19
- * Creates an array of vectors from an array number arrays
20
- * @param primitives A multi-dimensional array of number arrays
21
- * ```
22
- */
23
- static fromArrays(primitives: [number, number][] | number[][]): Vector2[];
24
- static fromBuffer({ buffer }: MsgpackBuffer): Vector2;
25
- static clone(v1: Vec2): Vector2;
26
- static add(v1: Vector2Type, v2: Vector2Type | number): Vector2;
27
- static subtract(v1: Vector2Type, v2: Vector2Type | number): Vector2;
28
- static multiply(v1: Vector2Type, v2: Vector2Type | number): Vector2;
29
- static divide(v1: Vector2Type, v2: Vector2Type | number): Vector2;
30
- static dotProduct(v1: Vector2Type, v2: Vector2Type): number;
31
- static normalize(v: Vector2): Vector2;
32
- constructor(x: number, y: number);
33
- toString(): string;
34
- clone(): Vector2;
35
- /**
36
- * The product of the Euclidean magnitudes of this and another Vector2.
37
- *
38
- * @param v Vector2 to find Euclidean magnitude between.
39
- * @returns Euclidean magnitude with another vector.
40
- */
41
- distanceSquared(v: Vector2Type): number;
42
- /**
43
- * The distance between two Vectors.
44
- *
45
- * @param v Vector2 to find distance between.
46
- * @returns Distance between this and another vector.
47
- */
48
- distance(v: Vector2Type): number;
49
- get normalize(): Vector2;
50
- dotProduct(v: Vector2Type): number;
51
- add(v: Vector2Type | number): Vector2;
52
- subtract(v: Vector2Type): Vector2;
53
- multiply(v: Vector2Type | number): Vector2;
54
- divide(v: Vector2Type | number): Vector2;
55
- toArray(): [number, number];
56
- replace(v: Vector2Type): void;
57
- get Length(): number;
58
- }
1
+ export { Vector2 } from './Vector';
@@ -1,113 +1 @@
1
- export class Vector2 {
2
- static create(v1) {
3
- if (typeof v1 === 'number')
4
- return new Vector2(v1, v1);
5
- return new Vector2(v1.x, v1.y);
6
- }
7
- /**
8
- * Creates a vector from an array of numbers
9
- * @param primitive An array of numbers (usually returned by a native)
10
- * ```
11
- */
12
- static fromArray(primitive) {
13
- return new Vector2(primitive[0], primitive[1]);
14
- }
15
- /**
16
- * Creates an array of vectors from an array number arrays
17
- * @param primitives A multi-dimensional array of number arrays
18
- * ```
19
- */
20
- static fromArrays(primitives) {
21
- return primitives.map(prim => new Vector2(prim[0], prim[1]));
22
- }
23
- static fromBuffer({ buffer }) {
24
- return new Vector2(buffer.readFloatLE(0), buffer.readFloatLE(4));
25
- }
26
- static clone(v1) {
27
- return Vector2.create(v1);
28
- }
29
- static add(v1, v2) {
30
- if (typeof v2 === 'number')
31
- return new Vector2(v1.x + v2, v1.y + v2);
32
- return new Vector2(v1.x + v2.x, v1.y + v2.y);
33
- }
34
- static subtract(v1, v2) {
35
- if (typeof v2 === 'number')
36
- return new Vector2(v1.x - v2, v1.y - v2);
37
- return new Vector2(v1.x - v2.x, v1.y - v2.y);
38
- }
39
- static multiply(v1, v2) {
40
- if (typeof v2 === 'number')
41
- return new Vector2(v1.x * v2, v1.y * v2);
42
- return new Vector2(v1.x * v2.x, v1.y * v2.y);
43
- }
44
- static divide(v1, v2) {
45
- if (typeof v2 === 'number')
46
- return new Vector2(v1.x / v2, v1.y / v2);
47
- return new Vector2(v1.x / v2.x, v1.y / v2.y);
48
- }
49
- static dotProduct(v1, v2) {
50
- return v1.x * v2.x + v1.y * v2.y;
51
- }
52
- static normalize(v) {
53
- return Vector2.divide(v, v.Length);
54
- }
55
- constructor(x, y) {
56
- this.x = x;
57
- this.y = y;
58
- this.type = 'vec2';
59
- }
60
- toString() {
61
- return `${this.type}(${this.x}, ${this.y})`;
62
- }
63
- clone() {
64
- return new Vector2(this.x, this.y);
65
- }
66
- /**
67
- * The product of the Euclidean magnitudes of this and another Vector2.
68
- *
69
- * @param v Vector2 to find Euclidean magnitude between.
70
- * @returns Euclidean magnitude with another vector.
71
- */
72
- distanceSquared(v) {
73
- const w = this.subtract(v);
74
- return Vector2.dotProduct(w, w);
75
- }
76
- /**
77
- * The distance between two Vectors.
78
- *
79
- * @param v Vector2 to find distance between.
80
- * @returns Distance between this and another vector.
81
- */
82
- distance(v) {
83
- return Math.sqrt(this.distanceSquared(v));
84
- }
85
- get normalize() {
86
- return Vector2.normalize(this);
87
- }
88
- dotProduct(v) {
89
- return Vector2.dotProduct(this, v);
90
- }
91
- add(v) {
92
- return Vector2.add(this, v);
93
- }
94
- subtract(v) {
95
- return Vector2.subtract(this, v);
96
- }
97
- multiply(v) {
98
- return Vector2.multiply(this, v);
99
- }
100
- divide(v) {
101
- return Vector2.divide(this, v);
102
- }
103
- toArray() {
104
- return [this.x, this.y];
105
- }
106
- replace(v) {
107
- this.x = v.x;
108
- this.y = v.y;
109
- }
110
- get Length() {
111
- return Math.sqrt(this.x * this.x + this.y * this.y);
112
- }
113
- }
1
+ export { Vector2 } from './Vector';