minerender 2.1.0-alpha.0 → 2.1.0-alpha.3

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 (94) hide show
  1. package/README.md +0 -2
  2. package/dist/browser/index.d.mts +106 -84
  3. package/dist/browser/index.d.ts +106 -84
  4. package/dist/browser/index.js +1094 -968
  5. package/dist/browser/index.js.map +1 -1
  6. package/dist/browser/index.mjs +1107 -981
  7. package/dist/browser/index.mjs.map +1 -1
  8. package/dist/bundle.js +1045 -921
  9. package/dist/bundle.js.map +1 -1
  10. package/dist/node/index.d.mts +106 -84
  11. package/dist/node/index.d.ts +106 -84
  12. package/dist/node/index.js +1100 -970
  13. package/dist/node/index.js.map +1 -1
  14. package/dist/node/index.mjs +1112 -982
  15. package/dist/node/index.mjs.map +1 -1
  16. package/package.json +5 -5
  17. package/.worktrees/jobqu-review/LICENSE +0 -21
  18. package/.worktrees/jobqu-review/README.md +0 -176
  19. package/.worktrees/v2-asset-sources/LICENSE +0 -21
  20. package/.worktrees/v2-asset-sources/README.md +0 -30
  21. package/.worktrees/v2-asset-sources/examples/script-tag/README.md +0 -13
  22. package/.worktrees/v2-asset-sources/examples/vite/README.md +0 -13
  23. package/.worktrees/v2-asset-sources/packages/minerender/LICENSE +0 -21
  24. package/.worktrees/v2-asset-sources/packages/minerender/README.md +0 -24
  25. package/.worktrees/v2-brightness/LICENSE +0 -21
  26. package/.worktrees/v2-brightness/README.md +0 -30
  27. package/.worktrees/v2-brightness/examples/script-tag/README.md +0 -13
  28. package/.worktrees/v2-brightness/examples/vite/README.md +0 -13
  29. package/.worktrees/v2-brightness/packages/minerender/LICENSE +0 -21
  30. package/.worktrees/v2-brightness/packages/minerender/README.md +0 -24
  31. package/.worktrees/v2-cache-recovery/LICENSE +0 -21
  32. package/.worktrees/v2-cache-recovery/README.md +0 -30
  33. package/.worktrees/v2-cache-recovery/examples/script-tag/README.md +0 -13
  34. package/.worktrees/v2-cache-recovery/examples/vite/README.md +0 -13
  35. package/.worktrees/v2-cache-recovery/packages/minerender/LICENSE +0 -21
  36. package/.worktrees/v2-cache-recovery/packages/minerender/README.md +0 -24
  37. package/.worktrees/v2-ci-stack/LICENSE +0 -21
  38. package/.worktrees/v2-ci-stack/README.md +0 -109
  39. package/.worktrees/v2-ci-stack/examples/script-tag/README.md +0 -15
  40. package/.worktrees/v2-ci-stack/examples/vite/README.md +0 -15
  41. package/.worktrees/v2-ci-stack/packages/minerender/LICENSE +0 -21
  42. package/.worktrees/v2-ci-stack/packages/minerender/README.md +0 -11
  43. package/.worktrees/v2-ci-typescript/LICENSE +0 -21
  44. package/.worktrees/v2-ci-typescript/README.md +0 -11
  45. package/.worktrees/v2-controls/LICENSE +0 -21
  46. package/.worktrees/v2-controls/README.md +0 -30
  47. package/.worktrees/v2-controls/examples/script-tag/README.md +0 -13
  48. package/.worktrees/v2-controls/examples/vite/README.md +0 -13
  49. package/.worktrees/v2-controls/packages/minerender/LICENSE +0 -21
  50. package/.worktrees/v2-controls/packages/minerender/README.md +0 -24
  51. package/.worktrees/v2-dependencies/LICENSE +0 -21
  52. package/.worktrees/v2-dependencies/README.md +0 -30
  53. package/.worktrees/v2-dependencies/examples/script-tag/README.md +0 -13
  54. package/.worktrees/v2-dependencies/examples/vite/README.md +0 -13
  55. package/.worktrees/v2-dependencies/packages/minerender/LICENSE +0 -21
  56. package/.worktrees/v2-dependencies/packages/minerender/README.md +0 -24
  57. package/.worktrees/v2-frame-limit/LICENSE +0 -21
  58. package/.worktrees/v2-frame-limit/README.md +0 -30
  59. package/.worktrees/v2-frame-limit/examples/script-tag/README.md +0 -13
  60. package/.worktrees/v2-frame-limit/examples/vite/README.md +0 -13
  61. package/.worktrees/v2-frame-limit/packages/minerender/LICENSE +0 -21
  62. package/.worktrees/v2-frame-limit/packages/minerender/README.md +0 -24
  63. package/.worktrees/v2-images/LICENSE +0 -21
  64. package/.worktrees/v2-images/README.md +0 -30
  65. package/.worktrees/v2-images/examples/script-tag/README.md +0 -13
  66. package/.worktrees/v2-images/examples/vite/README.md +0 -13
  67. package/.worktrees/v2-images/packages/minerender/LICENSE +0 -21
  68. package/.worktrees/v2-images/packages/minerender/README.md +0 -24
  69. package/.worktrees/v2-lifecycle/LICENSE +0 -21
  70. package/.worktrees/v2-lifecycle/README.md +0 -30
  71. package/.worktrees/v2-lifecycle/examples/script-tag/README.md +0 -13
  72. package/.worktrees/v2-lifecycle/examples/vite/README.md +0 -13
  73. package/.worktrees/v2-lifecycle/packages/minerender/LICENSE +0 -21
  74. package/.worktrees/v2-lifecycle/packages/minerender/README.md +0 -24
  75. package/.worktrees/v2-main-conflicts/LICENSE +0 -21
  76. package/.worktrees/v2-main-conflicts/README.md +0 -11
  77. package/.worktrees/v2-monorepo/LICENSE +0 -21
  78. package/.worktrees/v2-monorepo/README.md +0 -30
  79. package/.worktrees/v2-monorepo/examples/script-tag/README.md +0 -13
  80. package/.worktrees/v2-monorepo/examples/vite/README.md +0 -13
  81. package/.worktrees/v2-monorepo/packages/minerender/LICENSE +0 -21
  82. package/.worktrees/v2-monorepo/packages/minerender/README.md +0 -24
  83. package/.worktrees/v2-requests/LICENSE +0 -21
  84. package/.worktrees/v2-requests/README.md +0 -30
  85. package/.worktrees/v2-requests/examples/script-tag/README.md +0 -13
  86. package/.worktrees/v2-requests/examples/vite/README.md +0 -13
  87. package/.worktrees/v2-requests/packages/minerender/LICENSE +0 -21
  88. package/.worktrees/v2-requests/packages/minerender/README.md +0 -26
  89. package/.worktrees/v2-source-errors/LICENSE +0 -21
  90. package/.worktrees/v2-source-errors/README.md +0 -30
  91. package/.worktrees/v2-source-errors/examples/script-tag/README.md +0 -13
  92. package/.worktrees/v2-source-errors/examples/vite/README.md +0 -13
  93. package/.worktrees/v2-source-errors/packages/minerender/LICENSE +0 -21
  94. package/.worktrees/v2-source-errors/packages/minerender/README.md +0 -26
package/README.md CHANGED
@@ -22,5 +22,3 @@ renderer.start();
22
22
  The package provides ESM and CommonJS entries for browsers and Node.js, plus
23
23
  `dist/bundle.js` for the `MineRender` browser global. Node imports require the optional
24
24
  native `canvas` dependency; headless rendering is still in development.
25
-
26
- For development, use Node.js 22+ and Yarn 4.5.3 through Corepack. Run `yarn install --immutable`, `yarn build`, `yarn typecheck`, and `yarn test`. See [AGENTS.md](./AGENTS.md) for contributor guidance.
@@ -1,5 +1,5 @@
1
1
  import * as three from 'three';
2
- import { Vector3, PixelFormat, BoxGeometry, Material, Mesh, Euler, Vector2, BufferAttribute, Float32BufferAttribute, Object3D, Box3, InstancedMesh, PerspectiveCamera, OrthographicCamera, Matrix4, Scene, Texture, Camera, WebGLRenderer, EventDispatcher, Raycaster, Intersection, CanvasTexture, BufferGeometry as BufferGeometry$1, InterleavedBufferAttribute, TrianglesDrawModes, Line, Points, MOUSE, TOUCH } from 'three';
2
+ import { Vector3, PixelFormat, BoxGeometry, Material, Mesh, Euler, Vector2, BufferAttribute, Float32BufferAttribute, Object3D, Box3, InstancedMesh, PerspectiveCamera, OrthographicCamera, Matrix4, Scene, Texture, Camera, MOUSE, TOUCH, WebGLRenderer, EventDispatcher, Raycaster, Intersection, CanvasTexture, BufferGeometry as BufferGeometry$1, InterleavedBufferAttribute, TrianglesDrawModes, Line, Points } from 'three';
3
3
  import * as nodeCanvas from 'canvas';
4
4
  import { ImageData as ImageData$1, CanvasRenderingContext2D } from 'canvas';
5
5
  import { AxiosResponse, AxiosRequestConfig } from 'axios';
@@ -649,7 +649,7 @@ interface MultipartCondition {
649
649
  [key: string]: string;
650
650
  }
651
651
 
652
- declare const DEFAULT_ROOT = "https://cdn.mcasset.cloud/file/minecraft-assets/1.17.1";
652
+ declare const DEFAULT_ROOT = "https://assets.mcasset.cloud/1.17.1";
653
653
  declare const DEFAULT_NAMESPACE = "minecraft";
654
654
  declare class Assets {
655
655
  /**
@@ -869,9 +869,12 @@ declare class MineRenderScene extends Scene {
869
869
  readonly stats: SceneStats;
870
870
  protected readonly instanceManager: InstanceManager;
871
871
  dirty: boolean;
872
+ private readonly observedObjects;
873
+ private readonly onObjectChange;
872
874
  constructor(options?: DeepPartial<MineRenderSceneOptions>);
873
- add(...object: any[]): this;
874
- remove(...object: any[]): this;
875
+ add(...objects: Object3D[]): this;
876
+ remove(...objects: Object3D[]): this;
877
+ private updateObjectRegistration;
875
878
  initAndAdd(...object: SceneObject[]): Promise<this>;
876
879
  addSceneObject<A extends BasicMinecraftAsset, T extends SceneObject, O extends SceneObjectOptions>(asset: A, objectSupplier: () => T | Promise<T>, _options?: Partial<O>, parent?: Object3D): Promise<T | InstanceReference<T>>;
877
880
  addModel(model: Model, options?: Partial<ModelObjectOptions>, parent?: Object3D): Promise<ModelObject | InstanceReference<ModelObject>>;
@@ -1232,7 +1235,84 @@ declare class GuiObject extends SceneObject {
1232
1235
  interface GuiObjectOptions extends SceneObjectOptions {
1233
1236
  }
1234
1237
 
1235
- declare class Renderer {
1238
+ declare class OrbitControls {
1239
+ constructor(object: Camera, domElement?: HTMLElement);
1240
+
1241
+ object: Camera;
1242
+ domElement: HTMLElement | HTMLDocument;
1243
+
1244
+ // API
1245
+ enabled: boolean;
1246
+ target: Vector3;
1247
+
1248
+ // deprecated
1249
+ center: Vector3;
1250
+
1251
+ minDistance: number;
1252
+ maxDistance: number;
1253
+
1254
+ minZoom: number;
1255
+ maxZoom: number;
1256
+
1257
+ minPolarAngle: number;
1258
+ maxPolarAngle: number;
1259
+
1260
+ minAzimuthAngle: number;
1261
+ maxAzimuthAngle: number;
1262
+
1263
+ enableDamping: boolean;
1264
+ dampingFactor: number;
1265
+
1266
+ enableZoom: boolean;
1267
+ zoomSpeed: number;
1268
+
1269
+ enableRotate: boolean;
1270
+ rotateSpeed: number;
1271
+
1272
+ enablePan: boolean;
1273
+ panSpeed: number;
1274
+ screenSpacePanning: boolean;
1275
+ keyPanSpeed: number;
1276
+
1277
+ autoRotate: boolean;
1278
+ autoRotateSpeed: number;
1279
+
1280
+ enableKeys: boolean;
1281
+ keys: { LEFT: string; UP: string; RIGHT: string; BOTTOM: string };
1282
+ mouseButtons: { LEFT: MOUSE; MIDDLE: MOUSE; RIGHT: MOUSE };
1283
+ touches: { ONE: TOUCH; TWO: TOUCH };
1284
+
1285
+ update(): boolean;
1286
+
1287
+ listenToKeyEvents(domElement: HTMLElement): void;
1288
+
1289
+ saveState(): void;
1290
+
1291
+ reset(): void;
1292
+
1293
+ dispose(): void;
1294
+
1295
+ getPolarAngle(): number;
1296
+
1297
+ getAzimuthalAngle(): number;
1298
+
1299
+ getDistance(): number;
1300
+
1301
+ // EventDispatcher mixins
1302
+ addEventListener(type: string, listener: (event: any) => void): void;
1303
+
1304
+ hasEventListener(type: string, listener: (event: any) => void): boolean;
1305
+
1306
+ removeEventListener(type: string, listener: (event: any) => void): void;
1307
+
1308
+ dispatchEvent(event: { type: string; target: any }): void;
1309
+ }
1310
+
1311
+ declare class MapControls extends OrbitControls {
1312
+ constructor(object: Camera, domElement?: HTMLElement);
1313
+ }
1314
+
1315
+ declare class Renderer implements Disposable {
1236
1316
  static readonly DEFAULT_OPTIONS: RendererOptions;
1237
1317
  readonly options: RendererOptions;
1238
1318
  protected _element?: HTMLElement;
@@ -1240,6 +1320,7 @@ declare class Renderer {
1240
1320
  protected _camera: Camera;
1241
1321
  protected _renderer: WebGLRenderer;
1242
1322
  protected _composer: EffectComposer;
1323
+ protected _controls?: OrbitControls;
1243
1324
  protected _stats?: Stats;
1244
1325
  protected _dirty: boolean;
1245
1326
  protected _animationLoop: any;
@@ -1247,16 +1328,22 @@ declare class Renderer {
1247
1328
  protected _animationTimer?: NodeJS.Timeout;
1248
1329
  protected _animationFrame?: number;
1249
1330
  protected _resizeListener?: () => void;
1331
+ private _disposed;
1332
+ private readonly _debugHelpers;
1333
+ private readonly _eventDispatchers;
1334
+ private readonly _changeListener;
1250
1335
  constructor(options?: DeepPartial<RendererOptions>);
1251
1336
  protected createScene(): MineRenderScene;
1252
1337
  protected createCamera(): Camera;
1253
1338
  protected createRenderer(): WebGLRenderer;
1254
1339
  protected createComposer(): EffectComposer;
1340
+ protected createControls(): Maybe<OrbitControls>;
1255
1341
  init(): void;
1256
1342
  get element(): Maybe<HTMLElement>;
1257
1343
  appendTo(element: HTMLElement): void;
1258
1344
  /**
1259
- * Register an EventDispatcher which may update the scene or renderer in order to redraw the scene
1345
+ * Redraws when the dispatcher emits the selected event. Registering the same pair twice has no effect.
1346
+ * The renderer removes its listener on disposal; the caller retains ownership of the dispatcher.
1260
1347
  */
1261
1348
  registerEventDispatcher(dispatcher: EventDispatcher, changeEvent?: string): void;
1262
1349
  resize(width: number, height: number): void;
@@ -1264,6 +1351,12 @@ declare class Renderer {
1264
1351
  set dirty(dirty: boolean);
1265
1352
  start(): void;
1266
1353
  stop(): void;
1354
+ /**
1355
+ * Stops rendering and releases owned resources. Repeated calls have no effect, and a disposed
1356
+ * renderer cannot be restarted. Scene objects are detached; shared assets and caller-owned
1357
+ * controls must be managed by their owners.
1358
+ */
1359
+ dispose(): void;
1267
1360
  private animate;
1268
1361
  toImage(): string;
1269
1362
  protected get attachedToBody(): boolean;
@@ -1273,11 +1366,14 @@ declare class Renderer {
1273
1366
  get camera(): Camera;
1274
1367
  get renderer(): WebGLRenderer;
1275
1368
  get composer(): EffectComposer;
1369
+ /** Renderer-owned controls, or undefined when disabled at construction or after disposal. */
1370
+ get controls(): Maybe<OrbitControls>;
1276
1371
  }
1277
1372
  interface RendererOptions {
1278
1373
  camera: CameraOptions;
1279
1374
  render: RenderOptions;
1280
1375
  composer: ComposerOptions;
1376
+ controls?: ControlsOptions;
1281
1377
  debug: DebugOptions;
1282
1378
  }
1283
1379
  interface CameraOptions {
@@ -1308,6 +1404,9 @@ interface RenderOptions {
1308
1404
  interface ComposerOptions {
1309
1405
  enabled: boolean;
1310
1406
  }
1407
+ interface ControlsOptions {
1408
+ enabled: boolean;
1409
+ }
1311
1410
  interface DebugOptions {
1312
1411
  grid: boolean;
1313
1412
  axes: boolean;
@@ -1432,83 +1531,6 @@ declare function mergeVertices(geometry: BufferGeometry$1, tolerance?: number):
1432
1531
  declare function toTrianglesDrawMode(geometry: BufferGeometry$1, drawMode: TrianglesDrawModes): BufferGeometry$1;
1433
1532
  declare function computeMorphedAttributes(object: Mesh | Line | Points): object;
1434
1533
 
1435
- declare class OrbitControls {
1436
- constructor(object: Camera, domElement?: HTMLElement);
1437
-
1438
- object: Camera;
1439
- domElement: HTMLElement | HTMLDocument;
1440
-
1441
- // API
1442
- enabled: boolean;
1443
- target: Vector3;
1444
-
1445
- // deprecated
1446
- center: Vector3;
1447
-
1448
- minDistance: number;
1449
- maxDistance: number;
1450
-
1451
- minZoom: number;
1452
- maxZoom: number;
1453
-
1454
- minPolarAngle: number;
1455
- maxPolarAngle: number;
1456
-
1457
- minAzimuthAngle: number;
1458
- maxAzimuthAngle: number;
1459
-
1460
- enableDamping: boolean;
1461
- dampingFactor: number;
1462
-
1463
- enableZoom: boolean;
1464
- zoomSpeed: number;
1465
-
1466
- enableRotate: boolean;
1467
- rotateSpeed: number;
1468
-
1469
- enablePan: boolean;
1470
- panSpeed: number;
1471
- screenSpacePanning: boolean;
1472
- keyPanSpeed: number;
1473
-
1474
- autoRotate: boolean;
1475
- autoRotateSpeed: number;
1476
-
1477
- enableKeys: boolean;
1478
- keys: { LEFT: string; UP: string; RIGHT: string; BOTTOM: string };
1479
- mouseButtons: { LEFT: MOUSE; MIDDLE: MOUSE; RIGHT: MOUSE };
1480
- touches: { ONE: TOUCH; TWO: TOUCH };
1481
-
1482
- update(): boolean;
1483
-
1484
- listenToKeyEvents(domElement: HTMLElement): void;
1485
-
1486
- saveState(): void;
1487
-
1488
- reset(): void;
1489
-
1490
- dispose(): void;
1491
-
1492
- getPolarAngle(): number;
1493
-
1494
- getAzimuthalAngle(): number;
1495
-
1496
- getDistance(): number;
1497
-
1498
- // EventDispatcher mixins
1499
- addEventListener(type: string, listener: (event: any) => void): void;
1500
-
1501
- hasEventListener(type: string, listener: (event: any) => void): boolean;
1502
-
1503
- removeEventListener(type: string, listener: (event: any) => void): void;
1504
-
1505
- dispatchEvent(event: { type: string; target: any }): void;
1506
- }
1507
-
1508
- declare class MapControls extends OrbitControls {
1509
- constructor(object: Camera, domElement?: HTMLElement);
1510
- }
1511
-
1512
1534
  interface BlockInfo {
1513
1535
  block: Block;
1514
1536
  object: BlockObject;
@@ -1601,4 +1623,4 @@ declare class BrowserCache extends PersistentCache<LocalForage> {
1601
1623
  */
1602
1624
  declare function probeImageSize(data: Uint8Array): ImageSizeInfo;
1603
1625
 
1604
- export { AXES, type AnimationFrame, type AnimationMeta, type AnimatorFunction, ArchiveAssetSource, type ArchiveEntry, type ArchiveProxy, AssetKey, AssetLoader, AssetParser, AssetSource, type AssetType, Assets, Axis, BUILTIN_ENTITY, BUILTIN_GENERATED, BasicAssetKey, type BasicMinecraftAsset, BatchedExecutor, type BedrockBone, type BedrockCube, type BedrockEntityDescription, type BedrockEntityFile, type BedrockGeometry, type BedrockGeometryFile, type Block, BlockEntityModels, type BlockInfo, type BlockModel, type BlockModelTextures, BlockObject, type BlockObjectOptions, type BlockState, type BlockStateMultipart, type BlockStateProperties, type BlockStateProperty, type BlockStatePropertyDefaults, type BlockStatePropertyValue, type BlockStateVariant, type BlockStateVariants, BlockStates, type BoxGeometryKey, BrowserArchiveProxy, BrowserCache, BrowserEnv, CUBE_FACES, type CacheKey, Caching, type CameraOptions, CanvasImage, Chunk, type CompatCanvas, type CompatImage, type ComposerOptions, type Cube, CubeFace, CubeFaceIndex, DEFAULT_ELEMENTS, DEFAULT_NAMESPACE, DEFAULT_ROOT, DEFAULT_UV, DISPLAY_POSITIONS, type DebugOptions, type DeepPartial, DefaultBlockStates, DisplayPosition, type Disposable, type DoubleArray, type ElementFace, type ElementRotation, Entities, type EntityModel, EntityModels, EntityObject, type EntityObjectOptions, Env, type EnvProvider, type ExtractableImageData, type FromTo, Geometries, GuiLight, GuiObject, type GuiObjectOptions, HostedAssetSource, type IModelTextures, ITEM_GENERATED, type ImageInfo, ImageLoader, type ImageSizeInfo, InstanceManager, InstanceReference, type Instanceable, type ItemModel, type ItemModelTextures, type ListAsset, MapControls, type MaterialKey, Materials, type Maybe, type MeshKey, Meshes, MineRenderError, MineRenderScene, type MineRenderSceneOptions, MineRenderWorld, type MinecraftAsset, MinecraftCubeTexture, MinecraftFaceUV, type MinecraftTextureMeta, type Model, type ModelDisplay, type ModelElement, type ModelFaces, ModelGenerator, ModelMerger, ModelObject, type ModelObjectOptions, type ModelPart, ModelTextures, Models, type MultiBlockBlock, type MultiBlockStructure, type MultipartCondition, type NBTAsset, NBTHelper, OrbitControls, PersistentCache, type QuadArray, type RawImageKey, type RenderOptions, Renderer, type RendererOptions, Requests, type ResponseParser, SKIN_PARTS, SceneInspector, SceneObject, type SceneObjectOptions, SceneStats, SceneStatsDisplay, SchematicParser, type Serializable, type SkinGeometries, SkinObject, type SkinObjectOptions, SkinPart, type SkinTextureCoordinates, Skins, type StructureNBT, StructureParser, type TextureAsset, TextureAtlas, type TextureKey, TextureLoader, Textures, Ticker, type TickerFunction, TintColors, type Transformable, type TripleArray, UVMapper, WrappedImage, addBox3WireframeToObject, addWireframeToMesh, addWireframeToObject, applyElementRotation, applyGenericRotation, applyModelPartRotation, axisToVec3, base64decode, base64encode, captureException, changeEvent, clampRotationDegrees, classicSkinGeometries, classicSkinTextureCoordinates, computeMorphedAttributes, createCanvas, createImage, estimateBytesUsed, interleaveAttributes, isAssetKey, isBasicAssetKey, isBlockObject, isDisposable, isDoubleArray, isEntityObject, isInstanceManager, isInstanceReference, isInstanceable, isInstancedMesh, isMesh, isMineRenderScene, isModelObject, isObject3D, isOrthographicCamera, isPerspectiveCamera, isQuadArray, isSceneObject, isTransformable, isTripleArray, isVector3, md5, mergeBufferAttributes, mergeBufferGeometries, mergeVertices, prefix, probeImageSize, registerBrowserEnv, serializeBoxGeometryKey, serializeImageKey, serializeMaterialKey, serializeMeshKey, serializeTextureKey, sha1, sha256, sha512, shutdown, sleep, slimSkinGeometries, slimSkinTextureCoordinates, timingEnd, timingStart, toDegrees, toRadians, toTrianglesDrawMode };
1626
+ export { AXES, type AnimationFrame, type AnimationMeta, type AnimatorFunction, ArchiveAssetSource, type ArchiveEntry, type ArchiveProxy, AssetKey, AssetLoader, AssetParser, AssetSource, type AssetType, Assets, Axis, BUILTIN_ENTITY, BUILTIN_GENERATED, BasicAssetKey, type BasicMinecraftAsset, BatchedExecutor, type BedrockBone, type BedrockCube, type BedrockEntityDescription, type BedrockEntityFile, type BedrockGeometry, type BedrockGeometryFile, type Block, BlockEntityModels, type BlockInfo, type BlockModel, type BlockModelTextures, BlockObject, type BlockObjectOptions, type BlockState, type BlockStateMultipart, type BlockStateProperties, type BlockStateProperty, type BlockStatePropertyDefaults, type BlockStatePropertyValue, type BlockStateVariant, type BlockStateVariants, BlockStates, type BoxGeometryKey, BrowserArchiveProxy, BrowserCache, BrowserEnv, CUBE_FACES, type CacheKey, Caching, type CameraOptions, CanvasImage, Chunk, type CompatCanvas, type CompatImage, type ComposerOptions, type ControlsOptions, type Cube, CubeFace, CubeFaceIndex, DEFAULT_ELEMENTS, DEFAULT_NAMESPACE, DEFAULT_ROOT, DEFAULT_UV, DISPLAY_POSITIONS, type DebugOptions, type DeepPartial, DefaultBlockStates, DisplayPosition, type Disposable, type DoubleArray, type ElementFace, type ElementRotation, Entities, type EntityModel, EntityModels, EntityObject, type EntityObjectOptions, Env, type EnvProvider, type ExtractableImageData, type FromTo, Geometries, GuiLight, GuiObject, type GuiObjectOptions, HostedAssetSource, type IModelTextures, ITEM_GENERATED, type ImageInfo, ImageLoader, type ImageSizeInfo, InstanceManager, InstanceReference, type Instanceable, type ItemModel, type ItemModelTextures, type ListAsset, MapControls, type MaterialKey, Materials, type Maybe, type MeshKey, Meshes, MineRenderError, MineRenderScene, type MineRenderSceneOptions, MineRenderWorld, type MinecraftAsset, MinecraftCubeTexture, MinecraftFaceUV, type MinecraftTextureMeta, type Model, type ModelDisplay, type ModelElement, type ModelFaces, ModelGenerator, ModelMerger, ModelObject, type ModelObjectOptions, type ModelPart, ModelTextures, Models, type MultiBlockBlock, type MultiBlockStructure, type MultipartCondition, type NBTAsset, NBTHelper, OrbitControls, PersistentCache, type QuadArray, type RawImageKey, type RenderOptions, Renderer, type RendererOptions, Requests, type ResponseParser, SKIN_PARTS, SceneInspector, SceneObject, type SceneObjectOptions, SceneStats, SceneStatsDisplay, SchematicParser, type Serializable, type SkinGeometries, SkinObject, type SkinObjectOptions, SkinPart, type SkinTextureCoordinates, Skins, type StructureNBT, StructureParser, type TextureAsset, TextureAtlas, type TextureKey, TextureLoader, Textures, Ticker, type TickerFunction, TintColors, type Transformable, type TripleArray, UVMapper, WrappedImage, addBox3WireframeToObject, addWireframeToMesh, addWireframeToObject, applyElementRotation, applyGenericRotation, applyModelPartRotation, axisToVec3, base64decode, base64encode, captureException, changeEvent, clampRotationDegrees, classicSkinGeometries, classicSkinTextureCoordinates, computeMorphedAttributes, createCanvas, createImage, estimateBytesUsed, interleaveAttributes, isAssetKey, isBasicAssetKey, isBlockObject, isDisposable, isDoubleArray, isEntityObject, isInstanceManager, isInstanceReference, isInstanceable, isInstancedMesh, isMesh, isMineRenderScene, isModelObject, isObject3D, isOrthographicCamera, isPerspectiveCamera, isQuadArray, isSceneObject, isTransformable, isTripleArray, isVector3, md5, mergeBufferAttributes, mergeBufferGeometries, mergeVertices, prefix, probeImageSize, registerBrowserEnv, serializeBoxGeometryKey, serializeImageKey, serializeMaterialKey, serializeMeshKey, serializeTextureKey, sha1, sha256, sha512, shutdown, sleep, slimSkinGeometries, slimSkinTextureCoordinates, timingEnd, timingStart, toDegrees, toRadians, toTrianglesDrawMode };
@@ -1,5 +1,5 @@
1
1
  import * as three from 'three';
2
- import { Vector3, PixelFormat, BoxGeometry, Material, Mesh, Euler, Vector2, BufferAttribute, Float32BufferAttribute, Object3D, Box3, InstancedMesh, PerspectiveCamera, OrthographicCamera, Matrix4, Scene, Texture, Camera, WebGLRenderer, EventDispatcher, Raycaster, Intersection, CanvasTexture, BufferGeometry as BufferGeometry$1, InterleavedBufferAttribute, TrianglesDrawModes, Line, Points, MOUSE, TOUCH } from 'three';
2
+ import { Vector3, PixelFormat, BoxGeometry, Material, Mesh, Euler, Vector2, BufferAttribute, Float32BufferAttribute, Object3D, Box3, InstancedMesh, PerspectiveCamera, OrthographicCamera, Matrix4, Scene, Texture, Camera, MOUSE, TOUCH, WebGLRenderer, EventDispatcher, Raycaster, Intersection, CanvasTexture, BufferGeometry as BufferGeometry$1, InterleavedBufferAttribute, TrianglesDrawModes, Line, Points } from 'three';
3
3
  import * as nodeCanvas from 'canvas';
4
4
  import { ImageData as ImageData$1, CanvasRenderingContext2D } from 'canvas';
5
5
  import { AxiosResponse, AxiosRequestConfig } from 'axios';
@@ -649,7 +649,7 @@ interface MultipartCondition {
649
649
  [key: string]: string;
650
650
  }
651
651
 
652
- declare const DEFAULT_ROOT = "https://cdn.mcasset.cloud/file/minecraft-assets/1.17.1";
652
+ declare const DEFAULT_ROOT = "https://assets.mcasset.cloud/1.17.1";
653
653
  declare const DEFAULT_NAMESPACE = "minecraft";
654
654
  declare class Assets {
655
655
  /**
@@ -869,9 +869,12 @@ declare class MineRenderScene extends Scene {
869
869
  readonly stats: SceneStats;
870
870
  protected readonly instanceManager: InstanceManager;
871
871
  dirty: boolean;
872
+ private readonly observedObjects;
873
+ private readonly onObjectChange;
872
874
  constructor(options?: DeepPartial<MineRenderSceneOptions>);
873
- add(...object: any[]): this;
874
- remove(...object: any[]): this;
875
+ add(...objects: Object3D[]): this;
876
+ remove(...objects: Object3D[]): this;
877
+ private updateObjectRegistration;
875
878
  initAndAdd(...object: SceneObject[]): Promise<this>;
876
879
  addSceneObject<A extends BasicMinecraftAsset, T extends SceneObject, O extends SceneObjectOptions>(asset: A, objectSupplier: () => T | Promise<T>, _options?: Partial<O>, parent?: Object3D): Promise<T | InstanceReference<T>>;
877
880
  addModel(model: Model, options?: Partial<ModelObjectOptions>, parent?: Object3D): Promise<ModelObject | InstanceReference<ModelObject>>;
@@ -1232,7 +1235,84 @@ declare class GuiObject extends SceneObject {
1232
1235
  interface GuiObjectOptions extends SceneObjectOptions {
1233
1236
  }
1234
1237
 
1235
- declare class Renderer {
1238
+ declare class OrbitControls {
1239
+ constructor(object: Camera, domElement?: HTMLElement);
1240
+
1241
+ object: Camera;
1242
+ domElement: HTMLElement | HTMLDocument;
1243
+
1244
+ // API
1245
+ enabled: boolean;
1246
+ target: Vector3;
1247
+
1248
+ // deprecated
1249
+ center: Vector3;
1250
+
1251
+ minDistance: number;
1252
+ maxDistance: number;
1253
+
1254
+ minZoom: number;
1255
+ maxZoom: number;
1256
+
1257
+ minPolarAngle: number;
1258
+ maxPolarAngle: number;
1259
+
1260
+ minAzimuthAngle: number;
1261
+ maxAzimuthAngle: number;
1262
+
1263
+ enableDamping: boolean;
1264
+ dampingFactor: number;
1265
+
1266
+ enableZoom: boolean;
1267
+ zoomSpeed: number;
1268
+
1269
+ enableRotate: boolean;
1270
+ rotateSpeed: number;
1271
+
1272
+ enablePan: boolean;
1273
+ panSpeed: number;
1274
+ screenSpacePanning: boolean;
1275
+ keyPanSpeed: number;
1276
+
1277
+ autoRotate: boolean;
1278
+ autoRotateSpeed: number;
1279
+
1280
+ enableKeys: boolean;
1281
+ keys: { LEFT: string; UP: string; RIGHT: string; BOTTOM: string };
1282
+ mouseButtons: { LEFT: MOUSE; MIDDLE: MOUSE; RIGHT: MOUSE };
1283
+ touches: { ONE: TOUCH; TWO: TOUCH };
1284
+
1285
+ update(): boolean;
1286
+
1287
+ listenToKeyEvents(domElement: HTMLElement): void;
1288
+
1289
+ saveState(): void;
1290
+
1291
+ reset(): void;
1292
+
1293
+ dispose(): void;
1294
+
1295
+ getPolarAngle(): number;
1296
+
1297
+ getAzimuthalAngle(): number;
1298
+
1299
+ getDistance(): number;
1300
+
1301
+ // EventDispatcher mixins
1302
+ addEventListener(type: string, listener: (event: any) => void): void;
1303
+
1304
+ hasEventListener(type: string, listener: (event: any) => void): boolean;
1305
+
1306
+ removeEventListener(type: string, listener: (event: any) => void): void;
1307
+
1308
+ dispatchEvent(event: { type: string; target: any }): void;
1309
+ }
1310
+
1311
+ declare class MapControls extends OrbitControls {
1312
+ constructor(object: Camera, domElement?: HTMLElement);
1313
+ }
1314
+
1315
+ declare class Renderer implements Disposable {
1236
1316
  static readonly DEFAULT_OPTIONS: RendererOptions;
1237
1317
  readonly options: RendererOptions;
1238
1318
  protected _element?: HTMLElement;
@@ -1240,6 +1320,7 @@ declare class Renderer {
1240
1320
  protected _camera: Camera;
1241
1321
  protected _renderer: WebGLRenderer;
1242
1322
  protected _composer: EffectComposer;
1323
+ protected _controls?: OrbitControls;
1243
1324
  protected _stats?: Stats;
1244
1325
  protected _dirty: boolean;
1245
1326
  protected _animationLoop: any;
@@ -1247,16 +1328,22 @@ declare class Renderer {
1247
1328
  protected _animationTimer?: NodeJS.Timeout;
1248
1329
  protected _animationFrame?: number;
1249
1330
  protected _resizeListener?: () => void;
1331
+ private _disposed;
1332
+ private readonly _debugHelpers;
1333
+ private readonly _eventDispatchers;
1334
+ private readonly _changeListener;
1250
1335
  constructor(options?: DeepPartial<RendererOptions>);
1251
1336
  protected createScene(): MineRenderScene;
1252
1337
  protected createCamera(): Camera;
1253
1338
  protected createRenderer(): WebGLRenderer;
1254
1339
  protected createComposer(): EffectComposer;
1340
+ protected createControls(): Maybe<OrbitControls>;
1255
1341
  init(): void;
1256
1342
  get element(): Maybe<HTMLElement>;
1257
1343
  appendTo(element: HTMLElement): void;
1258
1344
  /**
1259
- * Register an EventDispatcher which may update the scene or renderer in order to redraw the scene
1345
+ * Redraws when the dispatcher emits the selected event. Registering the same pair twice has no effect.
1346
+ * The renderer removes its listener on disposal; the caller retains ownership of the dispatcher.
1260
1347
  */
1261
1348
  registerEventDispatcher(dispatcher: EventDispatcher, changeEvent?: string): void;
1262
1349
  resize(width: number, height: number): void;
@@ -1264,6 +1351,12 @@ declare class Renderer {
1264
1351
  set dirty(dirty: boolean);
1265
1352
  start(): void;
1266
1353
  stop(): void;
1354
+ /**
1355
+ * Stops rendering and releases owned resources. Repeated calls have no effect, and a disposed
1356
+ * renderer cannot be restarted. Scene objects are detached; shared assets and caller-owned
1357
+ * controls must be managed by their owners.
1358
+ */
1359
+ dispose(): void;
1267
1360
  private animate;
1268
1361
  toImage(): string;
1269
1362
  protected get attachedToBody(): boolean;
@@ -1273,11 +1366,14 @@ declare class Renderer {
1273
1366
  get camera(): Camera;
1274
1367
  get renderer(): WebGLRenderer;
1275
1368
  get composer(): EffectComposer;
1369
+ /** Renderer-owned controls, or undefined when disabled at construction or after disposal. */
1370
+ get controls(): Maybe<OrbitControls>;
1276
1371
  }
1277
1372
  interface RendererOptions {
1278
1373
  camera: CameraOptions;
1279
1374
  render: RenderOptions;
1280
1375
  composer: ComposerOptions;
1376
+ controls?: ControlsOptions;
1281
1377
  debug: DebugOptions;
1282
1378
  }
1283
1379
  interface CameraOptions {
@@ -1308,6 +1404,9 @@ interface RenderOptions {
1308
1404
  interface ComposerOptions {
1309
1405
  enabled: boolean;
1310
1406
  }
1407
+ interface ControlsOptions {
1408
+ enabled: boolean;
1409
+ }
1311
1410
  interface DebugOptions {
1312
1411
  grid: boolean;
1313
1412
  axes: boolean;
@@ -1432,83 +1531,6 @@ declare function mergeVertices(geometry: BufferGeometry$1, tolerance?: number):
1432
1531
  declare function toTrianglesDrawMode(geometry: BufferGeometry$1, drawMode: TrianglesDrawModes): BufferGeometry$1;
1433
1532
  declare function computeMorphedAttributes(object: Mesh | Line | Points): object;
1434
1533
 
1435
- declare class OrbitControls {
1436
- constructor(object: Camera, domElement?: HTMLElement);
1437
-
1438
- object: Camera;
1439
- domElement: HTMLElement | HTMLDocument;
1440
-
1441
- // API
1442
- enabled: boolean;
1443
- target: Vector3;
1444
-
1445
- // deprecated
1446
- center: Vector3;
1447
-
1448
- minDistance: number;
1449
- maxDistance: number;
1450
-
1451
- minZoom: number;
1452
- maxZoom: number;
1453
-
1454
- minPolarAngle: number;
1455
- maxPolarAngle: number;
1456
-
1457
- minAzimuthAngle: number;
1458
- maxAzimuthAngle: number;
1459
-
1460
- enableDamping: boolean;
1461
- dampingFactor: number;
1462
-
1463
- enableZoom: boolean;
1464
- zoomSpeed: number;
1465
-
1466
- enableRotate: boolean;
1467
- rotateSpeed: number;
1468
-
1469
- enablePan: boolean;
1470
- panSpeed: number;
1471
- screenSpacePanning: boolean;
1472
- keyPanSpeed: number;
1473
-
1474
- autoRotate: boolean;
1475
- autoRotateSpeed: number;
1476
-
1477
- enableKeys: boolean;
1478
- keys: { LEFT: string; UP: string; RIGHT: string; BOTTOM: string };
1479
- mouseButtons: { LEFT: MOUSE; MIDDLE: MOUSE; RIGHT: MOUSE };
1480
- touches: { ONE: TOUCH; TWO: TOUCH };
1481
-
1482
- update(): boolean;
1483
-
1484
- listenToKeyEvents(domElement: HTMLElement): void;
1485
-
1486
- saveState(): void;
1487
-
1488
- reset(): void;
1489
-
1490
- dispose(): void;
1491
-
1492
- getPolarAngle(): number;
1493
-
1494
- getAzimuthalAngle(): number;
1495
-
1496
- getDistance(): number;
1497
-
1498
- // EventDispatcher mixins
1499
- addEventListener(type: string, listener: (event: any) => void): void;
1500
-
1501
- hasEventListener(type: string, listener: (event: any) => void): boolean;
1502
-
1503
- removeEventListener(type: string, listener: (event: any) => void): void;
1504
-
1505
- dispatchEvent(event: { type: string; target: any }): void;
1506
- }
1507
-
1508
- declare class MapControls extends OrbitControls {
1509
- constructor(object: Camera, domElement?: HTMLElement);
1510
- }
1511
-
1512
1534
  interface BlockInfo {
1513
1535
  block: Block;
1514
1536
  object: BlockObject;
@@ -1601,4 +1623,4 @@ declare class BrowserCache extends PersistentCache<LocalForage> {
1601
1623
  */
1602
1624
  declare function probeImageSize(data: Uint8Array): ImageSizeInfo;
1603
1625
 
1604
- export { AXES, type AnimationFrame, type AnimationMeta, type AnimatorFunction, ArchiveAssetSource, type ArchiveEntry, type ArchiveProxy, AssetKey, AssetLoader, AssetParser, AssetSource, type AssetType, Assets, Axis, BUILTIN_ENTITY, BUILTIN_GENERATED, BasicAssetKey, type BasicMinecraftAsset, BatchedExecutor, type BedrockBone, type BedrockCube, type BedrockEntityDescription, type BedrockEntityFile, type BedrockGeometry, type BedrockGeometryFile, type Block, BlockEntityModels, type BlockInfo, type BlockModel, type BlockModelTextures, BlockObject, type BlockObjectOptions, type BlockState, type BlockStateMultipart, type BlockStateProperties, type BlockStateProperty, type BlockStatePropertyDefaults, type BlockStatePropertyValue, type BlockStateVariant, type BlockStateVariants, BlockStates, type BoxGeometryKey, BrowserArchiveProxy, BrowserCache, BrowserEnv, CUBE_FACES, type CacheKey, Caching, type CameraOptions, CanvasImage, Chunk, type CompatCanvas, type CompatImage, type ComposerOptions, type Cube, CubeFace, CubeFaceIndex, DEFAULT_ELEMENTS, DEFAULT_NAMESPACE, DEFAULT_ROOT, DEFAULT_UV, DISPLAY_POSITIONS, type DebugOptions, type DeepPartial, DefaultBlockStates, DisplayPosition, type Disposable, type DoubleArray, type ElementFace, type ElementRotation, Entities, type EntityModel, EntityModels, EntityObject, type EntityObjectOptions, Env, type EnvProvider, type ExtractableImageData, type FromTo, Geometries, GuiLight, GuiObject, type GuiObjectOptions, HostedAssetSource, type IModelTextures, ITEM_GENERATED, type ImageInfo, ImageLoader, type ImageSizeInfo, InstanceManager, InstanceReference, type Instanceable, type ItemModel, type ItemModelTextures, type ListAsset, MapControls, type MaterialKey, Materials, type Maybe, type MeshKey, Meshes, MineRenderError, MineRenderScene, type MineRenderSceneOptions, MineRenderWorld, type MinecraftAsset, MinecraftCubeTexture, MinecraftFaceUV, type MinecraftTextureMeta, type Model, type ModelDisplay, type ModelElement, type ModelFaces, ModelGenerator, ModelMerger, ModelObject, type ModelObjectOptions, type ModelPart, ModelTextures, Models, type MultiBlockBlock, type MultiBlockStructure, type MultipartCondition, type NBTAsset, NBTHelper, OrbitControls, PersistentCache, type QuadArray, type RawImageKey, type RenderOptions, Renderer, type RendererOptions, Requests, type ResponseParser, SKIN_PARTS, SceneInspector, SceneObject, type SceneObjectOptions, SceneStats, SceneStatsDisplay, SchematicParser, type Serializable, type SkinGeometries, SkinObject, type SkinObjectOptions, SkinPart, type SkinTextureCoordinates, Skins, type StructureNBT, StructureParser, type TextureAsset, TextureAtlas, type TextureKey, TextureLoader, Textures, Ticker, type TickerFunction, TintColors, type Transformable, type TripleArray, UVMapper, WrappedImage, addBox3WireframeToObject, addWireframeToMesh, addWireframeToObject, applyElementRotation, applyGenericRotation, applyModelPartRotation, axisToVec3, base64decode, base64encode, captureException, changeEvent, clampRotationDegrees, classicSkinGeometries, classicSkinTextureCoordinates, computeMorphedAttributes, createCanvas, createImage, estimateBytesUsed, interleaveAttributes, isAssetKey, isBasicAssetKey, isBlockObject, isDisposable, isDoubleArray, isEntityObject, isInstanceManager, isInstanceReference, isInstanceable, isInstancedMesh, isMesh, isMineRenderScene, isModelObject, isObject3D, isOrthographicCamera, isPerspectiveCamera, isQuadArray, isSceneObject, isTransformable, isTripleArray, isVector3, md5, mergeBufferAttributes, mergeBufferGeometries, mergeVertices, prefix, probeImageSize, registerBrowserEnv, serializeBoxGeometryKey, serializeImageKey, serializeMaterialKey, serializeMeshKey, serializeTextureKey, sha1, sha256, sha512, shutdown, sleep, slimSkinGeometries, slimSkinTextureCoordinates, timingEnd, timingStart, toDegrees, toRadians, toTrianglesDrawMode };
1626
+ export { AXES, type AnimationFrame, type AnimationMeta, type AnimatorFunction, ArchiveAssetSource, type ArchiveEntry, type ArchiveProxy, AssetKey, AssetLoader, AssetParser, AssetSource, type AssetType, Assets, Axis, BUILTIN_ENTITY, BUILTIN_GENERATED, BasicAssetKey, type BasicMinecraftAsset, BatchedExecutor, type BedrockBone, type BedrockCube, type BedrockEntityDescription, type BedrockEntityFile, type BedrockGeometry, type BedrockGeometryFile, type Block, BlockEntityModels, type BlockInfo, type BlockModel, type BlockModelTextures, BlockObject, type BlockObjectOptions, type BlockState, type BlockStateMultipart, type BlockStateProperties, type BlockStateProperty, type BlockStatePropertyDefaults, type BlockStatePropertyValue, type BlockStateVariant, type BlockStateVariants, BlockStates, type BoxGeometryKey, BrowserArchiveProxy, BrowserCache, BrowserEnv, CUBE_FACES, type CacheKey, Caching, type CameraOptions, CanvasImage, Chunk, type CompatCanvas, type CompatImage, type ComposerOptions, type ControlsOptions, type Cube, CubeFace, CubeFaceIndex, DEFAULT_ELEMENTS, DEFAULT_NAMESPACE, DEFAULT_ROOT, DEFAULT_UV, DISPLAY_POSITIONS, type DebugOptions, type DeepPartial, DefaultBlockStates, DisplayPosition, type Disposable, type DoubleArray, type ElementFace, type ElementRotation, Entities, type EntityModel, EntityModels, EntityObject, type EntityObjectOptions, Env, type EnvProvider, type ExtractableImageData, type FromTo, Geometries, GuiLight, GuiObject, type GuiObjectOptions, HostedAssetSource, type IModelTextures, ITEM_GENERATED, type ImageInfo, ImageLoader, type ImageSizeInfo, InstanceManager, InstanceReference, type Instanceable, type ItemModel, type ItemModelTextures, type ListAsset, MapControls, type MaterialKey, Materials, type Maybe, type MeshKey, Meshes, MineRenderError, MineRenderScene, type MineRenderSceneOptions, MineRenderWorld, type MinecraftAsset, MinecraftCubeTexture, MinecraftFaceUV, type MinecraftTextureMeta, type Model, type ModelDisplay, type ModelElement, type ModelFaces, ModelGenerator, ModelMerger, ModelObject, type ModelObjectOptions, type ModelPart, ModelTextures, Models, type MultiBlockBlock, type MultiBlockStructure, type MultipartCondition, type NBTAsset, NBTHelper, OrbitControls, PersistentCache, type QuadArray, type RawImageKey, type RenderOptions, Renderer, type RendererOptions, Requests, type ResponseParser, SKIN_PARTS, SceneInspector, SceneObject, type SceneObjectOptions, SceneStats, SceneStatsDisplay, SchematicParser, type Serializable, type SkinGeometries, SkinObject, type SkinObjectOptions, SkinPart, type SkinTextureCoordinates, Skins, type StructureNBT, StructureParser, type TextureAsset, TextureAtlas, type TextureKey, TextureLoader, Textures, Ticker, type TickerFunction, TintColors, type Transformable, type TripleArray, UVMapper, WrappedImage, addBox3WireframeToObject, addWireframeToMesh, addWireframeToObject, applyElementRotation, applyGenericRotation, applyModelPartRotation, axisToVec3, base64decode, base64encode, captureException, changeEvent, clampRotationDegrees, classicSkinGeometries, classicSkinTextureCoordinates, computeMorphedAttributes, createCanvas, createImage, estimateBytesUsed, interleaveAttributes, isAssetKey, isBasicAssetKey, isBlockObject, isDisposable, isDoubleArray, isEntityObject, isInstanceManager, isInstanceReference, isInstanceable, isInstancedMesh, isMesh, isMineRenderScene, isModelObject, isObject3D, isOrthographicCamera, isPerspectiveCamera, isQuadArray, isSceneObject, isTransformable, isTripleArray, isVector3, md5, mergeBufferAttributes, mergeBufferGeometries, mergeVertices, prefix, probeImageSize, registerBrowserEnv, serializeBoxGeometryKey, serializeImageKey, serializeMaterialKey, serializeMeshKey, serializeTextureKey, sha1, sha256, sha512, shutdown, sleep, slimSkinGeometries, slimSkinTextureCoordinates, timingEnd, timingStart, toDegrees, toRadians, toTrianglesDrawMode };