minerender 2.1.0-alpha.5 → 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.
@@ -60,7 +60,7 @@ declare function createCanvas(width: number, height: number): CompatCanvas;
60
60
  declare abstract class PersistentCache<B = unknown> {
61
61
  readonly backing: B;
62
62
  /** Bump to invalidate every persisted entry. */
63
- static readonly VERSION = 1;
63
+ static readonly VERSION = 2;
64
64
  static open(name: string): PersistentCache;
65
65
  protected constructor(backing: B);
66
66
  abstract get<T>(key: string): Promise<T>;
@@ -621,6 +621,7 @@ declare class AssetLoader {
621
621
  static addSource(key: string, source: AssetSource, override?: boolean): void;
622
622
  static removeSource(key: string): Maybe<AssetSource>;
623
623
  static getAll<T extends MinecraftAsset>(key: AssetKey, parser: AssetParser | string): Promise<T[]>;
624
+ /** Returns the first defined result in source-priority order, without merging assets. */
624
625
  static get<T extends MinecraftAsset>(key: AssetKey, parser: AssetParser | string): Promise<Maybe<T>>;
625
626
  }
626
627
 
@@ -60,7 +60,7 @@ declare function createCanvas(width: number, height: number): CompatCanvas;
60
60
  declare abstract class PersistentCache<B = unknown> {
61
61
  readonly backing: B;
62
62
  /** Bump to invalidate every persisted entry. */
63
- static readonly VERSION = 1;
63
+ static readonly VERSION = 2;
64
64
  static open(name: string): PersistentCache;
65
65
  protected constructor(backing: B);
66
66
  abstract get<T>(key: string): Promise<T>;
@@ -621,6 +621,7 @@ declare class AssetLoader {
621
621
  static addSource(key: string, source: AssetSource, override?: boolean): void;
622
622
  static removeSource(key: string): Maybe<AssetSource>;
623
623
  static getAll<T extends MinecraftAsset>(key: AssetKey, parser: AssetParser | string): Promise<T[]>;
624
+ /** Returns the first defined result in source-priority order, without merging assets. */
624
625
  static get<T extends MinecraftAsset>(key: AssetKey, parser: AssetParser | string): Promise<Maybe<T>>;
625
626
  }
626
627
 
@@ -90,7 +90,7 @@ var require_dist = __commonJS({
90
90
  return false;
91
91
  };
92
92
  var PROTECTED_KEYS = ["__proto__"];
93
- var merge11 = function() {
93
+ var merge10 = function() {
94
94
  var objects = [];
95
95
  for (var _i = 0; _i < arguments.length; _i++) {
96
96
  objects[_i] = arguments[_i];
@@ -101,9 +101,9 @@ var require_dist = __commonJS({
101
101
  return;
102
102
  }
103
103
  if (Array.isArray(result[key]) && Array.isArray(current[key])) {
104
- result[key] = merge11.options.mergeArrays ? Array.from(new Set(result[key].concat(current[key]))) : current[key];
104
+ result[key] = merge10.options.mergeArrays ? Array.from(new Set(result[key].concat(current[key]))) : current[key];
105
105
  } else if (isObject(result[key]) && isObject(current[key])) {
106
- result[key] = merge11(result[key], current[key]);
106
+ result[key] = merge10(result[key], current[key]);
107
107
  } else {
108
108
  result[key] = current[key];
109
109
  }
@@ -114,18 +114,18 @@ var require_dist = __commonJS({
114
114
  var defaultOptions = {
115
115
  mergeArrays: true
116
116
  };
117
- merge11.options = defaultOptions;
118
- merge11.withOptions = function(options) {
117
+ merge10.options = defaultOptions;
118
+ merge10.withOptions = function(options) {
119
119
  var objects = [];
120
120
  for (var _i = 1; _i < arguments.length; _i++) {
121
121
  objects[_i - 1] = arguments[_i];
122
122
  }
123
- merge11.options = __assign({ mergeArrays: true }, options);
124
- var result = merge11.apply(void 0, __spreadArray([], __read(objects), false));
125
- merge11.options = defaultOptions;
123
+ merge10.options = __assign({ mergeArrays: true }, options);
124
+ var result = merge10.apply(void 0, __spreadArray([], __read(objects), false));
125
+ merge10.options = defaultOptions;
126
126
  return result;
127
127
  };
128
- exports.default = merge11;
128
+ exports.default = merge10;
129
129
  }
130
130
  });
131
131
 
@@ -318,7 +318,7 @@ var _PersistentCache = class _PersistentCache {
318
318
  }
319
319
  };
320
320
  /** Bump to invalidate every persisted entry. */
321
- _PersistentCache.VERSION = 1;
321
+ _PersistentCache.VERSION = 2;
322
322
  var PersistentCache = _PersistentCache;
323
323
 
324
324
  // src/env/browser/BrowserCache.ts
@@ -419,7 +419,8 @@ var BrowserEnv = class {
419
419
  }
420
420
  openCache(name, version) {
421
421
  return new BrowserCache(import_localforage.default.createInstance({
422
- name,
422
+ // IndexedDB schema upgrades retain records; each cache generation needs its own database.
423
+ name: name + version,
423
424
  version
424
425
  }));
425
426
  }
@@ -1811,7 +1812,6 @@ var ArchiveAssetSource = class _ArchiveAssetSource extends AssetSource {
1811
1812
  };
1812
1813
 
1813
1814
  // src/assets/AssetLoader.ts
1814
- var import_ts_deepmerge3 = __toESM(require_dist());
1815
1815
  var p5 = prefix("AssetLoader");
1816
1816
  var _AssetLoader = class _AssetLoader {
1817
1817
  static addSource(key, source, override = true) {
@@ -1835,7 +1835,6 @@ var _AssetLoader = class _AssetLoader {
1835
1835
  return void 0;
1836
1836
  }
1837
1837
  static async getAll(key, parser) {
1838
- console.log(this._SOURCES);
1839
1838
  let promises = [];
1840
1839
  for (const source of this._SOURCES) {
1841
1840
  promises.push(source.source.get(key, parser));
@@ -1844,24 +1843,16 @@ var _AssetLoader = class _AssetLoader {
1844
1843
  return results.filter((r) => r != void 0);
1845
1844
  });
1846
1845
  }
1846
+ /** Returns the first defined result in source-priority order, without merging assets. */
1847
1847
  static async get(key, parser) {
1848
- console.log(this._SOURCES);
1849
- let promises = [];
1850
- for (const source of this._SOURCES) {
1851
- promises.push(source.source.get(key, parser));
1852
- }
1853
- return Promise.all(promises).then((results) => {
1854
- const fallback = results[results.length - 1];
1855
- for (const result of results) {
1856
- if (result) {
1857
- if (fallback) {
1858
- return (0, import_ts_deepmerge3.default)({}, fallback, result);
1859
- }
1860
- return result;
1861
- }
1848
+ const sources = [...this._SOURCES];
1849
+ for (const source of sources) {
1850
+ const result = await source.source.get(key, parser);
1851
+ if (result !== void 0) {
1852
+ return result;
1862
1853
  }
1863
- return void 0;
1864
- });
1854
+ }
1855
+ return void 0;
1865
1856
  }
1866
1857
  };
1867
1858
  _AssetLoader.ROOT = DEFAULT_ROOT;
@@ -2683,7 +2674,7 @@ var MineRenderError = class _MineRenderError extends Error {
2683
2674
  };
2684
2675
 
2685
2676
  // src/renderer/SceneObject.ts
2686
- var import_ts_deepmerge4 = __toESM(require_dist());
2677
+ var import_ts_deepmerge3 = __toESM(require_dist());
2687
2678
  var p7 = prefix("SceneObject");
2688
2679
  var _SceneObject = class _SceneObject extends import_three9.Object3D {
2689
2680
  constructor(options) {
@@ -2692,7 +2683,7 @@ var _SceneObject = class _SceneObject extends import_three9.Object3D {
2692
2683
  this.materialCallbacks = {};
2693
2684
  this._isInstanced = false;
2694
2685
  this._instanceCounter = 0;
2695
- this.options = (0, import_ts_deepmerge4.default)({}, _SceneObject.DEFAULT_OPTIONS, options ?? {});
2686
+ this.options = (0, import_ts_deepmerge3.default)({}, _SceneObject.DEFAULT_OPTIONS, options ?? {});
2696
2687
  console.log("SceneObject options", this.options);
2697
2688
  }
2698
2689
  set scene(scene) {
@@ -3041,7 +3032,7 @@ var _SceneObject = class _SceneObject extends import_three9.Object3D {
3041
3032
  }
3042
3033
  //</editor-fold>
3043
3034
  };
3044
- _SceneObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge4.default)({}, {
3035
+ _SceneObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge3.default)({}, {
3045
3036
  instanceMeshes: true,
3046
3037
  maxInstanceCount: 50,
3047
3038
  mergeMeshes: true,
@@ -3053,7 +3044,7 @@ function isSceneObject(obj) {
3053
3044
  }
3054
3045
 
3055
3046
  // src/entity/scene/EntityObject.ts
3056
- var import_ts_deepmerge5 = __toESM(require_dist());
3047
+ var import_ts_deepmerge4 = __toESM(require_dist());
3057
3048
  var import_three11 = require("three");
3058
3049
  var THREE3 = __toESM(require("three"));
3059
3050
  var EntityObject = class extends SceneObject {
@@ -3062,7 +3053,7 @@ var EntityObject = class extends SceneObject {
3062
3053
  this.entity = entity;
3063
3054
  this.isEntityObject = true;
3064
3055
  this.meshesCreated = false;
3065
- this.options = (0, import_ts_deepmerge5.default)({}, SceneObject.DEFAULT_OPTIONS, options ?? {});
3056
+ this.options = (0, import_ts_deepmerge4.default)({}, SceneObject.DEFAULT_OPTIONS, options ?? {});
3066
3057
  }
3067
3058
  async init() {
3068
3059
  this.createMeshes();
@@ -3129,7 +3120,7 @@ var EntityObject = class extends SceneObject {
3129
3120
  }
3130
3121
  }
3131
3122
  };
3132
- EntityObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge5.default)({}, SceneObject.DEFAULT_OPTIONS, {});
3123
+ EntityObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge4.default)({}, SceneObject.DEFAULT_OPTIONS, {});
3133
3124
  function isEntityObject(obj) {
3134
3125
  return obj.isEntityObject;
3135
3126
  }
@@ -4120,7 +4111,7 @@ function computeMorphedAttributes(object) {
4120
4111
  }
4121
4112
 
4122
4113
  // src/model/scene/ModelObject.ts
4123
- var import_ts_deepmerge6 = __toESM(require_dist());
4114
+ var import_ts_deepmerge5 = __toESM(require_dist());
4124
4115
  var p10 = prefix("ModelObject");
4125
4116
  var _ModelObject = class _ModelObject extends SceneObject {
4126
4117
  constructor(originalModel, options) {
@@ -4128,7 +4119,7 @@ var _ModelObject = class _ModelObject extends SceneObject {
4128
4119
  this.originalModel = originalModel;
4129
4120
  this.isModelObject = true;
4130
4121
  this.meshesCreated = false;
4131
- this.options = (0, import_ts_deepmerge6.default)({}, _ModelObject.DEFAULT_OPTIONS, options ?? {});
4122
+ this.options = (0, import_ts_deepmerge5.default)({}, _ModelObject.DEFAULT_OPTIONS, options ?? {});
4132
4123
  console.log("ModelObject options", this.options);
4133
4124
  }
4134
4125
  async init() {
@@ -4226,14 +4217,14 @@ var _ModelObject = class _ModelObject extends SceneObject {
4226
4217
  }
4227
4218
  }
4228
4219
  };
4229
- _ModelObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge6.default)({}, SceneObject.DEFAULT_OPTIONS, {});
4220
+ _ModelObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge5.default)({}, SceneObject.DEFAULT_OPTIONS, {});
4230
4221
  var ModelObject = _ModelObject;
4231
4222
  function isModelObject(obj) {
4232
4223
  return obj.isModelObject;
4233
4224
  }
4234
4225
 
4235
4226
  // src/model/block/scene/BlockObject.ts
4236
- var import_ts_deepmerge7 = __toESM(require_dist());
4227
+ var import_ts_deepmerge6 = __toESM(require_dist());
4237
4228
  var import_three16 = require("three");
4238
4229
  var p11 = prefix("BlockObject");
4239
4230
  var _BlockObject = class _BlockObject extends SceneObject {
@@ -4249,7 +4240,7 @@ var _BlockObject = class _BlockObject extends SceneObject {
4249
4240
  this._instanceModel = [];
4250
4241
  this._variants = [];
4251
4242
  this._models = [];
4252
- this.options = (0, import_ts_deepmerge7.default)({}, _BlockObject.DEFAULT_OPTIONS, options ?? {});
4243
+ this.options = (0, import_ts_deepmerge6.default)({}, _BlockObject.DEFAULT_OPTIONS, options ?? {});
4253
4244
  }
4254
4245
  async init() {
4255
4246
  if (this.options.applyDefaultState) {
@@ -4538,7 +4529,7 @@ var _BlockObject = class _BlockObject extends SceneObject {
4538
4529
  //TODO: should override rotation + scale methods
4539
4530
  //TODO
4540
4531
  };
4541
- _BlockObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge7.default)({}, ModelObject.DEFAULT_OPTIONS, {
4532
+ _BlockObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge6.default)({}, ModelObject.DEFAULT_OPTIONS, {
4542
4533
  applyDefaultState: true
4543
4534
  });
4544
4535
  var BlockObject = _BlockObject;
@@ -4588,7 +4579,7 @@ var StructureParser = class {
4588
4579
 
4589
4580
  // src/renderer/MineRenderScene.ts
4590
4581
  var import_three17 = require("three");
4591
- var import_ts_deepmerge9 = __toESM(require_dist());
4582
+ var import_ts_deepmerge8 = __toESM(require_dist());
4592
4583
 
4593
4584
  // src/skin/SkinPart.ts
4594
4585
  var SkinPart = /* @__PURE__ */ ((SkinPart2) => {
@@ -5319,7 +5310,7 @@ var slimSkinGeometries = {
5319
5310
  };
5320
5311
 
5321
5312
  // src/skin/scene/SkinObject.ts
5322
- var import_ts_deepmerge8 = __toESM(require_dist());
5313
+ var import_ts_deepmerge7 = __toESM(require_dist());
5323
5314
  var SkinObject = class extends SceneObject {
5324
5315
  constructor(options) {
5325
5316
  super();
@@ -5327,7 +5318,7 @@ var SkinObject = class extends SceneObject {
5327
5318
  this.legacy = false;
5328
5319
  this.skinTextureWidth = 64;
5329
5320
  this.skinTextureHeight = 64;
5330
- this.options = (0, import_ts_deepmerge8.default)({}, SceneObject.DEFAULT_OPTIONS, options ?? {});
5321
+ this.options = (0, import_ts_deepmerge7.default)({}, SceneObject.DEFAULT_OPTIONS, options ?? {});
5331
5322
  }
5332
5323
  async init() {
5333
5324
  this.createMeshes();
@@ -5444,7 +5435,7 @@ var _MineRenderScene = class _MineRenderScene extends import_three17.Scene {
5444
5435
  this.dirty = true;
5445
5436
  }
5446
5437
  };
5447
- this.options = (0, import_ts_deepmerge9.default)({}, _MineRenderScene.DEFAULT_OPTIONS, options ?? {});
5438
+ this.options = (0, import_ts_deepmerge8.default)({}, _MineRenderScene.DEFAULT_OPTIONS, options ?? {});
5448
5439
  }
5449
5440
  add(...objects) {
5450
5441
  for (const object of objects) {
@@ -5540,7 +5531,7 @@ var _MineRenderScene = class _MineRenderScene extends import_three17.Scene {
5540
5531
  return this.addSceneObject(entity, () => new EntityObject(entity, options), options, parent);
5541
5532
  }
5542
5533
  };
5543
- _MineRenderScene.DEFAULT_OPTIONS = (0, import_ts_deepmerge9.default)({}, {});
5534
+ _MineRenderScene.DEFAULT_OPTIONS = (0, import_ts_deepmerge8.default)({}, {});
5544
5535
  var MineRenderScene = _MineRenderScene;
5545
5536
  function isMineRenderScene(obj) {
5546
5537
  return obj.isMineRenderScene;
@@ -5548,7 +5539,7 @@ function isMineRenderScene(obj) {
5548
5539
 
5549
5540
  // src/renderer/Renderer.ts
5550
5541
  var import_three19 = require("three");
5551
- var import_ts_deepmerge10 = __toESM(require_dist());
5542
+ var import_ts_deepmerge9 = __toESM(require_dist());
5552
5543
  var import_stats = __toESM(require("stats.js"));
5553
5544
  var import_postprocessing = require("postprocessing");
5554
5545
 
@@ -6205,7 +6196,7 @@ var _Renderer = class _Renderer {
6205
6196
  this._changeListener = () => {
6206
6197
  this._dirty = true;
6207
6198
  };
6208
- this.options = (0, import_ts_deepmerge10.default)({}, _Renderer.DEFAULT_OPTIONS, options ?? {});
6199
+ this.options = (0, import_ts_deepmerge9.default)({}, _Renderer.DEFAULT_OPTIONS, options ?? {});
6209
6200
  this._animationLoop = this.animate.bind(this);
6210
6201
  this._frameInterval = this.options.render.fpsLimit > 0 ? 1e3 / this.options.render.fpsLimit : void 0;
6211
6202
  this._scene = this.createScene();
@@ -6490,7 +6481,7 @@ var _Renderer = class _Renderer {
6490
6481
  }
6491
6482
  ///
6492
6483
  };
6493
- _Renderer.DEFAULT_OPTIONS = (0, import_ts_deepmerge10.default)({}, {
6484
+ _Renderer.DEFAULT_OPTIONS = (0, import_ts_deepmerge9.default)({}, {
6494
6485
  camera: {
6495
6486
  type: "perspective",
6496
6487
  near: 1,