minerender 2.0.0-alpha.0 → 2.0.0-alpha.2

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 (1059) hide show
  1. package/.esdoc.json +0 -0
  2. package/.github/FUNDING.yml +0 -0
  3. package/.github/stale.yml +0 -0
  4. package/.github/workflows/nodejs.yml +0 -0
  5. package/.travis.yml +0 -0
  6. package/CNAME +0 -0
  7. package/LICENSE +0 -0
  8. package/README.md +0 -0
  9. package/build.mjs +20 -0
  10. package/demo/model/index.html +0 -0
  11. package/demo/skin/index.html +0 -0
  12. package/dist/cjs/AnimatorFunction.d.ts +3 -3
  13. package/dist/cjs/AnimatorFunction.js +2 -2
  14. package/dist/cjs/AnimatorFunction.js.map +0 -0
  15. package/dist/cjs/Axis.d.ts +8 -8
  16. package/dist/cjs/Axis.js +22 -22
  17. package/dist/cjs/Axis.js.map +0 -0
  18. package/dist/cjs/CubeFace.d.ts +17 -17
  19. package/dist/cjs/CubeFace.js +22 -22
  20. package/dist/cjs/CubeFace.js.map +0 -0
  21. package/dist/cjs/Disposable.d.ts +4 -4
  22. package/dist/cjs/Disposable.js +7 -7
  23. package/dist/cjs/Disposable.js.map +0 -0
  24. package/dist/cjs/Env.d.ts +2 -2
  25. package/dist/cjs/Env.js +6 -6
  26. package/dist/cjs/Env.js.map +0 -0
  27. package/dist/cjs/ExtractableImageData.d.ts +5 -5
  28. package/dist/cjs/ExtractableImageData.js +2 -2
  29. package/dist/cjs/ExtractableImageData.js.map +0 -0
  30. package/dist/cjs/Geometries.d.ts +6 -6
  31. package/dist/cjs/Geometries.js +91 -91
  32. package/dist/cjs/Geometries.js.map +0 -0
  33. package/dist/cjs/ListAsset.d.ts +5 -5
  34. package/dist/cjs/ListAsset.js +2 -2
  35. package/dist/cjs/ListAsset.js.map +0 -0
  36. package/dist/cjs/Materials.d.ts +9 -9
  37. package/dist/cjs/Materials.js +76 -76
  38. package/dist/cjs/Materials.js.map +0 -0
  39. package/dist/cjs/Meshes.d.ts +6 -6
  40. package/dist/cjs/Meshes.js +20 -20
  41. package/dist/cjs/Meshes.js.map +0 -0
  42. package/dist/cjs/MinecraftAsset.d.ts +7 -7
  43. package/dist/cjs/MinecraftAsset.js +2 -2
  44. package/dist/cjs/MinecraftAsset.js.map +0 -0
  45. package/dist/cjs/MinecraftCubeTexture.d.ts +26 -26
  46. package/dist/cjs/MinecraftCubeTexture.js +103 -103
  47. package/dist/cjs/MinecraftCubeTexture.js.map +0 -0
  48. package/dist/cjs/MinecraftTextureMeta.d.ts +15 -15
  49. package/dist/cjs/MinecraftTextureMeta.js +2 -2
  50. package/dist/cjs/MinecraftTextureMeta.js.map +0 -0
  51. package/dist/cjs/SceneStats.d.ts +5 -5
  52. package/dist/cjs/SceneStats.js +11 -11
  53. package/dist/cjs/SceneStats.js.map +0 -0
  54. package/dist/cjs/Serializable.d.ts +3 -3
  55. package/dist/cjs/Serializable.js +2 -2
  56. package/dist/cjs/Serializable.js.map +0 -0
  57. package/dist/cjs/Ticker.d.ts +20 -20
  58. package/dist/cjs/Ticker.js +54 -54
  59. package/dist/cjs/Ticker.js.map +0 -0
  60. package/dist/cjs/TintColors.d.ts +1 -1
  61. package/dist/cjs/TintColors.js +4 -4
  62. package/dist/cjs/TintColors.js.map +0 -0
  63. package/dist/cjs/Transformable.d.ts +11 -11
  64. package/dist/cjs/Transformable.js +7 -7
  65. package/dist/cjs/Transformable.js.map +0 -0
  66. package/dist/cjs/UVMapper.d.ts +40 -40
  67. package/dist/cjs/UVMapper.js +433 -429
  68. package/dist/cjs/UVMapper.js.map +1 -1
  69. package/dist/cjs/WrappedImage.d.ts +17 -17
  70. package/dist/cjs/WrappedImage.js +49 -49
  71. package/dist/cjs/WrappedImage.js.map +0 -0
  72. package/dist/cjs/_model/Cube.d.ts +10 -10
  73. package/dist/cjs/_model/Cube.js +2 -2
  74. package/dist/cjs/_model/Cube.js.map +0 -0
  75. package/dist/cjs/_model/Element.d.ts +9 -9
  76. package/dist/cjs/_model/Element.js +2 -2
  77. package/dist/cjs/_model/Element.js.map +0 -0
  78. package/dist/cjs/_model/Face.d.ts +6 -6
  79. package/dist/cjs/_model/Face.js +2 -2
  80. package/dist/cjs/_model/Face.js.map +0 -0
  81. package/dist/cjs/_model/Model.d.ts +4 -4
  82. package/dist/cjs/_model/Model.js +2 -2
  83. package/dist/cjs/_model/Model.js.map +0 -0
  84. package/dist/cjs/assets/AssetKey.d.ts +26 -26
  85. package/dist/cjs/assets/AssetKey.js +82 -82
  86. package/dist/cjs/assets/AssetKey.js.map +0 -0
  87. package/dist/cjs/assets/AssetLoader.d.ts +26 -26
  88. package/dist/cjs/assets/AssetLoader.js +152 -152
  89. package/dist/cjs/assets/AssetLoader.js.map +0 -0
  90. package/dist/cjs/assets/Assets.d.ts +14 -14
  91. package/dist/cjs/assets/Assets.js +36 -36
  92. package/dist/cjs/assets/Assets.js.map +0 -0
  93. package/dist/cjs/assets/BlockStates.d.ts +11 -11
  94. package/dist/cjs/assets/BlockStates.js +74 -74
  95. package/dist/cjs/assets/BlockStates.js.map +0 -0
  96. package/dist/cjs/assets/Entities.d.ts +8 -8
  97. package/dist/cjs/assets/Entities.js +56 -56
  98. package/dist/cjs/assets/Entities.js.map +0 -0
  99. package/dist/cjs/assets/ModelTextures.d.ts +12 -12
  100. package/dist/cjs/assets/ModelTextures.js +65 -65
  101. package/dist/cjs/assets/ModelTextures.js.map +0 -0
  102. package/dist/cjs/assets/Models.d.ts +12 -12
  103. package/dist/cjs/assets/Models.js +94 -94
  104. package/dist/cjs/assets/Models.js.map +0 -0
  105. package/dist/cjs/bedrock/BedrockEntityDescription.d.ts +19 -19
  106. package/dist/cjs/bedrock/BedrockEntityDescription.js +2 -2
  107. package/dist/cjs/bedrock/BedrockEntityDescription.js.map +0 -0
  108. package/dist/cjs/bedrock/BedrockEntityFile.d.ts +7 -7
  109. package/dist/cjs/bedrock/BedrockEntityFile.js +2 -2
  110. package/dist/cjs/bedrock/BedrockEntityFile.js.map +0 -0
  111. package/dist/cjs/bedrock/BedrockGeometry.d.ts +27 -27
  112. package/dist/cjs/bedrock/BedrockGeometry.js +2 -2
  113. package/dist/cjs/bedrock/BedrockGeometry.js.map +0 -0
  114. package/dist/cjs/bedrock/BedrockGeometryFile.d.ts +5 -5
  115. package/dist/cjs/bedrock/BedrockGeometryFile.js +2 -2
  116. package/dist/cjs/bedrock/BedrockGeometryFile.js.map +0 -0
  117. package/dist/cjs/cache/CacheKey.d.ts +28 -28
  118. package/dist/cjs/cache/CacheKey.js +26 -26
  119. package/dist/cjs/cache/CacheKey.js.map +0 -0
  120. package/dist/cjs/cache/Caching.d.ts +29 -29
  121. package/dist/cjs/cache/Caching.js +92 -92
  122. package/dist/cjs/cache/Caching.js.map +0 -0
  123. package/dist/cjs/cache/PersistentCache.d.ts +15 -15
  124. package/dist/cjs/cache/PersistentCache.js +111 -111
  125. package/dist/cjs/cache/PersistentCache.js.map +0 -0
  126. package/dist/cjs/canvas/CanvasCompat.d.ts +5 -5
  127. package/dist/cjs/canvas/CanvasCompat.js +52 -52
  128. package/dist/cjs/canvas/CanvasCompat.js.map +0 -0
  129. package/dist/cjs/canvas/CanvasImage.d.ts +18 -18
  130. package/dist/cjs/canvas/CanvasImage.js +44 -44
  131. package/dist/cjs/canvas/CanvasImage.js.map +0 -0
  132. package/dist/cjs/entity/EntityModel.d.ts +7 -7
  133. package/dist/cjs/entity/EntityModel.js +2 -2
  134. package/dist/cjs/entity/EntityModel.js.map +0 -0
  135. package/dist/cjs/entity/blockEntityModels.json +1401 -1401
  136. package/dist/cjs/entity/entityModels.json +20623 -20623
  137. package/dist/cjs/entity/scene/EntityObject.d.ts +20 -20
  138. package/dist/cjs/entity/scene/EntityObject.js +130 -130
  139. package/dist/cjs/entity/scene/EntityObject.js.map +0 -0
  140. package/dist/cjs/error/MineRenderError.d.ts +4 -4
  141. package/dist/cjs/error/MineRenderError.js +14 -14
  142. package/dist/cjs/error/MineRenderError.js.map +0 -0
  143. package/dist/cjs/gui/scene/GuiObject.d.ts +6 -6
  144. package/dist/cjs/gui/scene/GuiObject.js +7 -7
  145. package/dist/cjs/gui/scene/GuiObject.js.map +0 -0
  146. package/dist/cjs/image/ImageLoader.d.ts +28 -28
  147. package/dist/cjs/image/ImageLoader.js +165 -165
  148. package/dist/cjs/image/ImageLoader.js.map +0 -0
  149. package/dist/cjs/index.d.ts +28 -28
  150. package/dist/cjs/index.js +42 -42
  151. package/dist/cjs/index.js.map +0 -0
  152. package/dist/cjs/inspector/SceneInspector.d.ts +27 -27
  153. package/dist/cjs/inspector/SceneInspector.js +365 -365
  154. package/dist/cjs/inspector/SceneInspector.js.map +0 -0
  155. package/dist/cjs/inspector/SceneStats.d.ts +22 -22
  156. package/dist/cjs/inspector/SceneStats.js +52 -52
  157. package/dist/cjs/inspector/SceneStats.js.map +0 -0
  158. package/dist/cjs/instance/InstanceManager.d.ts +14 -14
  159. package/dist/cjs/instance/InstanceManager.js +57 -57
  160. package/dist/cjs/instance/InstanceManager.js.map +0 -0
  161. package/dist/cjs/instance/InstanceReference.d.ts +21 -21
  162. package/dist/cjs/instance/InstanceReference.js +48 -48
  163. package/dist/cjs/instance/InstanceReference.js.map +0 -0
  164. package/dist/cjs/instance/Instanceable.d.ts +16 -16
  165. package/dist/cjs/instance/Instanceable.js +7 -7
  166. package/dist/cjs/instance/Instanceable.js.map +0 -0
  167. package/dist/cjs/lib/OrbitControls.d.ts +64 -0
  168. package/dist/cjs/lib/OrbitControls.js +658 -0
  169. package/dist/cjs/lib/OrbitControls.js.map +1 -0
  170. package/dist/cjs/model/DisplayPosition.d.ts +11 -11
  171. package/dist/cjs/model/DisplayPosition.js +15 -15
  172. package/dist/cjs/model/DisplayPosition.js.map +0 -0
  173. package/dist/cjs/model/ElementFace.d.ts +9 -9
  174. package/dist/cjs/model/ElementFace.js +2 -2
  175. package/dist/cjs/model/ElementFace.js.map +0 -0
  176. package/dist/cjs/model/GuiLight.d.ts +4 -4
  177. package/dist/cjs/model/GuiLight.js +8 -8
  178. package/dist/cjs/model/GuiLight.js.map +0 -0
  179. package/dist/cjs/model/Model.d.ts +46 -46
  180. package/dist/cjs/model/Model.js +19 -19
  181. package/dist/cjs/model/Model.js.map +0 -0
  182. package/dist/cjs/model/ModelElement.d.ts +21 -21
  183. package/dist/cjs/model/ModelElement.js +2 -2
  184. package/dist/cjs/model/ModelElement.js.map +0 -0
  185. package/dist/cjs/model/ModelGenerator.d.ts +6 -6
  186. package/dist/cjs/model/ModelGenerator.js +26 -26
  187. package/dist/cjs/model/ModelGenerator.js.map +0 -0
  188. package/dist/cjs/model/ModelMerger.d.ts +5 -5
  189. package/dist/cjs/model/ModelMerger.js +50 -50
  190. package/dist/cjs/model/ModelMerger.js.map +0 -0
  191. package/dist/cjs/model/ModelPart.d.ts +23 -23
  192. package/dist/cjs/model/ModelPart.js +2 -2
  193. package/dist/cjs/model/ModelPart.js.map +0 -0
  194. package/dist/cjs/model/block/Block.d.ts +6 -6
  195. package/dist/cjs/model/block/Block.js +2 -2
  196. package/dist/cjs/model/block/Block.js.map +0 -0
  197. package/dist/cjs/model/block/BlockState.d.ts +23 -23
  198. package/dist/cjs/model/block/BlockState.js +2 -2
  199. package/dist/cjs/model/block/BlockState.js.map +0 -0
  200. package/dist/cjs/model/block/BlockStateProperties.d.ts +13 -13
  201. package/dist/cjs/model/block/BlockStateProperties.js +2 -2
  202. package/dist/cjs/model/block/BlockStateProperties.js.map +0 -0
  203. package/dist/cjs/model/block/scene/BlockObject.d.ts +46 -46
  204. package/dist/cjs/model/block/scene/BlockObject.js +467 -467
  205. package/dist/cjs/model/block/scene/BlockObject.js.map +0 -0
  206. package/dist/cjs/model/defaultBlockStates.json +12337 -12337
  207. package/dist/cjs/model/multiblock/MultiBlockStructure.d.ts +9 -9
  208. package/dist/cjs/model/multiblock/MultiBlockStructure.js +2 -2
  209. package/dist/cjs/model/multiblock/MultiBlockStructure.js.map +0 -0
  210. package/dist/cjs/model/multiblock/SchematicParser.d.ts +4 -4
  211. package/dist/cjs/model/multiblock/SchematicParser.js +22 -22
  212. package/dist/cjs/model/multiblock/SchematicParser.js.map +0 -0
  213. package/dist/cjs/model/multiblock/StructureParser.d.ts +70 -70
  214. package/dist/cjs/model/multiblock/StructureParser.js +51 -51
  215. package/dist/cjs/model/multiblock/StructureParser.js.map +0 -0
  216. package/dist/cjs/model/scene/ModelObject.d.ts +25 -25
  217. package/dist/cjs/model/scene/ModelObject.js +162 -162
  218. package/dist/cjs/model/scene/ModelObject.js.map +0 -0
  219. package/dist/cjs/nbt/NBTHelper.d.ts +8 -8
  220. package/dist/cjs/nbt/NBTHelper.js +41 -41
  221. package/dist/cjs/nbt/NBTHelper.js.map +0 -0
  222. package/dist/cjs/renderer/MineRenderScene.d.ts +35 -35
  223. package/dist/cjs/renderer/MineRenderScene.js +131 -131
  224. package/dist/cjs/renderer/MineRenderScene.js.map +0 -0
  225. package/dist/cjs/renderer/Renderer.d.ts +83 -78
  226. package/dist/cjs/renderer/Renderer.js +266 -258
  227. package/dist/cjs/renderer/Renderer.js.map +1 -1
  228. package/dist/cjs/renderer/SceneObject.d.ts +81 -81
  229. package/dist/cjs/renderer/SceneObject.js +399 -399
  230. package/dist/cjs/renderer/SceneObject.js.map +0 -0
  231. package/dist/cjs/renderer/SceneObjectOptions.d.ts +6 -6
  232. package/dist/cjs/renderer/SceneObjectOptions.js +2 -2
  233. package/dist/cjs/renderer/SceneObjectOptions.js.map +0 -0
  234. package/dist/cjs/request/Requests.d.ts +12 -12
  235. package/dist/cjs/request/Requests.js +38 -38
  236. package/dist/cjs/request/Requests.js.map +0 -0
  237. package/dist/cjs/skin/SkinGeometries.d.ts +5 -5
  238. package/dist/cjs/skin/SkinGeometries.js +38 -38
  239. package/dist/cjs/skin/SkinGeometries.js.map +0 -0
  240. package/dist/cjs/skin/SkinPart.d.ts +16 -16
  241. package/dist/cjs/skin/SkinPart.js +20 -20
  242. package/dist/cjs/skin/SkinPart.js.map +0 -0
  243. package/dist/cjs/skin/SkinTextureCoordinates.d.ts +5 -5
  244. package/dist/cjs/skin/SkinTextureCoordinates.js +750 -750
  245. package/dist/cjs/skin/SkinTextureCoordinates.js.map +0 -0
  246. package/dist/cjs/skin/Skins.d.ts +17 -17
  247. package/dist/cjs/skin/Skins.js +167 -167
  248. package/dist/cjs/skin/Skins.js.map +0 -0
  249. package/dist/cjs/skin/scene/SkinObject.d.ts +21 -21
  250. package/dist/cjs/skin/scene/SkinObject.js +118 -118
  251. package/dist/cjs/skin/scene/SkinObject.js.map +0 -0
  252. package/dist/cjs/texture/TextureAtlas.d.ts +29 -29
  253. package/dist/cjs/texture/TextureAtlas.js +25 -25
  254. package/dist/cjs/texture/TextureAtlas.js.map +0 -0
  255. package/dist/cjs/texture/TextureLoader.d.ts +6 -6
  256. package/dist/cjs/texture/TextureLoader.js +33 -33
  257. package/dist/cjs/texture/TextureLoader.js.map +0 -0
  258. package/dist/cjs/texture/Textures.d.ts +10 -10
  259. package/dist/cjs/texture/Textures.js +51 -51
  260. package/dist/cjs/texture/Textures.js.map +0 -0
  261. package/dist/cjs/three/BufferGeometryUtils.d.ts +44 -0
  262. package/dist/cjs/three/BufferGeometryUtils.js +554 -0
  263. package/dist/cjs/three/BufferGeometryUtils.js.map +1 -0
  264. package/dist/cjs/three/OrbitControls.d.ts +59 -0
  265. package/dist/cjs/three/OrbitControls.js +790 -0
  266. package/dist/cjs/three/OrbitControls.js.map +1 -0
  267. package/dist/cjs/util/BatchedExecutor.d.ts +12 -12
  268. package/dist/cjs/util/BatchedExecutor.js +25 -25
  269. package/dist/cjs/util/BatchedExecutor.js.map +0 -0
  270. package/dist/cjs/util/log.d.ts +1 -1
  271. package/dist/cjs/util/log.js +31 -31
  272. package/dist/cjs/util/log.js.map +0 -0
  273. package/dist/cjs/util/model.d.ts +11 -11
  274. package/dist/cjs/util/model.js +181 -181
  275. package/dist/cjs/util/model.js.map +0 -0
  276. package/dist/cjs/util/performance.d.ts +3 -3
  277. package/dist/cjs/util/performance.js +18 -18
  278. package/dist/cjs/util/performance.js.map +0 -0
  279. package/dist/cjs/util/three.d.ts +8 -8
  280. package/dist/cjs/util/three.js +27 -27
  281. package/dist/cjs/util/three.js.map +0 -0
  282. package/dist/cjs/util/util.d.ts +19 -19
  283. package/dist/cjs/util/util.js +142 -142
  284. package/dist/cjs/util/util.js.map +0 -0
  285. package/dist/cjs/world/BlockInfo.d.ts +6 -6
  286. package/dist/cjs/world/BlockInfo.js +2 -2
  287. package/dist/cjs/world/BlockInfo.js.map +0 -0
  288. package/dist/cjs/world/Chunk.d.ts +33 -33
  289. package/dist/cjs/world/Chunk.js +131 -131
  290. package/dist/cjs/world/Chunk.js.map +1 -1
  291. package/dist/cjs/world/MineRenderWorld.d.ts +31 -31
  292. package/dist/cjs/world/MineRenderWorld.js +132 -132
  293. package/dist/cjs/world/MineRenderWorld.js.map +0 -0
  294. package/docs/CNAME +0 -0
  295. package/docs/ast/source/.external-ecmascript.js.json +0 -0
  296. package/docs/ast/source/combined/index.js.json +0 -0
  297. package/docs/ast/source/entity/index.js.json +0 -0
  298. package/docs/ast/source/functions.js.json +0 -0
  299. package/docs/ast/source/gui/guiHelper.js.json +0 -0
  300. package/docs/ast/source/gui/guiPositions.js.json +0 -0
  301. package/docs/ast/source/gui/index.js.json +0 -0
  302. package/docs/ast/source/lib/OrbitControls.js.json +0 -0
  303. package/docs/ast/source/lib/merge.js.json +0 -0
  304. package/docs/ast/source/model/ModelWorker.js.json +0 -0
  305. package/docs/ast/source/model/index.js.json +0 -0
  306. package/docs/ast/source/model/modelConverter.js.json +0 -0
  307. package/docs/ast/source/model/modelFunctions.js.json +0 -0
  308. package/docs/ast/source/renderBase.js.json +0 -0
  309. package/docs/ast/source/skin/index.js.json +0 -0
  310. package/docs/ast/source/skin/texturePositions.js.json +0 -0
  311. package/docs/badge.svg +0 -0
  312. package/docs/class/src/combined/index.js~CombinedRender.html +0 -0
  313. package/docs/class/src/entity/index.js~EntityRender.html +0 -0
  314. package/docs/class/src/gui/index.js~GuiRender.html +0 -0
  315. package/docs/class/src/model/index.js~ModelRender.html +0 -0
  316. package/docs/class/src/renderBase.js~Render.html +0 -0
  317. package/docs/class/src/skin/index.js~SkinRender.html +0 -0
  318. package/docs/coverage.json +0 -0
  319. package/docs/css/github.css +0 -0
  320. package/docs/css/identifiers.css +0 -0
  321. package/docs/css/manual.css +0 -0
  322. package/docs/css/prettify-tomorrow.css +0 -0
  323. package/docs/css/search.css +0 -0
  324. package/docs/css/source.css +0 -0
  325. package/docs/css/style.css +0 -0
  326. package/docs/css/test.css +0 -0
  327. package/docs/file/src/combined/index.js.html +0 -0
  328. package/docs/file/src/entity/index.js.html +0 -0
  329. package/docs/file/src/functions.js.html +0 -0
  330. package/docs/file/src/gui/guiHelper.js.html +0 -0
  331. package/docs/file/src/gui/guiPositions.js.html +0 -0
  332. package/docs/file/src/gui/index.js.html +0 -0
  333. package/docs/file/src/lib/OrbitControls.js.html +0 -0
  334. package/docs/file/src/lib/merge.js.html +0 -0
  335. package/docs/file/src/model/ModelWorker.js.html +0 -0
  336. package/docs/file/src/model/index.js.html +0 -0
  337. package/docs/file/src/model/modelConverter.js.html +0 -0
  338. package/docs/file/src/model/modelFunctions.js.html +0 -0
  339. package/docs/file/src/renderBase.js.html +0 -0
  340. package/docs/file/src/skin/index.js.html +0 -0
  341. package/docs/file/src/skin/texturePositions.js.html +0 -0
  342. package/docs/function/index.html +0 -0
  343. package/docs/identifiers.html +0 -0
  344. package/docs/image/badge.svg +0 -0
  345. package/docs/image/brand_logo.png +0 -0
  346. package/docs/image/esdoc-logo-mini-black.png +0 -0
  347. package/docs/image/esdoc-logo-mini.png +0 -0
  348. package/docs/image/github.png +0 -0
  349. package/docs/image/manual-badge.svg +0 -0
  350. package/docs/image/search.png +0 -0
  351. package/docs/index.html +0 -0
  352. package/docs/index.json +0 -0
  353. package/docs/lint.json +0 -0
  354. package/docs/script/inherited-summary.js +0 -0
  355. package/docs/script/inner-link.js +0 -0
  356. package/docs/script/manual.js +0 -0
  357. package/docs/script/patch-for-local.js +0 -0
  358. package/docs/script/prettify/Apache-License-2.0.txt +0 -0
  359. package/docs/script/prettify/prettify.js +0 -0
  360. package/docs/script/pretty-print.js +0 -0
  361. package/docs/script/search.js +0 -0
  362. package/docs/script/search_index.js +0 -0
  363. package/docs/script/test-summary.js +0 -0
  364. package/docs/source.html +0 -0
  365. package/docs/variable/index.html +0 -0
  366. package/embed/model/index.html +0 -0
  367. package/embed/skin/index.html +0 -0
  368. package/favicon.ico +0 -0
  369. package/gulpfile.js +2 -1
  370. package/img/minerender-x128.png +0 -0
  371. package/img/minerender-x256.png +0 -0
  372. package/img/minerender-x256.webp +0 -0
  373. package/img/minerender-x512.png +0 -0
  374. package/img/minerender-x64.png +0 -0
  375. package/img/minerender.svg +0 -0
  376. package/img/minerender_block_gray.png +0 -0
  377. package/img/minerender_steve.png +0 -0
  378. package/img/minerender_steve_gray.png +0 -0
  379. package/img/minerender_steve_gray_blur.png +0 -0
  380. package/img/optifine_cape.png +0 -0
  381. package/img/optifine_hires_cape.png +0 -0
  382. package/index.html +0 -0
  383. package/js/data.js +0 -0
  384. package/js/data.min.js.map +0 -0
  385. package/js/main.js +0 -0
  386. package/js/main.min.js.map +0 -0
  387. package/keybase.txt +0 -0
  388. package/manifest.json +0 -0
  389. package/mccolor.js +0 -0
  390. package/nameToUuid.php +0 -0
  391. package/package.json +16 -10
  392. package/renovate.json +0 -0
  393. package/res/bedrockSource.txt +0 -0
  394. package/res/idsToNames.json +0 -0
  395. package/res/mc/.htaccess +0 -0
  396. package/res/mc/index.php +0 -0
  397. package/res/models/entities/agent.json +0 -0
  398. package/res/models/entities/armor_stand.json +0 -0
  399. package/res/models/entities/bat.json +0 -0
  400. package/res/models/entities/bed.json +0 -0
  401. package/res/models/entities/blaze.json +0 -0
  402. package/res/models/entities/cape.json +0 -0
  403. package/res/models/entities/chalkboard_large.json +0 -0
  404. package/res/models/entities/chalkboard_medium.json +0 -0
  405. package/res/models/entities/chalkboard_small.json +0 -0
  406. package/res/models/entities/chicken.json +0 -0
  407. package/res/models/entities/cod.json +0 -0
  408. package/res/models/entities/cow.json +0 -0
  409. package/res/models/entities/creeper.charged.json +0 -0
  410. package/res/models/entities/creeper.json +0 -0
  411. package/res/models/entities/dolphin.json +0 -0
  412. package/res/models/entities/dragon.json +0 -0
  413. package/res/models/entities/dragon_head.json +0 -0
  414. package/res/models/entities/enderman.json +0 -0
  415. package/res/models/entities/evoker.json +0 -0
  416. package/res/models/entities/ghast.json +0 -0
  417. package/res/models/entities/guardian.json +0 -0
  418. package/res/models/entities/horse.json +0 -0
  419. package/res/models/entities/horse.v2.json +0 -0
  420. package/res/models/entities/humanoid.armor1.json +0 -0
  421. package/res/models/entities/humanoid.armor2.json +0 -0
  422. package/res/models/entities/humanoid.custom.json +0 -0
  423. package/res/models/entities/humanoid.customSlim.json +0 -0
  424. package/res/models/entities/humanoid.json +0 -0
  425. package/res/models/entities/irongolem.json +0 -0
  426. package/res/models/entities/lavaslime.json +0 -0
  427. package/res/models/entities/llama.json +0 -0
  428. package/res/models/entities/llamaspit.json +0 -0
  429. package/res/models/entities/mob_head.json +0 -0
  430. package/res/models/entities/mooshroom.json +0 -0
  431. package/res/models/entities/npc.json +0 -0
  432. package/res/models/entities/ocelot.json +0 -0
  433. package/res/models/entities/parrot.json +0 -0
  434. package/res/models/entities/pig.json +0 -0
  435. package/res/models/entities/pigzombie.baby.json +0 -0
  436. package/res/models/entities/pigzombie.json +0 -0
  437. package/res/models/entities/player_head.json +0 -0
  438. package/res/models/entities/polarbear.json +0 -0
  439. package/res/models/entities/pufferfish.large.json +0 -0
  440. package/res/models/entities/pufferfish.mid.json +0 -0
  441. package/res/models/entities/pufferfish.small.json +0 -0
  442. package/res/models/entities/quadruped.json +0 -0
  443. package/res/models/entities/rabbit.json +0 -0
  444. package/res/models/entities/salmon.json +0 -0
  445. package/res/models/entities/sheep.json +0 -0
  446. package/res/models/entities/sheep.sheared.json +0 -0
  447. package/res/models/entities/shulker.json +0 -0
  448. package/res/models/entities/silverfish.json +0 -0
  449. package/res/models/entities/skeleton.json +0 -0
  450. package/res/models/entities/skeleton.stray.json +0 -0
  451. package/res/models/entities/skeleton.wither.json +0 -0
  452. package/res/models/entities/slime.armor.json +0 -0
  453. package/res/models/entities/slime.json +0 -0
  454. package/res/models/entities/snowgolem.json +0 -0
  455. package/res/models/entities/spider.json +0 -0
  456. package/res/models/entities/squid.json +0 -0
  457. package/res/models/entities/stray.armor.json +0 -0
  458. package/res/models/entities/trident.json +0 -0
  459. package/res/models/entities/tropicalfish_a.json +0 -0
  460. package/res/models/entities/tropicalfish_b.json +0 -0
  461. package/res/models/entities/turtle.json +0 -0
  462. package/res/models/entities/vex.json +0 -0
  463. package/res/models/entities/villager.json +0 -0
  464. package/res/models/entities/villager.witch.json +0 -0
  465. package/res/models/entities/vindicator.json +0 -0
  466. package/res/models/entities/witherBoss.armor.json +0 -0
  467. package/res/models/entities/witherBoss.json +0 -0
  468. package/res/models/entities/wolf.json +0 -0
  469. package/res/models/entities/zombie.drowned.json +0 -0
  470. package/res/models/entities/zombie.husk.json +0 -0
  471. package/res/models/entities/zombie.json +0 -0
  472. package/res/models/entities/zombie.villager.json +0 -0
  473. package/res/tools/bedrock/bedrockEntityConverter.js +0 -0
  474. package/res/tools/bedrock/convertedMobs/agent.json +0 -0
  475. package/res/tools/bedrock/convertedMobs/bed.json +0 -0
  476. package/res/tools/bedrock/convertedMobs/cape.json +0 -0
  477. package/res/tools/bedrock/convertedMobs/chalkboard_large.json +0 -0
  478. package/res/tools/bedrock/convertedMobs/chalkboard_medium.json +0 -0
  479. package/res/tools/bedrock/convertedMobs/chalkboard_small.json +0 -0
  480. package/res/tools/bedrock/convertedMobs/dragon.json +0 -0
  481. package/res/tools/bedrock/convertedMobs/dragon_head.json +0 -0
  482. package/res/tools/bedrock/convertedMobs/elytra.json +0 -0
  483. package/res/tools/bedrock/convertedMobs/humanoid.armor.boots.json +0 -0
  484. package/res/tools/bedrock/convertedMobs/humanoid.armor.chestplate.json +0 -0
  485. package/res/tools/bedrock/convertedMobs/humanoid.armor.helmet.json +0 -0
  486. package/res/tools/bedrock/convertedMobs/humanoid.armor.leggings.json +0 -0
  487. package/res/tools/bedrock/convertedMobs/humanoid.armor1.json +0 -0
  488. package/res/tools/bedrock/convertedMobs/humanoid.armor2.json +0 -0
  489. package/res/tools/bedrock/convertedMobs/humanoid.custom.json +0 -0
  490. package/res/tools/bedrock/convertedMobs/humanoid.customSlim.json +0 -0
  491. package/res/tools/bedrock/convertedMobs/humanoid.json +0 -0
  492. package/res/tools/bedrock/convertedMobs/irongolem.json +0 -0
  493. package/res/tools/bedrock/convertedMobs/mob_head.json +0 -0
  494. package/res/tools/bedrock/convertedMobs/player_head.json +0 -0
  495. package/res/tools/bedrock/convertedMobs/quadruped.json +0 -0
  496. package/res/tools/bedrock/convertedMobs/rsion.json +0 -0
  497. package/res/tools/bedrock/convertedMobs/trident.json +0 -0
  498. package/res/tools/bedrock/mobs.json +0 -0
  499. package/res/tools/java/javaSourceParser.js +0 -0
  500. package/res/tools/java/parsedToModel.js +0 -0
  501. package/server/index.js +0 -0
  502. package/src/AnimatorFunction.d.ts +0 -0
  503. package/src/AnimatorFunction.js +0 -0
  504. package/src/AnimatorFunction.js.map +0 -0
  505. package/src/AnimatorFunction.ts +0 -0
  506. package/src/Axis.d.ts +0 -0
  507. package/src/Axis.js +0 -0
  508. package/src/Axis.js.map +0 -0
  509. package/src/Axis.ts +0 -0
  510. package/src/CubeFace.d.ts +0 -0
  511. package/src/CubeFace.js +0 -0
  512. package/src/CubeFace.js.map +0 -0
  513. package/src/CubeFace.ts +0 -0
  514. package/src/Disposable.d.ts +0 -0
  515. package/src/Disposable.js +0 -0
  516. package/src/Disposable.js.map +0 -0
  517. package/src/Disposable.ts +0 -0
  518. package/src/Env.d.ts +0 -0
  519. package/src/Env.js +0 -0
  520. package/src/Env.js.map +0 -0
  521. package/src/Env.ts +0 -0
  522. package/src/ExtractableImageData.d.ts +0 -0
  523. package/src/ExtractableImageData.js +0 -0
  524. package/src/ExtractableImageData.js.map +0 -0
  525. package/src/ExtractableImageData.ts +0 -0
  526. package/src/Geometries.d.ts +0 -0
  527. package/src/Geometries.js +0 -0
  528. package/src/Geometries.js.map +0 -0
  529. package/src/Geometries.ts +0 -0
  530. package/src/ListAsset.d.ts +0 -0
  531. package/src/ListAsset.js +0 -0
  532. package/src/ListAsset.js.map +0 -0
  533. package/src/ListAsset.ts +0 -0
  534. package/src/Materials.d.ts +0 -0
  535. package/src/Materials.js +0 -0
  536. package/src/Materials.js.map +0 -0
  537. package/src/Materials.ts +0 -0
  538. package/src/Meshes.d.ts +0 -0
  539. package/src/Meshes.js +0 -0
  540. package/src/Meshes.js.map +0 -0
  541. package/src/Meshes.ts +0 -0
  542. package/src/MinecraftAsset.d.ts +0 -0
  543. package/src/MinecraftAsset.js +0 -0
  544. package/src/MinecraftAsset.js.map +0 -0
  545. package/src/MinecraftAsset.ts +0 -0
  546. package/src/MinecraftCubeTexture.d.ts +0 -0
  547. package/src/MinecraftCubeTexture.js +0 -0
  548. package/src/MinecraftCubeTexture.js.map +0 -0
  549. package/src/MinecraftCubeTexture.ts +0 -0
  550. package/src/MinecraftTextureMeta.d.ts +0 -0
  551. package/src/MinecraftTextureMeta.js +0 -0
  552. package/src/MinecraftTextureMeta.js.map +0 -0
  553. package/src/MinecraftTextureMeta.ts +0 -0
  554. package/src/SceneStats.d.ts +0 -0
  555. package/src/SceneStats.js +0 -0
  556. package/src/SceneStats.js.map +0 -0
  557. package/src/SceneStats.ts +0 -0
  558. package/src/Serializable.d.ts +0 -0
  559. package/src/Serializable.js +0 -0
  560. package/src/Serializable.js.map +0 -0
  561. package/src/Serializable.ts +0 -0
  562. package/src/Ticker.d.ts +0 -0
  563. package/src/Ticker.js +0 -0
  564. package/src/Ticker.js.map +0 -0
  565. package/src/Ticker.ts +0 -0
  566. package/src/TintColors.ts +0 -0
  567. package/src/Transformable.d.ts +0 -0
  568. package/src/Transformable.js +0 -0
  569. package/src/Transformable.js.map +0 -0
  570. package/src/Transformable.ts +0 -0
  571. package/src/UVMapper.d.ts +0 -0
  572. package/src/UVMapper.js +0 -0
  573. package/src/UVMapper.js.map +0 -0
  574. package/src/UVMapper.ts +4 -0
  575. package/src/WrappedImage.d.ts +0 -0
  576. package/src/WrappedImage.js +0 -0
  577. package/src/WrappedImage.js.map +0 -0
  578. package/src/WrappedImage.ts +0 -0
  579. package/src/_model/Cube.ts +0 -0
  580. package/src/_model/Element.ts +0 -0
  581. package/src/_model/Face.ts +0 -0
  582. package/src/_model/Model.ts +0 -0
  583. package/src/assets/AssetKey.d.ts +0 -0
  584. package/src/assets/AssetKey.js +0 -0
  585. package/src/assets/AssetKey.js.map +0 -0
  586. package/src/assets/AssetKey.ts +0 -0
  587. package/src/assets/AssetLoader.d.ts +0 -0
  588. package/src/assets/AssetLoader.js +0 -0
  589. package/src/assets/AssetLoader.js.map +0 -0
  590. package/src/assets/AssetLoader.ts +0 -0
  591. package/src/assets/Assets.d.ts +0 -0
  592. package/src/assets/Assets.js +0 -0
  593. package/src/assets/Assets.js.map +0 -0
  594. package/src/assets/Assets.ts +0 -0
  595. package/src/assets/BlockStates.d.ts +0 -0
  596. package/src/assets/BlockStates.js +0 -0
  597. package/src/assets/BlockStates.js.map +0 -0
  598. package/src/assets/BlockStates.ts +0 -0
  599. package/src/assets/Entities.d.ts +0 -0
  600. package/src/assets/Entities.js +0 -0
  601. package/src/assets/Entities.js.map +0 -0
  602. package/src/assets/Entities.ts +0 -0
  603. package/src/assets/ModelTextures.d.ts +0 -0
  604. package/src/assets/ModelTextures.js +0 -0
  605. package/src/assets/ModelTextures.js.map +0 -0
  606. package/src/assets/ModelTextures.ts +0 -0
  607. package/src/assets/Models.d.ts +0 -0
  608. package/src/assets/Models.js +0 -0
  609. package/src/assets/Models.js.map +0 -0
  610. package/src/assets/Models.ts +0 -0
  611. package/src/bedrock/BedrockEntityDescription.ts +0 -0
  612. package/src/bedrock/BedrockEntityFile.ts +0 -0
  613. package/src/bedrock/BedrockGeometry.ts +0 -0
  614. package/src/bedrock/BedrockGeometryFile.ts +0 -0
  615. package/src/cache/CacheKey.d.ts +0 -0
  616. package/src/cache/CacheKey.js +0 -0
  617. package/src/cache/CacheKey.js.map +0 -0
  618. package/src/cache/CacheKey.ts +0 -0
  619. package/src/cache/Caching.d.ts +0 -0
  620. package/src/cache/Caching.js +0 -0
  621. package/src/cache/Caching.js.map +0 -0
  622. package/src/cache/Caching.ts +0 -0
  623. package/src/cache/PersistentCache.d.ts +0 -0
  624. package/src/cache/PersistentCache.js +0 -0
  625. package/src/cache/PersistentCache.js.map +0 -0
  626. package/src/cache/PersistentCache.ts +0 -0
  627. package/src/canvas/CanvasCompat.d.ts +0 -0
  628. package/src/canvas/CanvasCompat.js +0 -0
  629. package/src/canvas/CanvasCompat.js.map +0 -0
  630. package/src/canvas/CanvasCompat.ts +0 -0
  631. package/src/canvas/CanvasImage.d.ts +0 -0
  632. package/src/canvas/CanvasImage.js +0 -0
  633. package/src/canvas/CanvasImage.js.map +0 -0
  634. package/src/canvas/CanvasImage.ts +0 -0
  635. package/src/entity/EntityModel.d.ts +0 -0
  636. package/src/entity/EntityModel.js +0 -0
  637. package/src/entity/EntityModel.js.map +0 -0
  638. package/src/entity/EntityModel.ts +0 -0
  639. package/src/entity/blockEntityModels.json +0 -0
  640. package/src/entity/entityModels.json +0 -0
  641. package/src/entity/scene/EntityObject.d.ts +0 -0
  642. package/src/entity/scene/EntityObject.js +0 -0
  643. package/src/entity/scene/EntityObject.js.map +0 -0
  644. package/src/entity/scene/EntityObject.ts +0 -0
  645. package/src/error/MineRenderError.d.ts +0 -0
  646. package/src/error/MineRenderError.js +0 -0
  647. package/src/error/MineRenderError.js.map +0 -0
  648. package/src/error/MineRenderError.ts +0 -0
  649. package/src/gui/scene/GuiObject.ts +0 -0
  650. package/src/image/ImageLoader.d.ts +0 -0
  651. package/src/image/ImageLoader.js +0 -0
  652. package/src/image/ImageLoader.js.map +0 -0
  653. package/src/image/ImageLoader.ts +0 -0
  654. package/src/index.d.ts +0 -0
  655. package/src/index.js +0 -0
  656. package/src/index.js.map +0 -0
  657. package/src/index.ts +0 -0
  658. package/src/inspector/SceneInspector.d.ts +0 -0
  659. package/src/inspector/SceneInspector.js +0 -0
  660. package/src/inspector/SceneInspector.js.map +0 -0
  661. package/src/inspector/SceneInspector.ts +0 -0
  662. package/src/inspector/SceneStats.ts +0 -0
  663. package/src/instance/InstanceManager.ts +0 -0
  664. package/src/instance/InstanceReference.d.ts +0 -0
  665. package/src/instance/InstanceReference.js +0 -0
  666. package/src/instance/InstanceReference.js.map +0 -0
  667. package/src/instance/InstanceReference.ts +0 -0
  668. package/src/instance/Instanceable.d.ts +0 -0
  669. package/src/instance/Instanceable.js +0 -0
  670. package/src/instance/Instanceable.js.map +0 -0
  671. package/src/instance/Instanceable.ts +0 -0
  672. package/src/lib/OrbitControls.js +0 -0
  673. package/src/model/DisplayPosition.ts +0 -0
  674. package/src/model/ElementFace.d.ts +0 -0
  675. package/src/model/ElementFace.js +0 -0
  676. package/src/model/ElementFace.js.map +0 -0
  677. package/src/model/ElementFace.ts +0 -0
  678. package/src/model/GuiLight.ts +0 -0
  679. package/src/model/Model.d.ts +0 -0
  680. package/src/model/Model.js +0 -0
  681. package/src/model/Model.js.map +0 -0
  682. package/src/model/Model.ts +0 -0
  683. package/src/model/ModelElement.ts +0 -0
  684. package/src/model/ModelGenerator.ts +0 -0
  685. package/src/model/ModelMerger.ts +0 -0
  686. package/src/model/ModelPart.d.ts +0 -0
  687. package/src/model/ModelPart.js +0 -0
  688. package/src/model/ModelPart.js.map +0 -0
  689. package/src/model/ModelPart.ts +0 -0
  690. package/src/model/block/Block.ts +0 -0
  691. package/src/model/block/BlockState.ts +0 -0
  692. package/src/model/block/BlockStateProperties.ts +0 -0
  693. package/src/model/block/scene/BlockObject.ts +0 -0
  694. package/src/model/defaultBlockStates.json +0 -0
  695. package/src/model/legacyBlockList.json +0 -0
  696. package/src/model/multiblock/MultiBlockStructure.ts +0 -0
  697. package/src/model/multiblock/SchematicParser.ts +0 -0
  698. package/src/model/multiblock/StructureParser.ts +0 -0
  699. package/src/model/scene/ModelObject.ts +0 -0
  700. package/src/nbt/NBTHelper.d.ts +0 -0
  701. package/src/nbt/NBTHelper.js +0 -0
  702. package/src/nbt/NBTHelper.js.map +0 -0
  703. package/src/nbt/NBTHelper.ts +0 -0
  704. package/src/renderer/MineRenderScene.ts +0 -0
  705. package/src/renderer/Renderer.ts +12 -8
  706. package/src/renderer/SceneObject.ts +0 -0
  707. package/src/renderer/SceneObjectOptions.ts +0 -0
  708. package/src/request/Requests.ts +0 -0
  709. package/src/skin/SkinGeometries.d.ts +0 -0
  710. package/src/skin/SkinGeometries.js +0 -0
  711. package/src/skin/SkinGeometries.js.map +0 -0
  712. package/src/skin/SkinGeometries.ts +0 -0
  713. package/src/skin/SkinPart.d.ts +0 -0
  714. package/src/skin/SkinPart.js +0 -0
  715. package/src/skin/SkinPart.js.map +0 -0
  716. package/src/skin/SkinPart.ts +0 -0
  717. package/src/skin/SkinTextureCoordinates.d.ts +0 -0
  718. package/src/skin/SkinTextureCoordinates.js +0 -0
  719. package/src/skin/SkinTextureCoordinates.js.map +0 -0
  720. package/src/skin/SkinTextureCoordinates.ts +0 -0
  721. package/src/skin/Skins.ts +0 -0
  722. package/src/skin/playerModels.json +0 -0
  723. package/src/skin/scene/SkinObject.d.ts +0 -0
  724. package/src/skin/scene/SkinObject.js +0 -0
  725. package/src/skin/scene/SkinObject.js.map +0 -0
  726. package/src/skin/scene/SkinObject.ts +0 -0
  727. package/src/texture/TextureAtlas.d.ts +0 -0
  728. package/src/texture/TextureAtlas.js +0 -0
  729. package/src/texture/TextureAtlas.js.map +0 -0
  730. package/src/texture/TextureAtlas.ts +0 -0
  731. package/src/texture/TextureLoader.d.ts +0 -0
  732. package/src/texture/TextureLoader.js +0 -0
  733. package/src/texture/TextureLoader.js.map +0 -0
  734. package/src/texture/TextureLoader.ts +0 -0
  735. package/src/texture/Textures.d.ts +0 -0
  736. package/src/texture/Textures.js +0 -0
  737. package/src/texture/Textures.js.map +0 -0
  738. package/src/texture/Textures.ts +0 -0
  739. package/src/three/BufferGeometryUtils.d.ts +0 -0
  740. package/src/three/BufferGeometryUtils.js +0 -0
  741. package/src/three/OrbitControls.d.ts +0 -0
  742. package/src/three/OrbitControls.js +7 -6
  743. package/src/util/BatchedExecutor.ts +0 -0
  744. package/src/util/log.ts +0 -0
  745. package/src/util/model.d.ts +0 -0
  746. package/src/util/model.js +0 -0
  747. package/src/util/model.js.map +0 -0
  748. package/src/util/model.ts +0 -0
  749. package/src/util/performance.ts +0 -0
  750. package/src/util/three.d.ts +0 -0
  751. package/src/util/three.js +0 -0
  752. package/src/util/three.js.map +0 -0
  753. package/src/util/three.ts +0 -0
  754. package/src/util/util.d.ts +0 -0
  755. package/src/util/util.js +0 -0
  756. package/src/util/util.js.map +0 -0
  757. package/src/util/util.ts +0 -0
  758. package/src/world/BlockInfo.ts +0 -0
  759. package/src/world/Chunk.ts +1 -1
  760. package/src/world/MineRenderWorld.ts +0 -0
  761. package/test/combined.html +0 -0
  762. package/test/entity.html +0 -0
  763. package/test/gui.html +0 -0
  764. package/test/model.html +0 -0
  765. package/test/serviceworker.js +0 -0
  766. package/test/skin.html +0 -0
  767. package/test/structure.html +0 -0
  768. package/test/v2.html +0 -0
  769. package/tsconfig-cjs.json +0 -0
  770. package/tsconfig.json +3 -0
  771. package/dist/bundle.js +0 -146812
  772. package/dist/bundle.js.map +0 -1
  773. package/dist/esm/AnimatorFunction.d.ts +0 -3
  774. package/dist/esm/AnimatorFunction.js +0 -2
  775. package/dist/esm/AnimatorFunction.js.map +0 -1
  776. package/dist/esm/Axis.d.ts +0 -8
  777. package/dist/esm/Axis.js +0 -19
  778. package/dist/esm/Axis.js.map +0 -1
  779. package/dist/esm/CubeFace.d.ts +0 -17
  780. package/dist/esm/CubeFace.js +0 -20
  781. package/dist/esm/CubeFace.js.map +0 -1
  782. package/dist/esm/Disposable.d.ts +0 -4
  783. package/dist/esm/Disposable.js +0 -4
  784. package/dist/esm/Disposable.js.map +0 -1
  785. package/dist/esm/Env.d.ts +0 -2
  786. package/dist/esm/Env.js +0 -3
  787. package/dist/esm/Env.js.map +0 -1
  788. package/dist/esm/ExtractableImageData.d.ts +0 -5
  789. package/dist/esm/ExtractableImageData.js +0 -2
  790. package/dist/esm/ExtractableImageData.js.map +0 -1
  791. package/dist/esm/Geometries.d.ts +0 -6
  792. package/dist/esm/Geometries.js +0 -88
  793. package/dist/esm/Geometries.js.map +0 -1
  794. package/dist/esm/ListAsset.d.ts +0 -5
  795. package/dist/esm/ListAsset.js +0 -2
  796. package/dist/esm/ListAsset.js.map +0 -1
  797. package/dist/esm/Materials.d.ts +0 -9
  798. package/dist/esm/Materials.js +0 -147
  799. package/dist/esm/Materials.js.map +0 -1
  800. package/dist/esm/Meshes.d.ts +0 -6
  801. package/dist/esm/Meshes.js +0 -17
  802. package/dist/esm/Meshes.js.map +0 -1
  803. package/dist/esm/MinecraftAsset.d.ts +0 -7
  804. package/dist/esm/MinecraftAsset.js +0 -2
  805. package/dist/esm/MinecraftAsset.js.map +0 -1
  806. package/dist/esm/MinecraftCubeTexture.d.ts +0 -26
  807. package/dist/esm/MinecraftCubeTexture.js +0 -100
  808. package/dist/esm/MinecraftCubeTexture.js.map +0 -1
  809. package/dist/esm/MinecraftTextureMeta.d.ts +0 -15
  810. package/dist/esm/MinecraftTextureMeta.js +0 -2
  811. package/dist/esm/MinecraftTextureMeta.js.map +0 -1
  812. package/dist/esm/SceneStats.d.ts +0 -5
  813. package/dist/esm/SceneStats.js +0 -8
  814. package/dist/esm/SceneStats.js.map +0 -1
  815. package/dist/esm/Serializable.d.ts +0 -3
  816. package/dist/esm/Serializable.js +0 -2
  817. package/dist/esm/Serializable.js.map +0 -1
  818. package/dist/esm/Ticker.d.ts +0 -20
  819. package/dist/esm/Ticker.js +0 -51
  820. package/dist/esm/Ticker.js.map +0 -1
  821. package/dist/esm/TintColors.d.ts +0 -1
  822. package/dist/esm/TintColors.js +0 -2
  823. package/dist/esm/TintColors.js.map +0 -1
  824. package/dist/esm/Transformable.d.ts +0 -11
  825. package/dist/esm/Transformable.js +0 -4
  826. package/dist/esm/Transformable.js.map +0 -1
  827. package/dist/esm/UVMapper.d.ts +0 -40
  828. package/dist/esm/UVMapper.js +0 -425
  829. package/dist/esm/UVMapper.js.map +0 -1
  830. package/dist/esm/WrappedImage.d.ts +0 -17
  831. package/dist/esm/WrappedImage.js +0 -46
  832. package/dist/esm/WrappedImage.js.map +0 -1
  833. package/dist/esm/_model/Cube.d.ts +0 -10
  834. package/dist/esm/_model/Cube.js +0 -2
  835. package/dist/esm/_model/Cube.js.map +0 -1
  836. package/dist/esm/_model/Element.d.ts +0 -9
  837. package/dist/esm/_model/Element.js +0 -2
  838. package/dist/esm/_model/Element.js.map +0 -1
  839. package/dist/esm/_model/Face.d.ts +0 -6
  840. package/dist/esm/_model/Face.js +0 -2
  841. package/dist/esm/_model/Face.js.map +0 -1
  842. package/dist/esm/_model/Model.d.ts +0 -4
  843. package/dist/esm/_model/Model.js +0 -2
  844. package/dist/esm/_model/Model.js.map +0 -1
  845. package/dist/esm/assets/AssetKey.d.ts +0 -26
  846. package/dist/esm/assets/AssetKey.js +0 -76
  847. package/dist/esm/assets/AssetKey.js.map +0 -1
  848. package/dist/esm/assets/AssetLoader.d.ts +0 -26
  849. package/dist/esm/assets/AssetLoader.js +0 -149
  850. package/dist/esm/assets/AssetLoader.js.map +0 -1
  851. package/dist/esm/assets/Assets.d.ts +0 -14
  852. package/dist/esm/assets/Assets.js +0 -33
  853. package/dist/esm/assets/Assets.js.map +0 -1
  854. package/dist/esm/assets/BlockStates.d.ts +0 -11
  855. package/dist/esm/assets/BlockStates.js +0 -68
  856. package/dist/esm/assets/BlockStates.js.map +0 -1
  857. package/dist/esm/assets/Entities.d.ts +0 -8
  858. package/dist/esm/assets/Entities.js +0 -50
  859. package/dist/esm/assets/Entities.js.map +0 -1
  860. package/dist/esm/assets/ModelTextures.d.ts +0 -12
  861. package/dist/esm/assets/ModelTextures.js +0 -62
  862. package/dist/esm/assets/ModelTextures.js.map +0 -1
  863. package/dist/esm/assets/Models.d.ts +0 -12
  864. package/dist/esm/assets/Models.js +0 -91
  865. package/dist/esm/assets/Models.js.map +0 -1
  866. package/dist/esm/bedrock/BedrockEntityDescription.d.ts +0 -19
  867. package/dist/esm/bedrock/BedrockEntityDescription.js +0 -2
  868. package/dist/esm/bedrock/BedrockEntityDescription.js.map +0 -1
  869. package/dist/esm/bedrock/BedrockEntityFile.d.ts +0 -7
  870. package/dist/esm/bedrock/BedrockEntityFile.js +0 -2
  871. package/dist/esm/bedrock/BedrockEntityFile.js.map +0 -1
  872. package/dist/esm/bedrock/BedrockGeometry.d.ts +0 -27
  873. package/dist/esm/bedrock/BedrockGeometry.js +0 -2
  874. package/dist/esm/bedrock/BedrockGeometry.js.map +0 -1
  875. package/dist/esm/bedrock/BedrockGeometryFile.d.ts +0 -5
  876. package/dist/esm/bedrock/BedrockGeometryFile.js +0 -2
  877. package/dist/esm/bedrock/BedrockGeometryFile.js.map +0 -1
  878. package/dist/esm/cache/CacheKey.d.ts +0 -28
  879. package/dist/esm/cache/CacheKey.js +0 -19
  880. package/dist/esm/cache/CacheKey.js.map +0 -1
  881. package/dist/esm/cache/Caching.d.ts +0 -29
  882. package/dist/esm/cache/Caching.js +0 -89
  883. package/dist/esm/cache/Caching.js.map +0 -1
  884. package/dist/esm/cache/PersistentCache.d.ts +0 -15
  885. package/dist/esm/cache/PersistentCache.js +0 -105
  886. package/dist/esm/cache/PersistentCache.js.map +0 -1
  887. package/dist/esm/canvas/CanvasCompat.d.ts +0 -5
  888. package/dist/esm/canvas/CanvasCompat.js +0 -29
  889. package/dist/esm/canvas/CanvasCompat.js.map +0 -1
  890. package/dist/esm/canvas/CanvasImage.d.ts +0 -18
  891. package/dist/esm/canvas/CanvasImage.js +0 -41
  892. package/dist/esm/canvas/CanvasImage.js.map +0 -1
  893. package/dist/esm/entity/EntityModel.d.ts +0 -7
  894. package/dist/esm/entity/EntityModel.js +0 -2
  895. package/dist/esm/entity/EntityModel.js.map +0 -1
  896. package/dist/esm/entity/blockEntityModels.json +0 -1401
  897. package/dist/esm/entity/entityModels.json +0 -20623
  898. package/dist/esm/entity/scene/EntityObject.d.ts +0 -20
  899. package/dist/esm/entity/scene/EntityObject.js +0 -104
  900. package/dist/esm/entity/scene/EntityObject.js.map +0 -1
  901. package/dist/esm/error/MineRenderError.d.ts +0 -4
  902. package/dist/esm/error/MineRenderError.js +0 -11
  903. package/dist/esm/error/MineRenderError.js.map +0 -1
  904. package/dist/esm/gui/scene/GuiObject.d.ts +0 -6
  905. package/dist/esm/gui/scene/GuiObject.js +0 -4
  906. package/dist/esm/gui/scene/GuiObject.js.map +0 -1
  907. package/dist/esm/image/ImageLoader.d.ts +0 -28
  908. package/dist/esm/image/ImageLoader.js +0 -159
  909. package/dist/esm/image/ImageLoader.js.map +0 -1
  910. package/dist/esm/index.d.ts +0 -28
  911. package/dist/esm/index.js +0 -31
  912. package/dist/esm/index.js.map +0 -1
  913. package/dist/esm/inspector/SceneInspector.d.ts +0 -27
  914. package/dist/esm/inspector/SceneInspector.js +0 -362
  915. package/dist/esm/inspector/SceneInspector.js.map +0 -1
  916. package/dist/esm/inspector/SceneStats.d.ts +0 -22
  917. package/dist/esm/inspector/SceneStats.js +0 -49
  918. package/dist/esm/inspector/SceneStats.js.map +0 -1
  919. package/dist/esm/instance/InstanceManager.d.ts +0 -14
  920. package/dist/esm/instance/InstanceManager.js +0 -53
  921. package/dist/esm/instance/InstanceManager.js.map +0 -1
  922. package/dist/esm/instance/InstanceReference.d.ts +0 -21
  923. package/dist/esm/instance/InstanceReference.js +0 -44
  924. package/dist/esm/instance/InstanceReference.js.map +0 -1
  925. package/dist/esm/instance/Instanceable.d.ts +0 -16
  926. package/dist/esm/instance/Instanceable.js +0 -4
  927. package/dist/esm/instance/Instanceable.js.map +0 -1
  928. package/dist/esm/model/DisplayPosition.d.ts +0 -11
  929. package/dist/esm/model/DisplayPosition.js +0 -13
  930. package/dist/esm/model/DisplayPosition.js.map +0 -1
  931. package/dist/esm/model/ElementFace.d.ts +0 -9
  932. package/dist/esm/model/ElementFace.js +0 -2
  933. package/dist/esm/model/ElementFace.js.map +0 -1
  934. package/dist/esm/model/GuiLight.d.ts +0 -4
  935. package/dist/esm/model/GuiLight.js +0 -6
  936. package/dist/esm/model/GuiLight.js.map +0 -1
  937. package/dist/esm/model/Model.d.ts +0 -46
  938. package/dist/esm/model/Model.js +0 -14
  939. package/dist/esm/model/Model.js.map +0 -1
  940. package/dist/esm/model/ModelElement.d.ts +0 -21
  941. package/dist/esm/model/ModelElement.js +0 -2
  942. package/dist/esm/model/ModelElement.js.map +0 -1
  943. package/dist/esm/model/ModelGenerator.d.ts +0 -6
  944. package/dist/esm/model/ModelGenerator.js +0 -23
  945. package/dist/esm/model/ModelGenerator.js.map +0 -1
  946. package/dist/esm/model/ModelMerger.d.ts +0 -5
  947. package/dist/esm/model/ModelMerger.js +0 -44
  948. package/dist/esm/model/ModelMerger.js.map +0 -1
  949. package/dist/esm/model/ModelPart.d.ts +0 -23
  950. package/dist/esm/model/ModelPart.js +0 -2
  951. package/dist/esm/model/ModelPart.js.map +0 -1
  952. package/dist/esm/model/block/Block.d.ts +0 -6
  953. package/dist/esm/model/block/Block.js +0 -2
  954. package/dist/esm/model/block/Block.js.map +0 -1
  955. package/dist/esm/model/block/BlockState.d.ts +0 -23
  956. package/dist/esm/model/block/BlockState.js +0 -2
  957. package/dist/esm/model/block/BlockState.js.map +0 -1
  958. package/dist/esm/model/block/BlockStateProperties.d.ts +0 -13
  959. package/dist/esm/model/block/BlockStateProperties.js +0 -2
  960. package/dist/esm/model/block/BlockStateProperties.js.map +0 -1
  961. package/dist/esm/model/block/scene/BlockObject.d.ts +0 -46
  962. package/dist/esm/model/block/scene/BlockObject.js +0 -460
  963. package/dist/esm/model/block/scene/BlockObject.js.map +0 -1
  964. package/dist/esm/model/defaultBlockStates.json +0 -12337
  965. package/dist/esm/model/multiblock/MultiBlockStructure.d.ts +0 -9
  966. package/dist/esm/model/multiblock/MultiBlockStructure.js +0 -2
  967. package/dist/esm/model/multiblock/MultiBlockStructure.js.map +0 -1
  968. package/dist/esm/model/multiblock/SchematicParser.d.ts +0 -4
  969. package/dist/esm/model/multiblock/SchematicParser.js +0 -19
  970. package/dist/esm/model/multiblock/SchematicParser.js.map +0 -1
  971. package/dist/esm/model/multiblock/StructureParser.d.ts +0 -70
  972. package/dist/esm/model/multiblock/StructureParser.js +0 -48
  973. package/dist/esm/model/multiblock/StructureParser.js.map +0 -1
  974. package/dist/esm/model/scene/ModelObject.d.ts +0 -25
  975. package/dist/esm/model/scene/ModelObject.js +0 -155
  976. package/dist/esm/model/scene/ModelObject.js.map +0 -1
  977. package/dist/esm/nbt/NBTHelper.d.ts +0 -8
  978. package/dist/esm/nbt/NBTHelper.js +0 -19
  979. package/dist/esm/nbt/NBTHelper.js.map +0 -1
  980. package/dist/esm/renderer/MineRenderScene.d.ts +0 -35
  981. package/dist/esm/renderer/MineRenderScene.js +0 -124
  982. package/dist/esm/renderer/MineRenderScene.js.map +0 -1
  983. package/dist/esm/renderer/Renderer.d.ts +0 -78
  984. package/dist/esm/renderer/Renderer.js +0 -252
  985. package/dist/esm/renderer/Renderer.js.map +0 -1
  986. package/dist/esm/renderer/SceneObject.d.ts +0 -81
  987. package/dist/esm/renderer/SceneObject.js +0 -392
  988. package/dist/esm/renderer/SceneObject.js.map +0 -1
  989. package/dist/esm/renderer/SceneObjectOptions.d.ts +0 -6
  990. package/dist/esm/renderer/SceneObjectOptions.js +0 -2
  991. package/dist/esm/renderer/SceneObjectOptions.js.map +0 -1
  992. package/dist/esm/request/Requests.d.ts +0 -12
  993. package/dist/esm/request/Requests.js +0 -32
  994. package/dist/esm/request/Requests.js.map +0 -1
  995. package/dist/esm/skin/SkinGeometries.d.ts +0 -5
  996. package/dist/esm/skin/SkinGeometries.js +0 -33
  997. package/dist/esm/skin/SkinGeometries.js.map +0 -1
  998. package/dist/esm/skin/SkinPart.d.ts +0 -16
  999. package/dist/esm/skin/SkinPart.js +0 -18
  1000. package/dist/esm/skin/SkinPart.js.map +0 -1
  1001. package/dist/esm/skin/SkinTextureCoordinates.d.ts +0 -5
  1002. package/dist/esm/skin/SkinTextureCoordinates.js +0 -748
  1003. package/dist/esm/skin/SkinTextureCoordinates.js.map +0 -1
  1004. package/dist/esm/skin/Skins.d.ts +0 -17
  1005. package/dist/esm/skin/Skins.js +0 -164
  1006. package/dist/esm/skin/Skins.js.map +0 -1
  1007. package/dist/esm/skin/scene/SkinObject.d.ts +0 -21
  1008. package/dist/esm/skin/scene/SkinObject.js +0 -112
  1009. package/dist/esm/skin/scene/SkinObject.js.map +0 -1
  1010. package/dist/esm/texture/TextureAtlas.d.ts +0 -29
  1011. package/dist/esm/texture/TextureAtlas.js +0 -22
  1012. package/dist/esm/texture/TextureAtlas.js.map +0 -1
  1013. package/dist/esm/texture/TextureLoader.d.ts +0 -6
  1014. package/dist/esm/texture/TextureLoader.js +0 -30
  1015. package/dist/esm/texture/TextureLoader.js.map +0 -1
  1016. package/dist/esm/texture/Textures.d.ts +0 -10
  1017. package/dist/esm/texture/Textures.js +0 -29
  1018. package/dist/esm/texture/Textures.js.map +0 -1
  1019. package/dist/esm/util/BatchedExecutor.d.ts +0 -12
  1020. package/dist/esm/util/BatchedExecutor.js +0 -22
  1021. package/dist/esm/util/BatchedExecutor.js.map +0 -1
  1022. package/dist/esm/util/log.d.ts +0 -1
  1023. package/dist/esm/util/log.js +0 -28
  1024. package/dist/esm/util/log.js.map +0 -1
  1025. package/dist/esm/util/model.d.ts +0 -11
  1026. package/dist/esm/util/model.js +0 -173
  1027. package/dist/esm/util/model.js.map +0 -1
  1028. package/dist/esm/util/performance.d.ts +0 -3
  1029. package/dist/esm/util/performance.js +0 -13
  1030. package/dist/esm/util/performance.js.map +0 -1
  1031. package/dist/esm/util/three.d.ts +0 -8
  1032. package/dist/esm/util/three.js +0 -19
  1033. package/dist/esm/util/three.js.map +0 -1
  1034. package/dist/esm/util/util.d.ts +0 -19
  1035. package/dist/esm/util/util.js +0 -107
  1036. package/dist/esm/util/util.js.map +0 -1
  1037. package/dist/esm/world/BlockInfo.d.ts +0 -6
  1038. package/dist/esm/world/BlockInfo.js +0 -2
  1039. package/dist/esm/world/BlockInfo.js.map +0 -1
  1040. package/dist/esm/world/Chunk.d.ts +0 -33
  1041. package/dist/esm/world/Chunk.js +0 -128
  1042. package/dist/esm/world/Chunk.js.map +0 -1
  1043. package/dist/esm/world/MineRenderWorld.d.ts +0 -31
  1044. package/dist/esm/world/MineRenderWorld.js +0 -129
  1045. package/dist/esm/world/MineRenderWorld.js.map +0 -1
  1046. package/src/combined/index.js +0 -83
  1047. package/src/entity/index.js +0 -335
  1048. package/src/functions.js +0 -262
  1049. package/src/gui/guiHelper.js +0 -154
  1050. package/src/gui/guiPositions.js +0 -85
  1051. package/src/gui/index.js +0 -222
  1052. package/src/lib/merge.js +0 -0
  1053. package/src/model/ModelWorker.js +0 -32
  1054. package/src/model/index.js +0 -1128
  1055. package/src/model/modelConverter.js +0 -290
  1056. package/src/model/modelFunctions.js +0 -463
  1057. package/src/renderBase.js +0 -496
  1058. package/src/skin/index.js +0 -698
  1059. package/src/skin/texturePositions.js +0 -1007
@@ -1,1128 +0,0 @@
1
- import * as THREE from "three";
2
-
3
- require("three-instanced-mesh")(THREE);
4
- import * as $ from 'jquery';
5
- import merge from 'deepmerge'
6
- import Render, { defaultOptions, deepDisposeMesh, mergeCubeMeshes } from "../renderBase";
7
- import { loadTextureAsBase64, scaleUv, DEFAULT_ROOT, loadJsonFromPath, loadBlockState, loadTextureMeta } from "../functions";
8
- import ModelConverter from "./modelConverter";
9
- import * as md5 from "md5";
10
-
11
- import { parseModel, loadAndMergeModel, loadModelTexture, modelCacheKey, toRadians, deleteObjectProperties, loadTextures } from "./modelFunctions";
12
-
13
- import work from 'webworkify-webpack';
14
- import SkinRender from "../skin";
15
- import off from "onscreen/lib/methods/off";
16
- import * as debugg from "debug";
17
- const debug = debugg("minerender");
18
-
19
- const ModelWorker = require.resolve("./ModelWorker.js");
20
-
21
-
22
- String.prototype.replaceAll = function (search, replacement) {
23
- let target = this;
24
- return target.replace(new RegExp(search, 'g'), replacement);
25
- };
26
-
27
- const colors = [
28
- 0xFF0000,
29
- 0x00FFFF,
30
- 0x0000FF,
31
- 0x000080,
32
- 0xFF00FF,
33
- 0x800080,
34
- 0x808000,
35
- 0x00FF00,
36
- 0x008000,
37
- 0xFFFF00,
38
- 0x800000,
39
- 0x008080,
40
- ];
41
-
42
- const FACE_ORDER = ["east", "west", "up", "down", "south", "north"];
43
- const TINTS = ["lightgreen"];
44
-
45
- const mergedModelCache = {};
46
- const loadedTextureCache = {};
47
- const modelInstances = {};
48
-
49
- const textureCache = {};
50
- const canvasCache = {};
51
- const materialCache = {};
52
- const geometryCache = {};
53
- const instanceCache = {};
54
-
55
- const animatedTextures = [];
56
-
57
- /**
58
- * @see defaultOptions
59
- * @property {string} type alternative way to specify the model type (block/item)
60
- * @property {boolean} [centerCubes=false] center the cube's rotation point
61
- * @property {string} [assetRoot=DEFAULT_ROOT] root to get asset files from
62
- */
63
- let defOptions = {
64
- camera: {
65
- type: "perspective",
66
- x: 35,
67
- y: 25,
68
- z: 20,
69
- target: [0, 0, 0]
70
- },
71
- type: "block",
72
- centerCubes: false,
73
- assetRoot: DEFAULT_ROOT,
74
- useWebWorkers: false
75
- };
76
-
77
- /**
78
- * A renderer for Minecraft models, i.e. blocks & items
79
- */
80
- class ModelRender extends Render {
81
-
82
- /**
83
- * @param {Object} [options] The options for this renderer, see {@link defaultOptions}
84
- * @param {string} [options.assetRoot=DEFAULT_ROOT] root to get asset files from
85
- *
86
- * @param {HTMLElement} [element=document.body] DOM Element to attach the renderer to - defaults to document.body
87
- * @constructor
88
- */
89
- constructor(options, element) {
90
- super(options, defOptions, element);
91
-
92
- this.renderType = "ModelRender";
93
-
94
- this.models = [];
95
- this.instancePositionMap = {};
96
- this.attached = false;
97
- }
98
-
99
- /**
100
- * Does the actual rendering
101
- * @param {(string[]|Object[])} models Array of models to render - Either strings in the format <block|item>/<model name> or objects
102
- * @param {string} [models[].type=block] either 'block' or 'item'
103
- * @param {string} models[].model if 'type' is given, just the block/item name otherwise '<block|item>/<model name>'
104
- * @param {number[]} [models[].offset] [x,y,z] array of the offset
105
- * @param {number[]} [models[].rotation] [x,y,z] array of the rotation
106
- * @param {string} [models[].blockstate] name of a blockstate to be used to determine the models (only for blocks)
107
- * @param {string} [models[].variant=normal] if 'blockstate' is given, the block variant to use
108
- * @param {function} [cb] Callback when rendering finished
109
- */
110
- render(models, cb) {
111
- let modelRender = this;
112
-
113
- if (!modelRender.attached && !modelRender._scene) {// Don't init scene if attached, since we already have an available scene
114
- super.initScene(function () {
115
- // Animate textures
116
- for (let i = 0; i < animatedTextures.length; i++) {
117
- animatedTextures[i]();
118
- }
119
-
120
- modelRender.element.dispatchEvent(new CustomEvent("modelRender", {detail: {models: modelRender.models}}));
121
- });
122
- } else {
123
- console.log("[ModelRender] is attached - skipping scene init");
124
- }
125
-
126
- let parsedModelList = [];
127
-
128
- parseModels(modelRender, models, parsedModelList)
129
- .then(() => loadAndMergeModels(modelRender, parsedModelList))
130
- .then(() => loadModelTextures(modelRender, parsedModelList))
131
- .then(() => doModelRender(modelRender, parsedModelList))
132
- .then((renderedModels) => {
133
- console.timeEnd("doModelRender");
134
- debug(renderedModels)
135
- if (typeof cb === "function") cb();
136
- })
137
-
138
- }
139
-
140
- }
141
-
142
-
143
- function parseModels(modelRender, models, parsedModelList) {
144
- console.time("parseModels");
145
- console.log("Parsing Models...");
146
- let parsePromises = [];
147
- for (let i = 0; i < models.length; i++) {
148
- let model = models[i];
149
-
150
- // parsePromises.push(parseModel(model, model, parsedModelList, modelRender.options.assetRoot))
151
- parsePromises.push(new Promise(resolve => {
152
- if (modelRender.options.useWebWorkers) {
153
- let w = work(ModelWorker);
154
- w.addEventListener('message', event => {
155
- parsedModelList.push(...event.data.parsedModelList);
156
- resolve();
157
- });
158
- w.postMessage({
159
- func: "parseModel",
160
- model: model,
161
- modelOptions: model,
162
- parsedModelList: parsedModelList,
163
- assetRoot: modelRender.options.assetRoot
164
- })
165
- } else {
166
- parseModel(model, model, parsedModelList, modelRender.options.assetRoot).then(() => {
167
- resolve();
168
- })
169
- }
170
- }))
171
-
172
- }
173
-
174
- return Promise.all(parsePromises);
175
- }
176
-
177
-
178
- function loadAndMergeModels(modelRender, parsedModelList) {
179
- console.timeEnd("parseModels");
180
- console.time("loadAndMergeModels");
181
-
182
- let jsonPromises = [];
183
-
184
- console.log("Loading Model JSON data & merging...");
185
- let uniqueModels = {};
186
- for (let i = 0; i < parsedModelList.length; i++) {
187
- let cacheKey = modelCacheKey(parsedModelList[i]);
188
- modelInstances[cacheKey] = (modelInstances[cacheKey] || 0) + 1;
189
- uniqueModels[cacheKey] = parsedModelList[i];
190
- }
191
- let uniqueModelList = Object.values(uniqueModels);
192
- debug(uniqueModelList.length + " unique models");
193
- for (let i = 0; i < uniqueModelList.length; i++) {
194
- jsonPromises.push(new Promise(resolve => {
195
- let model = uniqueModelList[i];
196
- let cacheKey = modelCacheKey(model);
197
- debug("loadAndMerge " + cacheKey);
198
-
199
-
200
- if (mergedModelCache.hasOwnProperty(cacheKey)) {
201
- resolve();
202
- return;
203
- }
204
-
205
- if (modelRender.options.useWebWorkers) {
206
- let w = work(ModelWorker);
207
- w.addEventListener('message', event => {
208
- mergedModelCache[cacheKey] = event.data.mergedModel;
209
- resolve();
210
- });
211
- w.postMessage({
212
- func: "loadAndMergeModel",
213
- model: model,
214
- assetRoot: modelRender.options.assetRoot
215
- });
216
- } else {
217
- loadAndMergeModel(model, modelRender.options.assetRoot).then((mergedModel) => {
218
- mergedModelCache[cacheKey] = mergedModel;
219
- resolve();
220
- })
221
- }
222
- }))
223
- }
224
-
225
- return Promise.all(jsonPromises);
226
- }
227
-
228
- function loadModelTextures(modelRender, parsedModelList) {
229
- console.timeEnd("loadAndMergeModels");
230
- console.time("loadModelTextures");
231
-
232
- let texturePromises = [];
233
-
234
- console.log("Loading Textures...");
235
- let uniqueModels = {};
236
- for (let i = 0; i < parsedModelList.length; i++) {
237
- uniqueModels[modelCacheKey(parsedModelList[i])] = parsedModelList[i];
238
- }
239
- let uniqueModelList = Object.values(uniqueModels);
240
- debug(uniqueModelList.length + " unique models");
241
- for (let i = 0; i < uniqueModelList.length; i++) {
242
- texturePromises.push(new Promise(resolve => {
243
- let model = uniqueModelList[i];
244
- let cacheKey = modelCacheKey(model);
245
- debug("loadTexture " + cacheKey);
246
- let mergedModel = mergedModelCache[cacheKey];
247
-
248
- if (loadedTextureCache.hasOwnProperty(cacheKey)) {
249
- resolve();
250
- return;
251
- }
252
-
253
- if (!mergedModel) {
254
- console.warn("Missing merged model");
255
- console.warn(model.name);
256
- resolve();
257
- return;
258
- }
259
-
260
- if (!mergedModel.textures) {
261
- console.warn("The model doesn't have any textures!");
262
- console.warn("Please make sure you're using the proper file.");
263
- console.warn(model.name);
264
- resolve();
265
- return;
266
- }
267
-
268
- if (modelRender.options.useWebWorkers) {
269
- let w = work(ModelWorker);
270
- w.addEventListener('message', event => {
271
- loadedTextureCache[cacheKey] = event.data.textures;
272
- resolve();
273
- });
274
- w.postMessage({
275
- func: "loadTextures",
276
- textures: mergedModel.textures,
277
- assetRoot: modelRender.options.assetRoot
278
- });
279
- } else {
280
- loadTextures(mergedModel.textures, modelRender.options.assetRoot).then((textures) => {
281
- loadedTextureCache[cacheKey] = textures;
282
- resolve();
283
- })
284
- }
285
- }))
286
- }
287
-
288
-
289
- return Promise.all(texturePromises);
290
- }
291
-
292
- function doModelRender(modelRender, parsedModelList) {
293
- console.timeEnd("loadModelTextures");
294
- console.time("doModelRender");
295
-
296
- console.log("Rendering Models...");
297
-
298
- let renderPromises = [];
299
-
300
- for (let i = 0; i < parsedModelList.length; i++) {
301
- renderPromises.push(new Promise(resolve => {
302
- let model = parsedModelList[i];
303
-
304
- let mergedModel = mergedModelCache[modelCacheKey(model)];
305
- let textures = loadedTextureCache[modelCacheKey(model)];
306
-
307
- let offset = model.offset || [0, 0, 0];
308
- let rotation = model.rotation || [0, 0, 0];
309
- let scale = model.scale || [1, 1, 1];
310
-
311
- if (model.options.hasOwnProperty("display")) {
312
- if (mergedModel.hasOwnProperty("display")) {
313
- if (mergedModel.display.hasOwnProperty(model.options.display)) {
314
- let displayData = mergedModel.display[model.options.display];
315
-
316
- if (displayData.hasOwnProperty("translation")) {
317
- offset = [offset[0] + displayData.translation[0], offset[1] + displayData.translation[1], offset[2] + displayData.translation[2]];
318
- }
319
- if (displayData.hasOwnProperty("rotation")) {
320
- rotation = [rotation[0] + displayData.rotation[0], rotation[1] + displayData.rotation[1], rotation[2] + displayData.rotation[2]];
321
- }
322
- if (displayData.hasOwnProperty("scale")) {
323
- scale = [displayData.scale[0], displayData.scale[1], displayData.scale[2]];
324
- }
325
-
326
- }
327
- }
328
- }
329
-
330
-
331
- renderModel(modelRender, mergedModel, textures, mergedModel.textures, model.type, model.name, model.variant, offset, rotation, scale).then((renderedModel) => {
332
-
333
- if (renderedModel.firstInstance) {
334
- let container = new THREE.Object3D();
335
- container.add(renderedModel.mesh);
336
-
337
- modelRender.models.push(container);
338
- modelRender.addToScene(container);
339
- }
340
-
341
- resolve(renderedModel);
342
- })
343
- }))
344
- }
345
-
346
- return Promise.all(renderPromises);
347
- }
348
-
349
-
350
- let renderModel = function (modelRender, model, textures, textureNames, type, name, variant, offset, rotation, scale) {
351
- return new Promise((resolve) => {
352
- if (model.hasOwnProperty("elements")) {// block OR item with block parent
353
- let modelKey = modelCacheKey({type: type, name: name, variant: variant});
354
- let instanceCount = modelInstances[modelKey];
355
-
356
- let applyModelTransforms = function (mesh, instanceIndex) {
357
- mesh.userData.modelType = type;
358
- mesh.userData.modelName = name;
359
-
360
- let _v3o = new THREE.Vector3();
361
- let _v3s = new THREE.Vector3();
362
- let _q = new THREE.Quaternion();
363
-
364
- let instanceInfo = {
365
- key: modelKey,
366
- index: instanceIndex,
367
- offset: offset,
368
- scale: scale,
369
- rotation: rotation
370
- };
371
-
372
- if (rotation) {
373
- mesh.setQuaternionAt(instanceIndex, _q.setFromEuler(new THREE.Euler(toRadians(rotation[0]), toRadians(Math.abs(rotation[0]) > 0 ? rotation[1] : -rotation[1]), toRadians(rotation[2]))));
374
- }
375
- if (offset) {
376
- mesh.setPositionAt(instanceIndex, _v3o.set(offset[0], offset[1], offset[2]));
377
- modelRender.instancePositionMap[offset[0] + "_" + offset[1] + "_" + offset[2]] = instanceInfo;
378
- }
379
- if (scale) {
380
- mesh.setScaleAt(instanceIndex, _v3s.set(scale[0], scale[1], scale[2]));
381
- }
382
-
383
- mesh.needsUpdate();
384
-
385
- // mesh.position = _v3o;
386
- // Object.defineProperty(mesh.position,"x",{
387
- // get:function () {
388
- // return this._x||0;
389
- // },
390
- // set:function (x) {
391
- // this._x=x;
392
- // mesh.setPositionAt(instanceIndex, _v3o.set(x, this.y, this.z));
393
- // }
394
- // });
395
- // Object.defineProperty(mesh.position,"y",{
396
- // get:function () {
397
- // return this._y||0;
398
- // },
399
- // set:function (y) {
400
- // this._y=y;
401
- // mesh.setPositionAt(instanceIndex, _v3o.set(this.x, y, this.z));
402
- // }
403
- // });
404
- // Object.defineProperty(mesh.position,"z",{
405
- // get:function () {
406
- // return this._z||0;
407
- // },
408
- // set:function (z) {
409
- // this._z=z;
410
- // mesh.setPositionAt(instanceIndex, _v3o.set(this.x, this.y, z));
411
- // }
412
- // })
413
- //
414
- // mesh.rotation = new THREE.Euler(toRadians(rotation[0]), toRadians(Math.abs(rotation[0]) > 0 ? rotation[1] : -rotation[1]), toRadians(rotation[2]));
415
- // Object.defineProperty(mesh.rotation,"x",{
416
- // get:function () {
417
- // return this._x||0;
418
- // },
419
- // set:function (x) {
420
- // this._x=x;
421
- // mesh.setQuaternionAt(instanceIndex, _q.setFromEuler(new THREE.Euler(toRadians(x), toRadians(this.y), toRadians(this.z))));
422
- // }
423
- // });
424
- // Object.defineProperty(mesh.rotation,"y",{
425
- // get:function () {
426
- // return this._y||0;
427
- // },
428
- // set:function (y) {
429
- // this._y=y;
430
- // mesh.setQuaternionAt(instanceIndex, _q.setFromEuler(new THREE.Euler(toRadians(this.x), toRadians(y), toRadians(this.z))));
431
- // }
432
- // });
433
- // Object.defineProperty(mesh.rotation,"z",{
434
- // get:function () {
435
- // return this._z||0;
436
- // },
437
- // set:function (z) {
438
- // this._z=z;
439
- // mesh.setQuaternionAt(instanceIndex, _q.setFromEuler(new THREE.Euler(toRadians(this.x), toRadians(this.y), toRadians(z))));
440
- // }
441
- // });
442
- //
443
- // mesh.scale = _v3s;
444
-
445
- resolve({
446
- mesh: mesh,
447
- firstInstance: instanceIndex === 0
448
- });
449
- };
450
-
451
- let finalizeCubeModel = function (geometry, materials) {
452
- geometry.translate(-8, -8, -8);
453
-
454
-
455
- let cachedInstance;
456
-
457
- if (!instanceCache.hasOwnProperty(modelKey)) {
458
- debug("Caching new model instance " + modelKey + " (with " + instanceCount + " instances)");
459
- let newInstance = new THREE.InstancedMesh(
460
- geometry,
461
- materials,
462
- instanceCount,
463
- false,
464
- false,
465
- false);
466
- cachedInstance = {
467
- instance: newInstance,
468
- index: 0
469
- };
470
- instanceCache[modelKey] = cachedInstance;
471
- let _v3o = new THREE.Vector3();
472
- let _v3s = new THREE.Vector3(1, 1, 1);
473
- let _q = new THREE.Quaternion();
474
-
475
- for (let i = 0; i < instanceCount; i++) {
476
-
477
- newInstance.setQuaternionAt(i, _q);
478
- newInstance.setPositionAt(i, _v3o);
479
- newInstance.setScaleAt(i, _v3s);
480
-
481
- }
482
- } else {
483
- debug("Using cached instance (" + modelKey + ")");
484
- cachedInstance = instanceCache[modelKey];
485
-
486
- }
487
-
488
- applyModelTransforms(cachedInstance.instance, cachedInstance.index++);
489
- };
490
-
491
- if (instanceCache.hasOwnProperty(modelKey)) {
492
- debug("Using cached model instance (" + modelKey + ")");
493
- let cachedInstance = instanceCache[modelKey];
494
- applyModelTransforms(cachedInstance.instance, cachedInstance.index++);
495
- return;
496
- }
497
-
498
- // Render the elements
499
- let promises = [];
500
- for (let i = 0; i < model.elements.length; i++) {
501
- let element = model.elements[i];
502
-
503
- // // From net.minecraft.client.renderer.block.model.BlockPart.java#47 - https://yeleha.co/2JcqSr4
504
- let fallbackFaces = {
505
- down: {
506
- uv: [element.from[0], 16 - element.to[2], element.to[0], 16 - element.from[2]],
507
- texture: "#down"
508
- },
509
- up: {
510
- uv: [element.from[0], element.from[2], element.to[0], element.to[2]],
511
- texture: "#up"
512
- },
513
- north: {
514
- uv: [16 - element.to[0], 16 - element.to[1], 16 - element.from[0], 16 - element.from[1]],
515
- texture: "#north"
516
- },
517
- south: {
518
- uv: [element.from[0], 16 - element.to[1], element.to[0], 16 - element.from[1]],
519
- texture: "#south"
520
- },
521
- west: {
522
- uv: [element.from[2], 16 - element.to[1], element.to[2], 16 - element.from[2]],
523
- texture: "#west"
524
- },
525
- east: {
526
- uv: [16 - element.to[2], 16 - element.to[1], 16 - element.from[2], 16 - element.from[1]],
527
- texture: "#east"
528
- }
529
- };
530
-
531
- promises.push(new Promise((resolve) => {
532
- let baseName = name.replaceAll(" ", "_").replaceAll("-", "_").toLowerCase() + "_" + (element.__comment ? element.__comment.replaceAll(" ", "_").replaceAll("-", "_").toLowerCase() + "_" : "");
533
- createCube(element.to[0] - element.from[0], element.to[1] - element.from[1], element.to[2] - element.from[2],
534
- baseName + Date.now(),
535
- element.faces, fallbackFaces, textures, textureNames, modelRender.options.assetRoot, baseName)
536
- .then((cube) => {
537
- cube.applyMatrix(new THREE.Matrix4().makeTranslation((element.to[0] - element.from[0]) / 2, (element.to[1] - element.from[1]) / 2, (element.to[2] - element.from[2]) / 2));
538
- cube.applyMatrix(new THREE.Matrix4().makeTranslation(element.from[0], element.from[1], element.from[2]));
539
-
540
- if (element.rotation) {
541
- rotateAboutPoint(cube,
542
- new THREE.Vector3(element.rotation.origin[0], element.rotation.origin[1], element.rotation.origin[2]),
543
- new THREE.Vector3(element.rotation.axis === "x" ? 1 : 0, element.rotation.axis === "y" ? 1 : 0, element.rotation.axis === "z" ? 1 : 0),
544
- toRadians(element.rotation.angle));
545
- }
546
-
547
- resolve(cube);
548
- })
549
- }));
550
-
551
-
552
- }
553
-
554
- Promise.all(promises).then((cubes) => {
555
- let mergedCubes = mergeCubeMeshes(cubes, true);
556
- mergedCubes.sourceSize = cubes.length;
557
- finalizeCubeModel(mergedCubes.geometry, mergedCubes.materials, cubes.length);
558
- for (let i = 0; i < cubes.length; i++) {
559
- deepDisposeMesh(cubes[i], true);
560
- }
561
- })
562
- } else {// 2d item
563
- createPlane(name + "_" + Date.now(), textures).then((plane) => {
564
- if (offset) {
565
- plane.applyMatrix(new THREE.Matrix4().makeTranslation(offset[0], offset[1], offset[2]))
566
- }
567
- if (rotation) {
568
- plane.rotation.set(toRadians(rotation[0]), toRadians(Math.abs(rotation[0]) > 0 ? rotation[1] : -rotation[1]), toRadians(rotation[2]));
569
- }
570
- if (scale) {
571
- plane.scale.set(scale[0], scale[1], scale[2]);
572
- }
573
-
574
- resolve({
575
- mesh: plane,
576
- firstInstance: true
577
- });
578
- })
579
- }
580
- })
581
- };
582
-
583
- function setVisibilityOfInstance(meshKey, visibleScale, instanceIndex, visible) {
584
- let instance = instanceCache[meshKey];
585
- if (instance && instance.instance) {
586
- let mesh = instance.instance;
587
- let newScale;
588
- if (visible) {
589
- if (visibleScale) {
590
- newScale = visibleScale;
591
- } else {
592
- newScale = [1, 1, 1];
593
- }
594
- } else {
595
- newScale = [0, 0, 0];
596
- }
597
- let _v3s = new THREE.Vector3();
598
- mesh.setScaleAt(instanceIndex, _v3s.set(newScale[0], newScale[1], newScale[2]));
599
- return mesh;
600
- }
601
- }
602
-
603
- function setVisibilityAtMulti(positions, visible) {
604
- let updatedMeshes = {};
605
- for (let pos of positions) {
606
- let info = this.instancePositionMap[pos[0] + "_" + pos[1] + "_" + pos[2]];
607
- if (info) {
608
- let mesh = setVisibilityOfInstance(info.key, info.scale, info.index, visible);
609
- if (mesh) {
610
- updatedMeshes[info.key] = mesh;
611
- }
612
- }
613
- }
614
- for (let mesh of Object.values(updatedMeshes)) {
615
- mesh.needsUpdate();
616
- }
617
- }
618
-
619
- function setVisibilityAt(x, y, z, visible) {
620
- setVisibilityAtMulti([[x, y, z]], visible);
621
- }
622
-
623
- ModelRender.prototype.setVisibilityAtMulti = setVisibilityAtMulti;
624
- ModelRender.prototype.setVisibilityAt = setVisibilityAt;
625
-
626
- function setVisibilityOfType(type, name, variant, visible) {
627
- let instance = instanceCache[modelCacheKey({type: type, name: name, variant: variant})];
628
- if (instance && instance.instance) {
629
- let mesh = instance.instance;
630
- mesh.visible = visible;
631
- }
632
- }
633
-
634
- ModelRender.prototype.setVisibilityOfType = setVisibilityOfType;
635
-
636
- let createDot = function (c) {
637
- let dotGeometry = new THREE.Geometry();
638
- dotGeometry.vertices.push(new THREE.Vector3());
639
- let dotMaterial = new THREE.PointsMaterial({size: 5, sizeAttenuation: false, color: c});
640
- return new THREE.Points(dotGeometry, dotMaterial);
641
- };
642
-
643
- let createPlane = function (name, textures) {
644
- return new Promise((resolve) => {
645
-
646
- let materialLoaded = function (material, width, height) {
647
- let geometry = new THREE.PlaneGeometry(width, height);
648
- let plane = new THREE.Mesh(geometry, material);
649
- plane.name = name;
650
- plane.receiveShadow = true;
651
-
652
- resolve(plane);
653
- };
654
-
655
- if (textures) {
656
- let w = 0, h = 0;
657
- let promises = [];
658
- for (let t in textures) {
659
- if (textures.hasOwnProperty(t)) {
660
- promises.push(new Promise((resolve) => {
661
- let img = new Image();
662
- img.onload = function () {
663
- if (img.width > w) w = img.width;
664
- if (img.height > h) h = img.height;
665
- resolve(img);
666
- };
667
- img.src = textures[t];
668
- }))
669
- }
670
- }
671
- Promise.all(promises).then((images) => {
672
- let canvas = document.createElement("canvas");
673
- canvas.width = w;
674
- canvas.height = h;
675
- let context = canvas.getContext("2d");
676
-
677
- for (let i = 0; i < images.length; i++) {
678
- let img = images[i];
679
- context.drawImage(img, 0, 0);
680
- }
681
-
682
- let data = canvas.toDataURL("image/png");
683
- let hash = md5(data);
684
-
685
- if (materialCache.hasOwnProperty(hash)) {// Use material from cache
686
- debug("Using cached Material (" + hash + ")");
687
- materialLoaded(materialCache[hash], w, h);
688
- return;
689
- }
690
-
691
- let textureLoaded = function (texture) {
692
- let material = new THREE.MeshBasicMaterial({
693
- map: texture,
694
- transparent: true,
695
- side: THREE.DoubleSide,
696
- alphaTest: 0.5,
697
- name: name
698
- });
699
-
700
- // Add material to cache
701
- debug("Caching Material " + hash);
702
- materialCache[hash] = material;
703
-
704
- materialLoaded(material, w, h);
705
- };
706
-
707
- if (textureCache.hasOwnProperty(hash)) {// Use texture to cache
708
- debug("Using cached Texture (" + hash + ")");
709
- textureLoaded(textureCache[hash]);
710
- return;
711
- }
712
-
713
- debug("Pre-Caching Texture " + hash);
714
- textureCache[hash] = new THREE.TextureLoader().load(data, function (texture) {
715
- texture.magFilter = THREE.NearestFilter;
716
- texture.minFilter = THREE.NearestFilter;
717
- texture.anisotropy = 0;
718
- texture.needsUpdate = true;
719
-
720
- debug("Caching Texture " + hash);
721
- // Add texture to cache
722
- textureCache[hash] = texture;
723
-
724
- textureLoaded(texture);
725
- });
726
- });
727
- }
728
-
729
- })
730
- };
731
-
732
-
733
- /// From https://github.com/InventivetalentDev/SkinRender/blob/master/js/render/skin.js#L353
734
- let createCube = function (width, height, depth, name, faces, fallbackFaces, textures, textureNames, assetRoot, baseName) {
735
- return new Promise((resolve) => {
736
- let geometryKey = width + "_" + height + "_" + depth;
737
- let geometry;
738
- if (geometryCache.hasOwnProperty(geometryKey)) {
739
- debug("Using cached Geometry (" + geometryKey + ")");
740
- geometry = geometryCache[geometryKey];
741
- } else {
742
- geometry = new THREE.BoxGeometry(width, height, depth);
743
- debug("Caching Geometry " + geometryKey);
744
- geometryCache[geometryKey] = geometry;
745
- }
746
-
747
- let materialsLoaded = function (materials) {
748
- let cube = new THREE.Mesh(geometry, materials);
749
- cube.name = name;
750
- cube.receiveShadow = true;
751
-
752
- resolve(cube);
753
- };
754
- if (textures) {
755
- let promises = [];
756
- for (let i = 0; i < 6; i++) {
757
- promises.push(new Promise((resolve) => {
758
- let f = FACE_ORDER[i];
759
- if (!faces.hasOwnProperty(f)) {
760
- // console.warn("Missing face: " + f + " in model " + name);
761
- resolve(null);
762
- return;
763
- }
764
- let face = faces[f];
765
- let textureRef = face.texture.substr(1);
766
- if (!textures.hasOwnProperty(textureRef) || !textures[textureRef]) {
767
- console.warn("Missing texture '" + textureRef + "' for face " + f + " in model " + name);
768
- resolve(null);
769
- return;
770
- }
771
-
772
- let canvasKey = textureRef + "_" + f + "_" + baseName;
773
-
774
- let processImgToCanvasData = (img) => {
775
- let uv = face.uv;
776
- if (!uv) {
777
- // console.warn("Missing UV mapping for face " + f + " in model " + name + ". Using defaults");
778
- uv = fallbackFaces[f].uv;
779
- }
780
-
781
- // Scale the uv values to match the image width, so we can support resource packs with higher-resolution textures
782
- uv = [
783
- scaleUv(uv[0], img.width),
784
- scaleUv(uv[1], img.height),
785
- scaleUv(uv[2], img.width),
786
- scaleUv(uv[3], img.height)
787
- ];
788
-
789
-
790
- let canvas = document.createElement("canvas");
791
- canvas.width = Math.abs(uv[2] - uv[0]);
792
- canvas.height = Math.abs(uv[3] - uv[1]);
793
-
794
- let context = canvas.getContext("2d");
795
- context.drawImage(img, Math.min(uv[0], uv[2]), Math.min(uv[1], uv[3]), canvas.width, canvas.height, 0, 0, canvas.width, canvas.height);
796
-
797
- let tintColor;
798
- if (face.hasOwnProperty("tintindex")) {
799
- tintColor = TINTS[face.tintindex];
800
- } else if (baseName.startsWith("water_")) {
801
- tintColor = "blue";
802
- }
803
-
804
- if (tintColor) {
805
- context.fillStyle = tintColor;
806
- context.globalCompositeOperation = 'multiply';
807
- context.fillRect(0, 0, canvas.width, canvas.height);
808
-
809
- context.globalAlpha = 1;
810
- context.globalCompositeOperation = 'destination-in';
811
- context.drawImage(img, Math.min(uv[0], uv[2]), Math.min(uv[1], uv[3]), canvas.width, canvas.height, 0, 0, canvas.width, canvas.height);
812
-
813
- // context.globalAlpha = 0.5;
814
- // context.beginPath();
815
- // context.fillStyle = "green";
816
- // context.rect(0, 0, uv[2] - uv[0], uv[3] - uv[1]);
817
- // context.fill();
818
- // context.globalAlpha = 1.0;
819
- }
820
-
821
- let canvasData = context.getImageData(0, 0, canvas.width, canvas.height).data;
822
- let hasTransparency = false;
823
- for (let i = 3; i < (canvas.width * canvas.height); i += 4) {
824
- if (canvasData[i] < 255) {
825
- hasTransparency = true;
826
- break;
827
- }
828
- }
829
-
830
- let dataUrl = canvas.toDataURL("image/png");
831
- let dataHash = md5(dataUrl);
832
-
833
- let d = {
834
- canvas: canvas,
835
- data: canvasData,
836
- dataUrl: dataUrl,
837
- dataUrlHash: dataHash,
838
- hasTransparency: hasTransparency,
839
- width: canvas.width,
840
- height: canvas.height
841
- };
842
- debug("Caching new canvas (" + canvasKey + "/" + dataHash + ")")
843
- canvasCache[canvasKey] = d;
844
- return d;
845
- };
846
-
847
- let loadTextureFromCanvas = (canvas) => {
848
-
849
-
850
- let loadTextureDefault = function (canvas) {
851
- let data = canvas.dataUrl;
852
- let hash = canvas.dataUrlHash;
853
- let hasTransparency = canvas.hasTransparency;
854
-
855
- if (materialCache.hasOwnProperty(hash)) {// Use material from cache
856
- debug("Using cached Material (" + hash + ", without meta)");
857
- resolve(materialCache[hash]);
858
- return;
859
- }
860
-
861
- let n = textureNames[textureRef];
862
- if (n.startsWith("#")) {
863
- n = textureNames[name.substr(1)];
864
- }
865
- debug("Pre-Caching Material " + hash + ", without meta");
866
- materialCache[hash] = new THREE.MeshBasicMaterial({
867
- map: null,
868
- transparent: hasTransparency,
869
- side: hasTransparency ? THREE.DoubleSide : THREE.FrontSide,
870
- alphaTest: 0.5,
871
- name: f + "_" + textureRef + "_" + n
872
- });
873
-
874
- let textureLoaded = function (texture) {
875
- // Add material to cache
876
- debug("Finalizing Cached Material " + hash + ", without meta");
877
- materialCache[hash].map = texture;
878
- materialCache[hash].needsUpdate = true;
879
-
880
- resolve(materialCache[hash]);
881
- };
882
-
883
- if (textureCache.hasOwnProperty(hash)) {// Use texture from cache
884
- debug("Using cached Texture (" + hash + ")");
885
- textureLoaded(textureCache[hash]);
886
- return;
887
- }
888
-
889
- debug("Pre-Caching Texture " + hash);
890
- textureCache[hash] = new THREE.TextureLoader().load(data, function (texture) {
891
- texture.magFilter = THREE.NearestFilter;
892
- texture.minFilter = THREE.NearestFilter;
893
- texture.anisotropy = 0;
894
- texture.needsUpdate = true;
895
-
896
- if (face.hasOwnProperty("rotation")) {
897
- texture.center.x = .5;
898
- texture.center.y = .5;
899
- texture.rotation = toRadians(face.rotation);
900
- }
901
-
902
- debug("Caching Texture " + hash);
903
- // Add texture to cache
904
- textureCache[hash] = texture;
905
-
906
- textureLoaded(texture);
907
- });
908
- };
909
-
910
- let loadTextureWithMeta = function (canvas, meta) {
911
- let hash = canvas.dataUrlHash;
912
- let hasTransparency = canvas.hasTransparency;
913
-
914
- if (materialCache.hasOwnProperty(hash)) {// Use material from cache
915
- debug("Using cached Material (" + hash + ", with meta)");
916
- resolve(materialCache[hash]);
917
- return;
918
- }
919
-
920
- debug("Pre-Caching Material " + hash + ", with meta");
921
- materialCache[hash] = new THREE.MeshBasicMaterial({
922
- map: null,
923
- transparent: hasTransparency,
924
- side: hasTransparency ? THREE.DoubleSide : THREE.FrontSide,
925
- alphaTest: 0.5
926
- });
927
-
928
- let frametime = 1;
929
- if (meta.hasOwnProperty("animation")) {
930
- if (meta.animation.hasOwnProperty("frametime")) {
931
- frametime = meta.animation.frametime;
932
- }
933
- }
934
-
935
- let parts = Math.floor(canvas.height / canvas.width);
936
-
937
- console.log("Generating animated texture...");
938
-
939
- let promises1 = [];
940
- for (let i = 0; i < parts; i++) {
941
- promises1.push(new Promise((resolve) => {
942
- let canvas1 = document.createElement("canvas");
943
- canvas1.width = canvas.width;
944
- canvas1.height = canvas.width;
945
- let context1 = canvas1.getContext("2d");
946
- context1.drawImage(canvas.canvas, 0, i * canvas.width, canvas.width, canvas.width, 0, 0, canvas.width, canvas.width);
947
-
948
- let data = canvas1.toDataURL("image/png");
949
- let hash = md5(data);
950
-
951
- if (textureCache.hasOwnProperty(hash)) {// Use texture to cache
952
- debug("Using cached Texture (" + hash + ")");
953
- resolve(textureCache[hash]);
954
- return;
955
- }
956
-
957
- debug("Pre-Caching Texture " + hash);
958
- textureCache[hash] = new THREE.TextureLoader().load(data, function (texture) {
959
- texture.magFilter = THREE.NearestFilter;
960
- texture.minFilter = THREE.NearestFilter;
961
- texture.anisotropy = 0;
962
- texture.needsUpdate = true;
963
-
964
- debug("Caching Texture " + hash + ", without meta");
965
- // add texture to cache
966
- textureCache[hash] = texture;
967
-
968
- resolve(texture);
969
- });
970
- }));
971
- }
972
-
973
- Promise.all(promises1).then((textures) => {
974
-
975
- let frameCounter = 0;
976
- let textureIndex = 0;
977
- animatedTextures.push(() => {// called on render
978
- if (frameCounter >= frametime) {
979
- frameCounter = 0;
980
-
981
- // Set new texture
982
- materialCache[hash].map = textures[textureIndex];
983
-
984
- textureIndex++;
985
- }
986
- if (textureIndex >= textures.length) {
987
- textureIndex = 0;
988
- }
989
- frameCounter += 0.1;// game ticks TODO: figure out the proper value for this
990
- })
991
-
992
- // Add material to cache
993
- debug("Finalizing Cached Material " + hash + ", with meta");
994
- materialCache[hash].map = textures[0];
995
- materialCache[hash].needsUpdate = true;
996
-
997
- resolve(materialCache[hash]);
998
- });
999
- };
1000
-
1001
- if ((canvas.height > canvas.width) && (canvas.height % canvas.width === 0)) {// Taking a guess that this is an animated texture
1002
- let name = textureNames[textureRef];
1003
- if (name.startsWith("#")) {
1004
- name = textureNames[name.substr(1)];
1005
- }
1006
- if (name.indexOf("/") !== -1) {
1007
- name = name.substr(name.indexOf("/") + 1);
1008
- }
1009
- loadTextureMeta(name, assetRoot).then((meta) => {
1010
- loadTextureWithMeta(canvas, meta);
1011
- }).catch(() => {// Guessed wrong :shrug:
1012
- loadTextureDefault(canvas);
1013
- })
1014
- } else {
1015
- loadTextureDefault(canvas);
1016
- }
1017
- };
1018
-
1019
-
1020
- if (canvasCache.hasOwnProperty(canvasKey)) {
1021
- let cachedCanvas = canvasCache[canvasKey];
1022
-
1023
- if (cachedCanvas.hasOwnProperty("img")) {
1024
- debug("Waiting for canvas image that's already loading (" + canvasKey + ")")
1025
- let img = cachedCanvas.img;
1026
- img.waitingForCanvas.push(function (canvas) {
1027
- loadTextureFromCanvas(canvas);
1028
- });
1029
- } else {
1030
- debug("Using cached canvas (" + canvasKey + ")")
1031
- loadTextureFromCanvas(canvasCache[canvasKey]);
1032
- }
1033
- } else {
1034
- let img = new Image();
1035
- img.onerror = function (err) {
1036
- console.warn(err);
1037
- resolve(null);
1038
- };
1039
- img.waitingForCanvas = [];
1040
- img.onload = function () {
1041
- let canvasData = processImgToCanvasData(img);
1042
- loadTextureFromCanvas(canvasData);
1043
-
1044
- for (let c = 0; c < img.waitingForCanvas.length; c++) {
1045
- img.waitingForCanvas[c](canvasData);
1046
- }
1047
- };
1048
- debug("Pre-caching canvas (" + canvasKey + ")");
1049
- canvasCache[canvasKey] = {
1050
- img: img
1051
- };
1052
- img.src = textures[textureRef];
1053
- }
1054
- }));
1055
- }
1056
- Promise.all(promises).then(materials => materialsLoaded(materials))
1057
- } else {
1058
- let materials = [];
1059
- for (let i = 0; i < 6; i++) {
1060
- materials.push(new THREE.MeshBasicMaterial({
1061
- color: colors[i + 2],
1062
- wireframe: true
1063
- }))
1064
- }
1065
- materialsLoaded(materials);
1066
- }
1067
-
1068
- // if (textures) {
1069
- // applyCubeTextureToGeometry(geometry, texture, uv, width, height, depth);
1070
- // }
1071
-
1072
-
1073
- })
1074
- };
1075
-
1076
- /// https://stackoverflow.com/questions/42812861/three-js-pivot-point/42866733#42866733
1077
- // obj - your object (THREE.Object3D or derived)
1078
- // point - the point of rotation (THREE.Vector3)
1079
- // axis - the axis of rotation (normalized THREE.Vector3)
1080
- // theta - radian value of rotation
1081
- function rotateAboutPoint(obj, point, axis, theta) {
1082
- obj.position.sub(point); // remove the offset
1083
- obj.position.applyAxisAngle(axis, theta); // rotate the POSITION
1084
- obj.position.add(point); // re-add the offset
1085
-
1086
- obj.rotateOnAxis(axis, theta); // rotate the OBJECT
1087
- }
1088
-
1089
- ModelRender.cache = {
1090
- loadedTextures: loadedTextureCache,
1091
- mergedModels: mergedModelCache,
1092
- instanceCount: modelInstances,
1093
-
1094
- texture: textureCache,
1095
- canvas: canvasCache,
1096
- material: materialCache,
1097
- geometry: geometryCache,
1098
- instances: instanceCache,
1099
-
1100
- animated: animatedTextures,
1101
-
1102
-
1103
- resetInstances: function () {
1104
- deleteObjectProperties(modelInstances);
1105
- deleteObjectProperties(instanceCache);
1106
- },
1107
- clearAll: function () {
1108
- deleteObjectProperties(loadedTextureCache);
1109
- deleteObjectProperties(mergedModelCache);
1110
- deleteObjectProperties(modelInstances);
1111
- deleteObjectProperties(textureCache);
1112
- deleteObjectProperties(canvasCache);
1113
- deleteObjectProperties(materialCache);
1114
- deleteObjectProperties(geometryCache);
1115
- deleteObjectProperties(instanceCache);
1116
- animatedTextures.splice(0, animatedTextures.length);
1117
- }
1118
- };
1119
- ModelRender.ModelConverter = ModelConverter;
1120
-
1121
- if (typeof window !== "undefined") {
1122
- window.ModelRender = ModelRender;
1123
- window.ModelConverter = ModelConverter;
1124
- }
1125
- if (typeof global !== "undefined")
1126
- global.ModelRender = ModelRender;
1127
-
1128
- export default ModelRender;