minerender 2.1.0-alpha.4 → 2.1.0-alpha.6

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.
@@ -85,7 +85,7 @@ var require_dist = __commonJS({
85
85
  return false;
86
86
  };
87
87
  var PROTECTED_KEYS = ["__proto__"];
88
- var merge11 = function() {
88
+ var merge10 = function() {
89
89
  var objects = [];
90
90
  for (var _i = 0; _i < arguments.length; _i++) {
91
91
  objects[_i] = arguments[_i];
@@ -96,9 +96,9 @@ var require_dist = __commonJS({
96
96
  return;
97
97
  }
98
98
  if (Array.isArray(result[key]) && Array.isArray(current[key])) {
99
- result[key] = merge11.options.mergeArrays ? Array.from(new Set(result[key].concat(current[key]))) : current[key];
99
+ result[key] = merge10.options.mergeArrays ? Array.from(new Set(result[key].concat(current[key]))) : current[key];
100
100
  } else if (isObject(result[key]) && isObject(current[key])) {
101
- result[key] = merge11(result[key], current[key]);
101
+ result[key] = merge10(result[key], current[key]);
102
102
  } else {
103
103
  result[key] = current[key];
104
104
  }
@@ -109,18 +109,18 @@ var require_dist = __commonJS({
109
109
  var defaultOptions = {
110
110
  mergeArrays: true
111
111
  };
112
- merge11.options = defaultOptions;
113
- merge11.withOptions = function(options) {
112
+ merge10.options = defaultOptions;
113
+ merge10.withOptions = function(options) {
114
114
  var objects = [];
115
115
  for (var _i = 1; _i < arguments.length; _i++) {
116
116
  objects[_i - 1] = arguments[_i];
117
117
  }
118
- merge11.options = __assign({ mergeArrays: true }, options);
119
- var result = merge11.apply(void 0, __spreadArray([], __read(objects), false));
120
- merge11.options = defaultOptions;
118
+ merge10.options = __assign({ mergeArrays: true }, options);
119
+ var result = merge10.apply(void 0, __spreadArray([], __read(objects), false));
120
+ merge10.options = defaultOptions;
121
121
  return result;
122
122
  };
123
- exports.default = merge11;
123
+ exports.default = merge10;
124
124
  }
125
125
  });
126
126
 
@@ -166,7 +166,7 @@ var _PersistentCache = class _PersistentCache {
166
166
  }
167
167
  };
168
168
  /** Bump to invalidate every persisted entry. */
169
- _PersistentCache.VERSION = 1;
169
+ _PersistentCache.VERSION = 2;
170
170
  var PersistentCache = _PersistentCache;
171
171
 
172
172
  // src/env/node/NodeCache.ts
@@ -441,6 +441,7 @@ import { CanvasTexture, Texture as Texture2 } from "three";
441
441
 
442
442
  // src/texture/TextureLoader.ts
443
443
  import { RGBAFormat, Texture } from "three";
444
+ import * as THREE from "three";
444
445
 
445
446
  // src/canvas/CanvasCompat.ts
446
447
  function createImage(width, height) {
@@ -829,6 +830,7 @@ var TextureLoader = class {
829
830
  }
830
831
  static loadInBackground(src, format = RGBAFormat, rotation = 0) {
831
832
  const texture = this.createTexture();
833
+ texture.colorSpace = THREE.SRGBColorSpace;
832
834
  const image = ImageLoader.loadElement(src);
833
835
  image.onload = function() {
834
836
  texture.needsUpdate = true;
@@ -840,6 +842,7 @@ var TextureLoader = class {
840
842
  }
841
843
  static load(src, format = RGBAFormat, rotation = 0) {
842
844
  const texture = new Texture();
845
+ texture.colorSpace = THREE.SRGBColorSpace;
843
846
  ImageLoader.getData(src).then((image) => {
844
847
  texture.needsUpdate = true;
845
848
  texture.image = image;
@@ -851,11 +854,11 @@ var TextureLoader = class {
851
854
  };
852
855
 
853
856
  // src/texture/Textures.ts
854
- import * as THREE from "three";
857
+ import * as THREE2 from "three";
855
858
  var Textures = class _Textures {
856
859
  static initTextureProps(texture) {
857
- texture.magFilter = THREE.NearestFilter;
858
- texture.minFilter = THREE.NearestFilter;
860
+ texture.magFilter = THREE2.NearestFilter;
861
+ texture.minFilter = THREE2.NearestFilter;
859
862
  texture.anisotropy = 0;
860
863
  return texture;
861
864
  }
@@ -866,7 +869,9 @@ var Textures = class _Textures {
866
869
  return new Texture2();
867
870
  }
868
871
  static createCanvasTexture(canvas) {
869
- return this.initTextureProps(new CanvasTexture(canvas));
872
+ const texture = new CanvasTexture(canvas);
873
+ texture.colorSpace = THREE2.SRGBColorSpace;
874
+ return this.initTextureProps(texture);
870
875
  }
871
876
  static getImage(key) {
872
877
  const keyStr = serializeTextureKey(key);
@@ -983,6 +988,9 @@ var _Materials = class _Materials {
983
988
  gl_FragColor = vec4(lift + color.rgb * light2, 1.0);
984
989
 
985
990
  }
991
+
992
+ #include <tonemapping_fragment>
993
+ #include <colorspace_fragment>
986
994
  }
987
995
  `;
988
996
  try {
@@ -1613,7 +1621,6 @@ var ArchiveAssetSource = class _ArchiveAssetSource extends AssetSource {
1613
1621
  };
1614
1622
 
1615
1623
  // src/assets/AssetLoader.ts
1616
- var import_ts_deepmerge3 = __toESM(require_dist());
1617
1624
  var p5 = prefix("AssetLoader");
1618
1625
  var _AssetLoader = class _AssetLoader {
1619
1626
  static addSource(key, source, override = true) {
@@ -1637,7 +1644,6 @@ var _AssetLoader = class _AssetLoader {
1637
1644
  return void 0;
1638
1645
  }
1639
1646
  static async getAll(key, parser) {
1640
- console.log(this._SOURCES);
1641
1647
  let promises = [];
1642
1648
  for (const source of this._SOURCES) {
1643
1649
  promises.push(source.source.get(key, parser));
@@ -1646,24 +1652,16 @@ var _AssetLoader = class _AssetLoader {
1646
1652
  return results.filter((r) => r != void 0);
1647
1653
  });
1648
1654
  }
1655
+ /** Returns the first defined result in source-priority order, without merging assets. */
1649
1656
  static async get(key, parser) {
1650
- console.log(this._SOURCES);
1651
- let promises = [];
1652
- for (const source of this._SOURCES) {
1653
- promises.push(source.source.get(key, parser));
1654
- }
1655
- return Promise.all(promises).then((results) => {
1656
- const fallback = results[results.length - 1];
1657
- for (const result of results) {
1658
- if (result) {
1659
- if (fallback) {
1660
- return (0, import_ts_deepmerge3.default)({}, fallback, result);
1661
- }
1662
- return result;
1663
- }
1657
+ const sources = [...this._SOURCES];
1658
+ for (const source of sources) {
1659
+ const result = await source.source.get(key, parser);
1660
+ if (result !== void 0) {
1661
+ return result;
1664
1662
  }
1665
- return void 0;
1666
- });
1663
+ }
1664
+ return void 0;
1667
1665
  }
1668
1666
  };
1669
1667
  _AssetLoader.ROOT = DEFAULT_ROOT;
@@ -2487,7 +2485,7 @@ var MineRenderError = class _MineRenderError extends Error {
2487
2485
  };
2488
2486
 
2489
2487
  // src/renderer/SceneObject.ts
2490
- var import_ts_deepmerge4 = __toESM(require_dist());
2488
+ var import_ts_deepmerge3 = __toESM(require_dist());
2491
2489
  var p7 = prefix("SceneObject");
2492
2490
  var _SceneObject = class _SceneObject extends Object3D2 {
2493
2491
  constructor(options) {
@@ -2496,7 +2494,7 @@ var _SceneObject = class _SceneObject extends Object3D2 {
2496
2494
  this.materialCallbacks = {};
2497
2495
  this._isInstanced = false;
2498
2496
  this._instanceCounter = 0;
2499
- this.options = (0, import_ts_deepmerge4.default)({}, _SceneObject.DEFAULT_OPTIONS, options ?? {});
2497
+ this.options = (0, import_ts_deepmerge3.default)({}, _SceneObject.DEFAULT_OPTIONS, options ?? {});
2500
2498
  console.log("SceneObject options", this.options);
2501
2499
  }
2502
2500
  set scene(scene) {
@@ -2846,7 +2844,7 @@ var _SceneObject = class _SceneObject extends Object3D2 {
2846
2844
  }
2847
2845
  //</editor-fold>
2848
2846
  };
2849
- _SceneObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge4.default)({}, {
2847
+ _SceneObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge3.default)({}, {
2850
2848
  instanceMeshes: true,
2851
2849
  maxInstanceCount: 50,
2852
2850
  mergeMeshes: true,
@@ -2858,16 +2856,16 @@ function isSceneObject(obj) {
2858
2856
  }
2859
2857
 
2860
2858
  // src/entity/scene/EntityObject.ts
2861
- var import_ts_deepmerge5 = __toESM(require_dist());
2859
+ var import_ts_deepmerge4 = __toESM(require_dist());
2862
2860
  import { Object3D as Object3D3 } from "three";
2863
- import * as THREE2 from "three";
2861
+ import * as THREE3 from "three";
2864
2862
  var EntityObject = class extends SceneObject {
2865
2863
  constructor(entity, options) {
2866
2864
  super();
2867
2865
  this.entity = entity;
2868
2866
  this.isEntityObject = true;
2869
2867
  this.meshesCreated = false;
2870
- this.options = (0, import_ts_deepmerge5.default)({}, SceneObject.DEFAULT_OPTIONS, options ?? {});
2868
+ this.options = (0, import_ts_deepmerge4.default)({}, SceneObject.DEFAULT_OPTIONS, options ?? {});
2871
2869
  }
2872
2870
  async init() {
2873
2871
  this.createMeshes();
@@ -2905,8 +2903,8 @@ var EntityObject = class extends SceneObject {
2905
2903
  const l = cube.maxZ - cube.minZ;
2906
2904
  const uv = texture.toUvArray(w, h, l);
2907
2905
  const cubeGeo = this._getBoxGeometryForDimensionsAndUv(w, h, l, uv).clone();
2908
- cubeGeo.applyMatrix4(new THREE2.Matrix4().makeTranslation(w / 2, h / 2, l / 2));
2909
- cubeGeo.applyMatrix4(new THREE2.Matrix4().makeTranslation(cube.minX, cube.minY, cube.minZ));
2906
+ cubeGeo.applyMatrix4(new THREE3.Matrix4().makeTranslation(w / 2, h / 2, l / 2));
2907
+ cubeGeo.applyMatrix4(new THREE3.Matrix4().makeTranslation(cube.minX, cube.minY, cube.minZ));
2910
2908
  applyModelPartRotation(part, cubeGeo);
2911
2909
  const mesh = this.createMesh(partName, cubeGeo, mat);
2912
2910
  partAnchor.add(mesh);
@@ -2936,7 +2934,7 @@ var EntityObject = class extends SceneObject {
2936
2934
  }
2937
2935
  }
2938
2936
  };
2939
- EntityObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge5.default)({}, SceneObject.DEFAULT_OPTIONS, {});
2937
+ EntityObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge4.default)({}, SceneObject.DEFAULT_OPTIONS, {});
2940
2938
  function isEntityObject(obj) {
2941
2939
  return obj.isEntityObject;
2942
2940
  }
@@ -3938,7 +3936,7 @@ function computeMorphedAttributes(object) {
3938
3936
  }
3939
3937
 
3940
3938
  // src/model/scene/ModelObject.ts
3941
- var import_ts_deepmerge6 = __toESM(require_dist());
3939
+ var import_ts_deepmerge5 = __toESM(require_dist());
3942
3940
  var p10 = prefix("ModelObject");
3943
3941
  var _ModelObject = class _ModelObject extends SceneObject {
3944
3942
  constructor(originalModel, options) {
@@ -3946,7 +3944,7 @@ var _ModelObject = class _ModelObject extends SceneObject {
3946
3944
  this.originalModel = originalModel;
3947
3945
  this.isModelObject = true;
3948
3946
  this.meshesCreated = false;
3949
- this.options = (0, import_ts_deepmerge6.default)({}, _ModelObject.DEFAULT_OPTIONS, options ?? {});
3947
+ this.options = (0, import_ts_deepmerge5.default)({}, _ModelObject.DEFAULT_OPTIONS, options ?? {});
3950
3948
  console.log("ModelObject options", this.options);
3951
3949
  }
3952
3950
  async init() {
@@ -4046,14 +4044,14 @@ var _ModelObject = class _ModelObject extends SceneObject {
4046
4044
  }
4047
4045
  }
4048
4046
  };
4049
- _ModelObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge6.default)({}, SceneObject.DEFAULT_OPTIONS, {});
4047
+ _ModelObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge5.default)({}, SceneObject.DEFAULT_OPTIONS, {});
4050
4048
  var ModelObject = _ModelObject;
4051
4049
  function isModelObject(obj) {
4052
4050
  return obj.isModelObject;
4053
4051
  }
4054
4052
 
4055
4053
  // src/model/block/scene/BlockObject.ts
4056
- var import_ts_deepmerge7 = __toESM(require_dist());
4054
+ var import_ts_deepmerge6 = __toESM(require_dist());
4057
4055
  import { Euler as Euler3, Matrix4 as Matrix46, Vector3 as Vector36 } from "three";
4058
4056
  var p11 = prefix("BlockObject");
4059
4057
  var _BlockObject = class _BlockObject extends SceneObject {
@@ -4069,7 +4067,7 @@ var _BlockObject = class _BlockObject extends SceneObject {
4069
4067
  this._instanceModel = [];
4070
4068
  this._variants = [];
4071
4069
  this._models = [];
4072
- this.options = (0, import_ts_deepmerge7.default)({}, _BlockObject.DEFAULT_OPTIONS, options ?? {});
4070
+ this.options = (0, import_ts_deepmerge6.default)({}, _BlockObject.DEFAULT_OPTIONS, options ?? {});
4073
4071
  }
4074
4072
  async init() {
4075
4073
  if (this.options.applyDefaultState) {
@@ -4358,7 +4356,7 @@ var _BlockObject = class _BlockObject extends SceneObject {
4358
4356
  //TODO: should override rotation + scale methods
4359
4357
  //TODO
4360
4358
  };
4361
- _BlockObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge7.default)({}, ModelObject.DEFAULT_OPTIONS, {
4359
+ _BlockObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge6.default)({}, ModelObject.DEFAULT_OPTIONS, {
4362
4360
  applyDefaultState: true
4363
4361
  });
4364
4362
  var BlockObject = _BlockObject;
@@ -4409,7 +4407,7 @@ var StructureParser = class {
4409
4407
 
4410
4408
  // src/renderer/MineRenderScene.ts
4411
4409
  import { Scene as Scene2 } from "three";
4412
- var import_ts_deepmerge9 = __toESM(require_dist());
4410
+ var import_ts_deepmerge8 = __toESM(require_dist());
4413
4411
 
4414
4412
  // src/skin/SkinPart.ts
4415
4413
  var SkinPart = /* @__PURE__ */ ((SkinPart2) => {
@@ -5140,7 +5138,7 @@ var slimSkinGeometries = {
5140
5138
  };
5141
5139
 
5142
5140
  // src/skin/scene/SkinObject.ts
5143
- var import_ts_deepmerge8 = __toESM(require_dist());
5141
+ var import_ts_deepmerge7 = __toESM(require_dist());
5144
5142
  var SkinObject = class extends SceneObject {
5145
5143
  constructor(options) {
5146
5144
  super();
@@ -5148,7 +5146,7 @@ var SkinObject = class extends SceneObject {
5148
5146
  this.legacy = false;
5149
5147
  this.skinTextureWidth = 64;
5150
5148
  this.skinTextureHeight = 64;
5151
- this.options = (0, import_ts_deepmerge8.default)({}, SceneObject.DEFAULT_OPTIONS, options ?? {});
5149
+ this.options = (0, import_ts_deepmerge7.default)({}, SceneObject.DEFAULT_OPTIONS, options ?? {});
5152
5150
  }
5153
5151
  async init() {
5154
5152
  this.createMeshes();
@@ -5266,7 +5264,7 @@ var _MineRenderScene = class _MineRenderScene extends Scene2 {
5266
5264
  this.dirty = true;
5267
5265
  }
5268
5266
  };
5269
- this.options = (0, import_ts_deepmerge9.default)({}, _MineRenderScene.DEFAULT_OPTIONS, options ?? {});
5267
+ this.options = (0, import_ts_deepmerge8.default)({}, _MineRenderScene.DEFAULT_OPTIONS, options ?? {});
5270
5268
  }
5271
5269
  add(...objects) {
5272
5270
  for (const object of objects) {
@@ -5363,15 +5361,15 @@ var _MineRenderScene = class _MineRenderScene extends Scene2 {
5363
5361
  return this.addSceneObject(entity, () => new EntityObject(entity, options), options, parent);
5364
5362
  }
5365
5363
  };
5366
- _MineRenderScene.DEFAULT_OPTIONS = (0, import_ts_deepmerge9.default)({}, {});
5364
+ _MineRenderScene.DEFAULT_OPTIONS = (0, import_ts_deepmerge8.default)({}, {});
5367
5365
  var MineRenderScene = _MineRenderScene;
5368
5366
  function isMineRenderScene(obj) {
5369
5367
  return obj.isMineRenderScene;
5370
5368
  }
5371
5369
 
5372
5370
  // src/renderer/Renderer.ts
5373
- import { AxesHelper as AxesHelper3, GridHelper, LinearEncoding, OrthographicCamera, PCFSoftShadowMap, PerspectiveCamera, Vector3 as Vector38, WebGLRenderer } from "three";
5374
- var import_ts_deepmerge10 = __toESM(require_dist());
5371
+ import { AxesHelper as AxesHelper3, GridHelper, OrthographicCamera, PCFSoftShadowMap, PerspectiveCamera, SRGBColorSpace as SRGBColorSpace3, Vector3 as Vector38, WebGLRenderer } from "three";
5372
+ var import_ts_deepmerge9 = __toESM(require_dist());
5375
5373
  import Stats from "stats.js";
5376
5374
  import { EffectComposer, RenderPass } from "postprocessing";
5377
5375
 
@@ -6036,7 +6034,7 @@ var _Renderer = class _Renderer {
6036
6034
  this._changeListener = () => {
6037
6035
  this._dirty = true;
6038
6036
  };
6039
- this.options = (0, import_ts_deepmerge10.default)({}, _Renderer.DEFAULT_OPTIONS, options ?? {});
6037
+ this.options = (0, import_ts_deepmerge9.default)({}, _Renderer.DEFAULT_OPTIONS, options ?? {});
6040
6038
  this._animationLoop = this.animate.bind(this);
6041
6039
  this._frameInterval = this.options.render.fpsLimit > 0 ? 1e3 / this.options.render.fpsLimit : void 0;
6042
6040
  this._scene = this.createScene();
@@ -6085,13 +6083,13 @@ var _Renderer = class _Renderer {
6085
6083
  renderer.setClearColor(0, 0);
6086
6084
  renderer.shadowMap.enabled = true;
6087
6085
  renderer.shadowMap.type = PCFSoftShadowMap;
6088
- renderer.outputEncoding = LinearEncoding;
6086
+ renderer.outputColorSpace = SRGBColorSpace3;
6089
6087
  renderer.setSize(this.viewWidth, this.viewHeight);
6090
6088
  return renderer;
6091
6089
  }
6092
6090
  createComposer() {
6091
+ if (!this.options.composer.enabled) return void 0;
6093
6092
  const composer = new EffectComposer(this.renderer);
6094
- if (!this.options.composer.enabled) return composer;
6095
6093
  composer.setSize(this.viewWidth, this.viewHeight);
6096
6094
  composer.addPass(new RenderPass(this.scene, this.camera));
6097
6095
  return composer;
@@ -6189,6 +6187,7 @@ var _Renderer = class _Renderer {
6189
6187
  dispatcher.addEventListener(changeEvent2, this._changeListener);
6190
6188
  }
6191
6189
  resize(width, height) {
6190
+ var _a;
6192
6191
  if (this._disposed) return;
6193
6192
  if (isPerspectiveCamera(this.camera)) {
6194
6193
  this.camera.aspect = width / height;
@@ -6201,7 +6200,7 @@ var _Renderer = class _Renderer {
6201
6200
  this.camera.updateProjectionMatrix();
6202
6201
  }
6203
6202
  this.renderer.setSize(width, height);
6204
- this.composer.setSize(width, height);
6203
+ (_a = this.composer) == null ? void 0 : _a.setSize(width, height);
6205
6204
  this._dirty = true;
6206
6205
  }
6207
6206
  //<editor-fold desc="RENDER">
@@ -6228,7 +6227,7 @@ var _Renderer = class _Renderer {
6228
6227
  * controls must be managed by their owners.
6229
6228
  */
6230
6229
  dispose() {
6231
- var _a;
6230
+ var _a, _b;
6232
6231
  if (this._disposed) return;
6233
6232
  this.stop();
6234
6233
  this._disposed = true;
@@ -6261,7 +6260,7 @@ var _Renderer = class _Renderer {
6261
6260
  }
6262
6261
  }
6263
6262
  this._debugHelpers.length = 0;
6264
- this.composer.dispose();
6263
+ (_b = this.composer) == null ? void 0 : _b.dispose();
6265
6264
  this.renderer.dispose();
6266
6265
  this.renderer.forceContextLoss();
6267
6266
  }
@@ -6282,7 +6281,7 @@ var _Renderer = class _Renderer {
6282
6281
  if (this._stats) {
6283
6282
  this._stats.begin();
6284
6283
  }
6285
- if (this.options.composer.enabled) {
6284
+ if (this.options.composer.enabled && this.composer) {
6286
6285
  this.composer.render();
6287
6286
  } else {
6288
6287
  this.renderer.render(this.scene, this.camera);
@@ -6326,7 +6325,7 @@ var _Renderer = class _Renderer {
6326
6325
  }
6327
6326
  ///
6328
6327
  };
6329
- _Renderer.DEFAULT_OPTIONS = (0, import_ts_deepmerge10.default)({}, {
6328
+ _Renderer.DEFAULT_OPTIONS = (0, import_ts_deepmerge9.default)({}, {
6330
6329
  camera: {
6331
6330
  type: "perspective",
6332
6331
  near: 1,