minerender 2.1.0-alpha.8 → 2.1.0-alpha.9

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.
@@ -23,14 +23,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
23
23
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
24
24
  mod
25
25
  ));
26
- var __decorateClass = (decorators, target, key, kind) => {
27
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
28
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
29
- if (decorator = decorators[i])
30
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
31
- if (kind && result) __defProp(target, key, result);
32
- return result;
33
- };
34
26
 
35
27
  // ../../node_modules/ts-deepmerge/dist/index.js
36
28
  var require_dist = __commonJS({
@@ -154,11 +146,14 @@ var _PersistentCache = class _PersistentCache {
154
146
  static open(name) {
155
147
  return Env.provider.openCache(name, _PersistentCache.VERSION);
156
148
  }
149
+ /** Loads a missing entry and stores only non-nullish results. */
157
150
  async getOrLoad(key, loader) {
158
151
  let v = await this.get(key);
159
152
  if (typeof v === "undefined" || v === null) {
160
153
  v = await loader(key);
161
- await this.put(key, v);
154
+ if (typeof v !== "undefined" && v !== null) {
155
+ await this.put(key, v);
156
+ }
162
157
  }
163
158
  return v;
164
159
  }
@@ -394,7 +389,10 @@ function serializeMeshKey(key) {
394
389
  // src/cache/Caching.ts
395
390
  import { Caches } from "@inventivetalent/loading-cache";
396
391
  import { Time } from "@inventivetalent/time";
397
- var Caching = class {
392
+ var _Caching = class _Caching {
393
+ static createAssetCache() {
394
+ return Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(30)).buildAsync();
395
+ }
398
396
  /** Every cache above, so clear()/end() can never fall out of sync with the field list again. */
399
397
  static get all() {
400
398
  return [
@@ -411,7 +409,10 @@ var Caching = class {
411
409
  this.rawModelCache,
412
410
  this.mergedModelCache,
413
411
  this.modelTextureAtlasCache,
414
- this.blockStateCache
412
+ this.blockStateCache,
413
+ this.listAssetCache,
414
+ this.defaultBlockStatesCache,
415
+ this.entityModelsCache
415
416
  ];
416
417
  }
417
418
  static clear() {
@@ -437,20 +438,24 @@ var Caching = class {
437
438
  };
438
439
  }
439
440
  };
440
- Caching.rawImageCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(5)).buildAsync();
441
- Caching.imageDataCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(10)).buildAsync();
442
- Caching.canvasImageDataCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(10)).buildAsync();
443
- Caching.wrappedImageCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(10)).buildAsync();
444
- Caching.boxGeometryCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(20)).build();
445
- Caching.textureCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(30)).build();
446
- Caching.materialCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(30)).build();
447
- Caching.boxMeshCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(30)).build();
448
- Caching.textureAssetCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(30)).buildAsync();
449
- Caching.textureMetaCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(30)).buildAsync();
450
- Caching.rawModelCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(30)).buildAsync();
451
- Caching.mergedModelCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(30)).buildAsync();
452
- Caching.modelTextureAtlasCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(30)).buildAsync();
453
- Caching.blockStateCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(30)).buildAsync();
441
+ _Caching.rawImageCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(5)).buildAsync();
442
+ _Caching.imageDataCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(10)).buildAsync();
443
+ _Caching.canvasImageDataCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(10)).buildAsync();
444
+ _Caching.wrappedImageCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(10)).buildAsync();
445
+ _Caching.boxGeometryCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(20)).build();
446
+ _Caching.textureCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(30)).build();
447
+ _Caching.materialCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(30)).build();
448
+ _Caching.boxMeshCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(30)).build();
449
+ _Caching.textureAssetCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(30)).buildAsync();
450
+ _Caching.textureMetaCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(30)).buildAsync();
451
+ _Caching.rawModelCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(30)).buildAsync();
452
+ _Caching.mergedModelCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(30)).buildAsync();
453
+ _Caching.modelTextureAtlasCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(30)).buildAsync();
454
+ _Caching.blockStateCache = Caches.builder().expireAfterWrite(Time.minutes(10)).expireAfterAccess(Time.minutes(5)).expirationInterval(Time.seconds(30)).buildAsync();
455
+ _Caching.listAssetCache = _Caching.createAssetCache();
456
+ _Caching.defaultBlockStatesCache = _Caching.createAssetCache();
457
+ _Caching.entityModelsCache = _Caching.createAssetCache();
458
+ var Caching = _Caching;
454
459
 
455
460
  // src/Geometries.ts
456
461
  var Geometries = class _Geometries {
@@ -1232,9 +1237,6 @@ var ModelMerger = class {
1232
1237
  }
1233
1238
  };
1234
1239
 
1235
- // src/assets/Models.ts
1236
- import { Memoize } from "typescript-memoize";
1237
-
1238
1240
  // src/assets/source/parser/AssetParsers.ts
1239
1241
  var AssetParser = /* @__PURE__ */ ((AssetParser2) => {
1240
1242
  AssetParser2["MODEL"] = "model";
@@ -1248,14 +1250,14 @@ var AssetParser = /* @__PURE__ */ ((AssetParser2) => {
1248
1250
  })(AssetParser || {});
1249
1251
 
1250
1252
  // src/assets/Models.ts
1251
- var _Models = class _Models {
1253
+ var Models = class _Models {
1252
1254
  // opened lazily: touching the store at import time would hit IndexedDB/disk just for loading
1253
1255
  // the library, and would require an EnvProvider before any entry has had a chance to register
1254
1256
  static get PERSISTENT_CACHE() {
1255
1257
  return this._persistentCache ?? (this._persistentCache = PersistentCache.open("minerender-models"));
1256
1258
  }
1257
1259
  static async getItemList() {
1258
- return AssetLoader.get(new AssetKey(
1260
+ const key = new AssetKey(
1259
1261
  DEFAULT_NAMESPACE,
1260
1262
  "_list",
1261
1263
  "models",
@@ -1263,7 +1265,10 @@ var _Models = class _Models {
1263
1265
  "assets",
1264
1266
  ".json",
1265
1267
  DEFAULT_ROOT
1266
- ), "list" /* LIST */).then((r) => r?.files ?? []);
1268
+ );
1269
+ return Caching.listAssetCache.get(key.serialize(), () => {
1270
+ return AssetLoader.get(key, "list" /* LIST */);
1271
+ }).then((r) => r?.files ?? []);
1267
1272
  }
1268
1273
  static async loadAndMerge(key) {
1269
1274
  const model = await this.getRaw(key);
@@ -1310,19 +1315,15 @@ var _Models = class _Models {
1310
1315
  return this.PERSISTENT_CACHE.clear();
1311
1316
  }
1312
1317
  };
1313
- __decorateClass([
1314
- Memoize()
1315
- ], _Models, "getItemList", 1);
1316
- var Models = _Models;
1317
1318
 
1318
1319
  // src/assets/BlockStates.ts
1319
- import { Memoize as Memoize2 } from "typescript-memoize";
1320
1320
  var BlockStates = class {
1321
1321
  static get PERSISTENT_CACHE() {
1322
1322
  return this._persistentCache ?? (this._persistentCache = PersistentCache.open("minerender-blockstates"));
1323
1323
  }
1324
+ // BlockState names are hardcoded
1324
1325
  static async getList() {
1325
- return AssetLoader.get(new AssetKey(
1326
+ const key = new AssetKey(
1326
1327
  DEFAULT_NAMESPACE,
1327
1328
  "_list",
1328
1329
  "blockstates",
@@ -1330,11 +1331,16 @@ var BlockStates = class {
1330
1331
  "assets",
1331
1332
  ".json",
1332
1333
  DEFAULT_ROOT
1333
- ), "list" /* LIST */).then((r) => r?.files ?? []);
1334
+ );
1335
+ return Caching.listAssetCache.get(key.serialize(), () => {
1336
+ return AssetLoader.get(key, "list" /* LIST */);
1337
+ }).then((r) => r?.files ?? []);
1334
1338
  }
1335
1339
  static async getDefaultStates() {
1336
1340
  const key = AssetKey.parse("blockstates", "minerender:defaultBlockStates");
1337
- return AssetLoader.get(key, "json" /* JSON */);
1341
+ return Caching.defaultBlockStatesCache.get(key.serialize(), () => {
1342
+ return AssetLoader.get(key, "json" /* JSON */);
1343
+ });
1338
1344
  }
1339
1345
  static async getDefaultState(key) {
1340
1346
  const defaultStates = await this.getDefaultStates();
@@ -1373,12 +1379,6 @@ var BlockStates = class {
1373
1379
  await this.PERSISTENT_CACHE.clear();
1374
1380
  }
1375
1381
  };
1376
- __decorateClass([
1377
- Memoize2()
1378
- ], BlockStates, "getList", 1);
1379
- __decorateClass([
1380
- Memoize2()
1381
- ], BlockStates, "getDefaultStates", 1);
1382
1382
  var DefaultBlockStates = class {
1383
1383
  };
1384
1384
 
@@ -2428,17 +2428,20 @@ function shutdown() {
2428
2428
  }
2429
2429
 
2430
2430
  // src/assets/Entities.ts
2431
- import { Memoize as Memoize3 } from "typescript-memoize";
2432
2431
  var Entities = class {
2433
2432
  static async getBlockEntityModels() {
2434
2433
  const key = AssetKey.parse("models", "minerender:blockEntityModels");
2435
2434
  console.log(key);
2436
- return AssetLoader.get(key, "json" /* JSON */);
2435
+ return Caching.entityModelsCache.get(key.serialize(), () => {
2436
+ return AssetLoader.get(key, "json" /* JSON */);
2437
+ });
2437
2438
  }
2438
2439
  static async getEntityModels() {
2439
2440
  const key = AssetKey.parse("models", "minerender:entityModels");
2440
2441
  console.log(key);
2441
- return AssetLoader.get(key, "json" /* JSON */);
2442
+ return Caching.entityModelsCache.get(key.serialize(), () => {
2443
+ return AssetLoader.get(key, "json" /* JSON */);
2444
+ });
2442
2445
  }
2443
2446
  // BlockEntity names are hardcoded
2444
2447
  static async getBlockList() {
@@ -2484,12 +2487,6 @@ var Entities = class {
2484
2487
  };
2485
2488
  }
2486
2489
  };
2487
- __decorateClass([
2488
- Memoize3()
2489
- ], Entities, "getBlockEntityModels", 1);
2490
- __decorateClass([
2491
- Memoize3()
2492
- ], Entities, "getEntityModels", 1);
2493
2490
  var EntityModels = class {
2494
2491
  };
2495
2492
  var BlockEntityModels = class {