minerender 2.0.0-alpha.6 → 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 (473) hide show
  1. package/ava.config.js +10 -0
  2. package/build.mjs +2 -0
  3. package/dist/bundle.js +23096 -22561
  4. package/dist/bundle.js.map +8 -0
  5. package/dist/cjs/assets/AssetKey.js.map +1 -1
  6. package/dist/cjs/assets/AssetLoader.d.ts +5 -20
  7. package/dist/cjs/assets/AssetLoader.js +16 -127
  8. package/dist/cjs/assets/AssetLoader.js.map +1 -1
  9. package/dist/cjs/assets/BlockStates.d.ts +1 -0
  10. package/dist/cjs/assets/BlockStates.js +8 -4
  11. package/dist/cjs/assets/BlockStates.js.map +1 -1
  12. package/dist/cjs/assets/ModelTextures.js +3 -2
  13. package/dist/cjs/assets/ModelTextures.js.map +1 -1
  14. package/dist/cjs/assets/Models.js +3 -4
  15. package/dist/cjs/assets/Models.js.map +1 -1
  16. package/dist/cjs/assets/index.d.ts +8 -0
  17. package/dist/cjs/assets/index.js +26 -0
  18. package/dist/cjs/assets/index.js.map +1 -0
  19. package/dist/cjs/assets/source/AssetSource.d.ts +8 -0
  20. package/dist/cjs/assets/source/AssetSource.js +9 -0
  21. package/dist/cjs/assets/source/AssetSource.js.map +1 -0
  22. package/dist/cjs/assets/source/HostedAssetSource.d.ts +33 -0
  23. package/dist/cjs/assets/source/HostedAssetSource.js +190 -0
  24. package/dist/cjs/assets/source/HostedAssetSource.js.map +1 -0
  25. package/dist/cjs/assets/source/index.d.ts +3 -0
  26. package/dist/cjs/assets/source/index.js +21 -0
  27. package/dist/cjs/assets/source/index.js.map +1 -0
  28. package/dist/cjs/assets/source/parser/AssetParsers.d.ts +9 -0
  29. package/dist/cjs/assets/source/parser/AssetParsers.js +14 -0
  30. package/dist/cjs/assets/source/parser/AssetParsers.js.map +1 -0
  31. package/dist/cjs/assets/source/parser/ResponseParser.d.ts +7 -0
  32. package/{src/entity/EntityModel.js → dist/cjs/assets/source/parser/ResponseParser.js} +3 -3
  33. package/dist/cjs/assets/source/parser/ResponseParser.js.map +1 -0
  34. package/dist/cjs/assets/source/parser/index.d.ts +2 -0
  35. package/dist/cjs/assets/source/parser/index.js +20 -0
  36. package/dist/cjs/assets/source/parser/index.js.map +1 -0
  37. package/dist/cjs/bedrock/index.d.ts +4 -0
  38. package/dist/cjs/bedrock/index.js +22 -0
  39. package/dist/cjs/bedrock/index.js.map +1 -0
  40. package/dist/cjs/cache/index.d.ts +3 -0
  41. package/dist/cjs/cache/index.js +21 -0
  42. package/dist/cjs/cache/index.js.map +1 -0
  43. package/dist/cjs/canvas/index.d.ts +2 -0
  44. package/dist/cjs/canvas/index.js +20 -0
  45. package/dist/cjs/canvas/index.js.map +1 -0
  46. package/dist/cjs/entity/index.d.ts +2 -0
  47. package/dist/cjs/entity/index.js +20 -0
  48. package/dist/cjs/entity/index.js.map +1 -0
  49. package/dist/cjs/entity/scene/index.d.ts +1 -0
  50. package/dist/cjs/entity/scene/index.js +19 -0
  51. package/dist/cjs/entity/scene/index.js.map +1 -0
  52. package/dist/cjs/error/index.d.ts +1 -0
  53. package/dist/cjs/error/index.js +19 -0
  54. package/dist/cjs/error/index.js.map +1 -0
  55. package/dist/cjs/gui/index.d.ts +1 -0
  56. package/dist/cjs/gui/index.js +19 -0
  57. package/dist/cjs/gui/index.js.map +1 -0
  58. package/dist/cjs/gui/scene/index.d.ts +1 -0
  59. package/dist/cjs/gui/scene/index.js +19 -0
  60. package/dist/cjs/gui/scene/index.js.map +1 -0
  61. package/dist/cjs/image/index.d.ts +1 -0
  62. package/dist/cjs/image/index.js +19 -0
  63. package/dist/cjs/image/index.js.map +1 -0
  64. package/dist/cjs/index.d.ts +65 -28
  65. package/dist/cjs/index.js +63 -27
  66. package/dist/cjs/index.js.map +1 -1
  67. package/dist/cjs/inspector/{SceneStats.d.ts → SceneStatsDisplay.d.ts} +1 -1
  68. package/dist/cjs/inspector/{SceneStats.js → SceneStatsDisplay.js} +4 -4
  69. package/dist/cjs/inspector/SceneStatsDisplay.js.map +1 -0
  70. package/dist/cjs/inspector/index.d.ts +2 -0
  71. package/dist/cjs/inspector/index.js +20 -0
  72. package/dist/cjs/inspector/index.js.map +1 -0
  73. package/dist/cjs/instance/index.d.ts +3 -0
  74. package/dist/cjs/instance/index.js +21 -0
  75. package/dist/cjs/instance/index.js.map +1 -0
  76. package/dist/cjs/model/Model.d.ts +3 -3
  77. package/dist/cjs/model/block/index.d.ts +4 -0
  78. package/dist/cjs/model/block/index.js +22 -0
  79. package/dist/cjs/model/block/index.js.map +1 -0
  80. package/dist/cjs/model/block/scene/index.d.ts +1 -0
  81. package/dist/cjs/model/block/scene/index.js +19 -0
  82. package/dist/cjs/model/block/scene/index.js.map +1 -0
  83. package/dist/cjs/model/index.d.ts +7 -1
  84. package/dist/cjs/model/index.js +8 -1
  85. package/dist/cjs/model/index.js.map +1 -1
  86. package/dist/cjs/model/multiblock/index.d.ts +3 -0
  87. package/dist/cjs/model/multiblock/index.js +21 -0
  88. package/dist/cjs/model/multiblock/index.js.map +1 -0
  89. package/dist/cjs/model/scene/index.d.ts +1 -0
  90. package/dist/cjs/model/scene/index.js +19 -0
  91. package/dist/cjs/model/scene/index.js.map +1 -0
  92. package/dist/cjs/nbt/index.d.ts +1 -0
  93. package/dist/cjs/nbt/index.js +19 -0
  94. package/dist/cjs/nbt/index.js.map +1 -0
  95. package/dist/cjs/renderer/MineRenderScene.js +2 -2
  96. package/dist/cjs/renderer/MineRenderScene.js.map +1 -1
  97. package/dist/cjs/renderer/index.d.ts +4 -0
  98. package/dist/cjs/renderer/index.js +22 -0
  99. package/dist/cjs/renderer/index.js.map +1 -0
  100. package/dist/cjs/request/index.d.ts +1 -0
  101. package/dist/cjs/request/index.js +19 -0
  102. package/dist/cjs/request/index.js.map +1 -0
  103. package/dist/cjs/skin/index.d.ts +5 -0
  104. package/dist/cjs/skin/index.js +23 -0
  105. package/dist/cjs/skin/index.js.map +1 -0
  106. package/dist/cjs/skin/scene/index.d.ts +1 -0
  107. package/dist/cjs/skin/scene/index.js +19 -0
  108. package/dist/cjs/skin/scene/index.js.map +1 -0
  109. package/dist/cjs/texture/index.d.ts +3 -0
  110. package/dist/cjs/texture/index.js +21 -0
  111. package/dist/cjs/texture/index.js.map +1 -0
  112. package/dist/cjs/three/index.js +1 -0
  113. package/dist/cjs/three/index.js.map +1 -1
  114. package/dist/cjs/util/index.d.ts +4 -1
  115. package/dist/cjs/util/index.js +5 -1
  116. package/dist/cjs/util/index.js.map +1 -1
  117. package/dist/cjs/util/three.d.ts +0 -2
  118. package/dist/cjs/util/three.js +1 -5
  119. package/dist/cjs/util/three.js.map +1 -1
  120. package/dist/cjs/world/index.d.ts +3 -0
  121. package/dist/cjs/world/index.js +21 -0
  122. package/dist/cjs/world/index.js.map +1 -0
  123. package/dist/esm/assets/AssetKey.js.map +1 -1
  124. package/dist/esm/assets/AssetLoader.d.ts +5 -20
  125. package/dist/esm/assets/AssetLoader.js +17 -128
  126. package/dist/esm/assets/AssetLoader.js.map +1 -1
  127. package/dist/esm/assets/BlockStates.d.ts +1 -0
  128. package/dist/esm/assets/BlockStates.js +8 -4
  129. package/dist/esm/assets/BlockStates.js.map +1 -1
  130. package/dist/esm/assets/ModelTextures.js +3 -2
  131. package/dist/esm/assets/ModelTextures.js.map +1 -1
  132. package/dist/esm/assets/Models.js +3 -4
  133. package/dist/esm/assets/Models.js.map +1 -1
  134. package/dist/esm/assets/index.d.ts +8 -0
  135. package/dist/esm/assets/index.js +10 -0
  136. package/dist/esm/assets/index.js.map +1 -0
  137. package/dist/esm/assets/source/AssetSource.d.ts +8 -0
  138. package/dist/esm/assets/source/AssetSource.js +5 -0
  139. package/dist/esm/assets/source/AssetSource.js.map +1 -0
  140. package/dist/esm/assets/source/HostedAssetSource.d.ts +33 -0
  141. package/dist/esm/assets/source/HostedAssetSource.js +183 -0
  142. package/dist/esm/assets/source/HostedAssetSource.js.map +1 -0
  143. package/dist/esm/assets/source/index.d.ts +3 -0
  144. package/dist/esm/assets/source/index.js +5 -0
  145. package/dist/esm/assets/source/index.js.map +1 -0
  146. package/dist/esm/assets/source/parser/AssetParsers.d.ts +9 -0
  147. package/dist/esm/assets/source/parser/AssetParsers.js +11 -0
  148. package/dist/esm/assets/source/parser/AssetParsers.js.map +1 -0
  149. package/dist/esm/assets/source/parser/ResponseParser.d.ts +7 -0
  150. package/dist/esm/assets/source/parser/ResponseParser.js +2 -0
  151. package/dist/esm/assets/source/parser/ResponseParser.js.map +1 -0
  152. package/dist/esm/assets/source/parser/index.d.ts +2 -0
  153. package/dist/esm/assets/source/parser/index.js +4 -0
  154. package/dist/esm/assets/source/parser/index.js.map +1 -0
  155. package/dist/esm/bedrock/index.d.ts +4 -0
  156. package/dist/esm/bedrock/index.js +6 -0
  157. package/dist/esm/bedrock/index.js.map +1 -0
  158. package/dist/esm/cache/index.d.ts +3 -0
  159. package/dist/esm/cache/index.js +5 -0
  160. package/dist/esm/cache/index.js.map +1 -0
  161. package/dist/esm/canvas/index.d.ts +2 -0
  162. package/dist/esm/canvas/index.js +4 -0
  163. package/dist/esm/canvas/index.js.map +1 -0
  164. package/dist/esm/entity/index.d.ts +2 -0
  165. package/dist/esm/entity/index.js +4 -0
  166. package/dist/esm/entity/index.js.map +1 -0
  167. package/dist/esm/entity/scene/index.d.ts +1 -0
  168. package/dist/esm/entity/scene/index.js +3 -0
  169. package/dist/esm/entity/scene/index.js.map +1 -0
  170. package/dist/esm/error/index.d.ts +1 -0
  171. package/dist/esm/error/index.js +3 -0
  172. package/dist/esm/error/index.js.map +1 -0
  173. package/dist/esm/gui/index.d.ts +1 -0
  174. package/dist/esm/gui/index.js +3 -0
  175. package/dist/esm/gui/index.js.map +1 -0
  176. package/dist/esm/gui/scene/index.d.ts +1 -0
  177. package/dist/esm/gui/scene/index.js +3 -0
  178. package/dist/esm/gui/scene/index.js.map +1 -0
  179. package/dist/esm/image/index.d.ts +1 -0
  180. package/dist/esm/image/index.js +3 -0
  181. package/dist/esm/image/index.js.map +1 -0
  182. package/dist/esm/index.d.ts +65 -28
  183. package/dist/esm/index.js +66 -30
  184. package/dist/esm/index.js.map +1 -1
  185. package/dist/esm/inspector/{SceneStats.d.ts → SceneStatsDisplay.d.ts} +1 -1
  186. package/dist/esm/inspector/{SceneStats.js → SceneStatsDisplay.js} +2 -2
  187. package/dist/esm/inspector/SceneStatsDisplay.js.map +1 -0
  188. package/dist/esm/inspector/index.d.ts +2 -0
  189. package/dist/esm/inspector/index.js +4 -0
  190. package/dist/esm/inspector/index.js.map +1 -0
  191. package/dist/esm/instance/index.d.ts +3 -0
  192. package/dist/esm/instance/index.js +5 -0
  193. package/dist/esm/instance/index.js.map +1 -0
  194. package/dist/esm/model/Model.d.ts +3 -3
  195. package/dist/esm/model/block/index.d.ts +4 -0
  196. package/dist/esm/model/block/index.js +6 -0
  197. package/dist/esm/model/block/index.js.map +1 -0
  198. package/dist/esm/model/block/scene/index.d.ts +1 -0
  199. package/dist/esm/model/block/scene/index.js +3 -0
  200. package/dist/esm/model/block/scene/index.js.map +1 -0
  201. package/dist/esm/model/index.d.ts +7 -1
  202. package/dist/esm/model/index.js +8 -1
  203. package/dist/esm/model/index.js.map +1 -1
  204. package/dist/esm/model/multiblock/index.d.ts +3 -0
  205. package/dist/esm/model/multiblock/index.js +5 -0
  206. package/dist/esm/model/multiblock/index.js.map +1 -0
  207. package/dist/esm/model/scene/index.d.ts +1 -0
  208. package/dist/esm/model/scene/index.js +3 -0
  209. package/dist/esm/model/scene/index.js.map +1 -0
  210. package/dist/esm/nbt/index.d.ts +1 -0
  211. package/dist/esm/nbt/index.js +3 -0
  212. package/dist/esm/nbt/index.js.map +1 -0
  213. package/dist/esm/renderer/MineRenderScene.js +1 -1
  214. package/dist/esm/renderer/MineRenderScene.js.map +1 -1
  215. package/dist/esm/renderer/index.d.ts +4 -0
  216. package/dist/esm/renderer/index.js +6 -0
  217. package/dist/esm/renderer/index.js.map +1 -0
  218. package/dist/esm/request/index.d.ts +1 -0
  219. package/dist/esm/request/index.js +3 -0
  220. package/dist/esm/request/index.js.map +1 -0
  221. package/dist/esm/skin/index.d.ts +5 -0
  222. package/dist/esm/skin/index.js +7 -0
  223. package/dist/esm/skin/index.js.map +1 -0
  224. package/dist/esm/skin/scene/index.d.ts +1 -0
  225. package/dist/esm/skin/scene/index.js +3 -0
  226. package/dist/esm/skin/scene/index.js.map +1 -0
  227. package/dist/esm/texture/index.d.ts +3 -0
  228. package/dist/esm/texture/index.js +5 -0
  229. package/dist/esm/texture/index.js.map +1 -0
  230. package/dist/esm/three/index.js +1 -0
  231. package/dist/esm/three/index.js.map +1 -1
  232. package/dist/esm/util/index.d.ts +4 -1
  233. package/dist/esm/util/index.js +5 -1
  234. package/dist/esm/util/index.js.map +1 -1
  235. package/dist/esm/util/three.d.ts +0 -2
  236. package/dist/esm/util/three.js +0 -3
  237. package/dist/esm/util/three.js.map +1 -1
  238. package/dist/esm/world/index.d.ts +3 -0
  239. package/dist/esm/world/index.js +5 -0
  240. package/dist/esm/world/index.js.map +1 -0
  241. package/package.json +12 -9
  242. package/scripts/make-exports.sh +66 -0
  243. package/src/assets/AssetKey.ts +0 -1
  244. package/src/assets/AssetLoader.ts +22 -123
  245. package/src/assets/BlockStates.ts +9 -5
  246. package/src/assets/ModelTextures.ts +3 -2
  247. package/src/assets/Models.ts +5 -5
  248. package/src/assets/index.ts +9 -0
  249. package/src/assets/source/AssetSource.ts +13 -0
  250. package/src/assets/source/HostedAssetSource.ts +191 -0
  251. package/src/assets/source/index.ts +4 -0
  252. package/src/assets/source/parser/AssetParsers.ts +11 -0
  253. package/src/assets/source/parser/ResponseParser.ts +9 -0
  254. package/src/assets/source/parser/index.ts +3 -0
  255. package/src/bedrock/index.ts +5 -0
  256. package/src/cache/index.ts +4 -0
  257. package/src/canvas/index.ts +3 -0
  258. package/src/entity/index.ts +3 -0
  259. package/src/entity/scene/index.ts +2 -0
  260. package/src/error/index.ts +2 -0
  261. package/src/gui/index.ts +2 -0
  262. package/src/gui/scene/index.ts +2 -0
  263. package/src/image/index.ts +2 -0
  264. package/src/index.ts +68 -41
  265. package/src/inspector/{SceneStats.ts → SceneStatsDisplay.ts} +1 -1
  266. package/src/inspector/index.ts +3 -0
  267. package/src/instance/index.ts +4 -0
  268. package/src/model/Model.ts +3 -3
  269. package/src/model/block/index.ts +5 -0
  270. package/src/model/block/scene/index.ts +2 -0
  271. package/src/model/index.ts +12 -5
  272. package/src/model/multiblock/index.ts +4 -0
  273. package/src/model/scene/index.ts +2 -0
  274. package/src/nbt/index.ts +2 -0
  275. package/src/renderer/MineRenderScene.ts +1 -2
  276. package/src/renderer/index.ts +5 -0
  277. package/src/request/index.ts +2 -0
  278. package/src/skin/index.ts +6 -0
  279. package/src/skin/scene/index.ts +2 -0
  280. package/src/texture/index.ts +4 -0
  281. package/src/three/index.ts +3 -2
  282. package/src/util/index.ts +7 -3
  283. package/src/util/three.ts +0 -4
  284. package/src/world/index.ts +4 -0
  285. package/dist/cjs/inspector/SceneStats.js.map +0 -1
  286. package/dist/esm/inspector/SceneStats.js.map +0 -1
  287. package/js/data.js +0 -1789
  288. package/js/data.min.js.map +0 -1
  289. package/js/main.js +0 -447
  290. package/js/main.min.js.map +0 -1
  291. package/res/tools/bedrock/convertedMobs/agent.json +0 -470
  292. package/res/tools/bedrock/convertedMobs/bed.json +0 -505
  293. package/res/tools/bedrock/convertedMobs/cape.json +0 -100
  294. package/res/tools/bedrock/convertedMobs/chalkboard_large.json +0 -185
  295. package/res/tools/bedrock/convertedMobs/chalkboard_medium.json +0 -185
  296. package/res/tools/bedrock/convertedMobs/chalkboard_small.json +0 -125
  297. package/res/tools/bedrock/convertedMobs/dragon.json +0 -1857
  298. package/res/tools/bedrock/convertedMobs/dragon_head.json +0 -387
  299. package/res/tools/bedrock/convertedMobs/elytra.json +0 -137
  300. package/res/tools/bedrock/convertedMobs/humanoid.armor.boots.json +0 -26
  301. package/res/tools/bedrock/convertedMobs/humanoid.armor.chestplate.json +0 -22
  302. package/res/tools/bedrock/convertedMobs/humanoid.armor.helmet.json +0 -26
  303. package/res/tools/bedrock/convertedMobs/humanoid.armor.leggings.json +0 -22
  304. package/res/tools/bedrock/convertedMobs/humanoid.armor1.json +0 -34
  305. package/res/tools/bedrock/convertedMobs/humanoid.armor2.json +0 -30
  306. package/res/tools/bedrock/convertedMobs/humanoid.custom.json +0 -793
  307. package/res/tools/bedrock/convertedMobs/humanoid.customSlim.json +0 -793
  308. package/res/tools/bedrock/convertedMobs/humanoid.json +0 -560
  309. package/res/tools/bedrock/convertedMobs/irongolem.json +0 -472
  310. package/res/tools/bedrock/convertedMobs/mob_head.json +0 -65
  311. package/res/tools/bedrock/convertedMobs/player_head.json +0 -65
  312. package/res/tools/bedrock/convertedMobs/quadruped.json +0 -365
  313. package/res/tools/bedrock/convertedMobs/rsion.json +0 -4
  314. package/res/tools/bedrock/convertedMobs/trident.json +0 -216
  315. package/server/index.js +0 -0
  316. package/src/AnimatorFunction.d.ts +0 -3
  317. package/src/AnimatorFunction.js +0 -3
  318. package/src/AnimatorFunction.js.map +0 -1
  319. package/src/Axis.d.ts +0 -8
  320. package/src/Axis.js +0 -23
  321. package/src/Axis.js.map +0 -1
  322. package/src/CubeFace.d.ts +0 -17
  323. package/src/CubeFace.js +0 -23
  324. package/src/CubeFace.js.map +0 -1
  325. package/src/Disposable.d.ts +0 -4
  326. package/src/Disposable.js +0 -8
  327. package/src/Disposable.js.map +0 -1
  328. package/src/Env.d.ts +0 -2
  329. package/src/Env.js +0 -7
  330. package/src/Env.js.map +0 -1
  331. package/src/ExtractableImageData.d.ts +0 -5
  332. package/src/ExtractableImageData.js +0 -3
  333. package/src/ExtractableImageData.js.map +0 -1
  334. package/src/Geometries.d.ts +0 -6
  335. package/src/Geometries.js +0 -92
  336. package/src/Geometries.js.map +0 -1
  337. package/src/ListAsset.d.ts +0 -5
  338. package/src/ListAsset.js +0 -3
  339. package/src/ListAsset.js.map +0 -1
  340. package/src/Materials.d.ts +0 -8
  341. package/src/Materials.js +0 -38
  342. package/src/Materials.js.map +0 -1
  343. package/src/Meshes.d.ts +0 -6
  344. package/src/Meshes.js +0 -21
  345. package/src/Meshes.js.map +0 -1
  346. package/src/MinecraftAsset.d.ts +0 -7
  347. package/src/MinecraftAsset.js +0 -3
  348. package/src/MinecraftAsset.js.map +0 -1
  349. package/src/MinecraftCubeTexture.d.ts +0 -26
  350. package/src/MinecraftCubeTexture.js +0 -104
  351. package/src/MinecraftCubeTexture.js.map +0 -1
  352. package/src/MinecraftTextureMeta.d.ts +0 -15
  353. package/src/MinecraftTextureMeta.js +0 -3
  354. package/src/MinecraftTextureMeta.js.map +0 -1
  355. package/src/SceneStats.d.ts +0 -5
  356. package/src/SceneStats.js +0 -12
  357. package/src/SceneStats.js.map +0 -1
  358. package/src/Serializable.d.ts +0 -3
  359. package/src/Serializable.js +0 -3
  360. package/src/Serializable.js.map +0 -1
  361. package/src/Ticker.d.ts +0 -20
  362. package/src/Ticker.js +0 -55
  363. package/src/Ticker.js.map +0 -1
  364. package/src/Transformable.d.ts +0 -10
  365. package/src/Transformable.js +0 -8
  366. package/src/Transformable.js.map +0 -1
  367. package/src/UVMapper.d.ts +0 -40
  368. package/src/UVMapper.js +0 -421
  369. package/src/UVMapper.js.map +0 -1
  370. package/src/WrappedImage.d.ts +0 -17
  371. package/src/WrappedImage.js +0 -50
  372. package/src/WrappedImage.js.map +0 -1
  373. package/src/assets/AssetKey.d.ts +0 -24
  374. package/src/assets/AssetKey.js +0 -70
  375. package/src/assets/AssetKey.js.map +0 -1
  376. package/src/assets/AssetLoader.d.ts +0 -25
  377. package/src/assets/AssetLoader.js +0 -132
  378. package/src/assets/AssetLoader.js.map +0 -1
  379. package/src/assets/Assets.d.ts +0 -14
  380. package/src/assets/Assets.js +0 -24
  381. package/src/assets/Assets.js.map +0 -1
  382. package/src/assets/BlockStates.d.ts +0 -9
  383. package/src/assets/BlockStates.js +0 -51
  384. package/src/assets/BlockStates.js.map +0 -1
  385. package/src/assets/Entities.d.ts +0 -8
  386. package/src/assets/Entities.js +0 -40
  387. package/src/assets/Entities.js.map +0 -1
  388. package/src/assets/ModelTextures.d.ts +0 -11
  389. package/src/assets/ModelTextures.js +0 -42
  390. package/src/assets/ModelTextures.js.map +0 -1
  391. package/src/assets/Models.d.ts +0 -11
  392. package/src/assets/Models.js +0 -70
  393. package/src/assets/Models.js.map +0 -1
  394. package/src/cache/CacheKey.d.ts +0 -28
  395. package/src/cache/CacheKey.js +0 -27
  396. package/src/cache/CacheKey.js.map +0 -1
  397. package/src/cache/Caching.d.ts +0 -29
  398. package/src/cache/Caching.js +0 -93
  399. package/src/cache/Caching.js.map +0 -1
  400. package/src/cache/PersistentCache.d.ts +0 -15
  401. package/src/cache/PersistentCache.js +0 -101
  402. package/src/cache/PersistentCache.js.map +0 -1
  403. package/src/canvas/CanvasCompat.d.ts +0 -5
  404. package/src/canvas/CanvasCompat.js +0 -53
  405. package/src/canvas/CanvasCompat.js.map +0 -1
  406. package/src/canvas/CanvasImage.d.ts +0 -18
  407. package/src/canvas/CanvasImage.js +0 -45
  408. package/src/canvas/CanvasImage.js.map +0 -1
  409. package/src/entity/EntityModel.d.ts +0 -7
  410. package/src/entity/EntityModel.js.map +0 -1
  411. package/src/entity/scene/EntityObject.d.ts +0 -20
  412. package/src/entity/scene/EntityObject.js +0 -116
  413. package/src/entity/scene/EntityObject.js.map +0 -1
  414. package/src/error/MineRenderError.d.ts +0 -4
  415. package/src/error/MineRenderError.js +0 -15
  416. package/src/error/MineRenderError.js.map +0 -1
  417. package/src/image/ImageLoader.d.ts +0 -28
  418. package/src/image/ImageLoader.js +0 -134
  419. package/src/image/ImageLoader.js.map +0 -1
  420. package/src/index.d.ts +0 -22
  421. package/src/index.js +0 -36
  422. package/src/index.js.map +0 -1
  423. package/src/inspector/SceneInspector.d.ts +0 -22
  424. package/src/inspector/SceneInspector.js +0 -334
  425. package/src/inspector/SceneInspector.js.map +0 -1
  426. package/src/instance/InstanceReference.d.ts +0 -20
  427. package/src/instance/InstanceReference.js +0 -46
  428. package/src/instance/InstanceReference.js.map +0 -1
  429. package/src/instance/Instanceable.d.ts +0 -15
  430. package/src/instance/Instanceable.js +0 -8
  431. package/src/instance/Instanceable.js.map +0 -1
  432. package/src/model/ElementFace.d.ts +0 -9
  433. package/src/model/ElementFace.js +0 -3
  434. package/src/model/ElementFace.js.map +0 -1
  435. package/src/model/Model.d.ts +0 -43
  436. package/src/model/Model.js +0 -8
  437. package/src/model/Model.js.map +0 -1
  438. package/src/model/ModelPart.d.ts +0 -23
  439. package/src/model/ModelPart.js +0 -3
  440. package/src/model/ModelPart.js.map +0 -1
  441. package/src/nbt/NBTHelper.d.ts +0 -8
  442. package/src/nbt/NBTHelper.js +0 -32
  443. package/src/nbt/NBTHelper.js.map +0 -1
  444. package/src/skin/SkinGeometries.d.ts +0 -5
  445. package/src/skin/SkinGeometries.js +0 -39
  446. package/src/skin/SkinGeometries.js.map +0 -1
  447. package/src/skin/SkinPart.d.ts +0 -16
  448. package/src/skin/SkinPart.js +0 -21
  449. package/src/skin/SkinPart.js.map +0 -1
  450. package/src/skin/SkinTextureCoordinates.d.ts +0 -5
  451. package/src/skin/SkinTextureCoordinates.js +0 -753
  452. package/src/skin/SkinTextureCoordinates.js.map +0 -1
  453. package/src/skin/scene/SkinObject.d.ts +0 -20
  454. package/src/skin/scene/SkinObject.js +0 -102
  455. package/src/skin/scene/SkinObject.js.map +0 -1
  456. package/src/texture/TextureAtlas.d.ts +0 -29
  457. package/src/texture/TextureAtlas.js +0 -26
  458. package/src/texture/TextureAtlas.js.map +0 -1
  459. package/src/texture/TextureLoader.d.ts +0 -6
  460. package/src/texture/TextureLoader.js +0 -34
  461. package/src/texture/TextureLoader.js.map +0 -1
  462. package/src/texture/Textures.d.ts +0 -10
  463. package/src/texture/Textures.js +0 -52
  464. package/src/texture/Textures.js.map +0 -1
  465. package/src/util/model.d.ts +0 -11
  466. package/src/util/model.js +0 -182
  467. package/src/util/model.js.map +0 -1
  468. package/src/util/three.d.ts +0 -6
  469. package/src/util/three.js +0 -20
  470. package/src/util/three.js.map +0 -1
  471. package/src/util/util.d.ts +0 -9
  472. package/src/util/util.js +0 -117
  473. package/src/util/util.js.map +0 -1
@@ -11,142 +11,41 @@ import { ListAsset } from "../ListAsset";
11
11
  import { AssetKey } from "./AssetKey";
12
12
  import { NBTAsset, NBTHelper } from "../nbt/NBTHelper";
13
13
  import { prefix } from "../util/log";
14
+ import { AssetSource } from "./source/AssetSource";
15
+ import { AssetParser } from "./source/parser/AssetParsers";
16
+ import { HostedAssetSource } from "./source";
14
17
 
15
18
  const p = prefix("AssetLoader");
16
19
 
17
- export interface ResponseParser<T extends MinecraftAsset> {
18
- config(request: AxiosRequestConfig);
19
-
20
- parse(response: AxiosResponse): Maybe<T> | Promise<Maybe<T>>;
21
- }
22
20
 
23
21
  export class AssetLoader {
24
22
 
25
- static readonly MODEL: ResponseParser<Model> = {
26
- config(request: AxiosRequestConfig) {
27
- },
28
- parse(response: AxiosResponse): Maybe<Model> {
29
- return response.data as Model;
30
- }
31
- }
32
- static readonly BLOCKSTATE: ResponseParser<BlockState> = {
33
- config(request: AxiosRequestConfig) {
34
- },
35
- parse(response: AxiosResponse): Maybe<BlockState> {
36
- return response.data as BlockState;
37
- }
38
- }
39
- static readonly META: ResponseParser<MinecraftTextureMeta> = {
40
- config(request: AxiosRequestConfig) {
41
- // request.responseType = "arraybuffer";
42
- },
43
- parse(response: AxiosResponse): Maybe<MinecraftTextureMeta> {
44
- return response.data as MinecraftTextureMeta;
45
- }
46
- }
47
- static readonly NBT: ResponseParser<NBTAsset> = {
48
- config(request: AxiosRequestConfig) {
49
- request.responseType = "arraybuffer";
50
- },
51
- parse(response: AxiosResponse): Promise<Maybe<NBTAsset>> {
52
- return NBTHelper.fromBuffer(Buffer.from(response.data));
53
- }
54
- }
55
- static readonly IMAGE: ResponseParser<TextureAsset> = {
56
- config(request: AxiosRequestConfig) {
57
- request.responseType = "arraybuffer";
58
- },
59
- async parse(response: AxiosResponse): Promise<Maybe<TextureAsset>> {
60
- return await ImageLoader.processResponse(response) as TextureAsset;
61
- }
62
- }
63
- static readonly LIST: ResponseParser<ListAsset> = {
64
- config(request: AxiosRequestConfig) {
65
- },
66
- parse(response: AxiosResponse): Maybe<ListAsset> {
67
- return response.data as ListAsset;
68
- }
69
- }
70
- static readonly JSON: ResponseParser<any> = {
71
- config(request: AxiosRequestConfig) {
72
- },
73
- parse(response: AxiosResponse): Maybe<any> {
74
- return response.data;
75
- }
23
+ static ROOT: string = DEFAULT_ROOT;
24
+
25
+ private static _SOURCES: AssetSourceReference[] = [];
26
+
27
+ public static addSource(key: string, source: AssetSource) {
28
+ this._SOURCES.unshift({key, source});
29
+ console.log(p, "Added AssetSource", key);
76
30
  }
77
31
 
78
- static ROOT: string = DEFAULT_ROOT;
32
+ static {
33
+ this.addSource("mcassets", new HostedAssetSource(DEFAULT_ROOT));
34
+ }
79
35
 
80
- public static async loadOrRetryWithDefaults<T extends MinecraftAsset>(key: AssetKey, parser: ResponseParser<T>): Promise<Maybe<T>> {
81
- const direct = await this.load<T>(key, parser);
82
- if (typeof direct !== "undefined") {
83
- return direct;
84
- }
85
- if (key.namespace !== DEFAULT_NAMESPACE) {
86
- console.info(p, "Retrying", key, "with default namespace");
87
- // Try on the same host but with default minecraft: namespace
88
- const namespaceKey = new AssetKey(DEFAULT_NAMESPACE, key.path, key.assetType, key.type, key.rootType, key.extension, key.root);
89
- const namespaced = await this.load<T>(namespaceKey, parser);
90
- if (typeof namespaced !== "undefined") {
91
- return namespaced;
92
- }
93
- if ((typeof key.root !== "undefined" && key.root !== DEFAULT_ROOT) || (typeof this.ROOT !== "undefined" && this.ROOT !== DEFAULT_ROOT)) {
94
- console.info(p, "Retrying", key, "with default root+namespace");
95
- // Try both defaults
96
- const namespacedRootedKey = new AssetKey(DEFAULT_NAMESPACE, key.path, key.assetType, key.type, key.rootType, key.extension, DEFAULT_ROOT);
97
- const namespacedRooted = await this.load<T>(namespacedRootedKey, parser);
98
- if (typeof namespacedRooted !== "undefined") {
99
- return namespacedRooted;
100
- }
101
- }
102
- } else if ((typeof key.root !== "undefined" && key.root !== DEFAULT_ROOT) || (typeof this.ROOT !== "undefined" && this.ROOT !== DEFAULT_ROOT)) {
103
- console.info(p, "Retrying", key, "with default root");
104
- // Try on default root
105
- const rootKey = new AssetKey(key.namespace, key.path, key.assetType, key.type, key.rootType, key.extension, DEFAULT_ROOT);
106
- const rooted = await this.load<T>(rootKey, parser);
107
- if (typeof rooted !== "undefined") {
108
- return rooted;
36
+ public static async get<T extends MinecraftAsset>(key: AssetKey, parser: AssetParser | string): Promise<Maybe<T>> {
37
+ for (const source of this._SOURCES) {
38
+ const result = await source.source.get<T>(key, parser);
39
+ if (result) {
40
+ return result;
109
41
  }
110
42
  }
111
43
  return undefined;
112
44
  }
113
45
 
46
+ }
114
47
 
115
- protected static async load<T extends MinecraftAsset>(key: AssetKey, parser: ResponseParser<T>): Promise<Maybe<T>> {
116
- console.info(p, "Loading", key);
117
- const url = `${ this.assetBasePath(key) }${ key.type !== undefined ? key.type + '/' : '' }${ key.path }${ key.extension }`;
118
- console.debug(p, url);
119
- let req: AxiosRequestConfig = {
120
- url: url
121
- };
122
- parser.config(req);
123
- return await Requests.mcAssetRequest(req)
124
- .then(response => {
125
- if (response && response.data) {
126
- try {
127
- return parser.parse(response);
128
- } catch (e) {
129
- console.warn("Parser failed to process response", response, e);
130
- throw e;
131
- }
132
- }
133
- return undefined;
134
- })
135
- .catch(err => {
136
- if (err.response) {
137
- let response = err.response as AxiosResponse;
138
- if (response.status === 404) {
139
- console.debug(p, key, "not found");
140
- return undefined;
141
- }
142
- }
143
- console.debug(p, "Failed to load", key, err?.message);
144
- return undefined;
145
- })
146
- }
147
-
148
- public static assetBasePath(key: AssetKey) {
149
- return `${ key.root ?? this.ROOT }/${ key.rootType !== undefined ? key.rootType + '/' : '' }${ key.namespace !== undefined ? key.namespace + '/' : '' }${ key.assetType !== undefined ? key.assetType + '/' : '' }`;
150
- }
151
-
48
+ interface AssetSourceReference {
49
+ key: string;
50
+ source: AssetSource;
152
51
  }
@@ -8,6 +8,8 @@ import defaultBlockStates from "../model/defaultBlockStates.json";
8
8
  import { BlockStateProperties, BlockStatePropertyDefaults } from "../model/block/BlockStateProperties";
9
9
  import { AssetKey } from "./AssetKey";
10
10
  import { PersistentCache } from "../cache/PersistentCache";
11
+ import { AssetParser } from "./source/parser/AssetParsers";
12
+ import { ListAsset } from "../ListAsset";
11
13
 
12
14
  export class BlockStates {
13
15
 
@@ -16,7 +18,7 @@ export class BlockStates {
16
18
  // BlockState names are hardcoded
17
19
  @Memoize()
18
20
  public static async getList(): Promise<string[]> {
19
- return AssetLoader.loadOrRetryWithDefaults(new AssetKey(
21
+ return AssetLoader.get<ListAsset>(new AssetKey(
20
22
  DEFAULT_NAMESPACE,
21
23
  "_list",
22
24
  "blockstates",
@@ -24,7 +26,7 @@ export class BlockStates {
24
26
  "assets",
25
27
  ".json",
26
28
  DEFAULT_ROOT
27
- ), AssetLoader.LIST).then(r => r?.files ?? []);
29
+ ), AssetParser.LIST).then(r => r?.files ?? []);
28
30
  }
29
31
 
30
32
  public static getDefaultState(key: AssetKey): Maybe<BlockStatePropertyDefaults> {
@@ -41,9 +43,7 @@ export class BlockStates {
41
43
  const keyStr = key.serialize();
42
44
  return Caching.blockStateCache.get(keyStr, k => {
43
45
  return this.PERSISTENT_CACHE.getOrLoad(keyStr, k1 => {
44
- return AssetLoader.loadOrRetryWithDefaults(key, AssetLoader.BLOCKSTATE).then(asset => {
45
- return asset;
46
- })
46
+ return AssetLoader.get<BlockState>(key, AssetParser.BLOCKSTATE);
47
47
  })
48
48
  }).then(asset => {
49
49
  if (asset) {
@@ -61,4 +61,8 @@ export class BlockStates {
61
61
  return Promise.all(promises);
62
62
  }
63
63
 
64
+ public static async clearCache() {
65
+ await this.PERSISTENT_CACHE.clear();
66
+ }
67
+
64
68
  }
@@ -9,6 +9,7 @@ import { MinecraftTextureMeta } from "../MinecraftTextureMeta";
9
9
  import { PersistentCache } from "../cache/PersistentCache";
10
10
  import { keys } from "node-persist";
11
11
  import { AssetKey } from "./AssetKey";
12
+ import { AssetParser } from "./source/parser/AssetParsers";
12
13
 
13
14
  export class ModelTextures {
14
15
 
@@ -25,7 +26,7 @@ export class ModelTextures {
25
26
  public static async preload(key: AssetKey): Promise<Maybe<TextureAsset>> {
26
27
  const keyStr = key.serialize();
27
28
  return Caching.textureAssetCache.get(keyStr, k => {
28
- return AssetLoader.loadOrRetryWithDefaults<TextureAsset>(key, AssetLoader.IMAGE).then(asset => {
29
+ return AssetLoader.get<TextureAsset>(key, AssetParser.IMAGE).then(asset => {
29
30
  if (asset)
30
31
  asset.key = key;
31
32
  return asset;
@@ -42,7 +43,7 @@ export class ModelTextures {
42
43
 
43
44
  return Caching.textureMetaCache.get(keyStr, k => {
44
45
  return this.PERSISTENT_META_CACHE.getOrLoad(keyStr, k1 => {
45
- return AssetLoader.loadOrRetryWithDefaults<MinecraftTextureMeta>(key, AssetLoader.META).then(asset => {
46
+ return AssetLoader.get<MinecraftTextureMeta>(key, AssetParser.META).then(asset => {
46
47
  if (asset)
47
48
  asset.key = key;
48
49
  return asset;
@@ -8,6 +8,8 @@ import { Memoize } from "typescript-memoize";
8
8
  import { DEFAULT_NAMESPACE, DEFAULT_ROOT } from "./Assets";
9
9
  import { PersistentCache } from "../cache/PersistentCache";
10
10
  import { AssetKey } from "./AssetKey";
11
+ import { ListAsset } from "../ListAsset";
12
+ import { AssetParser } from "./source/parser/AssetParsers";
11
13
 
12
14
  export class Models {
13
15
 
@@ -15,7 +17,7 @@ export class Models {
15
17
 
16
18
  @Memoize()
17
19
  public static async getItemList(): Promise<string[]> {
18
- return AssetLoader.loadOrRetryWithDefaults(new AssetKey(
20
+ return AssetLoader.get<ListAsset>(new AssetKey(
19
21
  DEFAULT_NAMESPACE,
20
22
  "_list",
21
23
  "models",
@@ -23,7 +25,7 @@ export class Models {
23
25
  "assets",
24
26
  ".json",
25
27
  DEFAULT_ROOT
26
- ), AssetLoader.LIST).then(r => r?.files ?? []);
28
+ ), AssetParser.LIST).then(r => r?.files ?? []);
27
29
  }
28
30
 
29
31
  public static async loadAndMerge(key: AssetKey): Promise<Maybe<Model>> {
@@ -44,9 +46,7 @@ export class Models {
44
46
  const keyStr = key.serialize();
45
47
  return Caching.rawModelCache.get(keyStr, k => {
46
48
  return this.PERSISTENT_CACHE.getOrLoad(keyStr, k1 => {
47
- return AssetLoader.loadOrRetryWithDefaults(key, AssetLoader.MODEL).then(asset => {
48
- return asset;
49
- })
49
+ return AssetLoader.get<Model>(key, AssetParser.MODEL);
50
50
  })
51
51
  }).then(asset => {
52
52
  if (asset) {
@@ -0,0 +1,9 @@
1
+ // autogenerated
2
+ export * from './AssetKey';
3
+ export * from './AssetLoader';
4
+ export * from './Assets';
5
+ export * from './BlockStates';
6
+ export * from './Entities';
7
+ export * from './ModelTextures';
8
+ export * from './Models';
9
+ export * from './source';
@@ -0,0 +1,13 @@
1
+ import { MinecraftAsset } from "../../MinecraftAsset";
2
+ import { AssetKey } from "../AssetKey";
3
+ import { Maybe } from "../../util";
4
+ import { AssetParser } from "./parser/AssetParsers";
5
+
6
+ export abstract class AssetSource {
7
+
8
+ protected constructor() {
9
+ }
10
+
11
+ public abstract get<T extends MinecraftAsset>(key: AssetKey, parser: AssetParser | string): Promise<Maybe<T>>;
12
+
13
+ }
@@ -0,0 +1,191 @@
1
+ import { AssetSource } from ".";
2
+ import { BlockState, Model, TextureAsset } from "../../model";
3
+ import { AxiosRequestConfig, AxiosResponse } from "axios";
4
+ import { Maybe, prefix } from "../../util";
5
+ import { MinecraftTextureMeta } from "../../MinecraftTextureMeta";
6
+ import { NBTAsset, NBTHelper } from "../../nbt";
7
+ import { ImageLoader } from "../../image";
8
+ import { ListAsset } from "../../ListAsset";
9
+ import { MinecraftAsset } from "../../MinecraftAsset";
10
+ import { AssetKey } from "../AssetKey";
11
+ import { DEFAULT_NAMESPACE, DEFAULT_ROOT } from "../Assets";
12
+ import { Requests } from "../../request";
13
+ import { AssetLoader } from "../AssetLoader";
14
+ import { AssetParser } from "./parser";
15
+ import { ResponseParser } from "./parser";
16
+ import merge from "ts-deepmerge";
17
+
18
+ const p = prefix("HostedAssetSource");
19
+
20
+ const DEFAULT_OPTIONS: HostedAssetSourceOptions = {
21
+ retryDefaults: true
22
+ }
23
+
24
+ export class HostedAssetSource extends AssetSource {
25
+
26
+ static readonly MODEL: ResponseParser<Model> = {
27
+ config(request: AxiosRequestConfig) {
28
+ },
29
+ parse(response: AxiosResponse): Maybe<Model> {
30
+ return response.data as Model;
31
+ }
32
+ }
33
+ static readonly BLOCKSTATE: ResponseParser<BlockState> = {
34
+ config(request: AxiosRequestConfig) {
35
+ },
36
+ parse(response: AxiosResponse): Maybe<BlockState> {
37
+ return response.data as BlockState;
38
+ }
39
+ }
40
+ static readonly META: ResponseParser<MinecraftTextureMeta> = {
41
+ config(request: AxiosRequestConfig) {
42
+ // request.responseType = "arraybuffer";
43
+ },
44
+ parse(response: AxiosResponse): Maybe<MinecraftTextureMeta> {
45
+ return response.data as MinecraftTextureMeta;
46
+ }
47
+ }
48
+ static readonly NBT: ResponseParser<NBTAsset> = {
49
+ config(request: AxiosRequestConfig) {
50
+ request.responseType = "arraybuffer";
51
+ },
52
+ parse(response: AxiosResponse): Promise<Maybe<NBTAsset>> {
53
+ return NBTHelper.fromBuffer(Buffer.from(response.data));
54
+ }
55
+ }
56
+ static readonly IMAGE: ResponseParser<TextureAsset> = {
57
+ config(request: AxiosRequestConfig) {
58
+ request.responseType = "arraybuffer";
59
+ },
60
+ async parse(response: AxiosResponse): Promise<Maybe<TextureAsset>> {
61
+ return await ImageLoader.processResponse(response) as TextureAsset;
62
+ }
63
+ }
64
+ static readonly LIST: ResponseParser<ListAsset> = {
65
+ config(request: AxiosRequestConfig) {
66
+ },
67
+ parse(response: AxiosResponse): Maybe<ListAsset> {
68
+ return response.data as ListAsset;
69
+ }
70
+ }
71
+ static readonly JSON: ResponseParser<any> = {
72
+ config(request: AxiosRequestConfig) {
73
+ },
74
+ parse(response: AxiosResponse): Maybe<any> {
75
+ return response.data;
76
+ }
77
+ }
78
+
79
+ static readonly PARSER_MAP: Map<AssetParser, ResponseParser<any>> = new Map<AssetParser, ResponseParser<any>>([
80
+ [AssetParser.MODEL, HostedAssetSource.MODEL],
81
+ [AssetParser.BLOCKSTATE, HostedAssetSource.BLOCKSTATE],
82
+ [AssetParser.META, HostedAssetSource.META],
83
+ [AssetParser.NBT, HostedAssetSource.NBT],
84
+ [AssetParser.IMAGE, HostedAssetSource.IMAGE],
85
+ [AssetParser.LIST, HostedAssetSource.LIST],
86
+ [AssetParser.JSON, HostedAssetSource.JSON],
87
+ ]);
88
+
89
+ public async loadOrRetryWithDefaults<T extends MinecraftAsset>(key: AssetKey, parser: ResponseParser<T>): Promise<Maybe<T>> {
90
+ const direct = await this.load<T>(key, parser);
91
+ if (typeof direct !== "undefined") {
92
+ return direct;
93
+ }
94
+ if (key.namespace !== DEFAULT_NAMESPACE) {
95
+ console.info(p, "Retrying", key, "with default namespace");
96
+ // Try on the same host but with default minecraft: namespace
97
+ const namespaceKey = new AssetKey(DEFAULT_NAMESPACE, key.path, key.assetType, key.type, key.rootType, key.extension, key.root);
98
+ const namespaced = await this.load<T>(namespaceKey, parser);
99
+ if (typeof namespaced !== "undefined") {
100
+ return namespaced;
101
+ }
102
+ if ((typeof key.root !== "undefined" && key.root !== DEFAULT_ROOT) || (typeof this.root !== "undefined" && this.root !== DEFAULT_ROOT)) {
103
+ console.info(p, "Retrying", key, "with default root+namespace");
104
+ // Try both defaults
105
+ const namespacedRootedKey = new AssetKey(DEFAULT_NAMESPACE, key.path, key.assetType, key.type, key.rootType, key.extension, DEFAULT_ROOT);
106
+ const namespacedRooted = await this.load<T>(namespacedRootedKey, parser);
107
+ if (typeof namespacedRooted !== "undefined") {
108
+ return namespacedRooted;
109
+ }
110
+ }
111
+ } else if ((typeof key.root !== "undefined" && key.root !== DEFAULT_ROOT) || (typeof this.root !== "undefined" && this.root !== DEFAULT_ROOT)) {
112
+ console.info(p, "Retrying", key, "with default root");
113
+ // Try on default root
114
+ const rootKey = new AssetKey(key.namespace, key.path, key.assetType, key.type, key.rootType, key.extension, DEFAULT_ROOT);
115
+ const rooted = await this.load<T>(rootKey, parser);
116
+ if (typeof rooted !== "undefined") {
117
+ return rooted;
118
+ }
119
+ }
120
+ return undefined;
121
+ }
122
+
123
+
124
+ protected async load<T extends MinecraftAsset>(key: AssetKey, parser: ResponseParser<T>): Promise<Maybe<T>> {
125
+ console.info(p, "Loading", key);
126
+ const url = `${ this.assetBasePath(key) }${ key.type !== undefined ? key.type + '/' : '' }${ key.path }${ key.extension }`;
127
+ console.debug(p, url);
128
+ let req: AxiosRequestConfig = {
129
+ url: url
130
+ };
131
+ parser.config(req);
132
+ // @ts-ignore
133
+ return await Requests.mcAssetRequest(req)
134
+ .then(response => {
135
+ if (response && response.data) {
136
+ try {
137
+ return parser.parse(response);
138
+ } catch (e) {
139
+ console.warn("Parser failed to process response", response, e);
140
+ throw e;
141
+ }
142
+ }
143
+ return undefined;
144
+ })
145
+ .catch(err => {
146
+ if (err.response) {
147
+ let response = err.response as AxiosResponse;
148
+ if (response.status === 404) {
149
+ console.debug(p, key, "not found");
150
+ return undefined;
151
+ }
152
+ }
153
+ console.debug(p, "Failed to load", key, err?.message);
154
+ return undefined;
155
+ })
156
+ }
157
+
158
+ public assetBasePath(key: AssetKey) {
159
+ return `${ key.root ?? this.root ?? AssetLoader.ROOT }/${ key.rootType !== undefined ? key.rootType + '/' : '' }${ key.namespace !== undefined ? key.namespace + '/' : '' }${ key.assetType !== undefined ? key.assetType + '/' : '' }`;
160
+ }
161
+
162
+ private readonly _root: string;
163
+ private readonly _options: HostedAssetSourceOptions;
164
+
165
+ public constructor(root: string, options?: Partial<HostedAssetSourceOptions>) {
166
+ super();
167
+ this._root = root;
168
+ this._options = merge({}, DEFAULT_OPTIONS, options ?? {});
169
+ }
170
+
171
+ public get root(): string {
172
+ return this._root;
173
+ }
174
+
175
+ public get options(): HostedAssetSourceOptions {
176
+ return this._options;
177
+ }
178
+
179
+ public get<T extends MinecraftAsset>(key: AssetKey, parser: AssetParser): Promise<Maybe<T>> {
180
+ const responseParser = HostedAssetSource.PARSER_MAP.get(parser) as ResponseParser<T>;
181
+ if (this.options.retryDefaults) {
182
+ return this.loadOrRetryWithDefaults(key, responseParser);
183
+ }
184
+ return this.load(key, responseParser);
185
+ }
186
+
187
+ }
188
+
189
+ interface HostedAssetSourceOptions {
190
+ retryDefaults: boolean;
191
+ }
@@ -0,0 +1,4 @@
1
+ // autogenerated
2
+ export * from './AssetSource';
3
+ export * from './HostedAssetSource';
4
+ export * from './parser';
@@ -0,0 +1,11 @@
1
+ export enum AssetParser {
2
+
3
+ MODEL = "model",
4
+ BLOCKSTATE = "blockstate",
5
+ META = "meta",
6
+ NBT = "nbt",
7
+ IMAGE = "image",
8
+ LIST = "list",
9
+ JSON = "json",
10
+
11
+ }
@@ -0,0 +1,9 @@
1
+ import { AxiosRequestConfig, AxiosResponse } from "axios";
2
+ import { Maybe } from "../../../util";
3
+ import { MinecraftAsset } from "../../../MinecraftAsset";
4
+
5
+ export interface ResponseParser<T extends MinecraftAsset> {
6
+ config(request: AxiosRequestConfig);
7
+
8
+ parse(response: AxiosResponse): Maybe<T> | Promise<Maybe<T>>;
9
+ }
@@ -0,0 +1,3 @@
1
+ // autogenerated
2
+ export * from './AssetParsers';
3
+ export * from './ResponseParser';
@@ -0,0 +1,5 @@
1
+ // autogenerated
2
+ export * from './BedrockEntityDescription';
3
+ export * from './BedrockEntityFile';
4
+ export * from './BedrockGeometry';
5
+ export * from './BedrockGeometryFile';
@@ -0,0 +1,4 @@
1
+ // autogenerated
2
+ export * from './CacheKey';
3
+ export * from './Caching';
4
+ export * from './PersistentCache';
@@ -0,0 +1,3 @@
1
+ // autogenerated
2
+ export * from './CanvasCompat';
3
+ export * from './CanvasImage';
@@ -0,0 +1,3 @@
1
+ // autogenerated
2
+ export * from './EntityModel';
3
+ export * from './scene';
@@ -0,0 +1,2 @@
1
+ // autogenerated
2
+ export * from './EntityObject';
@@ -0,0 +1,2 @@
1
+ // autogenerated
2
+ export * from './MineRenderError';
@@ -0,0 +1,2 @@
1
+ // autogenerated
2
+ export * from './scene';
@@ -0,0 +1,2 @@
1
+ // autogenerated
2
+ export * from './GuiObject';
@@ -0,0 +1,2 @@
1
+ // autogenerated
2
+ export * from './ImageLoader';