minerender 2.0.0-alpha.7 → 2.0.0-alpha.8

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.
Files changed (94) hide show
  1. package/ava.config.js +10 -0
  2. package/dist/bundle.js +1463 -649
  3. package/dist/bundle.js.map +4 -4
  4. package/dist/cjs/assets/AssetKey.js.map +1 -1
  5. package/dist/cjs/assets/AssetLoader.d.ts +5 -20
  6. package/dist/cjs/assets/AssetLoader.js +16 -127
  7. package/dist/cjs/assets/AssetLoader.js.map +1 -1
  8. package/dist/cjs/assets/BlockStates.d.ts +1 -0
  9. package/dist/cjs/assets/BlockStates.js +8 -4
  10. package/dist/cjs/assets/BlockStates.js.map +1 -1
  11. package/dist/cjs/assets/ModelTextures.js +3 -2
  12. package/dist/cjs/assets/ModelTextures.js.map +1 -1
  13. package/dist/cjs/assets/Models.js +3 -4
  14. package/dist/cjs/assets/Models.js.map +1 -1
  15. package/dist/cjs/assets/index.d.ts +1 -0
  16. package/dist/cjs/assets/index.js +1 -0
  17. package/dist/cjs/assets/index.js.map +1 -1
  18. package/dist/cjs/assets/source/AssetSource.d.ts +8 -0
  19. package/dist/cjs/assets/source/AssetSource.js +9 -0
  20. package/dist/cjs/assets/source/AssetSource.js.map +1 -0
  21. package/dist/cjs/assets/source/HostedAssetSource.d.ts +33 -0
  22. package/dist/cjs/assets/source/HostedAssetSource.js +190 -0
  23. package/dist/cjs/assets/source/HostedAssetSource.js.map +1 -0
  24. package/dist/cjs/assets/source/index.d.ts +3 -0
  25. package/dist/cjs/assets/source/index.js +21 -0
  26. package/dist/cjs/assets/source/index.js.map +1 -0
  27. package/dist/cjs/assets/source/parser/AssetParsers.d.ts +9 -0
  28. package/dist/cjs/assets/source/parser/AssetParsers.js +14 -0
  29. package/dist/cjs/assets/source/parser/AssetParsers.js.map +1 -0
  30. package/dist/cjs/assets/source/parser/ResponseParser.d.ts +7 -0
  31. package/dist/cjs/assets/source/parser/ResponseParser.js +3 -0
  32. package/dist/cjs/assets/source/parser/ResponseParser.js.map +1 -0
  33. package/dist/cjs/assets/source/parser/index.d.ts +2 -0
  34. package/dist/cjs/assets/source/parser/index.js +20 -0
  35. package/dist/cjs/assets/source/parser/index.js.map +1 -0
  36. package/dist/cjs/index.d.ts +2 -0
  37. package/dist/cjs/index.js +2 -0
  38. package/dist/cjs/index.js.map +1 -1
  39. package/dist/cjs/three/index.d.ts +0 -2
  40. package/dist/cjs/three/index.js +0 -2
  41. package/dist/cjs/three/index.js.map +1 -1
  42. package/dist/esm/assets/AssetKey.js.map +1 -1
  43. package/dist/esm/assets/AssetLoader.d.ts +5 -20
  44. package/dist/esm/assets/AssetLoader.js +17 -128
  45. package/dist/esm/assets/AssetLoader.js.map +1 -1
  46. package/dist/esm/assets/BlockStates.d.ts +1 -0
  47. package/dist/esm/assets/BlockStates.js +8 -4
  48. package/dist/esm/assets/BlockStates.js.map +1 -1
  49. package/dist/esm/assets/ModelTextures.js +3 -2
  50. package/dist/esm/assets/ModelTextures.js.map +1 -1
  51. package/dist/esm/assets/Models.js +3 -4
  52. package/dist/esm/assets/Models.js.map +1 -1
  53. package/dist/esm/assets/index.d.ts +1 -0
  54. package/dist/esm/assets/index.js +1 -0
  55. package/dist/esm/assets/index.js.map +1 -1
  56. package/dist/esm/assets/source/AssetSource.d.ts +8 -0
  57. package/dist/esm/assets/source/AssetSource.js +5 -0
  58. package/dist/esm/assets/source/AssetSource.js.map +1 -0
  59. package/dist/esm/assets/source/HostedAssetSource.d.ts +33 -0
  60. package/dist/esm/assets/source/HostedAssetSource.js +183 -0
  61. package/dist/esm/assets/source/HostedAssetSource.js.map +1 -0
  62. package/dist/esm/assets/source/index.d.ts +3 -0
  63. package/dist/esm/assets/source/index.js +5 -0
  64. package/dist/esm/assets/source/index.js.map +1 -0
  65. package/dist/esm/assets/source/parser/AssetParsers.d.ts +9 -0
  66. package/dist/esm/assets/source/parser/AssetParsers.js +11 -0
  67. package/dist/esm/assets/source/parser/AssetParsers.js.map +1 -0
  68. package/dist/esm/assets/source/parser/ResponseParser.d.ts +7 -0
  69. package/dist/esm/assets/source/parser/ResponseParser.js +2 -0
  70. package/dist/esm/assets/source/parser/ResponseParser.js.map +1 -0
  71. package/dist/esm/assets/source/parser/index.d.ts +2 -0
  72. package/dist/esm/assets/source/parser/index.js +4 -0
  73. package/dist/esm/assets/source/parser/index.js.map +1 -0
  74. package/dist/esm/index.d.ts +2 -0
  75. package/dist/esm/index.js +2 -0
  76. package/dist/esm/index.js.map +1 -1
  77. package/dist/esm/three/index.d.ts +0 -2
  78. package/dist/esm/three/index.js +0 -2
  79. package/dist/esm/three/index.js.map +1 -1
  80. package/package.json +9 -5
  81. package/src/assets/AssetKey.ts +0 -1
  82. package/src/assets/AssetLoader.ts +22 -123
  83. package/src/assets/BlockStates.ts +9 -5
  84. package/src/assets/ModelTextures.ts +3 -2
  85. package/src/assets/Models.ts +5 -5
  86. package/src/assets/index.ts +9 -8
  87. package/src/assets/source/AssetSource.ts +13 -0
  88. package/src/assets/source/HostedAssetSource.ts +191 -0
  89. package/src/assets/source/index.ts +4 -0
  90. package/src/assets/source/parser/AssetParsers.ts +11 -0
  91. package/src/assets/source/parser/ResponseParser.ts +9 -0
  92. package/src/assets/source/parser/index.ts +3 -0
  93. package/src/index.ts +68 -66
  94. package/src/three/index.ts +3 -5
@@ -1 +1 @@
1
- {"version":3,"file":"AssetKey.js","sourceRoot":"src/","sources":["assets/AssetKey.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AssetKey.js","sourceRoot":"src/","sources":["assets/AssetKey.ts"],"names":[],"mappings":";;;AACA,qCAA2D;AAC3D,+CAA4C;AAI5C,MAAa,aAAa;IAOtB,YAAY,cAAsC,EAAE,IAAa;QAC7D,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,SAAS,GAAG,cAAwB,CAAC;YAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACpB;aAAM;YACH,IAAI,CAAC,SAAS,GAAI,cAAgC,CAAC,SAAS,CAAC;YAC7D,IAAI,CAAC,IAAI,GAAI,cAAgC,CAAC,IAAI,CAAA;SACrD;IACL,CAAC;IAED,kBAAkB;QACd,OAAO,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;IAC5C,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACrC,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;CACJ;AA5BD,sCA4BC;AAED,MAAa,QAAS,SAAQ,aAAa;IAEvC,YACa,SAAiB,EAAW,IAAY,EAC1C,SAAqB,EACrB,IAAa,EACb,WAAuC,QAAQ,EAC/C,YAAuC,OAAO,EAC9C,IAAa;QAEpB,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAPd,cAAS,GAAT,SAAS,CAAQ;QAAW,SAAI,GAAJ,IAAI,CAAQ;QAC1C,cAAS,GAAT,SAAS,CAAY;QACrB,SAAI,GAAJ,IAAI,CAAS;QACb,aAAQ,GAAR,QAAQ,CAAuC;QAC/C,cAAS,GAAT,SAAS,CAAqC;QAC9C,SAAI,GAAJ,IAAI,CAAS;IAGxB,CAAC;IAGM,MAAM,CAAC,KAAK,CAAC,SAAoB,EAAE,GAAW,EAAE,MAAiB;QACpE,IAAI,SAAS,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,KAAI,0BAAiB,CAAC;QACvD,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACnB,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5B,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;SAClB;QAED,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,IAAI,GAAuB,SAAS,CAAC;QACzC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAClB,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAChB,KAAK,CAAC,KAAK,EAAE,CAAC;SACjB;QACD,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE3B,IAAI,SAAS,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC9C,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC/B,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,KAAI,EAAE,CAAC;QAEhC,OAAO,IAAI,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,CAAC;IAC7F,CAAC;IAED,QAAQ;;QACJ,IAAI,CAAC,GAAG;YACJ,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,yBAAW,CAAC,IAAI,KAAK,qBAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,IAAI,mCAAI,yBAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU;YACtH,MAAA,IAAI,CAAC,QAAQ,mCAAI,cAAc;YAC/B,MAAA,IAAI,CAAC,SAAS,mCAAI,eAAe;YACjC,MAAA,IAAI,CAAC,IAAI,mCAAI,UAAU;YACvB,IAAI,CAAC,SAAS;YACd,IAAI,CAAC,IAAI;SACZ,CAAC;QACF,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;CACJ;AApDD,4BAoDC;AAED,SAAgB,eAAe,CAAC,GAAQ;IACpC,OAAO,WAAW,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC;AAC/C,CAAC;AAFD,0CAEC;AAED,SAAgB,UAAU,CAAC,GAAQ;IAC/B,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,OAAO,IAAI,GAAG,CAAC;AAClD,CAAC;AAFD,gCAEC"}
@@ -1,26 +1,11 @@
1
- import { Model, TextureAsset } from "../model/Model";
2
1
  import { Maybe } from "../util/util";
3
- import { AxiosRequestConfig, AxiosResponse } from "axios";
4
2
  import { MinecraftAsset } from "../MinecraftAsset";
5
- import { MinecraftTextureMeta } from "../MinecraftTextureMeta";
6
- import { BlockState } from "../model/block/BlockState";
7
- import { ListAsset } from "../ListAsset";
8
3
  import { AssetKey } from "./AssetKey";
9
- import { NBTAsset } from "../nbt/NBTHelper";
10
- export interface ResponseParser<T extends MinecraftAsset> {
11
- config(request: AxiosRequestConfig): any;
12
- parse(response: AxiosResponse): Maybe<T> | Promise<Maybe<T>>;
13
- }
4
+ import { AssetSource } from "./source/AssetSource";
5
+ import { AssetParser } from "./source/parser/AssetParsers";
14
6
  export declare class AssetLoader {
15
- static readonly MODEL: ResponseParser<Model>;
16
- static readonly BLOCKSTATE: ResponseParser<BlockState>;
17
- static readonly META: ResponseParser<MinecraftTextureMeta>;
18
- static readonly NBT: ResponseParser<NBTAsset>;
19
- static readonly IMAGE: ResponseParser<TextureAsset>;
20
- static readonly LIST: ResponseParser<ListAsset>;
21
- static readonly JSON: ResponseParser<any>;
22
7
  static ROOT: string;
23
- static loadOrRetryWithDefaults<T extends MinecraftAsset>(key: AssetKey, parser: ResponseParser<T>): Promise<Maybe<T>>;
24
- protected static load<T extends MinecraftAsset>(key: AssetKey, parser: ResponseParser<T>): Promise<Maybe<T>>;
25
- static assetBasePath(key: AssetKey): string;
8
+ private static _SOURCES;
9
+ static addSource(key: string, source: AssetSource): void;
10
+ static get<T extends MinecraftAsset>(key: AssetKey, parser: AssetParser | string): Promise<Maybe<T>>;
26
11
  }
@@ -8,146 +8,35 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var _a;
11
12
  Object.defineProperty(exports, "__esModule", { value: true });
12
13
  exports.AssetLoader = void 0;
13
- const Requests_1 = require("../request/Requests");
14
- const ImageLoader_1 = require("../image/ImageLoader");
15
14
  const Assets_1 = require("./Assets");
16
- const AssetKey_1 = require("./AssetKey");
17
- const NBTHelper_1 = require("../nbt/NBTHelper");
18
15
  const log_1 = require("../util/log");
16
+ const source_1 = require("./source");
19
17
  const p = (0, log_1.prefix)("AssetLoader");
20
18
  class AssetLoader {
21
- static loadOrRetryWithDefaults(key, parser) {
19
+ static addSource(key, source) {
20
+ this._SOURCES.unshift({ key, source });
21
+ console.log(p, "Added AssetSource", key);
22
+ }
23
+ static get(key, parser) {
22
24
  return __awaiter(this, void 0, void 0, function* () {
23
- const direct = yield this.load(key, parser);
24
- if (typeof direct !== "undefined") {
25
- return direct;
26
- }
27
- if (key.namespace !== Assets_1.DEFAULT_NAMESPACE) {
28
- console.info(p, "Retrying", key, "with default namespace");
29
- // Try on the same host but with default minecraft: namespace
30
- const namespaceKey = new AssetKey_1.AssetKey(Assets_1.DEFAULT_NAMESPACE, key.path, key.assetType, key.type, key.rootType, key.extension, key.root);
31
- const namespaced = yield this.load(namespaceKey, parser);
32
- if (typeof namespaced !== "undefined") {
33
- return namespaced;
34
- }
35
- if ((typeof key.root !== "undefined" && key.root !== Assets_1.DEFAULT_ROOT) || (typeof this.ROOT !== "undefined" && this.ROOT !== Assets_1.DEFAULT_ROOT)) {
36
- console.info(p, "Retrying", key, "with default root+namespace");
37
- // Try both defaults
38
- const namespacedRootedKey = new AssetKey_1.AssetKey(Assets_1.DEFAULT_NAMESPACE, key.path, key.assetType, key.type, key.rootType, key.extension, Assets_1.DEFAULT_ROOT);
39
- const namespacedRooted = yield this.load(namespacedRootedKey, parser);
40
- if (typeof namespacedRooted !== "undefined") {
41
- return namespacedRooted;
42
- }
43
- }
44
- }
45
- else if ((typeof key.root !== "undefined" && key.root !== Assets_1.DEFAULT_ROOT) || (typeof this.ROOT !== "undefined" && this.ROOT !== Assets_1.DEFAULT_ROOT)) {
46
- console.info(p, "Retrying", key, "with default root");
47
- // Try on default root
48
- const rootKey = new AssetKey_1.AssetKey(key.namespace, key.path, key.assetType, key.type, key.rootType, key.extension, Assets_1.DEFAULT_ROOT);
49
- const rooted = yield this.load(rootKey, parser);
50
- if (typeof rooted !== "undefined") {
51
- return rooted;
25
+ for (const source of this._SOURCES) {
26
+ const result = yield source.source.get(key, parser);
27
+ if (result) {
28
+ return result;
52
29
  }
53
30
  }
54
31
  return undefined;
55
32
  });
56
33
  }
57
- static load(key, parser) {
58
- return __awaiter(this, void 0, void 0, function* () {
59
- console.info(p, "Loading", key);
60
- const url = `${this.assetBasePath(key)}${key.type !== undefined ? key.type + '/' : ''}${key.path}${key.extension}`;
61
- console.debug(p, url);
62
- let req = {
63
- url: url
64
- };
65
- parser.config(req);
66
- return yield Requests_1.Requests.mcAssetRequest(req)
67
- .then(response => {
68
- if (response && response.data) {
69
- try {
70
- return parser.parse(response);
71
- }
72
- catch (e) {
73
- console.warn("Parser failed to process response", response, e);
74
- throw e;
75
- }
76
- }
77
- return undefined;
78
- })
79
- .catch(err => {
80
- if (err.response) {
81
- let response = err.response;
82
- if (response.status === 404) {
83
- console.debug(p, key, "not found");
84
- return undefined;
85
- }
86
- }
87
- console.debug(p, "Failed to load", key, err === null || err === void 0 ? void 0 : err.message);
88
- return undefined;
89
- });
90
- });
91
- }
92
- static assetBasePath(key) {
93
- var _a;
94
- return `${(_a = key.root) !== null && _a !== void 0 ? _a : this.ROOT}/${key.rootType !== undefined ? key.rootType + '/' : ''}${key.namespace !== undefined ? key.namespace + '/' : ''}${key.assetType !== undefined ? key.assetType + '/' : ''}`;
95
- }
96
34
  }
97
35
  exports.AssetLoader = AssetLoader;
98
- AssetLoader.MODEL = {
99
- config(request) {
100
- },
101
- parse(response) {
102
- return response.data;
103
- }
104
- };
105
- AssetLoader.BLOCKSTATE = {
106
- config(request) {
107
- },
108
- parse(response) {
109
- return response.data;
110
- }
111
- };
112
- AssetLoader.META = {
113
- config(request) {
114
- // request.responseType = "arraybuffer";
115
- },
116
- parse(response) {
117
- return response.data;
118
- }
119
- };
120
- AssetLoader.NBT = {
121
- config(request) {
122
- request.responseType = "arraybuffer";
123
- },
124
- parse(response) {
125
- return NBTHelper_1.NBTHelper.fromBuffer(Buffer.from(response.data));
126
- }
127
- };
128
- AssetLoader.IMAGE = {
129
- config(request) {
130
- request.responseType = "arraybuffer";
131
- },
132
- parse(response) {
133
- return __awaiter(this, void 0, void 0, function* () {
134
- return yield ImageLoader_1.ImageLoader.processResponse(response);
135
- });
136
- }
137
- };
138
- AssetLoader.LIST = {
139
- config(request) {
140
- },
141
- parse(response) {
142
- return response.data;
143
- }
144
- };
145
- AssetLoader.JSON = {
146
- config(request) {
147
- },
148
- parse(response) {
149
- return response.data;
150
- }
151
- };
36
+ _a = AssetLoader;
152
37
  AssetLoader.ROOT = Assets_1.DEFAULT_ROOT;
38
+ AssetLoader._SOURCES = [];
39
+ (() => {
40
+ _a.addSource("mcassets", new source_1.HostedAssetSource(Assets_1.DEFAULT_ROOT));
41
+ })();
153
42
  //# sourceMappingURL=AssetLoader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssetLoader.js","sourceRoot":"src/","sources":["assets/AssetLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AssetLoader.js","sourceRoot":"src/","sources":["assets/AssetLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAQA,qCAA2D;AAI3D,qCAAqC;AAGrC,qCAA6C;AAE7C,MAAM,CAAC,GAAG,IAAA,YAAM,EAAC,aAAa,CAAC,CAAC;AAGhC,MAAa,WAAW;IAMb,MAAM,CAAC,SAAS,CAAC,GAAW,EAAE,MAAmB;QACpD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAC,GAAG,EAAE,MAAM,EAAC,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAMM,MAAM,CAAO,GAAG,CAA2B,GAAa,EAAE,MAA4B;;YACzF,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAChC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;gBACvD,IAAI,MAAM,EAAE;oBACR,OAAO,MAAM,CAAC;iBACjB;aACJ;YACD,OAAO,SAAS,CAAC;QACrB,CAAC;KAAA;;AAvBL,kCAyBC;;AAvBU,gBAAI,GAAW,qBAAY,CAAC;AAEpB,oBAAQ,GAA2B,EAAE,CAAC;AAOrD;IACI,EAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,0BAAiB,CAAC,qBAAY,CAAC,CAAC,CAAC;AACpE,CAAC,GAAA,CAAA"}
@@ -8,4 +8,5 @@ export declare class BlockStates {
8
8
  static getDefaultState(key: AssetKey): Maybe<BlockStatePropertyDefaults>;
9
9
  static get(key: AssetKey): Promise<Maybe<BlockState>>;
10
10
  static getAll(keys: AssetKey[] | Iterable<AssetKey>): Promise<Maybe<BlockState>[]>;
11
+ static clearCache(): Promise<void>;
11
12
  }
@@ -26,11 +26,12 @@ const typescript_memoize_1 = require("typescript-memoize");
26
26
  const defaultBlockStates_json_1 = __importDefault(require("../model/defaultBlockStates.json"));
27
27
  const AssetKey_1 = require("./AssetKey");
28
28
  const PersistentCache_1 = require("../cache/PersistentCache");
29
+ const AssetParsers_1 = require("./source/parser/AssetParsers");
29
30
  class BlockStates {
30
31
  // BlockState names are hardcoded
31
32
  static getList() {
32
33
  return __awaiter(this, void 0, void 0, function* () {
33
- return AssetLoader_1.AssetLoader.loadOrRetryWithDefaults(new AssetKey_1.AssetKey(Assets_1.DEFAULT_NAMESPACE, "_list", "blockstates", undefined, "assets", ".json", Assets_1.DEFAULT_ROOT), AssetLoader_1.AssetLoader.LIST).then(r => { var _a; return (_a = r === null || r === void 0 ? void 0 : r.files) !== null && _a !== void 0 ? _a : []; });
34
+ return AssetLoader_1.AssetLoader.get(new AssetKey_1.AssetKey(Assets_1.DEFAULT_NAMESPACE, "_list", "blockstates", undefined, "assets", ".json", Assets_1.DEFAULT_ROOT), AssetParsers_1.AssetParser.LIST).then(r => { var _a; return (_a = r === null || r === void 0 ? void 0 : r.files) !== null && _a !== void 0 ? _a : []; });
34
35
  });
35
36
  }
36
37
  static getDefaultState(key) {
@@ -47,9 +48,7 @@ class BlockStates {
47
48
  const keyStr = key.serialize();
48
49
  return Caching_1.Caching.blockStateCache.get(keyStr, k => {
49
50
  return this.PERSISTENT_CACHE.getOrLoad(keyStr, k1 => {
50
- return AssetLoader_1.AssetLoader.loadOrRetryWithDefaults(key, AssetLoader_1.AssetLoader.BLOCKSTATE).then(asset => {
51
- return asset;
52
- });
51
+ return AssetLoader_1.AssetLoader.get(key, AssetParsers_1.AssetParser.BLOCKSTATE);
53
52
  });
54
53
  }).then(asset => {
55
54
  if (asset) {
@@ -66,6 +65,11 @@ class BlockStates {
66
65
  }
67
66
  return Promise.all(promises);
68
67
  }
68
+ static clearCache() {
69
+ return __awaiter(this, void 0, void 0, function* () {
70
+ yield this.PERSISTENT_CACHE.clear();
71
+ });
72
+ }
69
73
  }
70
74
  BlockStates.PERSISTENT_CACHE = PersistentCache_1.PersistentCache.open("minerender-blockstates");
71
75
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"BlockStates.js","sourceRoot":"src/","sources":["assets/BlockStates.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA,8CAA2C;AAC3C,+CAA4C;AAC5C,qCAA2D;AAC3D,2DAA6C;AAC7C,+FAAkE;AAElE,yCAAsC;AACtC,8DAA2D;AAE3D,MAAa,WAAW;IAIpB,iCAAiC;IAEb,AAAb,MAAM,CAAO,OAAO;;YACvB,OAAO,yBAAW,CAAC,uBAAuB,CAAC,IAAI,mBAAQ,CACnD,0BAAiB,EACjB,OAAO,EACP,aAAa,EACb,SAAS,EACT,QAAQ,EACR,OAAO,EACP,qBAAY,CACf,EAAE,yBAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,mCAAI,EAAE,CAAA,EAAA,CAAC,CAAC;QACnD,CAAC;KAAA;IAEM,MAAM,CAAC,eAAe,CAAC,GAAa;QACvC,OAAO,iCAAkB,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAA+B,CAAC;IACrF,CAAC;IAEM,MAAM,CAAO,GAAG,CAAC,GAAa;;YACjC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;gBAChB,GAAG,CAAC,SAAS,GAAG,aAAa,CAAC;aACjC;YACD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;gBAChB,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;aAC3B;YACD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;YAC/B,OAAO,iBAAO,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;gBAC3C,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;oBAChD,OAAO,yBAAW,CAAC,uBAAuB,CAAC,GAAG,EAAE,yBAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;wBACjF,OAAO,KAAK,CAAC;oBACjB,CAAC,CAAC,CAAA;gBACN,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACZ,IAAI,KAAK,EAAE;oBACP,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;iBACnB;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,CAAA;QACN,CAAC;KAAA;IAEM,MAAM,CAAC,MAAM,CAAC,IAAqC;QACtD,MAAM,QAAQ,GAAiC,EAAE,CAAC;QAClD,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;YAClB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SAChC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;;AAhDc,4BAAgB,GAAG,iCAAe,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAI7D;IADnB,IAAA,4BAAO,GAAE;gCAWT;AAhBL,kCAoDC"}
1
+ {"version":3,"file":"BlockStates.js","sourceRoot":"src/","sources":["assets/BlockStates.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA,8CAA2C;AAC3C,+CAA4C;AAC5C,qCAA2D;AAC3D,2DAA6C;AAC7C,+FAAkE;AAElE,yCAAsC;AACtC,8DAA2D;AAC3D,+DAA2D;AAG3D,MAAa,WAAW;IAIpB,iCAAiC;IAEb,AAAb,MAAM,CAAO,OAAO;;YACvB,OAAO,yBAAW,CAAC,GAAG,CAAY,IAAI,mBAAQ,CAC1C,0BAAiB,EACjB,OAAO,EACP,aAAa,EACb,SAAS,EACT,QAAQ,EACR,OAAO,EACP,qBAAY,CACf,EAAE,0BAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,mCAAI,EAAE,CAAA,EAAA,CAAC,CAAC;QACnD,CAAC;KAAA;IAEM,MAAM,CAAC,eAAe,CAAC,GAAa;QACvC,OAAO,iCAAkB,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAA+B,CAAC;IACrF,CAAC;IAEM,MAAM,CAAO,GAAG,CAAC,GAAa;;YACjC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;gBAChB,GAAG,CAAC,SAAS,GAAG,aAAa,CAAC;aACjC;YACD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;gBAChB,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;aAC3B;YACD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;YAC/B,OAAO,iBAAO,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;gBAC3C,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;oBAChD,OAAO,yBAAW,CAAC,GAAG,CAAa,GAAG,EAAE,0BAAW,CAAC,UAAU,CAAC,CAAC;gBACpE,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACZ,IAAI,KAAK,EAAE;oBACP,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;iBACnB;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,CAAA;QACN,CAAC;KAAA;IAEM,MAAM,CAAC,MAAM,CAAC,IAAqC;QACtD,MAAM,QAAQ,GAAiC,EAAE,CAAC;QAClD,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;YAClB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SAChC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAEM,MAAM,CAAO,UAAU;;YAC1B,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QACxC,CAAC;KAAA;;AAlDc,4BAAgB,GAAG,iCAAe,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAI7D;IADnB,IAAA,4BAAO,GAAE;gCAWT;AAhBL,kCAsDC"}
@@ -15,6 +15,7 @@ const AssetLoader_1 = require("./AssetLoader");
15
15
  const ImageLoader_1 = require("../image/ImageLoader");
16
16
  const PersistentCache_1 = require("../cache/PersistentCache");
17
17
  const AssetKey_1 = require("./AssetKey");
18
+ const AssetParsers_1 = require("./source/parser/AssetParsers");
18
19
  class ModelTextures {
19
20
  static get(key) {
20
21
  return __awaiter(this, void 0, void 0, function* () {
@@ -29,7 +30,7 @@ class ModelTextures {
29
30
  return __awaiter(this, void 0, void 0, function* () {
30
31
  const keyStr = key.serialize();
31
32
  return Caching_1.Caching.textureAssetCache.get(keyStr, k => {
32
- return AssetLoader_1.AssetLoader.loadOrRetryWithDefaults(key, AssetLoader_1.AssetLoader.IMAGE).then(asset => {
33
+ return AssetLoader_1.AssetLoader.get(key, AssetParsers_1.AssetParser.IMAGE).then(asset => {
33
34
  if (asset)
34
35
  asset.key = key;
35
36
  return asset;
@@ -46,7 +47,7 @@ class ModelTextures {
46
47
  const keyStr = key.serialize();
47
48
  return Caching_1.Caching.textureMetaCache.get(keyStr, k => {
48
49
  return this.PERSISTENT_META_CACHE.getOrLoad(keyStr, k1 => {
49
- return AssetLoader_1.AssetLoader.loadOrRetryWithDefaults(key, AssetLoader_1.AssetLoader.META).then(asset => {
50
+ return AssetLoader_1.AssetLoader.get(key, AssetParsers_1.AssetParser.META).then(asset => {
50
51
  if (asset)
51
52
  asset.key = key;
52
53
  return asset;
@@ -1 +1 @@
1
- {"version":3,"file":"ModelTextures.js","sourceRoot":"src/","sources":["assets/ModelTextures.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,8CAA2C;AAC3C,+CAA4C;AAE5C,sDAAmD;AAGnD,8DAA2D;AAE3D,yCAAsC;AAEtC,MAAa,aAAa;IAIf,MAAM,CAAO,GAAG,CAAC,GAAa;;YACjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,KAAK,EAAE;gBACP,OAAO,yBAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAC9C;YACD,OAAO,SAAS,CAAC;QACrB,CAAC;KAAA;IAEM,MAAM,CAAO,OAAO,CAAC,GAAa;;YACrC,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;YAC/B,OAAO,iBAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;gBAC7C,OAAO,yBAAW,CAAC,uBAAuB,CAAe,GAAG,EAAE,yBAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBAC1F,IAAI,KAAK;wBACL,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;oBACpB,OAAO,KAAK,CAAC;gBACjB,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;QACN,CAAC;KAAA;IAEM,MAAM,CAAO,OAAO,CAAC,GAAa;;YACrC,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBACtD,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,mBAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC/C,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC;aAC9B;YACD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;YAE/B,OAAO,iBAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;gBAC5C,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;oBACrD,OAAO,yBAAW,CAAC,uBAAuB,CAAuB,GAAG,EAAE,yBAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;wBACjG,IAAI,KAAK;4BACL,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;wBACpB,OAAO,KAAK,CAAC;oBACjB,CAAC,CAAC,CAAA;gBACN,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;QACN,CAAC;KAAA;IAEM,MAAM,CAAO,UAAU;;YAC1B,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;QAC7C,CAAC;KAAA;;AA3CL,sCA6CC;AA3CkB,mCAAqB,GAAG,iCAAe,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"file":"ModelTextures.js","sourceRoot":"src/","sources":["assets/ModelTextures.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,8CAA2C;AAC3C,+CAA4C;AAE5C,sDAAmD;AAGnD,8DAA2D;AAE3D,yCAAsC;AACtC,+DAA2D;AAE3D,MAAa,aAAa;IAIf,MAAM,CAAO,GAAG,CAAC,GAAa;;YACjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,KAAK,EAAE;gBACP,OAAO,yBAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAC9C;YACD,OAAO,SAAS,CAAC;QACrB,CAAC;KAAA;IAEM,MAAM,CAAO,OAAO,CAAC,GAAa;;YACrC,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;YAC/B,OAAO,iBAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;gBAC7C,OAAO,yBAAW,CAAC,GAAG,CAAe,GAAG,EAAE,0BAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBACtE,IAAI,KAAK;wBACL,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;oBACpB,OAAO,KAAK,CAAC;gBACjB,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;QACN,CAAC;KAAA;IAEM,MAAM,CAAO,OAAO,CAAC,GAAa;;YACrC,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBACtD,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,mBAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC/C,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC;aAC9B;YACD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;YAE/B,OAAO,iBAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;gBAC5C,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;oBACrD,OAAO,yBAAW,CAAC,GAAG,CAAuB,GAAG,EAAE,0BAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;wBAC7E,IAAI,KAAK;4BACL,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;wBACpB,OAAO,KAAK,CAAC;oBACjB,CAAC,CAAC,CAAA;gBACN,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;QACN,CAAC;KAAA;IAEM,MAAM,CAAO,UAAU;;YAC1B,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;QAC7C,CAAC;KAAA;;AA3CL,sCA6CC;AA3CkB,mCAAqB,GAAG,iCAAe,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC"}
@@ -23,10 +23,11 @@ const typescript_memoize_1 = require("typescript-memoize");
23
23
  const Assets_1 = require("./Assets");
24
24
  const PersistentCache_1 = require("../cache/PersistentCache");
25
25
  const AssetKey_1 = require("./AssetKey");
26
+ const AssetParsers_1 = require("./source/parser/AssetParsers");
26
27
  class Models {
27
28
  static getItemList() {
28
29
  return __awaiter(this, void 0, void 0, function* () {
29
- return AssetLoader_1.AssetLoader.loadOrRetryWithDefaults(new AssetKey_1.AssetKey(Assets_1.DEFAULT_NAMESPACE, "_list", "models", "item", "assets", ".json", Assets_1.DEFAULT_ROOT), AssetLoader_1.AssetLoader.LIST).then(r => { var _a; return (_a = r === null || r === void 0 ? void 0 : r.files) !== null && _a !== void 0 ? _a : []; });
30
+ return AssetLoader_1.AssetLoader.get(new AssetKey_1.AssetKey(Assets_1.DEFAULT_NAMESPACE, "_list", "models", "item", "assets", ".json", Assets_1.DEFAULT_ROOT), AssetParsers_1.AssetParser.LIST).then(r => { var _a; return (_a = r === null || r === void 0 ? void 0 : r.files) !== null && _a !== void 0 ? _a : []; });
30
31
  });
31
32
  }
32
33
  static loadAndMerge(key) {
@@ -49,9 +50,7 @@ class Models {
49
50
  const keyStr = key.serialize();
50
51
  return Caching_1.Caching.rawModelCache.get(keyStr, k => {
51
52
  return this.PERSISTENT_CACHE.getOrLoad(keyStr, k1 => {
52
- return AssetLoader_1.AssetLoader.loadOrRetryWithDefaults(key, AssetLoader_1.AssetLoader.MODEL).then(asset => {
53
- return asset;
54
- });
53
+ return AssetLoader_1.AssetLoader.get(key, AssetParsers_1.AssetParser.MODEL);
55
54
  });
56
55
  }).then(asset => {
57
56
  if (asset) {
@@ -1 +1 @@
1
- {"version":3,"file":"Models.js","sourceRoot":"src/","sources":["assets/Models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Models.js","sourceRoot":"src/","sources":["assets/Models.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,8CAA2C;AAG3C,sDAAmD;AACnD,+CAA4C;AAC5C,2DAA6C;AAC7C,qCAA2D;AAC3D,8DAA2D;AAC3D,yCAAsC;AAEtC,+DAA2D;AAE3D,MAAa,MAAM;IAKK,AAAb,MAAM,CAAO,WAAW;;YAC3B,OAAO,yBAAW,CAAC,GAAG,CAAY,IAAI,mBAAQ,CAC1C,0BAAiB,EACjB,OAAO,EACP,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,OAAO,EACP,qBAAY,CACf,EAAE,0BAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,mCAAI,EAAE,CAAA,EAAA,CAAC,CAAC;QACnD,CAAC;KAAA;IAEM,MAAM,CAAO,YAAY,CAAC,GAAa;;YAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,CAAC,KAAK,EAAE;gBACR,OAAO,SAAS,CAAC;aACpB;YACD,OAAO,yBAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;KAAA;IAEM,MAAM,CAAO,MAAM,CAAC,GAAa;;YACpC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;gBAChB,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;aAC5B;YACD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;gBAChB,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;aAC3B;YACD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;YAC/B,OAAO,iBAAO,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;gBACzC,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;oBAChD,OAAO,yBAAW,CAAC,GAAG,CAAQ,GAAG,EAAE,0BAAW,CAAC,KAAK,CAAC,CAAC;gBAC1D,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACZ,IAAI,KAAK,EAAE;oBACP,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;iBACnB;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,CAAA;QACN,CAAC;KAAA;IAEM,MAAM,CAAO,SAAS,CAAC,GAAa;;YACvC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;gBAChB,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;aAC5B;YACD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;gBAChB,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;aAC3B;YACD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;YAC/B,OAAO,iBAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;gBAC5C,wBAAwB;gBACxB,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IAEM,MAAM,CAAO,GAAG,CAAC,GAAa;;YACjC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;KAAA;IAEM,MAAM,CAAO,UAAU;;YAC1B,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QACzC,CAAC;KAAA;;AA/Dc,uBAAgB,GAAG,iCAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAGxD;IADnB,IAAA,4BAAO,GAAE;+BAWT;AAfL,wBAmEC"}
@@ -5,3 +5,4 @@ export * from './BlockStates';
5
5
  export * from './Entities';
6
6
  export * from './ModelTextures';
7
7
  export * from './Models';
8
+ export * from './source';
@@ -22,4 +22,5 @@ __exportStar(require("./BlockStates"), exports);
22
22
  __exportStar(require("./Entities"), exports);
23
23
  __exportStar(require("./ModelTextures"), exports);
24
24
  __exportStar(require("./Models"), exports);
25
+ __exportStar(require("./source"), exports);
25
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"src/","sources":["assets/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gBAAgB;AAChB,6CAA2B;AAC3B,gDAA8B;AAC9B,2CAAyB;AACzB,gDAA8B;AAC9B,6CAA2B;AAC3B,kDAAgC;AAChC,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"src/","sources":["assets/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gBAAgB;AAChB,6CAA2B;AAC3B,gDAA8B;AAC9B,2CAAyB;AACzB,gDAA8B;AAC9B,6CAA2B;AAC3B,kDAAgC;AAChC,2CAAyB;AACzB,2CAAyB"}
@@ -0,0 +1,8 @@
1
+ import { MinecraftAsset } from "../../MinecraftAsset";
2
+ import { AssetKey } from "../AssetKey";
3
+ import { Maybe } from "../../util";
4
+ import { AssetParser } from "./parser/AssetParsers";
5
+ export declare abstract class AssetSource {
6
+ protected constructor();
7
+ abstract get<T extends MinecraftAsset>(key: AssetKey, parser: AssetParser | string): Promise<Maybe<T>>;
8
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AssetSource = void 0;
4
+ class AssetSource {
5
+ constructor() {
6
+ }
7
+ }
8
+ exports.AssetSource = AssetSource;
9
+ //# sourceMappingURL=AssetSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssetSource.js","sourceRoot":"src/","sources":["assets/source/AssetSource.ts"],"names":[],"mappings":";;;AAKA,MAAsB,WAAW;IAE7B;IACA,CAAC;CAIJ;AAPD,kCAOC"}
@@ -0,0 +1,33 @@
1
+ import { AssetSource } from ".";
2
+ import { BlockState, Model, TextureAsset } from "../../model";
3
+ import { Maybe } from "../../util";
4
+ import { MinecraftTextureMeta } from "../../MinecraftTextureMeta";
5
+ import { NBTAsset } from "../../nbt";
6
+ import { ListAsset } from "../../ListAsset";
7
+ import { MinecraftAsset } from "../../MinecraftAsset";
8
+ import { AssetKey } from "../AssetKey";
9
+ import { AssetParser } from "./parser";
10
+ import { ResponseParser } from "./parser";
11
+ export declare class HostedAssetSource extends AssetSource {
12
+ static readonly MODEL: ResponseParser<Model>;
13
+ static readonly BLOCKSTATE: ResponseParser<BlockState>;
14
+ static readonly META: ResponseParser<MinecraftTextureMeta>;
15
+ static readonly NBT: ResponseParser<NBTAsset>;
16
+ static readonly IMAGE: ResponseParser<TextureAsset>;
17
+ static readonly LIST: ResponseParser<ListAsset>;
18
+ static readonly JSON: ResponseParser<any>;
19
+ static readonly PARSER_MAP: Map<AssetParser, ResponseParser<any>>;
20
+ loadOrRetryWithDefaults<T extends MinecraftAsset>(key: AssetKey, parser: ResponseParser<T>): Promise<Maybe<T>>;
21
+ protected load<T extends MinecraftAsset>(key: AssetKey, parser: ResponseParser<T>): Promise<Maybe<T>>;
22
+ assetBasePath(key: AssetKey): string;
23
+ private readonly _root;
24
+ private readonly _options;
25
+ constructor(root: string, options?: Partial<HostedAssetSourceOptions>);
26
+ get root(): string;
27
+ get options(): HostedAssetSourceOptions;
28
+ get<T extends MinecraftAsset>(key: AssetKey, parser: AssetParser): Promise<Maybe<T>>;
29
+ }
30
+ interface HostedAssetSourceOptions {
31
+ retryDefaults: boolean;
32
+ }
33
+ export {};
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.HostedAssetSource = void 0;
16
+ const _1 = require(".");
17
+ const util_1 = require("../../util");
18
+ const nbt_1 = require("../../nbt");
19
+ const image_1 = require("../../image");
20
+ const AssetKey_1 = require("../AssetKey");
21
+ const Assets_1 = require("../Assets");
22
+ const request_1 = require("../../request");
23
+ const AssetLoader_1 = require("../AssetLoader");
24
+ const parser_1 = require("./parser");
25
+ const ts_deepmerge_1 = __importDefault(require("ts-deepmerge"));
26
+ const p = (0, util_1.prefix)("HostedAssetSource");
27
+ const DEFAULT_OPTIONS = {
28
+ retryDefaults: true
29
+ };
30
+ class HostedAssetSource extends _1.AssetSource {
31
+ loadOrRetryWithDefaults(key, parser) {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ const direct = yield this.load(key, parser);
34
+ if (typeof direct !== "undefined") {
35
+ return direct;
36
+ }
37
+ if (key.namespace !== Assets_1.DEFAULT_NAMESPACE) {
38
+ console.info(p, "Retrying", key, "with default namespace");
39
+ // Try on the same host but with default minecraft: namespace
40
+ const namespaceKey = new AssetKey_1.AssetKey(Assets_1.DEFAULT_NAMESPACE, key.path, key.assetType, key.type, key.rootType, key.extension, key.root);
41
+ const namespaced = yield this.load(namespaceKey, parser);
42
+ if (typeof namespaced !== "undefined") {
43
+ return namespaced;
44
+ }
45
+ if ((typeof key.root !== "undefined" && key.root !== Assets_1.DEFAULT_ROOT) || (typeof this.root !== "undefined" && this.root !== Assets_1.DEFAULT_ROOT)) {
46
+ console.info(p, "Retrying", key, "with default root+namespace");
47
+ // Try both defaults
48
+ const namespacedRootedKey = new AssetKey_1.AssetKey(Assets_1.DEFAULT_NAMESPACE, key.path, key.assetType, key.type, key.rootType, key.extension, Assets_1.DEFAULT_ROOT);
49
+ const namespacedRooted = yield this.load(namespacedRootedKey, parser);
50
+ if (typeof namespacedRooted !== "undefined") {
51
+ return namespacedRooted;
52
+ }
53
+ }
54
+ }
55
+ else if ((typeof key.root !== "undefined" && key.root !== Assets_1.DEFAULT_ROOT) || (typeof this.root !== "undefined" && this.root !== Assets_1.DEFAULT_ROOT)) {
56
+ console.info(p, "Retrying", key, "with default root");
57
+ // Try on default root
58
+ const rootKey = new AssetKey_1.AssetKey(key.namespace, key.path, key.assetType, key.type, key.rootType, key.extension, Assets_1.DEFAULT_ROOT);
59
+ const rooted = yield this.load(rootKey, parser);
60
+ if (typeof rooted !== "undefined") {
61
+ return rooted;
62
+ }
63
+ }
64
+ return undefined;
65
+ });
66
+ }
67
+ load(key, parser) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ console.info(p, "Loading", key);
70
+ const url = `${this.assetBasePath(key)}${key.type !== undefined ? key.type + '/' : ''}${key.path}${key.extension}`;
71
+ console.debug(p, url);
72
+ let req = {
73
+ url: url
74
+ };
75
+ parser.config(req);
76
+ // @ts-ignore
77
+ return yield request_1.Requests.mcAssetRequest(req)
78
+ .then(response => {
79
+ if (response && response.data) {
80
+ try {
81
+ return parser.parse(response);
82
+ }
83
+ catch (e) {
84
+ console.warn("Parser failed to process response", response, e);
85
+ throw e;
86
+ }
87
+ }
88
+ return undefined;
89
+ })
90
+ .catch(err => {
91
+ if (err.response) {
92
+ let response = err.response;
93
+ if (response.status === 404) {
94
+ console.debug(p, key, "not found");
95
+ return undefined;
96
+ }
97
+ }
98
+ console.debug(p, "Failed to load", key, err === null || err === void 0 ? void 0 : err.message);
99
+ return undefined;
100
+ });
101
+ });
102
+ }
103
+ assetBasePath(key) {
104
+ var _a, _b;
105
+ return `${(_b = (_a = key.root) !== null && _a !== void 0 ? _a : this.root) !== null && _b !== void 0 ? _b : AssetLoader_1.AssetLoader.ROOT}/${key.rootType !== undefined ? key.rootType + '/' : ''}${key.namespace !== undefined ? key.namespace + '/' : ''}${key.assetType !== undefined ? key.assetType + '/' : ''}`;
106
+ }
107
+ constructor(root, options) {
108
+ super();
109
+ this._root = root;
110
+ this._options = (0, ts_deepmerge_1.default)({}, DEFAULT_OPTIONS, options !== null && options !== void 0 ? options : {});
111
+ }
112
+ get root() {
113
+ return this._root;
114
+ }
115
+ get options() {
116
+ return this._options;
117
+ }
118
+ get(key, parser) {
119
+ const responseParser = HostedAssetSource.PARSER_MAP.get(parser);
120
+ if (this.options.retryDefaults) {
121
+ return this.loadOrRetryWithDefaults(key, responseParser);
122
+ }
123
+ return this.load(key, responseParser);
124
+ }
125
+ }
126
+ exports.HostedAssetSource = HostedAssetSource;
127
+ HostedAssetSource.MODEL = {
128
+ config(request) {
129
+ },
130
+ parse(response) {
131
+ return response.data;
132
+ }
133
+ };
134
+ HostedAssetSource.BLOCKSTATE = {
135
+ config(request) {
136
+ },
137
+ parse(response) {
138
+ return response.data;
139
+ }
140
+ };
141
+ HostedAssetSource.META = {
142
+ config(request) {
143
+ // request.responseType = "arraybuffer";
144
+ },
145
+ parse(response) {
146
+ return response.data;
147
+ }
148
+ };
149
+ HostedAssetSource.NBT = {
150
+ config(request) {
151
+ request.responseType = "arraybuffer";
152
+ },
153
+ parse(response) {
154
+ return nbt_1.NBTHelper.fromBuffer(Buffer.from(response.data));
155
+ }
156
+ };
157
+ HostedAssetSource.IMAGE = {
158
+ config(request) {
159
+ request.responseType = "arraybuffer";
160
+ },
161
+ parse(response) {
162
+ return __awaiter(this, void 0, void 0, function* () {
163
+ return yield image_1.ImageLoader.processResponse(response);
164
+ });
165
+ }
166
+ };
167
+ HostedAssetSource.LIST = {
168
+ config(request) {
169
+ },
170
+ parse(response) {
171
+ return response.data;
172
+ }
173
+ };
174
+ HostedAssetSource.JSON = {
175
+ config(request) {
176
+ },
177
+ parse(response) {
178
+ return response.data;
179
+ }
180
+ };
181
+ HostedAssetSource.PARSER_MAP = new Map([
182
+ [parser_1.AssetParser.MODEL, HostedAssetSource.MODEL],
183
+ [parser_1.AssetParser.BLOCKSTATE, HostedAssetSource.BLOCKSTATE],
184
+ [parser_1.AssetParser.META, HostedAssetSource.META],
185
+ [parser_1.AssetParser.NBT, HostedAssetSource.NBT],
186
+ [parser_1.AssetParser.IMAGE, HostedAssetSource.IMAGE],
187
+ [parser_1.AssetParser.LIST, HostedAssetSource.LIST],
188
+ [parser_1.AssetParser.JSON, HostedAssetSource.JSON],
189
+ ]);
190
+ //# sourceMappingURL=HostedAssetSource.js.map