hytopia 0.2.2 → 0.2.4

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.
Files changed (212) hide show
  1. package/bun.lock +494 -0
  2. package/docs/server.matrix2._constructor_.md +89 -0
  3. package/docs/server.matrix2.add.md +55 -0
  4. package/docs/server.matrix2.adjoint.md +19 -0
  5. package/docs/server.matrix2.clone.md +19 -0
  6. package/docs/server.matrix2.copy.md +55 -0
  7. package/docs/server.matrix2.create.md +19 -0
  8. package/docs/server.matrix2.determinant.md +13 -0
  9. package/docs/server.matrix2.equals.md +55 -0
  10. package/docs/server.matrix2.exactequals.md +55 -0
  11. package/docs/server.matrix2.frobeniusnorm.md +13 -0
  12. package/docs/server.matrix2.fromrotation.md +55 -0
  13. package/docs/server.matrix2.fromscaling.md +55 -0
  14. package/docs/server.matrix2.identity.md +19 -0
  15. package/docs/server.matrix2.invert.md +19 -0
  16. package/docs/server.matrix2.md +383 -0
  17. package/docs/server.matrix2.multiply.md +55 -0
  18. package/docs/server.matrix2.multiplyscalar.md +55 -0
  19. package/docs/server.matrix2.rotate.md +55 -0
  20. package/docs/server.matrix2.subtract.md +55 -0
  21. package/docs/server.matrix2.tostring.md +19 -0
  22. package/docs/server.matrix2.transpose.md +19 -0
  23. package/docs/server.matrix3._constructor_.md +159 -0
  24. package/docs/server.matrix3.add.md +55 -0
  25. package/docs/server.matrix3.adjoint.md +19 -0
  26. package/docs/server.matrix3.clone.md +19 -0
  27. package/docs/server.matrix3.copy.md +55 -0
  28. package/docs/server.matrix3.create.md +19 -0
  29. package/docs/server.matrix3.determinant.md +13 -0
  30. package/docs/server.matrix3.equals.md +55 -0
  31. package/docs/server.matrix3.exactequals.md +55 -0
  32. package/docs/server.matrix3.frobeniusnorm.md +13 -0
  33. package/docs/server.matrix3.frommatrix4.md +55 -0
  34. package/docs/server.matrix3.fromquaternion.md +55 -0
  35. package/docs/server.matrix3.fromrotation.md +55 -0
  36. package/docs/server.matrix3.fromscaling.md +55 -0
  37. package/docs/server.matrix3.fromtranslation.md +55 -0
  38. package/docs/server.matrix3.identity.md +19 -0
  39. package/docs/server.matrix3.invert.md +19 -0
  40. package/docs/server.matrix3.md +459 -0
  41. package/docs/server.matrix3.multiply.md +55 -0
  42. package/docs/server.matrix3.multiplyscalar.md +55 -0
  43. package/docs/server.matrix3.projection.md +71 -0
  44. package/docs/server.matrix3.rotate.md +55 -0
  45. package/docs/server.matrix3.subtract.md +55 -0
  46. package/docs/server.matrix3.tostring.md +19 -0
  47. package/docs/server.matrix3.transformvector.md +55 -0
  48. package/docs/server.matrix3.transpose.md +19 -0
  49. package/docs/server.matrix4._constructor_.md +257 -0
  50. package/docs/server.matrix4.add.md +55 -0
  51. package/docs/server.matrix4.adjoint.md +19 -0
  52. package/docs/server.matrix4.clone.md +19 -0
  53. package/docs/server.matrix4.copy.md +55 -0
  54. package/docs/server.matrix4.create.md +19 -0
  55. package/docs/server.matrix4.determinant.md +13 -0
  56. package/docs/server.matrix4.equals.md +55 -0
  57. package/docs/server.matrix4.exactequals.md +55 -0
  58. package/docs/server.matrix4.frobeniusnorm.md +13 -0
  59. package/docs/server.matrix4.fromquaternion.md +55 -0
  60. package/docs/server.matrix4.fromrotation.md +71 -0
  61. package/docs/server.matrix4.fromrotationtranslation.md +71 -0
  62. package/docs/server.matrix4.fromrotationtranslationscale.md +87 -0
  63. package/docs/server.matrix4.fromrotationtranslationscaleorigin.md +103 -0
  64. package/docs/server.matrix4.fromscaling.md +55 -0
  65. package/docs/server.matrix4.fromtranslation.md +55 -0
  66. package/docs/server.matrix4.fromxrotation.md +55 -0
  67. package/docs/server.matrix4.fromyrotation.md +55 -0
  68. package/docs/server.matrix4.fromzrotation.md +55 -0
  69. package/docs/server.matrix4.frustrum.md +135 -0
  70. package/docs/server.matrix4.identity.md +19 -0
  71. package/docs/server.matrix4.invert.md +19 -0
  72. package/docs/server.matrix4.lookat.md +87 -0
  73. package/docs/server.matrix4.md +651 -0
  74. package/docs/server.matrix4.multiply.md +55 -0
  75. package/docs/server.matrix4.multiplyscalar.md +55 -0
  76. package/docs/server.matrix4.orthographic.md +135 -0
  77. package/docs/server.matrix4.perspective.md +103 -0
  78. package/docs/server.matrix4.rotate.md +71 -0
  79. package/docs/server.matrix4.rotatex.md +55 -0
  80. package/docs/server.matrix4.rotatey.md +55 -0
  81. package/docs/server.matrix4.rotatez.md +55 -0
  82. package/docs/server.matrix4.scale.md +55 -0
  83. package/docs/server.matrix4.subtract.md +55 -0
  84. package/docs/server.matrix4.targetto.md +87 -0
  85. package/docs/server.matrix4.tostring.md +19 -0
  86. package/docs/server.matrix4.translate.md +55 -0
  87. package/docs/server.matrix4.transpose.md +19 -0
  88. package/docs/server.md +66 -0
  89. package/docs/server.quaternion.md +14 -0
  90. package/docs/server.quaternion.transformvector.md +55 -0
  91. package/docs/server.vector2._constructor_.md +61 -0
  92. package/docs/server.vector2.add.md +55 -0
  93. package/docs/server.vector2.angle.md +55 -0
  94. package/docs/server.vector2.ceil.md +19 -0
  95. package/docs/server.vector2.clone.md +19 -0
  96. package/docs/server.vector2.copy.md +55 -0
  97. package/docs/server.vector2.create.md +19 -0
  98. package/docs/server.vector2.distance.md +55 -0
  99. package/docs/server.vector2.divide.md +55 -0
  100. package/docs/server.vector2.dot.md +55 -0
  101. package/docs/server.vector2.equals.md +55 -0
  102. package/docs/server.vector2.exactequals.md +55 -0
  103. package/docs/server.vector2.floor.md +19 -0
  104. package/docs/server.vector2.invert.md +19 -0
  105. package/docs/server.vector2.length.md +13 -0
  106. package/docs/server.vector2.lerp.md +71 -0
  107. package/docs/server.vector2.magnitude.md +13 -0
  108. package/docs/server.vector2.max.md +55 -0
  109. package/docs/server.vector2.md +643 -0
  110. package/docs/server.vector2.min.md +55 -0
  111. package/docs/server.vector2.multiply.md +55 -0
  112. package/docs/server.vector2.negate.md +19 -0
  113. package/docs/server.vector2.normalize.md +19 -0
  114. package/docs/server.vector2.randomize.md +55 -0
  115. package/docs/server.vector2.rotate.md +71 -0
  116. package/docs/server.vector2.round.md +19 -0
  117. package/docs/server.vector2.scale.md +55 -0
  118. package/docs/server.vector2.scaleandadd.md +71 -0
  119. package/docs/server.vector2.squaredlength.md +13 -0
  120. package/docs/server.vector2.squaredmagnitude.md +13 -0
  121. package/docs/server.vector2.subtract.md +55 -0
  122. package/docs/server.vector2.tostring.md +19 -0
  123. package/docs/server.vector2.transformmatrix2.md +55 -0
  124. package/docs/server.vector2.transformmatrix3.md +55 -0
  125. package/docs/server.vector2.transformmatrix4.md +55 -0
  126. package/docs/server.vector2.x.md +15 -0
  127. package/docs/server.vector2.y.md +15 -0
  128. package/docs/server.vector2.zero.md +19 -0
  129. package/docs/server.vector2boolean.md +72 -0
  130. package/docs/server.vector2boolean.x.md +11 -0
  131. package/docs/server.vector2boolean.y.md +11 -0
  132. package/docs/server.vector2like.md +72 -0
  133. package/docs/server.vector2like.x.md +11 -0
  134. package/docs/server.vector2like.y.md +11 -0
  135. package/docs/server.vector3.dot.md +55 -0
  136. package/docs/server.vector3.md +14 -0
  137. package/docs/server.vector3.transformmatrix3.md +1 -1
  138. package/docs/server.vector3.transformmatrix4.md +1 -1
  139. package/examples/child-entity/assets/models/.optimized/baseColor.png +0 -0
  140. package/examples/child-entity/assets/models/.optimized/sword/baseColor.png +0 -0
  141. package/examples/child-entity/assets/models/.optimized/sword/sword.bin +0 -0
  142. package/examples/child-entity/assets/models/.optimized/sword/sword.gltf +356 -0
  143. package/examples/child-entity/assets/models/.optimized/sword.bin +0 -0
  144. package/examples/child-entity/assets/models/.optimized/sword.gltf +136 -0
  145. package/examples/child-entity/bun.lock +17 -0
  146. package/examples/zombies-fps/assets/models/environment/.optimized/barbedfence/barbedfence.bin +0 -0
  147. package/examples/zombies-fps/assets/models/environment/.optimized/barbedfence/barbedfence.gltf +806 -0
  148. package/examples/zombies-fps/assets/models/environment/.optimized/barbedfence/barbedfence.gltf.md5 +1 -0
  149. package/examples/zombies-fps/assets/models/environment/.optimized/barbedfence/baseColor.png +0 -0
  150. package/examples/zombies-fps/assets/models/environment/.optimized/binoculars/baseColor.png +0 -0
  151. package/examples/zombies-fps/assets/models/environment/.optimized/binoculars/binoculars.bin +0 -0
  152. package/examples/zombies-fps/assets/models/environment/.optimized/binoculars/binoculars.gltf +1633 -0
  153. package/examples/zombies-fps/assets/models/environment/.optimized/binoculars/binoculars.gltf.md5 +1 -0
  154. package/examples/zombies-fps/assets/models/environment/.optimized/bombbox/baseColor.png +0 -0
  155. package/examples/zombies-fps/assets/models/environment/.optimized/bombbox/bombbox.bin +0 -0
  156. package/examples/zombies-fps/assets/models/environment/.optimized/bombbox/bombbox.gltf +2480 -0
  157. package/examples/zombies-fps/assets/models/environment/.optimized/bombbox/bombbox.gltf.md5 +1 -0
  158. package/examples/zombies-fps/assets/models/environment/.optimized/bullet-hole/baseColor.png +0 -0
  159. package/examples/zombies-fps/assets/models/environment/.optimized/bullet-hole/bullet-hole.bin +0 -0
  160. package/examples/zombies-fps/assets/models/environment/.optimized/bullet-hole/bullet-hole.gltf +136 -0
  161. package/examples/zombies-fps/assets/models/environment/.optimized/bullet-hole/bullet-hole.gltf.md5 +1 -0
  162. package/examples/zombies-fps/assets/models/environment/.optimized/healthkit/baseColor.png +0 -0
  163. package/examples/zombies-fps/assets/models/environment/.optimized/healthkit/healthkit.bin +0 -0
  164. package/examples/zombies-fps/assets/models/environment/.optimized/healthkit/healthkit.gltf +831 -0
  165. package/examples/zombies-fps/assets/models/environment/.optimized/healthkit/healthkit.gltf.md5 +1 -0
  166. package/examples/zombies-fps/assets/models/environment/.optimized/metalshelf/baseColor_1.png +0 -0
  167. package/examples/zombies-fps/assets/models/environment/.optimized/metalshelf/baseColor_2.png +0 -0
  168. package/examples/zombies-fps/assets/models/environment/.optimized/metalshelf/metalshelf.bin +0 -0
  169. package/examples/zombies-fps/assets/models/environment/.optimized/metalshelf/metalshelf.gltf +4025 -0
  170. package/examples/zombies-fps/assets/models/environment/.optimized/metalshelf/metalshelf.gltf.md5 +1 -0
  171. package/examples/zombies-fps/assets/models/environment/.optimized/muzzle-flash/baseColor_1.png +0 -0
  172. package/examples/zombies-fps/assets/models/environment/.optimized/muzzle-flash/baseColor_2.png +0 -0
  173. package/examples/zombies-fps/assets/models/environment/.optimized/muzzle-flash/muzzle-flash.bin +0 -0
  174. package/examples/zombies-fps/assets/models/environment/.optimized/muzzle-flash/muzzle-flash.gltf +196 -0
  175. package/examples/zombies-fps/assets/models/environment/.optimized/muzzle-flash/muzzle-flash.gltf.md5 +1 -0
  176. package/examples/zombies-fps/assets/models/environment/.optimized/weaponbox/baseColor_1.png +0 -0
  177. package/examples/zombies-fps/assets/models/environment/.optimized/weaponbox/baseColor_2.png +0 -0
  178. package/examples/zombies-fps/assets/models/environment/.optimized/weaponbox/weaponbox.bin +0 -0
  179. package/examples/zombies-fps/assets/models/environment/.optimized/weaponbox/weaponbox.gltf +3412 -0
  180. package/examples/zombies-fps/assets/models/environment/.optimized/weaponbox/weaponbox.gltf.md5 +1 -0
  181. package/examples/zombies-fps/assets/models/items/.optimized/ak-47/ak-47.glb +0 -0
  182. package/examples/zombies-fps/assets/models/items/.optimized/ak-47/ak-47.glb.md5 +1 -0
  183. package/examples/zombies-fps/assets/models/items/.optimized/ar-15/ar-15.glb +0 -0
  184. package/examples/zombies-fps/assets/models/items/.optimized/ar-15/ar-15.glb.md5 +1 -0
  185. package/examples/zombies-fps/assets/models/items/.optimized/auto-pistol/auto-pistol.glb +0 -0
  186. package/examples/zombies-fps/assets/models/items/.optimized/auto-pistol/auto-pistol.glb.md5 +1 -0
  187. package/examples/zombies-fps/assets/models/items/.optimized/auto-shotgun/auto-shotgun.glb +0 -0
  188. package/examples/zombies-fps/assets/models/items/.optimized/auto-shotgun/auto-shotgun.glb.md5 +1 -0
  189. package/examples/zombies-fps/assets/models/items/.optimized/pistol/pistol.glb +0 -0
  190. package/examples/zombies-fps/assets/models/items/.optimized/pistol/pistol.glb.md5 +1 -0
  191. package/examples/zombies-fps/assets/models/items/.optimized/shotgun/shotgun.glb +0 -0
  192. package/examples/zombies-fps/assets/models/items/.optimized/shotgun/shotgun.glb.md5 +1 -0
  193. package/examples/zombies-fps/assets/models/npcs/.optimized/ripper-boss/baseColor.png +0 -0
  194. package/examples/zombies-fps/assets/models/npcs/.optimized/ripper-boss/ripper-boss.bin +0 -0
  195. package/examples/zombies-fps/assets/models/npcs/.optimized/ripper-boss/ripper-boss.gltf +10037 -0
  196. package/examples/zombies-fps/assets/models/npcs/.optimized/ripper-boss/ripper-boss.gltf.md5 +1 -0
  197. package/examples/zombies-fps/assets/models/players/.optimized/soldier-player/baseColor_1.png +0 -0
  198. package/examples/zombies-fps/assets/models/players/.optimized/soldier-player/baseColor_2.png +0 -0
  199. package/examples/zombies-fps/assets/models/players/.optimized/soldier-player/baseColor_3.png +0 -0
  200. package/examples/zombies-fps/assets/models/players/.optimized/soldier-player/baseColor_4.png +0 -0
  201. package/examples/zombies-fps/assets/models/players/.optimized/soldier-player/soldier-player.bin +0 -0
  202. package/examples/zombies-fps/assets/models/players/.optimized/soldier-player/soldier-player.gltf +7679 -0
  203. package/examples/zombies-fps/assets/models/players/.optimized/soldier-player/soldier-player.gltf.md5 +1 -0
  204. package/examples/zombies-fps/assets/models/projectiles/.optimized/bullet-trace/baseColor.png +0 -0
  205. package/examples/zombies-fps/assets/models/projectiles/.optimized/bullet-trace/bullet-trace.bin +0 -0
  206. package/examples/zombies-fps/assets/models/projectiles/.optimized/bullet-trace/bullet-trace.gltf +136 -0
  207. package/examples/zombies-fps/assets/models/projectiles/.optimized/bullet-trace/bullet-trace.gltf.md5 +1 -0
  208. package/examples/zombies-fps/classes/GameManager.ts +8 -1
  209. package/package.json +4 -1
  210. package/server.api.json +13820 -7433
  211. package/server.d.ts +416 -16
  212. package/server.js +89 -89
package/server.d.ts CHANGED
@@ -2119,6 +2119,137 @@ export declare enum LightType {
2119
2119
  SPOTLIGHT = 1
2120
2120
  }
2121
2121
 
2122
+ /**
2123
+ * Represents a 2x2 matrix.
2124
+ *
2125
+ * @remarks
2126
+ * All matrix methods result in mutation of the matrix instance.
2127
+ * This class extends `Float32Array` to provide an efficient way to
2128
+ * create and manipulate a 2x2 matrix. Various convenience methods are
2129
+ * provided for common matrix operations.
2130
+ *
2131
+ * @public
2132
+ */
2133
+ export declare class Matrix2 extends Float32Array {
2134
+ constructor(m00: number, m01: number, m10: number, m11: number);
2135
+ /** The determinant of the matrix. */
2136
+ get determinant(): number;
2137
+ /** The frobenius normal of the matrix. */
2138
+ get frobeniusNorm(): number;
2139
+ /**
2140
+ * Creates a new `Matrix2` instance.
2141
+ *
2142
+ * @returns A new `Matrix2` instance.
2143
+ */
2144
+ static create(): Matrix2;
2145
+ /**
2146
+ * Creates a new `Matrix2` instance from a rotation of identity matrix.
2147
+ *
2148
+ * @param angle - The angle in radians to rotate the matrix by.
2149
+ * @returns A new `Matrix2` instance.
2150
+ */
2151
+ static fromRotation(angle: number): Matrix2;
2152
+ /**
2153
+ * Creates a new `Matrix2` instance from a scale of identity matrix.
2154
+ *
2155
+ * @param scale - The scale of the matrix.
2156
+ * @returns A new `Matrix2` instance.
2157
+ */
2158
+ static fromScaling(scale: Vector2): Matrix2;
2159
+ /**
2160
+ * Adds a matrix to the current matrix.
2161
+ *
2162
+ * @param matrix2 - The matrix to add to the current matrix.
2163
+ * @returns The current matrix.
2164
+ */
2165
+ add(matrix2: Matrix2): Matrix2;
2166
+ /**
2167
+ * Sets the adjugate of the current matrix.
2168
+ *
2169
+ * @returns The current matrix.
2170
+ */
2171
+ adjoint(): Matrix2;
2172
+ /**
2173
+ * Clones the current matrix.
2174
+ *
2175
+ * @returns A clone of the current matrix.
2176
+ */
2177
+ clone(): Matrix2;
2178
+ /**
2179
+ * Copies a matrix to the current matrix.
2180
+ *
2181
+ * @param matrix2 - The matrix2 to copy to the current matrix.
2182
+ * @returns The current matrix.
2183
+ */
2184
+ copy(matrix2: Matrix2): Matrix2;
2185
+ /**
2186
+ * Checks if the current matrix is approximately equal to another matrix.
2187
+ *
2188
+ * @param matrix2 - The matrix to compare to the current matrix.
2189
+ * @returns `true` if the current matrix is equal to the provided matrix, `false` otherwise.
2190
+ */
2191
+ equals(matrix2: Matrix2): boolean;
2192
+ /**
2193
+ * Checks if the current matrix is exactly equal to another matrix.
2194
+ *
2195
+ * @param matrix2 - The matrix to compare to the current matrix.
2196
+ * @returns `true` if the current matrix is equal to the provided matrix, `false` otherwise.
2197
+ */
2198
+ exactEquals(matrix2: Matrix2): boolean;
2199
+ /**
2200
+ * Sets the current matrix to the identity matrix.
2201
+ *
2202
+ * @returns The current matrix.
2203
+ */
2204
+ identity(): Matrix2;
2205
+ /**
2206
+ * Inverts the current matrix.
2207
+ *
2208
+ * @returns The current matrix.
2209
+ */
2210
+ invert(): Matrix2;
2211
+ /**
2212
+ * Multiplies the current matrix by another matrix.
2213
+ *
2214
+ * @param matrix2 - The matrix to multiply the current matrix by.
2215
+ * @returns The current matrix.
2216
+ */
2217
+ multiply(matrix2: Matrix2): Matrix2;
2218
+ /**
2219
+ * Multiplies each element of the current matrix by a scalar value.
2220
+ *
2221
+ * @param scalar - The scalar value to multiply the current matrix elements by.
2222
+ * @returns The current matrix.
2223
+ */
2224
+ multiplyScalar(scalar: number): Matrix2;
2225
+ /**
2226
+ * Rotates the current matrix by an angle in radians.
2227
+ *
2228
+ * @param angle - The angle in radians to rotate the current matrix by.
2229
+ * @returns The current matrix.
2230
+ */
2231
+ rotate(angle: number): Matrix2;
2232
+ /**
2233
+ * Subtracts a matrix from the current matrix.
2234
+ *
2235
+ * @param matrix2 - The matrix to subtract from the current matrix.
2236
+ * @returns The current matrix.
2237
+ */
2238
+ subtract(matrix2: Matrix2): Matrix2;
2239
+ /**
2240
+ * Returns a string representation of the current matrix.
2241
+ *
2242
+ * @returns A string representation of the current matrix.
2243
+ */
2244
+ toString(): string;
2245
+ /**
2246
+ * Transposes the current matrix.
2247
+ *
2248
+ * @returns The current matrix.
2249
+ */
2250
+ transpose(): Matrix2;
2251
+ }
2252
+
2122
2253
  /**
2123
2254
  * Represents a 3x3 matrix.
2124
2255
  *
@@ -2130,12 +2261,12 @@ export declare enum LightType {
2130
2261
  *
2131
2262
  * @public
2132
2263
  */
2133
- declare class Matrix3 extends Float32Array {
2264
+ export declare class Matrix3 extends Float32Array {
2134
2265
  constructor(m00: number, m01: number, m02: number, m10: number, m11: number, m12: number, m20: number, m21: number, m22: number);
2135
2266
  /** The determinant of the matrix. */
2136
2267
  get determinant(): number;
2137
- /** The frobenius normal of the matrix. */
2138
- get frobeniusNormal(): number;
2268
+ /** The frobenius norm of the matrix. */
2269
+ get frobeniusNorm(): number;
2139
2270
  /**
2140
2271
  * Creates a new `Matrix3` instance.
2141
2272
  *
@@ -2172,11 +2303,13 @@ declare class Matrix3 extends Float32Array {
2172
2303
  static fromScaling(scale: Vector3): Matrix3;
2173
2304
  /**
2174
2305
  * Creates a new `Matrix3` instance from a translation of identity matrix.
2306
+ * This is used only when working with two-dimensional homogeneous coordinates,
2307
+ * which is why the `translation` parameter is a `Vector2`.
2175
2308
  *
2176
2309
  * @param translation - The translation of the matrix.
2177
2310
  * @returns A new `Matrix3` instance.
2178
2311
  */
2179
- static fromTranslation(translation: Vector3): Matrix3;
2312
+ static fromTranslation(translation: Vector2): Matrix3;
2180
2313
  /**
2181
2314
  * Adds a matrix to the current matrix.
2182
2315
  *
@@ -2244,7 +2377,15 @@ declare class Matrix3 extends Float32Array {
2244
2377
  */
2245
2378
  multiplyScalar(scalar: number): Matrix3;
2246
2379
  /**
2247
- * Sets the current matrix to a projection matrix with the given bounds.
2380
+ * Multiplies the provided vector3 by this matrix. This modifies
2381
+ * the vector in-place, but also returns the transformed vector.
2382
+ *
2383
+ * @param vector - The vector to multiply by this.
2384
+ * @returns The transformed vector.
2385
+ */
2386
+ transformVector(vector: Vector3): Vector3;
2387
+ /**
2388
+ * Sets the current matrix to a orthographic projection matrix with the given bounds.
2248
2389
  *
2249
2390
  * @param width - The width of the projection.
2250
2391
  * @param height - The height of the projection.
@@ -2290,12 +2431,12 @@ declare class Matrix3 extends Float32Array {
2290
2431
  *
2291
2432
  * @public
2292
2433
  */
2293
- declare class Matrix4 extends Float32Array {
2434
+ export declare class Matrix4 extends Float32Array {
2294
2435
  constructor(m00: number, m01: number, m02: number, m03: number, m10: number, m11: number, m12: number, m13: number, m20: number, m21: number, m22: number, m23: number, m30: number, m31: number, m32: number, m33: number);
2295
2436
  /** The determinant of the matrix. */
2296
2437
  get determinant(): number;
2297
- /** The frobenius normal of the matrix. */
2298
- get frobeniusNormal(): number;
2438
+ /** The frobenius norm of the matrix. */
2439
+ get frobeniusNorm(): number;
2299
2440
  /**
2300
2441
  * Creates a new `Matrix4` instance.
2301
2442
  *
@@ -2467,17 +2608,17 @@ declare class Matrix4 extends Float32Array {
2467
2608
  */
2468
2609
  multiplyScalar(scalar: number): Matrix4;
2469
2610
  /**
2470
- * Sets the current matrix to an orthogonal matrix with the given bounds.
2611
+ * Sets the current matrix to an orthographic projection matrix with the given bounds.
2471
2612
  *
2472
- * @param left - The left bound of the projection.
2473
- * @param right - The right bound of the projection.
2474
- * @param bottom - The bottom bound of the projection.
2475
- * @param top - The top bound of the projection.
2476
- * @param near - The near bound of the projection.
2477
- * @param far - The far bound of the projection.
2613
+ * @param left - The left bound of the frustum.
2614
+ * @param right - The right bound of the frustum.
2615
+ * @param bottom - The bottom bound of the frustum.
2616
+ * @param top - The top bound of the frustum.
2617
+ * @param near - The near bound of the frustum.
2618
+ * @param far - The far bound of the frustum.
2478
2619
  * @returns The current matrix.
2479
2620
  */
2480
- orthogonal(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix4;
2621
+ orthographic(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix4;
2481
2622
  /**
2482
2623
  * Sets the current matrix to a perspective matrix with the given field of view, aspect ratio, and near and far bounds.
2483
2624
  *
@@ -3515,6 +3656,14 @@ export declare class Quaternion extends Float32Array implements QuaternionLike {
3515
3656
  * @returns The current quaternion.
3516
3657
  */
3517
3658
  multiply(quaternion: Quaternion): Quaternion;
3659
+ /**
3660
+ * Rotates the provided vector by the rotation this quaternion represents.
3661
+ * This modifies the vector in-place, but also returns the rotated vector.
3662
+ *
3663
+ * @param vector - the vector to rotate
3664
+ * @returns the rotated vector.
3665
+ */
3666
+ transformVector(vector: Vector3): Vector3;
3518
3667
  /**
3519
3668
  * Normalizes the quaternion.
3520
3669
  *
@@ -4365,6 +4514,250 @@ export declare function startServer(init: (world: World) => void): void;
4365
4514
  /** The input keys that are included in the PlayerInput. @public */
4366
4515
  export declare const SUPPORTED_INPUT_KEYS: readonly ["w", "a", "s", "d", "sp", "sh", "tb", "ml", "mr", "q", "e", "r", "f", "z", "x", "c", "v", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"];
4367
4516
 
4517
+ /**
4518
+ * Represents a 2D vector.
4519
+ *
4520
+ * @remarks
4521
+ * All vector methods result in mutation of the vector instance.
4522
+ * This class extends `Float32Array` to provide an efficient way to
4523
+ * create and manipulate a 2-dimensional vector. Various convenience
4524
+ * methods are provided for common vector operations.
4525
+ *
4526
+ * @public
4527
+ */
4528
+ export declare class Vector2 extends Float32Array implements Vector2Like {
4529
+ constructor(x: number, y: number);
4530
+ /** The length of the vector. */
4531
+ get length(): number;
4532
+ /** The squared length of the vector. */
4533
+ get squaredLength(): number;
4534
+ /** The magnitude of the vector. Alias for `length`. */
4535
+ get magnitude(): number;
4536
+ /** The squared magnitude of the vector. Alias for `squaredLength`. */
4537
+ get squaredMagnitude(): number;
4538
+ /** The x-component of the vector. */
4539
+ get x(): number;
4540
+ set x(value: number);
4541
+ /** The y-component of the vector. */
4542
+ get y(): number;
4543
+ set y(value: number);
4544
+ /**
4545
+ * Creates a new `Vector2` instance.
4546
+ *
4547
+ * @returns A new `Vector2` instance.
4548
+ */
4549
+ static create(): Vector2;
4550
+ /**
4551
+ * Adds a vector to the current vector.
4552
+ *
4553
+ * @param vector2 - The vector to add to the current vector.
4554
+ * @returns The current vector.
4555
+ */
4556
+ add(vector2: Vector2): Vector2;
4557
+ /**
4558
+ * Returns the angle between two vectors.
4559
+ *
4560
+ * @param vector2 - The vector to compare to the current vector.
4561
+ * @returns The angle between the two vectors.
4562
+ */
4563
+ angle(vector2: Vector2): number;
4564
+ /**
4565
+ * Rounds each component of the vector up to the nearest integer.
4566
+ *
4567
+ * @returns The current vector.
4568
+ */
4569
+ ceil(): Vector2;
4570
+ /**
4571
+ * Returns a new vector with the same components as the current vector.
4572
+ *
4573
+ * @returns A new `Vector2` instance.
4574
+ */
4575
+ clone(): Vector2;
4576
+ /**
4577
+ * Copies the components of a vector to the current vector.
4578
+ *
4579
+ * @param vector2 - The vector to copy the components from.
4580
+ * @returns The current vector.
4581
+ */
4582
+ copy(vector2: Vector2): Vector2;
4583
+ /**
4584
+ * Calculates the distance between the current vector and another vector.
4585
+ *
4586
+ * @param vector2 - The vector to calculate the distance to.
4587
+ * @returns The distance between the two vectors.
4588
+ */
4589
+ distance(vector2: Vector2): number;
4590
+ /**
4591
+ * Divides the current vector by another vector.
4592
+ *
4593
+ * @param vector2 - The vector to divide the current vector by.
4594
+ * @returns The current vector.
4595
+ */
4596
+ divide(vector2: Vector2): Vector2;
4597
+ /**
4598
+ * Calculates the dot product of the current vector and another vector.
4599
+ *
4600
+ * @param vector2 - The vector to calculate the dot product with.
4601
+ * @returns The dot product of the two vectors.
4602
+ */
4603
+ dot(vector2: Vector2): number;
4604
+ /**
4605
+ * Checks if the current vector is approximately equal to another vector.
4606
+ *
4607
+ * @param vector2 - The vector to compare to the current vector.
4608
+ * @returns `true` if the two vectors are equal, `false` otherwise.
4609
+ */
4610
+ equals(vector2: Vector2): boolean;
4611
+ /**
4612
+ * Checks if the current vector is exactly equal to another vector.
4613
+ *
4614
+ * @param vector2 - The vector to compare to the current vector.
4615
+ * @returns `true` if the two vectors are equal, `false` otherwise.
4616
+ */
4617
+ exactEquals(vector2: Vector2): boolean;
4618
+ /**
4619
+ * Rounds each component of the vector down to the nearest integer.
4620
+ *
4621
+ * @returns The current vector.
4622
+ */
4623
+ floor(): Vector2;
4624
+ /**
4625
+ * Inverts the components of the current vector.
4626
+ *
4627
+ * @returns The current vector.
4628
+ */
4629
+ invert(): Vector2;
4630
+ /**
4631
+ * Linearly interpolates between the current vector and another vector.
4632
+ *
4633
+ * @param vector2 - The vector to interpolate to.
4634
+ * @param t - The interpolation factor. A value between 0 and 1.
4635
+ * @returns The current vector.
4636
+ */
4637
+ lerp(vector2: Vector2, t: number): Vector2;
4638
+ /**
4639
+ * Sets each component of the vector to the maximum of the current vector and another vector.
4640
+ *
4641
+ * @param vector2 - The vector to compare to the current vector.
4642
+ * @returns The current vector.
4643
+ */
4644
+ max(vector2: Vector2): Vector2;
4645
+ /**
4646
+ * Sets each component of the vector to the minimum of the current vector and another vector.
4647
+ *
4648
+ * @param vector2 - The vector to compare to the current vector.
4649
+ * @returns The current vector.
4650
+ */
4651
+ min(vector2: Vector2): Vector2;
4652
+ /**
4653
+ * Multiplies each component of the current vector by the corresponding component of another vector.
4654
+ *
4655
+ * @param vector2 - The vector to multiply the current vector by.
4656
+ * @returns The current vector.
4657
+ */
4658
+ multiply(vector2: Vector2): Vector2;
4659
+ /**
4660
+ * Negates each component of the vector.
4661
+ *
4662
+ * @returns The current vector.
4663
+ */
4664
+ negate(): Vector2;
4665
+ /**
4666
+ * Normalizes the current vector.
4667
+ *
4668
+ * @returns The current vector.
4669
+ */
4670
+ normalize(): Vector2;
4671
+ /**
4672
+ * Randomizes the components of the current vector.
4673
+ *
4674
+ * @param scale - The scale of the resulting vector.
4675
+ * @returns The current vector.
4676
+ */
4677
+ randomize(scale?: number): Vector2;
4678
+ /**
4679
+ * Rotates the current vector around an origin.
4680
+ *
4681
+ * @param vector2 - The vector to rotate around.
4682
+ * @param angle - The angle to rotate the vector by.
4683
+ * @returns The current vector.
4684
+ */
4685
+ rotate(vector2: Vector2, angle: number): Vector2;
4686
+ /**
4687
+ * Rounds each component of the vector to the nearest integer.
4688
+ *
4689
+ * @returns The current vector.
4690
+ */
4691
+ round(): Vector2;
4692
+ /**
4693
+ * Scales the current vector by a scalar value.
4694
+ *
4695
+ * @param scale - The scalar value to scale the vector by.
4696
+ * @returns The current vector.
4697
+ */
4698
+ scale(scale: number): Vector2;
4699
+ /**
4700
+ * Scales the current vector by a scalar value and adds the result to another vector.
4701
+ *
4702
+ * @param vector2 - The vector to add the scaled vector to.
4703
+ * @param scale - The scalar value to scale the vector by.
4704
+ * @returns The current vector.
4705
+ */
4706
+ scaleAndAdd(vector2: Vector2, scale: number): Vector2;
4707
+ /**
4708
+ * Subtracts a vector from the current vector.
4709
+ *
4710
+ * @param vector2 - The vector to subtract from the current vector.
4711
+ * @returns The current vector.
4712
+ */
4713
+ subtract(vector2: Vector2): Vector2;
4714
+ /**
4715
+ * Returns a string representation of the vector in x,y format.
4716
+ *
4717
+ * @returns A string representation of the vector in the format x,y.
4718
+ */
4719
+ toString(): string;
4720
+ /**
4721
+ * Transforms the current vector by a matrix2.
4722
+ *
4723
+ * @param matrix2 - The matrix2 to transform the vector by.
4724
+ * @returns The current vector.
4725
+ */
4726
+ transformMatrix2(matrix2: Matrix2): Vector2;
4727
+ /**
4728
+ * Transforms the current vector by a matrix3.
4729
+ *
4730
+ * @param matrix3 - The matrix3 to transform the vector by.
4731
+ * @returns The current vector.
4732
+ */
4733
+ transformMatrix3(matrix3: Matrix3): Vector2;
4734
+ /**
4735
+ * Transforms the current vector by a matrix4.
4736
+ *
4737
+ * @param matrix4 - The matrix4 to transform the vector by.
4738
+ * @returns The current vector.
4739
+ */
4740
+ transformMatrix4(matrix4: Matrix4): Vector2;
4741
+ /**
4742
+ * Sets each component of the vector to zero.
4743
+ *
4744
+ * @returns The current vector.
4745
+ */
4746
+ zero(): Vector2;
4747
+ }
4748
+
4749
+ /** A 2-dimensional vector of boolean values. @public */
4750
+ export declare interface Vector2Boolean {
4751
+ x: boolean;
4752
+ y: boolean;
4753
+ }
4754
+
4755
+ /** A 2-dimensional vector. @public */
4756
+ export declare interface Vector2Like {
4757
+ x: number;
4758
+ y: number;
4759
+ }
4760
+
4368
4761
  /**
4369
4762
  * Represents a 3-dimensional vector.
4370
4763
  *
@@ -4455,6 +4848,13 @@ export declare class Vector3 extends Float32Array implements Vector3Like {
4455
4848
  * @returns The current vector.
4456
4849
  */
4457
4850
  divide(vector3: Vector3): Vector3;
4851
+ /**
4852
+ * Returns the dot product of this vector and another vector.
4853
+ *
4854
+ * @param vector3 - the other vector
4855
+ * @returns the dot product of this and vector3
4856
+ */
4857
+ dot(vector3: Vector3): number;
4458
4858
  /**
4459
4859
  * Checks if the current vector is approximately equal to another vector.
4460
4860
  *