minerender 2.1.0-alpha.5 → 2.1.0-alpha.7

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
 
@@ -164,7 +164,7 @@ var _PersistentCache = class _PersistentCache {
164
164
  }
165
165
  };
166
166
  /** Bump to invalidate every persisted entry. */
167
- _PersistentCache.VERSION = 1;
167
+ _PersistentCache.VERSION = 2;
168
168
  var PersistentCache = _PersistentCache;
169
169
 
170
170
  // src/env/browser/BrowserCache.ts
@@ -265,7 +265,8 @@ var BrowserEnv = class {
265
265
  }
266
266
  openCache(name, version) {
267
267
  return new BrowserCache(localforage.createInstance({
268
- name,
268
+ // IndexedDB schema upgrades retain records; each cache generation needs its own database.
269
+ name: name + version,
269
270
  version
270
271
  }));
271
272
  }
@@ -421,8 +422,8 @@ var Caching = class {
421
422
  /**
422
423
  * Clears every cache and stops its expiry timer.
423
424
  *
424
- * loading-cache reschedules that timer indefinitely, so a Node process will not exit until
425
- * this is called - see {@link shutdown}.
425
+ * Expiry timers are unref'd in Node, so idle processes can exit without this cleanup.
426
+ * Use {@link shutdown} to also stop requests and the shared Ticker.
426
427
  */
427
428
  static end() {
428
429
  for (const cache of this.all) {
@@ -670,13 +671,14 @@ var _Requests = class _Requests {
670
671
  }
671
672
  static get queueSizes() {
672
673
  return {
673
- generic: this.genericQueue.size,
674
- mcAsset: this.mcAssetRequestQueue.size
674
+ generic: this.genericQueue.size + this.genericQueue.activeSize,
675
+ mcAsset: this.mcAssetRequestQueue.size + this.mcAssetRequestQueue.activeSize
675
676
  };
676
677
  }
677
678
  /**
678
- * Stops both queue timers. jobqu reschedules itself indefinitely, so a Node process will not
679
- * exit until this is called - see {@link shutdown}.
679
+ * Permanently stops both queues and rejects waiting and future requests.
680
+ * Requests already running can finish. Idle queues hold no timer, so Node can exit without
681
+ * this cleanup. See {@link shutdown}.
680
682
  */
681
683
  static end() {
682
684
  this.genericQueue.end();
@@ -1657,7 +1659,6 @@ var ArchiveAssetSource = class _ArchiveAssetSource extends AssetSource {
1657
1659
  };
1658
1660
 
1659
1661
  // src/assets/AssetLoader.ts
1660
- var import_ts_deepmerge3 = __toESM(require_dist());
1661
1662
  var p5 = prefix("AssetLoader");
1662
1663
  var _AssetLoader = class _AssetLoader {
1663
1664
  static addSource(key, source, override = true) {
@@ -1681,7 +1682,6 @@ var _AssetLoader = class _AssetLoader {
1681
1682
  return void 0;
1682
1683
  }
1683
1684
  static async getAll(key, parser) {
1684
- console.log(this._SOURCES);
1685
1685
  let promises = [];
1686
1686
  for (const source of this._SOURCES) {
1687
1687
  promises.push(source.source.get(key, parser));
@@ -1690,24 +1690,16 @@ var _AssetLoader = class _AssetLoader {
1690
1690
  return results.filter((r) => r != void 0);
1691
1691
  });
1692
1692
  }
1693
+ /** Returns the first defined result in source-priority order, without merging assets. */
1693
1694
  static async get(key, parser) {
1694
- console.log(this._SOURCES);
1695
- let promises = [];
1696
- for (const source of this._SOURCES) {
1697
- promises.push(source.source.get(key, parser));
1698
- }
1699
- return Promise.all(promises).then((results) => {
1700
- const fallback = results[results.length - 1];
1701
- for (const result of results) {
1702
- if (result) {
1703
- if (fallback) {
1704
- return (0, import_ts_deepmerge3.default)({}, fallback, result);
1705
- }
1706
- return result;
1707
- }
1695
+ const sources = [...this._SOURCES];
1696
+ for (const source of sources) {
1697
+ const result = await source.source.get(key, parser);
1698
+ if (result !== void 0) {
1699
+ return result;
1708
1700
  }
1709
- return void 0;
1710
- });
1701
+ }
1702
+ return void 0;
1711
1703
  }
1712
1704
  };
1713
1705
  _AssetLoader.ROOT = DEFAULT_ROOT;
@@ -2529,7 +2521,7 @@ var MineRenderError = class _MineRenderError extends Error {
2529
2521
  };
2530
2522
 
2531
2523
  // src/renderer/SceneObject.ts
2532
- var import_ts_deepmerge4 = __toESM(require_dist());
2524
+ var import_ts_deepmerge3 = __toESM(require_dist());
2533
2525
  var p7 = prefix("SceneObject");
2534
2526
  var _SceneObject = class _SceneObject extends Object3D2 {
2535
2527
  constructor(options) {
@@ -2538,7 +2530,7 @@ var _SceneObject = class _SceneObject extends Object3D2 {
2538
2530
  this.materialCallbacks = {};
2539
2531
  this._isInstanced = false;
2540
2532
  this._instanceCounter = 0;
2541
- this.options = (0, import_ts_deepmerge4.default)({}, _SceneObject.DEFAULT_OPTIONS, options ?? {});
2533
+ this.options = (0, import_ts_deepmerge3.default)({}, _SceneObject.DEFAULT_OPTIONS, options ?? {});
2542
2534
  console.log("SceneObject options", this.options);
2543
2535
  }
2544
2536
  set scene(scene) {
@@ -2887,7 +2879,7 @@ var _SceneObject = class _SceneObject extends Object3D2 {
2887
2879
  }
2888
2880
  //</editor-fold>
2889
2881
  };
2890
- _SceneObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge4.default)({}, {
2882
+ _SceneObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge3.default)({}, {
2891
2883
  instanceMeshes: true,
2892
2884
  maxInstanceCount: 50,
2893
2885
  mergeMeshes: true,
@@ -2899,7 +2891,7 @@ function isSceneObject(obj) {
2899
2891
  }
2900
2892
 
2901
2893
  // src/entity/scene/EntityObject.ts
2902
- var import_ts_deepmerge5 = __toESM(require_dist());
2894
+ var import_ts_deepmerge4 = __toESM(require_dist());
2903
2895
  import { Object3D as Object3D3 } from "three";
2904
2896
  import * as THREE3 from "three";
2905
2897
  var EntityObject = class extends SceneObject {
@@ -2908,7 +2900,7 @@ var EntityObject = class extends SceneObject {
2908
2900
  this.entity = entity;
2909
2901
  this.isEntityObject = true;
2910
2902
  this.meshesCreated = false;
2911
- this.options = (0, import_ts_deepmerge5.default)({}, SceneObject.DEFAULT_OPTIONS, options ?? {});
2903
+ this.options = (0, import_ts_deepmerge4.default)({}, SceneObject.DEFAULT_OPTIONS, options ?? {});
2912
2904
  }
2913
2905
  async init() {
2914
2906
  this.createMeshes();
@@ -2975,7 +2967,7 @@ var EntityObject = class extends SceneObject {
2975
2967
  }
2976
2968
  }
2977
2969
  };
2978
- EntityObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge5.default)({}, SceneObject.DEFAULT_OPTIONS, {});
2970
+ EntityObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge4.default)({}, SceneObject.DEFAULT_OPTIONS, {});
2979
2971
  function isEntityObject(obj) {
2980
2972
  return obj.isEntityObject;
2981
2973
  }
@@ -3976,7 +3968,7 @@ function computeMorphedAttributes(object) {
3976
3968
  }
3977
3969
 
3978
3970
  // src/model/scene/ModelObject.ts
3979
- var import_ts_deepmerge6 = __toESM(require_dist());
3971
+ var import_ts_deepmerge5 = __toESM(require_dist());
3980
3972
  var p10 = prefix("ModelObject");
3981
3973
  var _ModelObject = class _ModelObject extends SceneObject {
3982
3974
  constructor(originalModel, options) {
@@ -3984,7 +3976,7 @@ var _ModelObject = class _ModelObject extends SceneObject {
3984
3976
  this.originalModel = originalModel;
3985
3977
  this.isModelObject = true;
3986
3978
  this.meshesCreated = false;
3987
- this.options = (0, import_ts_deepmerge6.default)({}, _ModelObject.DEFAULT_OPTIONS, options ?? {});
3979
+ this.options = (0, import_ts_deepmerge5.default)({}, _ModelObject.DEFAULT_OPTIONS, options ?? {});
3988
3980
  console.log("ModelObject options", this.options);
3989
3981
  }
3990
3982
  async init() {
@@ -4082,14 +4074,14 @@ var _ModelObject = class _ModelObject extends SceneObject {
4082
4074
  }
4083
4075
  }
4084
4076
  };
4085
- _ModelObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge6.default)({}, SceneObject.DEFAULT_OPTIONS, {});
4077
+ _ModelObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge5.default)({}, SceneObject.DEFAULT_OPTIONS, {});
4086
4078
  var ModelObject = _ModelObject;
4087
4079
  function isModelObject(obj) {
4088
4080
  return obj.isModelObject;
4089
4081
  }
4090
4082
 
4091
4083
  // src/model/block/scene/BlockObject.ts
4092
- var import_ts_deepmerge7 = __toESM(require_dist());
4084
+ var import_ts_deepmerge6 = __toESM(require_dist());
4093
4085
  import { Euler as Euler3, Matrix4 as Matrix46, Vector3 as Vector36 } from "three";
4094
4086
  var p11 = prefix("BlockObject");
4095
4087
  var _BlockObject = class _BlockObject extends SceneObject {
@@ -4105,7 +4097,7 @@ var _BlockObject = class _BlockObject extends SceneObject {
4105
4097
  this._instanceModel = [];
4106
4098
  this._variants = [];
4107
4099
  this._models = [];
4108
- this.options = (0, import_ts_deepmerge7.default)({}, _BlockObject.DEFAULT_OPTIONS, options ?? {});
4100
+ this.options = (0, import_ts_deepmerge6.default)({}, _BlockObject.DEFAULT_OPTIONS, options ?? {});
4109
4101
  }
4110
4102
  async init() {
4111
4103
  if (this.options.applyDefaultState) {
@@ -4394,7 +4386,7 @@ var _BlockObject = class _BlockObject extends SceneObject {
4394
4386
  //TODO: should override rotation + scale methods
4395
4387
  //TODO
4396
4388
  };
4397
- _BlockObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge7.default)({}, ModelObject.DEFAULT_OPTIONS, {
4389
+ _BlockObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge6.default)({}, ModelObject.DEFAULT_OPTIONS, {
4398
4390
  applyDefaultState: true
4399
4391
  });
4400
4392
  var BlockObject = _BlockObject;
@@ -4444,7 +4436,7 @@ var StructureParser = class {
4444
4436
 
4445
4437
  // src/renderer/MineRenderScene.ts
4446
4438
  import { Scene as Scene2 } from "three";
4447
- var import_ts_deepmerge9 = __toESM(require_dist());
4439
+ var import_ts_deepmerge8 = __toESM(require_dist());
4448
4440
 
4449
4441
  // src/skin/SkinPart.ts
4450
4442
  var SkinPart = /* @__PURE__ */ ((SkinPart2) => {
@@ -5175,7 +5167,7 @@ var slimSkinGeometries = {
5175
5167
  };
5176
5168
 
5177
5169
  // src/skin/scene/SkinObject.ts
5178
- var import_ts_deepmerge8 = __toESM(require_dist());
5170
+ var import_ts_deepmerge7 = __toESM(require_dist());
5179
5171
  var SkinObject = class extends SceneObject {
5180
5172
  constructor(options) {
5181
5173
  super();
@@ -5183,7 +5175,7 @@ var SkinObject = class extends SceneObject {
5183
5175
  this.legacy = false;
5184
5176
  this.skinTextureWidth = 64;
5185
5177
  this.skinTextureHeight = 64;
5186
- this.options = (0, import_ts_deepmerge8.default)({}, SceneObject.DEFAULT_OPTIONS, options ?? {});
5178
+ this.options = (0, import_ts_deepmerge7.default)({}, SceneObject.DEFAULT_OPTIONS, options ?? {});
5187
5179
  }
5188
5180
  async init() {
5189
5181
  this.createMeshes();
@@ -5300,7 +5292,7 @@ var _MineRenderScene = class _MineRenderScene extends Scene2 {
5300
5292
  this.dirty = true;
5301
5293
  }
5302
5294
  };
5303
- this.options = (0, import_ts_deepmerge9.default)({}, _MineRenderScene.DEFAULT_OPTIONS, options ?? {});
5295
+ this.options = (0, import_ts_deepmerge8.default)({}, _MineRenderScene.DEFAULT_OPTIONS, options ?? {});
5304
5296
  }
5305
5297
  add(...objects) {
5306
5298
  for (const object of objects) {
@@ -5396,7 +5388,7 @@ var _MineRenderScene = class _MineRenderScene extends Scene2 {
5396
5388
  return this.addSceneObject(entity, () => new EntityObject(entity, options), options, parent);
5397
5389
  }
5398
5390
  };
5399
- _MineRenderScene.DEFAULT_OPTIONS = (0, import_ts_deepmerge9.default)({}, {});
5391
+ _MineRenderScene.DEFAULT_OPTIONS = (0, import_ts_deepmerge8.default)({}, {});
5400
5392
  var MineRenderScene = _MineRenderScene;
5401
5393
  function isMineRenderScene(obj) {
5402
5394
  return obj.isMineRenderScene;
@@ -5404,7 +5396,7 @@ function isMineRenderScene(obj) {
5404
5396
 
5405
5397
  // src/renderer/Renderer.ts
5406
5398
  import { AxesHelper as AxesHelper3, GridHelper, OrthographicCamera, PCFSoftShadowMap, PerspectiveCamera, SRGBColorSpace as SRGBColorSpace3, Vector3 as Vector38, WebGLRenderer } from "three";
5407
- var import_ts_deepmerge10 = __toESM(require_dist());
5399
+ var import_ts_deepmerge9 = __toESM(require_dist());
5408
5400
  import Stats from "stats.js";
5409
5401
  import { EffectComposer, RenderPass } from "postprocessing";
5410
5402
 
@@ -6069,7 +6061,7 @@ var _Renderer = class _Renderer {
6069
6061
  this._changeListener = () => {
6070
6062
  this._dirty = true;
6071
6063
  };
6072
- this.options = (0, import_ts_deepmerge10.default)({}, _Renderer.DEFAULT_OPTIONS, options ?? {});
6064
+ this.options = (0, import_ts_deepmerge9.default)({}, _Renderer.DEFAULT_OPTIONS, options ?? {});
6073
6065
  this._animationLoop = this.animate.bind(this);
6074
6066
  this._frameInterval = this.options.render.fpsLimit > 0 ? 1e3 / this.options.render.fpsLimit : void 0;
6075
6067
  this._scene = this.createScene();
@@ -6354,7 +6346,7 @@ var _Renderer = class _Renderer {
6354
6346
  }
6355
6347
  ///
6356
6348
  };
6357
- _Renderer.DEFAULT_OPTIONS = (0, import_ts_deepmerge10.default)({}, {
6349
+ _Renderer.DEFAULT_OPTIONS = (0, import_ts_deepmerge9.default)({}, {
6358
6350
  camera: {
6359
6351
  type: "perspective",
6360
6352
  near: 1,