minerender 2.1.0-alpha.4 → 2.1.0-alpha.5

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.
@@ -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, MOUSE, TOUCH, WebGLRenderer, EventDispatcher, Raycaster, Intersection, CanvasTexture, BufferGeometry as BufferGeometry$1, InterleavedBufferAttribute, TrianglesDrawModes, Line, Points } from 'three';
2
+ import { Vector3, PixelFormat, BoxGeometry, Material, Mesh, Euler, Vector2, BufferAttribute, Float32BufferAttribute, BufferGeometry, Object3D, Box3, InstancedMesh, PerspectiveCamera, OrthographicCamera, Matrix4, Scene, Object3DEventMap, Texture, Camera, MOUSE, TOUCH, WebGLRenderer, EventDispatcher, Raycaster, Intersection, CanvasTexture, 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';
@@ -7,8 +7,6 @@ import { Buffer as Buffer$1 } from 'buffer';
7
7
  import { NBT } from 'prismarine-nbt';
8
8
  import { ZipReader } from '@zip.js/zip.js';
9
9
  import { AsyncLoadingCache, SimpleCache } from '@inventivetalent/loading-cache';
10
- import { BufferGeometry } from 'three/src/core/BufferGeometry';
11
- import { Material as Material$1 } from 'three/src/materials/Material';
12
10
  import Stats from 'stats.js';
13
11
  import { EffectComposer } from 'postprocessing';
14
12
 
@@ -431,7 +429,7 @@ interface Transformable {
431
429
  declare function isTransformable(obj: any): obj is Transformable;
432
430
 
433
431
  declare const changeEvent: {
434
- type: string;
432
+ type: "change";
435
433
  };
436
434
  type Maybe<T> = T | undefined;
437
435
  declare function md5(str: string): string;
@@ -886,7 +884,9 @@ interface MineRenderSceneOptions {
886
884
  }
887
885
  declare function isMineRenderScene(obj: any): obj is MineRenderScene;
888
886
 
889
- declare class SceneObject extends Object3D implements Disposable, Instanceable, Transformable {
887
+ declare class SceneObject extends Object3D<Object3DEventMap & {
888
+ change: {};
889
+ }> implements Disposable, Instanceable, Transformable {
890
890
  readonly isSceneObject: true;
891
891
  static readonly DEFAULT_OPTIONS: SceneObjectOptions;
892
892
  readonly options: SceneObjectOptions;
@@ -912,9 +912,9 @@ declare class SceneObject extends Object3D implements Disposable, Instanceable,
912
912
  */
913
913
  toggleGroupVisibility(name: string, visible?: boolean): boolean;
914
914
  protected addOrReplaceMesh(mesh: Mesh, parent: Object3D, name?: string): void;
915
- protected createAndAddMesh(name?: string, group?: Object3D, geometry?: BufferGeometry, material?: Material$1 | Material$1[], offsetAxis?: Axis, offset?: number): Mesh;
916
- protected createMesh(name?: string, geometry?: BufferGeometry, material?: Material$1 | Material$1[], offsetAxis?: Axis, offset?: number): Mesh;
917
- protected createInstancedMesh(name: Maybe<string>, geometry: BufferGeometry, material: Material$1 | Material$1[], count: number): InstancedMesh;
915
+ protected createAndAddMesh(name?: string, group?: Object3D, geometry?: BufferGeometry, material?: Material | Material[], offsetAxis?: Axis, offset?: number): Mesh;
916
+ protected createMesh(name?: string, geometry?: BufferGeometry, material?: Material | Material[], offsetAxis?: Axis, offset?: number): Mesh;
917
+ protected createInstancedMesh(name: Maybe<string>, geometry: BufferGeometry, material: Material | Material[], count: number): InstancedMesh;
918
918
  /**
919
919
  * Get a mesh by its name
920
920
  */
@@ -1319,7 +1319,7 @@ declare class Renderer implements Disposable {
1319
1319
  protected _scene: MineRenderScene;
1320
1320
  protected _camera: Camera;
1321
1321
  protected _renderer: WebGLRenderer;
1322
- protected _composer: EffectComposer;
1322
+ protected _composer?: EffectComposer;
1323
1323
  protected _controls?: OrbitControls;
1324
1324
  protected _stats?: Stats;
1325
1325
  protected _dirty: boolean;
@@ -1335,7 +1335,7 @@ declare class Renderer implements Disposable {
1335
1335
  protected createScene(): MineRenderScene;
1336
1336
  protected createCamera(): Camera;
1337
1337
  protected createRenderer(): WebGLRenderer;
1338
- protected createComposer(): EffectComposer;
1338
+ protected createComposer(): Maybe<EffectComposer>;
1339
1339
  protected createControls(): Maybe<OrbitControls>;
1340
1340
  init(): void;
1341
1341
  get element(): Maybe<HTMLElement>;
@@ -1344,7 +1344,7 @@ declare class Renderer implements Disposable {
1344
1344
  * Redraws when the dispatcher emits the selected event. Registering the same pair twice has no effect.
1345
1345
  * The renderer removes its listener on disposal; the caller retains ownership of the dispatcher.
1346
1346
  */
1347
- registerEventDispatcher(dispatcher: EventDispatcher, changeEvent?: string): void;
1347
+ registerEventDispatcher(dispatcher: EventDispatcher<any>, changeEvent?: string): void;
1348
1348
  resize(width: number, height: number): void;
1349
1349
  get dirty(): boolean;
1350
1350
  set dirty(dirty: boolean);
@@ -1364,7 +1364,7 @@ declare class Renderer implements Disposable {
1364
1364
  get scene(): MineRenderScene;
1365
1365
  get camera(): Camera;
1366
1366
  get renderer(): WebGLRenderer;
1367
- get composer(): EffectComposer;
1367
+ get composer(): Maybe<EffectComposer>;
1368
1368
  /** Renderer-owned controls, or undefined when disabled at construction or after disposal. */
1369
1369
  get controls(): Maybe<OrbitControls>;
1370
1370
  }
@@ -1421,7 +1421,7 @@ declare class SceneInspector {
1421
1421
  private selectedObject?;
1422
1422
  constructor(renderer: Renderer);
1423
1423
  protected init(): void;
1424
- findMeshChildren(from: Object3D, out?: Mesh[]): Mesh<three.BufferGeometry, three.Material | three.Material[]>[];
1424
+ findMeshChildren(from: Object3D, out?: Mesh[]): Mesh<three.BufferGeometry<three.NormalBufferAttributes>, three.Material | three.Material[], three.Object3DEventMap>[];
1425
1425
  onClick(event: any): void;
1426
1426
  appendTo(el: HTMLElement): void;
1427
1427
  protected handleRaycasterObjects(intersections: Intersection[]): void;
@@ -1523,12 +1523,12 @@ declare class Textures {
1523
1523
  static getImage(key: TextureKey): Texture;
1524
1524
  }
1525
1525
 
1526
- declare function mergeBufferGeometries(geometries: BufferGeometry$1[], useGroups?: boolean): BufferGeometry$1;
1526
+ declare function mergeBufferGeometries(geometries: BufferGeometry[], useGroups?: boolean): BufferGeometry;
1527
1527
  declare function mergeBufferAttributes(attributes: BufferAttribute[]): BufferAttribute;
1528
1528
  declare function interleaveAttributes(attributes: BufferAttribute[]): InterleavedBufferAttribute;
1529
- declare function estimateBytesUsed(geometry: BufferGeometry$1): number;
1530
- declare function mergeVertices(geometry: BufferGeometry$1, tolerance?: number): BufferGeometry$1;
1531
- declare function toTrianglesDrawMode(geometry: BufferGeometry$1, drawMode: TrianglesDrawModes): BufferGeometry$1;
1529
+ declare function estimateBytesUsed(geometry: BufferGeometry): number;
1530
+ declare function mergeVertices(geometry: BufferGeometry, tolerance?: number): BufferGeometry;
1531
+ declare function toTrianglesDrawMode(geometry: BufferGeometry, drawMode: TrianglesDrawModes): BufferGeometry;
1532
1532
  declare function computeMorphedAttributes(object: Mesh | Line | Points): object;
1533
1533
 
1534
1534
  interface BlockInfo {
@@ -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, MOUSE, TOUCH, WebGLRenderer, EventDispatcher, Raycaster, Intersection, CanvasTexture, BufferGeometry as BufferGeometry$1, InterleavedBufferAttribute, TrianglesDrawModes, Line, Points } from 'three';
2
+ import { Vector3, PixelFormat, BoxGeometry, Material, Mesh, Euler, Vector2, BufferAttribute, Float32BufferAttribute, BufferGeometry, Object3D, Box3, InstancedMesh, PerspectiveCamera, OrthographicCamera, Matrix4, Scene, Object3DEventMap, Texture, Camera, MOUSE, TOUCH, WebGLRenderer, EventDispatcher, Raycaster, Intersection, CanvasTexture, 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';
@@ -7,8 +7,6 @@ import { Buffer as Buffer$1 } from 'buffer';
7
7
  import { NBT } from 'prismarine-nbt';
8
8
  import { ZipReader } from '@zip.js/zip.js';
9
9
  import { AsyncLoadingCache, SimpleCache } from '@inventivetalent/loading-cache';
10
- import { BufferGeometry } from 'three/src/core/BufferGeometry';
11
- import { Material as Material$1 } from 'three/src/materials/Material';
12
10
  import Stats from 'stats.js';
13
11
  import { EffectComposer } from 'postprocessing';
14
12
 
@@ -431,7 +429,7 @@ interface Transformable {
431
429
  declare function isTransformable(obj: any): obj is Transformable;
432
430
 
433
431
  declare const changeEvent: {
434
- type: string;
432
+ type: "change";
435
433
  };
436
434
  type Maybe<T> = T | undefined;
437
435
  declare function md5(str: string): string;
@@ -886,7 +884,9 @@ interface MineRenderSceneOptions {
886
884
  }
887
885
  declare function isMineRenderScene(obj: any): obj is MineRenderScene;
888
886
 
889
- declare class SceneObject extends Object3D implements Disposable, Instanceable, Transformable {
887
+ declare class SceneObject extends Object3D<Object3DEventMap & {
888
+ change: {};
889
+ }> implements Disposable, Instanceable, Transformable {
890
890
  readonly isSceneObject: true;
891
891
  static readonly DEFAULT_OPTIONS: SceneObjectOptions;
892
892
  readonly options: SceneObjectOptions;
@@ -912,9 +912,9 @@ declare class SceneObject extends Object3D implements Disposable, Instanceable,
912
912
  */
913
913
  toggleGroupVisibility(name: string, visible?: boolean): boolean;
914
914
  protected addOrReplaceMesh(mesh: Mesh, parent: Object3D, name?: string): void;
915
- protected createAndAddMesh(name?: string, group?: Object3D, geometry?: BufferGeometry, material?: Material$1 | Material$1[], offsetAxis?: Axis, offset?: number): Mesh;
916
- protected createMesh(name?: string, geometry?: BufferGeometry, material?: Material$1 | Material$1[], offsetAxis?: Axis, offset?: number): Mesh;
917
- protected createInstancedMesh(name: Maybe<string>, geometry: BufferGeometry, material: Material$1 | Material$1[], count: number): InstancedMesh;
915
+ protected createAndAddMesh(name?: string, group?: Object3D, geometry?: BufferGeometry, material?: Material | Material[], offsetAxis?: Axis, offset?: number): Mesh;
916
+ protected createMesh(name?: string, geometry?: BufferGeometry, material?: Material | Material[], offsetAxis?: Axis, offset?: number): Mesh;
917
+ protected createInstancedMesh(name: Maybe<string>, geometry: BufferGeometry, material: Material | Material[], count: number): InstancedMesh;
918
918
  /**
919
919
  * Get a mesh by its name
920
920
  */
@@ -1319,7 +1319,7 @@ declare class Renderer implements Disposable {
1319
1319
  protected _scene: MineRenderScene;
1320
1320
  protected _camera: Camera;
1321
1321
  protected _renderer: WebGLRenderer;
1322
- protected _composer: EffectComposer;
1322
+ protected _composer?: EffectComposer;
1323
1323
  protected _controls?: OrbitControls;
1324
1324
  protected _stats?: Stats;
1325
1325
  protected _dirty: boolean;
@@ -1335,7 +1335,7 @@ declare class Renderer implements Disposable {
1335
1335
  protected createScene(): MineRenderScene;
1336
1336
  protected createCamera(): Camera;
1337
1337
  protected createRenderer(): WebGLRenderer;
1338
- protected createComposer(): EffectComposer;
1338
+ protected createComposer(): Maybe<EffectComposer>;
1339
1339
  protected createControls(): Maybe<OrbitControls>;
1340
1340
  init(): void;
1341
1341
  get element(): Maybe<HTMLElement>;
@@ -1344,7 +1344,7 @@ declare class Renderer implements Disposable {
1344
1344
  * Redraws when the dispatcher emits the selected event. Registering the same pair twice has no effect.
1345
1345
  * The renderer removes its listener on disposal; the caller retains ownership of the dispatcher.
1346
1346
  */
1347
- registerEventDispatcher(dispatcher: EventDispatcher, changeEvent?: string): void;
1347
+ registerEventDispatcher(dispatcher: EventDispatcher<any>, changeEvent?: string): void;
1348
1348
  resize(width: number, height: number): void;
1349
1349
  get dirty(): boolean;
1350
1350
  set dirty(dirty: boolean);
@@ -1364,7 +1364,7 @@ declare class Renderer implements Disposable {
1364
1364
  get scene(): MineRenderScene;
1365
1365
  get camera(): Camera;
1366
1366
  get renderer(): WebGLRenderer;
1367
- get composer(): EffectComposer;
1367
+ get composer(): Maybe<EffectComposer>;
1368
1368
  /** Renderer-owned controls, or undefined when disabled at construction or after disposal. */
1369
1369
  get controls(): Maybe<OrbitControls>;
1370
1370
  }
@@ -1421,7 +1421,7 @@ declare class SceneInspector {
1421
1421
  private selectedObject?;
1422
1422
  constructor(renderer: Renderer);
1423
1423
  protected init(): void;
1424
- findMeshChildren(from: Object3D, out?: Mesh[]): Mesh<three.BufferGeometry, three.Material | three.Material[]>[];
1424
+ findMeshChildren(from: Object3D, out?: Mesh[]): Mesh<three.BufferGeometry<three.NormalBufferAttributes>, three.Material | three.Material[], three.Object3DEventMap>[];
1425
1425
  onClick(event: any): void;
1426
1426
  appendTo(el: HTMLElement): void;
1427
1427
  protected handleRaycasterObjects(intersections: Intersection[]): void;
@@ -1523,12 +1523,12 @@ declare class Textures {
1523
1523
  static getImage(key: TextureKey): Texture;
1524
1524
  }
1525
1525
 
1526
- declare function mergeBufferGeometries(geometries: BufferGeometry$1[], useGroups?: boolean): BufferGeometry$1;
1526
+ declare function mergeBufferGeometries(geometries: BufferGeometry[], useGroups?: boolean): BufferGeometry;
1527
1527
  declare function mergeBufferAttributes(attributes: BufferAttribute[]): BufferAttribute;
1528
1528
  declare function interleaveAttributes(attributes: BufferAttribute[]): InterleavedBufferAttribute;
1529
- declare function estimateBytesUsed(geometry: BufferGeometry$1): number;
1530
- declare function mergeVertices(geometry: BufferGeometry$1, tolerance?: number): BufferGeometry$1;
1531
- declare function toTrianglesDrawMode(geometry: BufferGeometry$1, drawMode: TrianglesDrawModes): BufferGeometry$1;
1529
+ declare function estimateBytesUsed(geometry: BufferGeometry): number;
1530
+ declare function mergeVertices(geometry: BufferGeometry, tolerance?: number): BufferGeometry;
1531
+ declare function toTrianglesDrawMode(geometry: BufferGeometry, drawMode: TrianglesDrawModes): BufferGeometry;
1532
1532
  declare function computeMorphedAttributes(object: Mesh | Line | Points): object;
1533
1533
 
1534
1534
  interface BlockInfo {
@@ -631,6 +631,7 @@ var import_three5 = require("three");
631
631
 
632
632
  // src/texture/TextureLoader.ts
633
633
  var import_three4 = require("three");
634
+ var THREE = __toESM(require("three"));
634
635
 
635
636
  // src/canvas/CanvasCompat.ts
636
637
  function createImage(width, height) {
@@ -1019,6 +1020,7 @@ var TextureLoader = class {
1019
1020
  }
1020
1021
  static loadInBackground(src, format = import_three4.RGBAFormat, rotation = 0) {
1021
1022
  const texture = this.createTexture();
1023
+ texture.colorSpace = THREE.SRGBColorSpace;
1022
1024
  const image = ImageLoader.loadElement(src);
1023
1025
  image.onload = function() {
1024
1026
  texture.needsUpdate = true;
@@ -1030,6 +1032,7 @@ var TextureLoader = class {
1030
1032
  }
1031
1033
  static load(src, format = import_three4.RGBAFormat, rotation = 0) {
1032
1034
  const texture = new import_three4.Texture();
1035
+ texture.colorSpace = THREE.SRGBColorSpace;
1033
1036
  ImageLoader.getData(src).then((image) => {
1034
1037
  texture.needsUpdate = true;
1035
1038
  texture.image = image;
@@ -1041,11 +1044,11 @@ var TextureLoader = class {
1041
1044
  };
1042
1045
 
1043
1046
  // src/texture/Textures.ts
1044
- var THREE = __toESM(require("three"));
1047
+ var THREE2 = __toESM(require("three"));
1045
1048
  var Textures = class _Textures {
1046
1049
  static initTextureProps(texture) {
1047
- texture.magFilter = THREE.NearestFilter;
1048
- texture.minFilter = THREE.NearestFilter;
1050
+ texture.magFilter = THREE2.NearestFilter;
1051
+ texture.minFilter = THREE2.NearestFilter;
1049
1052
  texture.anisotropy = 0;
1050
1053
  return texture;
1051
1054
  }
@@ -1056,7 +1059,9 @@ var Textures = class _Textures {
1056
1059
  return new import_three5.Texture();
1057
1060
  }
1058
1061
  static createCanvasTexture(canvas) {
1059
- return this.initTextureProps(new import_three5.CanvasTexture(canvas));
1062
+ const texture = new import_three5.CanvasTexture(canvas);
1063
+ texture.colorSpace = THREE2.SRGBColorSpace;
1064
+ return this.initTextureProps(texture);
1060
1065
  }
1061
1066
  static getImage(key) {
1062
1067
  const keyStr = serializeTextureKey(key);
@@ -1173,6 +1178,9 @@ var _Materials = class _Materials {
1173
1178
  gl_FragColor = vec4(lift + color.rgb * light2, 1.0);
1174
1179
 
1175
1180
  }
1181
+
1182
+ #include <tonemapping_fragment>
1183
+ #include <colorspace_fragment>
1176
1184
  }
1177
1185
  `;
1178
1186
  try {
@@ -3047,7 +3055,7 @@ function isSceneObject(obj) {
3047
3055
  // src/entity/scene/EntityObject.ts
3048
3056
  var import_ts_deepmerge5 = __toESM(require_dist());
3049
3057
  var import_three11 = require("three");
3050
- var THREE2 = __toESM(require("three"));
3058
+ var THREE3 = __toESM(require("three"));
3051
3059
  var EntityObject = class extends SceneObject {
3052
3060
  constructor(entity, options) {
3053
3061
  super();
@@ -3091,8 +3099,8 @@ var EntityObject = class extends SceneObject {
3091
3099
  const l = cube.maxZ - cube.minZ;
3092
3100
  const uv = texture.toUvArray(w, h, l);
3093
3101
  const cubeGeo = this._getBoxGeometryForDimensionsAndUv(w, h, l, uv).clone();
3094
- cubeGeo.applyMatrix4(new THREE2.Matrix4().makeTranslation(w / 2, h / 2, l / 2));
3095
- cubeGeo.applyMatrix4(new THREE2.Matrix4().makeTranslation(cube.minX, cube.minY, cube.minZ));
3102
+ cubeGeo.applyMatrix4(new THREE3.Matrix4().makeTranslation(w / 2, h / 2, l / 2));
3103
+ cubeGeo.applyMatrix4(new THREE3.Matrix4().makeTranslation(cube.minX, cube.minY, cube.minZ));
3096
3104
  applyModelPartRotation(part, cubeGeo);
3097
3105
  const mesh = this.createMesh(partName, cubeGeo, mat);
3098
3106
  partAnchor.add(mesh);
@@ -6246,13 +6254,13 @@ var _Renderer = class _Renderer {
6246
6254
  renderer.setClearColor(0, 0);
6247
6255
  renderer.shadowMap.enabled = true;
6248
6256
  renderer.shadowMap.type = import_three19.PCFSoftShadowMap;
6249
- renderer.outputEncoding = import_three19.LinearEncoding;
6257
+ renderer.outputColorSpace = import_three19.SRGBColorSpace;
6250
6258
  renderer.setSize(this.viewWidth, this.viewHeight);
6251
6259
  return renderer;
6252
6260
  }
6253
6261
  createComposer() {
6262
+ if (!this.options.composer.enabled) return void 0;
6254
6263
  const composer = new import_postprocessing.EffectComposer(this.renderer);
6255
- if (!this.options.composer.enabled) return composer;
6256
6264
  composer.setSize(this.viewWidth, this.viewHeight);
6257
6265
  composer.addPass(new import_postprocessing.RenderPass(this.scene, this.camera));
6258
6266
  return composer;
@@ -6361,7 +6369,7 @@ var _Renderer = class _Renderer {
6361
6369
  this.camera.updateProjectionMatrix();
6362
6370
  }
6363
6371
  this.renderer.setSize(width, height);
6364
- this.composer.setSize(width, height);
6372
+ this.composer?.setSize(width, height);
6365
6373
  this._dirty = true;
6366
6374
  }
6367
6375
  //<editor-fold desc="RENDER">
@@ -6420,7 +6428,7 @@ var _Renderer = class _Renderer {
6420
6428
  }
6421
6429
  }
6422
6430
  this._debugHelpers.length = 0;
6423
- this.composer.dispose();
6431
+ this.composer?.dispose();
6424
6432
  this.renderer.dispose();
6425
6433
  this.renderer.forceContextLoss();
6426
6434
  }
@@ -6440,7 +6448,7 @@ var _Renderer = class _Renderer {
6440
6448
  if (this._stats) {
6441
6449
  this._stats.begin();
6442
6450
  }
6443
- if (this.options.composer.enabled) {
6451
+ if (this.options.composer.enabled && this.composer) {
6444
6452
  this.composer.render();
6445
6453
  } else {
6446
6454
  this.renderer.render(this.scene, this.camera);