@minecraft/math 1.0.0

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.
@@ -0,0 +1,327 @@
1
+ import type { Vector2 } from '@minecraft/server';
2
+ import type { Vector3 } from '@minecraft/server';
3
+
4
+ /**
5
+ * Clamps the passed in number to the passed in min and max values.
6
+ *
7
+ * @public
8
+ */
9
+ export declare function clampNumber(val: number, min: number, max: number): number;
10
+
11
+ /**
12
+ * Vector2 wrapper class which can be used as a Vector2 for APIs on \@minecraft/server which require a Vector2.
13
+ * @public
14
+ */
15
+ export declare class Vector2Builder implements Vector2 {
16
+ x: number;
17
+ y: number;
18
+ constructor(vec: Vector2, arg?: never);
19
+ constructor(x: number, y: number);
20
+ toString(options?: {
21
+ decimals?: number;
22
+ delimiter?: string;
23
+ }): string;
24
+ }
25
+
26
+ /**
27
+ * Utilities operating on Vector2 objects. All methods are static and do not modify the input objects.
28
+ *
29
+ * @public
30
+ */
31
+ export declare class Vector2Utils {
32
+ /**
33
+ * toString
34
+ *
35
+ * Create a string representation of a vector2
36
+ */
37
+ static toString(v: Vector2, options?: {
38
+ decimals?: number;
39
+ delimiter?: string;
40
+ }): string;
41
+ }
42
+
43
+ /**
44
+ * back
45
+ *
46
+ * A unit vector representing the world BACK direction (0,0,-1)
47
+ *
48
+ * @public
49
+ */
50
+ export declare const VECTOR3_BACK: Vector3;
51
+
52
+ /**
53
+ * down
54
+ *
55
+ * A unit vector representing the world DOWN direction (0,-1,0)
56
+ *
57
+ * @public
58
+ */
59
+ export declare const VECTOR3_DOWN: Vector3;
60
+
61
+ /**
62
+ * east
63
+ *
64
+ * A unit vector representing the world EAST direction (-1,0,0)
65
+ * (same as RIGHT)
66
+ *
67
+ * @public
68
+ */
69
+ export declare const VECTOR3_EAST: Vector3;
70
+
71
+ /**
72
+ * forward
73
+ *
74
+ * A unit vector representing the world FORWARD direction (0,0,1)
75
+ *
76
+ * @public
77
+ */
78
+ export declare const VECTOR3_FORWARD: Vector3;
79
+
80
+ /**
81
+ * left
82
+ *
83
+ * A unit vector representing the world LEFT direction (-1,0,0)
84
+ *
85
+ * @public
86
+ */
87
+ export declare const VECTOR3_LEFT: Vector3;
88
+
89
+ /**
90
+ * north
91
+ *
92
+ * A unit vector representing the world NORTH direction (-1,0,0)
93
+ * (same as FORWARD)
94
+ *
95
+ * @public
96
+ */
97
+ export declare const VECTOR3_NORTH: Vector3;
98
+
99
+ /**
100
+ * one
101
+ *
102
+ * A unit vector representing the value of 1 in all directions (1,1,1)
103
+ *
104
+ * @public
105
+ */
106
+ export declare const VECTOR3_ONE: Vector3;
107
+
108
+ /**
109
+ * right
110
+ *
111
+ * A unit vector representing the world RIGHT direction (1,0,0)
112
+ *
113
+ * @public
114
+ */
115
+ export declare const VECTOR3_RIGHT: Vector3;
116
+
117
+ /**
118
+ * south
119
+ *
120
+ * A unit vector representing the world SOUTH direction (-1,0,0)
121
+ * (same as BACK)
122
+ *
123
+ * @public
124
+ */
125
+ export declare const VECTOR3_SOUTH: Vector3;
126
+
127
+ /**
128
+ * up
129
+ *
130
+ * A unit vector representing the world UP direction (0,1,0)
131
+ *
132
+ * @public
133
+ */
134
+ export declare const VECTOR3_UP: Vector3;
135
+
136
+ /**
137
+ * west
138
+ *
139
+ * A unit vector representing the world WEST direction (-1,0,0)
140
+ * (same as LEFT)
141
+ *
142
+ * @public
143
+ */
144
+ export declare const VECTOR3_WEST: Vector3;
145
+
146
+ /**
147
+ * zero
148
+ *
149
+ * A unit vector representing the value of 0 in all directions (0,0,0)
150
+ *
151
+ * @public
152
+ */
153
+ export declare const VECTOR3_ZERO: Vector3;
154
+
155
+ /**
156
+ * Vector3 wrapper class which can be used as a Vector3 for APIs on \@minecraft/server which require a Vector,
157
+ * but also contain additional helper methods. This is an alternative to using the core Vector 3 utility
158
+ * methods directly, for those who prefer a more object-oriented approach. This version of the class is mutable
159
+ * and changes state inline.
160
+ *
161
+ * For an immutable version of the build, use ImmutableVector3Builder.
162
+ *
163
+ * @public
164
+ */
165
+ export declare class Vector3Builder implements Vector3 {
166
+ x: number;
167
+ y: number;
168
+ z: number;
169
+ constructor(vec: Vector3, arg?: never, arg2?: never);
170
+ constructor(x: number, y: number, z: number);
171
+ /**
172
+ * Assigns the values of the passed in vector to this vector. Returns itself.
173
+ */
174
+ assign(vec: Vector3): this;
175
+ /**
176
+ * equals
177
+ *
178
+ * Check the equality of two vectors
179
+ */
180
+ equals(v: Vector3): boolean;
181
+ /**
182
+ * add
183
+ *
184
+ * Adds the vector v to this, returning itself.
185
+ */
186
+ add(v: Vector3): this;
187
+ /**
188
+ * subtract
189
+ *
190
+ * Subtracts the vector v from this, returning itself.
191
+ */
192
+ subtract(v: Vector3): this;
193
+ /** scale
194
+ *
195
+ * Scales this by the passed in value, returning itself.
196
+ */
197
+ scale(val: number): this;
198
+ /**
199
+ * dot
200
+ *
201
+ * Computes the dot product of this and the passed in vector.
202
+ */
203
+ dot(vec: Vector3): number;
204
+ /**
205
+ * cross
206
+ *
207
+ * Computes the cross product of this and the passed in vector, returning itself.
208
+ */
209
+ cross(vec: Vector3): this;
210
+ /**
211
+ * magnitude
212
+ *
213
+ * The magnitude of the vector
214
+ */
215
+ magnitude(): number;
216
+ /**
217
+ * normalize
218
+ *
219
+ * Normalizes this vector, returning itself.
220
+ */
221
+ normalize(): this;
222
+ /**
223
+ * floor
224
+ *
225
+ * Floor the components of a vector to produce a new vector
226
+ */
227
+ floor(): this;
228
+ /**
229
+ * toString
230
+ *
231
+ * Create a string representation of a vector
232
+ */
233
+ toString(options?: {
234
+ decimals?: number;
235
+ delimiter?: string;
236
+ }): string;
237
+ /**
238
+ * clamp
239
+ *
240
+ * Clamps the components of a vector to limits to produce a new vector
241
+ */
242
+ clamp(limits: {
243
+ min?: Partial<Vector3>;
244
+ max?: Partial<Vector3>;
245
+ }): this;
246
+ }
247
+
248
+ /**
249
+ * Utilities operating on Vector3 objects. All methods are static and do not modify the input objects.
250
+ *
251
+ * @public
252
+ */
253
+ export declare class Vector3Utils {
254
+ /**
255
+ * equals
256
+ *
257
+ * Check the equality of two vectors
258
+ */
259
+ static equals(v1: Vector3, v2: Vector3): boolean;
260
+ /**
261
+ * add
262
+ *
263
+ * Add two vectors to produce a new vector
264
+ */
265
+ static add(v1: Vector3, v2: Vector3): Vector3;
266
+ /**
267
+ * subtract
268
+ *
269
+ * Subtract two vectors to produce a new vector (v1-v2)
270
+ */
271
+ static subtract(v1: Vector3, v2: Vector3): Vector3;
272
+ /** scale
273
+ *
274
+ * Multiple all entries in a vector by a single scalar value producing a new vector
275
+ */
276
+ static scale(v1: Vector3, scale: number): Vector3;
277
+ /**
278
+ * dot
279
+ *
280
+ * Calculate the dot product of two vectors
281
+ */
282
+ static dot(a: Vector3, b: Vector3): number;
283
+ /**
284
+ * cross
285
+ *
286
+ * Calculate the cross product of two vectors. Returns a new vector.
287
+ */
288
+ static cross(a: Vector3, b: Vector3): Vector3;
289
+ /**
290
+ * magnitude
291
+ *
292
+ * The magnitude of a vector
293
+ */
294
+ static magnitude(v: Vector3): number;
295
+ /**
296
+ * normalize
297
+ *
298
+ * Takes a vector 3 and normalizes it to a unit vector
299
+ */
300
+ static normalize(v: Vector3): Vector3;
301
+ /**
302
+ * floor
303
+ *
304
+ * Floor the components of a vector to produce a new vector
305
+ */
306
+ static floor(v: Vector3): Vector3;
307
+ /**
308
+ * toString
309
+ *
310
+ * Create a string representation of a vector3
311
+ */
312
+ static toString(v: Vector3, options?: {
313
+ decimals?: number;
314
+ delimiter?: string;
315
+ }): string;
316
+ /**
317
+ * clamp
318
+ *
319
+ * Clamps the components of a vector to limits to produce a new vector
320
+ */
321
+ static clamp(v: Vector3, limits?: {
322
+ min?: Partial<Vector3>;
323
+ max?: Partial<Vector3>;
324
+ }): Vector3;
325
+ }
326
+
327
+ export { }
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+ // Copyright (c) Mojang AB. All rights reserved.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.VECTOR3_SOUTH = exports.VECTOR3_NORTH = exports.VECTOR3_EAST = exports.VECTOR3_WEST = exports.VECTOR3_ZERO = exports.VECTOR3_ONE = exports.VECTOR3_BACK = exports.VECTOR3_FORWARD = exports.VECTOR3_RIGHT = exports.VECTOR3_LEFT = exports.VECTOR3_DOWN = exports.VECTOR3_UP = exports.Vector2Utils = exports.Vector3Utils = void 0;
5
+ const clamp_1 = require("../general/clamp");
6
+ /**
7
+ * Utilities operating on Vector3 objects. All methods are static and do not modify the input objects.
8
+ *
9
+ * @public
10
+ */
11
+ class Vector3Utils {
12
+ /**
13
+ * equals
14
+ *
15
+ * Check the equality of two vectors
16
+ */
17
+ static equals(v1, v2) {
18
+ return v1.x === v2.x && v1.y === v2.y && v1.z === v2.z;
19
+ }
20
+ /**
21
+ * add
22
+ *
23
+ * Add two vectors to produce a new vector
24
+ */
25
+ static add(v1, v2) {
26
+ return { x: v1.x + v2.x, y: v1.y + v2.y, z: v1.z + v2.z };
27
+ }
28
+ /**
29
+ * subtract
30
+ *
31
+ * Subtract two vectors to produce a new vector (v1-v2)
32
+ */
33
+ static subtract(v1, v2) {
34
+ return { x: v1.x - v2.x, y: v1.y - v2.y, z: v1.z - v2.z };
35
+ }
36
+ /** scale
37
+ *
38
+ * Multiple all entries in a vector by a single scalar value producing a new vector
39
+ */
40
+ static scale(v1, scale) {
41
+ return { x: v1.x * scale, y: v1.y * scale, z: v1.z * scale };
42
+ }
43
+ /**
44
+ * dot
45
+ *
46
+ * Calculate the dot product of two vectors
47
+ */
48
+ static dot(a, b) {
49
+ return a.x * b.x + a.y * b.y + a.z * b.z;
50
+ }
51
+ /**
52
+ * cross
53
+ *
54
+ * Calculate the cross product of two vectors. Returns a new vector.
55
+ */
56
+ static cross(a, b) {
57
+ return {
58
+ x: a.y * b.z - a.z * b.y,
59
+ y: a.z * b.x - a.x * b.z,
60
+ z: a.x * b.y - a.y * b.x,
61
+ };
62
+ }
63
+ /**
64
+ * magnitude
65
+ *
66
+ * The magnitude of a vector
67
+ */
68
+ static magnitude(v) {
69
+ return Math.sqrt(v.x ** 2 + v.y ** 2 + v.z ** 2);
70
+ }
71
+ /**
72
+ * normalize
73
+ *
74
+ * Takes a vector 3 and normalizes it to a unit vector
75
+ */
76
+ static normalize(v) {
77
+ const mag = Vector3Utils.magnitude(v);
78
+ return { x: v.x / mag, y: v.y / mag, z: v.z / mag };
79
+ }
80
+ /**
81
+ * floor
82
+ *
83
+ * Floor the components of a vector to produce a new vector
84
+ */
85
+ static floor(v) {
86
+ return { x: Math.floor(v.x), y: Math.floor(v.y), z: Math.floor(v.z) };
87
+ }
88
+ /**
89
+ * toString
90
+ *
91
+ * Create a string representation of a vector3
92
+ */
93
+ static toString(v, options) {
94
+ const decimals = options?.decimals ?? 2;
95
+ const str = [v.x.toFixed(decimals), v.y.toFixed(decimals), v.z.toFixed(decimals)];
96
+ return str.join(options?.delimiter ?? ', ');
97
+ }
98
+ /**
99
+ * clamp
100
+ *
101
+ * Clamps the components of a vector to limits to produce a new vector
102
+ */
103
+ static clamp(v, limits) {
104
+ return {
105
+ x: (0, clamp_1.clampNumber)(v.x, limits?.min?.x ?? Number.MIN_SAFE_INTEGER, limits?.max?.x ?? Number.MAX_SAFE_INTEGER),
106
+ y: (0, clamp_1.clampNumber)(v.y, limits?.min?.y ?? Number.MIN_SAFE_INTEGER, limits?.max?.y ?? Number.MAX_SAFE_INTEGER),
107
+ z: (0, clamp_1.clampNumber)(v.z, limits?.min?.z ?? Number.MIN_SAFE_INTEGER, limits?.max?.z ?? Number.MAX_SAFE_INTEGER),
108
+ };
109
+ }
110
+ }
111
+ exports.Vector3Utils = Vector3Utils;
112
+ /**
113
+ * Utilities operating on Vector2 objects. All methods are static and do not modify the input objects.
114
+ *
115
+ * @public
116
+ */
117
+ class Vector2Utils {
118
+ /**
119
+ * toString
120
+ *
121
+ * Create a string representation of a vector2
122
+ */
123
+ static toString(v, options) {
124
+ const decimals = options?.decimals ?? 2;
125
+ const str = [v.x.toFixed(decimals), v.y.toFixed(decimals)];
126
+ return str.join(options?.delimiter ?? ', ');
127
+ }
128
+ }
129
+ exports.Vector2Utils = Vector2Utils;
130
+ /**
131
+ * up
132
+ *
133
+ * A unit vector representing the world UP direction (0,1,0)
134
+ *
135
+ * @public
136
+ */
137
+ exports.VECTOR3_UP = { x: 0, y: 1, z: 0 };
138
+ /**
139
+ * down
140
+ *
141
+ * A unit vector representing the world DOWN direction (0,-1,0)
142
+ *
143
+ * @public
144
+ */
145
+ exports.VECTOR3_DOWN = { x: 0, y: -1, z: 0 };
146
+ /**
147
+ * left
148
+ *
149
+ * A unit vector representing the world LEFT direction (-1,0,0)
150
+ *
151
+ * @public
152
+ */
153
+ exports.VECTOR3_LEFT = { x: -1, y: 0, z: 0 };
154
+ /**
155
+ * right
156
+ *
157
+ * A unit vector representing the world RIGHT direction (1,0,0)
158
+ *
159
+ * @public
160
+ */
161
+ exports.VECTOR3_RIGHT = { x: 1, y: 0, z: 0 };
162
+ /**
163
+ * forward
164
+ *
165
+ * A unit vector representing the world FORWARD direction (0,0,1)
166
+ *
167
+ * @public
168
+ */
169
+ exports.VECTOR3_FORWARD = { x: 0, y: 0, z: 1 };
170
+ /**
171
+ * back
172
+ *
173
+ * A unit vector representing the world BACK direction (0,0,-1)
174
+ *
175
+ * @public
176
+ */
177
+ exports.VECTOR3_BACK = { x: 0, y: 0, z: -1 };
178
+ /**
179
+ * one
180
+ *
181
+ * A unit vector representing the value of 1 in all directions (1,1,1)
182
+ *
183
+ * @public
184
+ */
185
+ exports.VECTOR3_ONE = { x: 1, y: 1, z: 1 };
186
+ /**
187
+ * zero
188
+ *
189
+ * A unit vector representing the value of 0 in all directions (0,0,0)
190
+ *
191
+ * @public
192
+ */
193
+ exports.VECTOR3_ZERO = { x: 0, y: 0, z: 0 };
194
+ /**
195
+ * west
196
+ *
197
+ * A unit vector representing the world WEST direction (-1,0,0)
198
+ * (same as LEFT)
199
+ *
200
+ * @public
201
+ */
202
+ exports.VECTOR3_WEST = { x: -1, y: 0, z: 0 };
203
+ /**
204
+ * east
205
+ *
206
+ * A unit vector representing the world EAST direction (-1,0,0)
207
+ * (same as RIGHT)
208
+ *
209
+ * @public
210
+ */
211
+ exports.VECTOR3_EAST = { x: 1, y: 0, z: 0 };
212
+ /**
213
+ * north
214
+ *
215
+ * A unit vector representing the world NORTH direction (-1,0,0)
216
+ * (same as FORWARD)
217
+ *
218
+ * @public
219
+ */
220
+ exports.VECTOR3_NORTH = { x: 0, y: 0, z: 1 };
221
+ /**
222
+ * south
223
+ *
224
+ * A unit vector representing the world SOUTH direction (-1,0,0)
225
+ * (same as BACK)
226
+ *
227
+ * @public
228
+ */
229
+ exports.VECTOR3_SOUTH = { x: 0, y: 0, z: -1 };
230
+ //# sourceMappingURL=coreHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coreHelpers.js","sourceRoot":"","sources":["../../src/vector3/coreHelpers.ts"],"names":[],"mappings":"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"}