minerender 2.0.0-alpha.2 → 2.0.0-alpha.3

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 (283) hide show
  1. package/package.json +4 -4
  2. package/dist/cjs/AnimatorFunction.d.ts +0 -3
  3. package/dist/cjs/AnimatorFunction.js +0 -3
  4. package/dist/cjs/AnimatorFunction.js.map +0 -1
  5. package/dist/cjs/Axis.d.ts +0 -8
  6. package/dist/cjs/Axis.js +0 -23
  7. package/dist/cjs/Axis.js.map +0 -1
  8. package/dist/cjs/CubeFace.d.ts +0 -17
  9. package/dist/cjs/CubeFace.js +0 -23
  10. package/dist/cjs/CubeFace.js.map +0 -1
  11. package/dist/cjs/Disposable.d.ts +0 -4
  12. package/dist/cjs/Disposable.js +0 -8
  13. package/dist/cjs/Disposable.js.map +0 -1
  14. package/dist/cjs/Env.d.ts +0 -2
  15. package/dist/cjs/Env.js +0 -7
  16. package/dist/cjs/Env.js.map +0 -1
  17. package/dist/cjs/ExtractableImageData.d.ts +0 -5
  18. package/dist/cjs/ExtractableImageData.js +0 -3
  19. package/dist/cjs/ExtractableImageData.js.map +0 -1
  20. package/dist/cjs/Geometries.d.ts +0 -6
  21. package/dist/cjs/Geometries.js +0 -92
  22. package/dist/cjs/Geometries.js.map +0 -1
  23. package/dist/cjs/ListAsset.d.ts +0 -5
  24. package/dist/cjs/ListAsset.js +0 -3
  25. package/dist/cjs/ListAsset.js.map +0 -1
  26. package/dist/cjs/Materials.d.ts +0 -9
  27. package/dist/cjs/Materials.js +0 -151
  28. package/dist/cjs/Materials.js.map +0 -1
  29. package/dist/cjs/Meshes.d.ts +0 -6
  30. package/dist/cjs/Meshes.js +0 -21
  31. package/dist/cjs/Meshes.js.map +0 -1
  32. package/dist/cjs/MinecraftAsset.d.ts +0 -7
  33. package/dist/cjs/MinecraftAsset.js +0 -3
  34. package/dist/cjs/MinecraftAsset.js.map +0 -1
  35. package/dist/cjs/MinecraftCubeTexture.d.ts +0 -26
  36. package/dist/cjs/MinecraftCubeTexture.js +0 -104
  37. package/dist/cjs/MinecraftCubeTexture.js.map +0 -1
  38. package/dist/cjs/MinecraftTextureMeta.d.ts +0 -15
  39. package/dist/cjs/MinecraftTextureMeta.js +0 -3
  40. package/dist/cjs/MinecraftTextureMeta.js.map +0 -1
  41. package/dist/cjs/SceneStats.d.ts +0 -5
  42. package/dist/cjs/SceneStats.js +0 -12
  43. package/dist/cjs/SceneStats.js.map +0 -1
  44. package/dist/cjs/Serializable.d.ts +0 -3
  45. package/dist/cjs/Serializable.js +0 -3
  46. package/dist/cjs/Serializable.js.map +0 -1
  47. package/dist/cjs/Ticker.d.ts +0 -20
  48. package/dist/cjs/Ticker.js +0 -55
  49. package/dist/cjs/Ticker.js.map +0 -1
  50. package/dist/cjs/TintColors.d.ts +0 -1
  51. package/dist/cjs/TintColors.js +0 -5
  52. package/dist/cjs/TintColors.js.map +0 -1
  53. package/dist/cjs/Transformable.d.ts +0 -11
  54. package/dist/cjs/Transformable.js +0 -8
  55. package/dist/cjs/Transformable.js.map +0 -1
  56. package/dist/cjs/UVMapper.d.ts +0 -40
  57. package/dist/cjs/UVMapper.js +0 -434
  58. package/dist/cjs/UVMapper.js.map +0 -1
  59. package/dist/cjs/WrappedImage.d.ts +0 -17
  60. package/dist/cjs/WrappedImage.js +0 -50
  61. package/dist/cjs/WrappedImage.js.map +0 -1
  62. package/dist/cjs/_model/Cube.d.ts +0 -10
  63. package/dist/cjs/_model/Cube.js +0 -3
  64. package/dist/cjs/_model/Cube.js.map +0 -1
  65. package/dist/cjs/_model/Element.d.ts +0 -9
  66. package/dist/cjs/_model/Element.js +0 -3
  67. package/dist/cjs/_model/Element.js.map +0 -1
  68. package/dist/cjs/_model/Face.d.ts +0 -6
  69. package/dist/cjs/_model/Face.js +0 -3
  70. package/dist/cjs/_model/Face.js.map +0 -1
  71. package/dist/cjs/_model/Model.d.ts +0 -4
  72. package/dist/cjs/_model/Model.js +0 -3
  73. package/dist/cjs/_model/Model.js.map +0 -1
  74. package/dist/cjs/assets/AssetKey.d.ts +0 -26
  75. package/dist/cjs/assets/AssetKey.js +0 -83
  76. package/dist/cjs/assets/AssetKey.js.map +0 -1
  77. package/dist/cjs/assets/AssetLoader.d.ts +0 -26
  78. package/dist/cjs/assets/AssetLoader.js +0 -153
  79. package/dist/cjs/assets/AssetLoader.js.map +0 -1
  80. package/dist/cjs/assets/Assets.d.ts +0 -14
  81. package/dist/cjs/assets/Assets.js +0 -37
  82. package/dist/cjs/assets/Assets.js.map +0 -1
  83. package/dist/cjs/assets/BlockStates.d.ts +0 -11
  84. package/dist/cjs/assets/BlockStates.js +0 -75
  85. package/dist/cjs/assets/BlockStates.js.map +0 -1
  86. package/dist/cjs/assets/Entities.d.ts +0 -8
  87. package/dist/cjs/assets/Entities.js +0 -57
  88. package/dist/cjs/assets/Entities.js.map +0 -1
  89. package/dist/cjs/assets/ModelTextures.d.ts +0 -12
  90. package/dist/cjs/assets/ModelTextures.js +0 -66
  91. package/dist/cjs/assets/ModelTextures.js.map +0 -1
  92. package/dist/cjs/assets/Models.d.ts +0 -12
  93. package/dist/cjs/assets/Models.js +0 -95
  94. package/dist/cjs/assets/Models.js.map +0 -1
  95. package/dist/cjs/bedrock/BedrockEntityDescription.d.ts +0 -19
  96. package/dist/cjs/bedrock/BedrockEntityDescription.js +0 -3
  97. package/dist/cjs/bedrock/BedrockEntityDescription.js.map +0 -1
  98. package/dist/cjs/bedrock/BedrockEntityFile.d.ts +0 -7
  99. package/dist/cjs/bedrock/BedrockEntityFile.js +0 -3
  100. package/dist/cjs/bedrock/BedrockEntityFile.js.map +0 -1
  101. package/dist/cjs/bedrock/BedrockGeometry.d.ts +0 -27
  102. package/dist/cjs/bedrock/BedrockGeometry.js +0 -3
  103. package/dist/cjs/bedrock/BedrockGeometry.js.map +0 -1
  104. package/dist/cjs/bedrock/BedrockGeometryFile.d.ts +0 -5
  105. package/dist/cjs/bedrock/BedrockGeometryFile.js +0 -3
  106. package/dist/cjs/bedrock/BedrockGeometryFile.js.map +0 -1
  107. package/dist/cjs/cache/CacheKey.d.ts +0 -28
  108. package/dist/cjs/cache/CacheKey.js +0 -27
  109. package/dist/cjs/cache/CacheKey.js.map +0 -1
  110. package/dist/cjs/cache/Caching.d.ts +0 -29
  111. package/dist/cjs/cache/Caching.js +0 -93
  112. package/dist/cjs/cache/Caching.js.map +0 -1
  113. package/dist/cjs/cache/PersistentCache.d.ts +0 -15
  114. package/dist/cjs/cache/PersistentCache.js +0 -112
  115. package/dist/cjs/cache/PersistentCache.js.map +0 -1
  116. package/dist/cjs/canvas/CanvasCompat.d.ts +0 -5
  117. package/dist/cjs/canvas/CanvasCompat.js +0 -53
  118. package/dist/cjs/canvas/CanvasCompat.js.map +0 -1
  119. package/dist/cjs/canvas/CanvasImage.d.ts +0 -18
  120. package/dist/cjs/canvas/CanvasImage.js +0 -45
  121. package/dist/cjs/canvas/CanvasImage.js.map +0 -1
  122. package/dist/cjs/entity/EntityModel.d.ts +0 -7
  123. package/dist/cjs/entity/EntityModel.js +0 -3
  124. package/dist/cjs/entity/EntityModel.js.map +0 -1
  125. package/dist/cjs/entity/blockEntityModels.json +0 -1401
  126. package/dist/cjs/entity/entityModels.json +0 -20623
  127. package/dist/cjs/entity/scene/EntityObject.d.ts +0 -20
  128. package/dist/cjs/entity/scene/EntityObject.js +0 -131
  129. package/dist/cjs/entity/scene/EntityObject.js.map +0 -1
  130. package/dist/cjs/error/MineRenderError.d.ts +0 -4
  131. package/dist/cjs/error/MineRenderError.js +0 -15
  132. package/dist/cjs/error/MineRenderError.js.map +0 -1
  133. package/dist/cjs/gui/scene/GuiObject.d.ts +0 -6
  134. package/dist/cjs/gui/scene/GuiObject.js +0 -8
  135. package/dist/cjs/gui/scene/GuiObject.js.map +0 -1
  136. package/dist/cjs/image/ImageLoader.d.ts +0 -28
  137. package/dist/cjs/image/ImageLoader.js +0 -166
  138. package/dist/cjs/image/ImageLoader.js.map +0 -1
  139. package/dist/cjs/index.d.ts +0 -28
  140. package/dist/cjs/index.js +0 -43
  141. package/dist/cjs/index.js.map +0 -1
  142. package/dist/cjs/inspector/SceneInspector.d.ts +0 -27
  143. package/dist/cjs/inspector/SceneInspector.js +0 -366
  144. package/dist/cjs/inspector/SceneInspector.js.map +0 -1
  145. package/dist/cjs/inspector/SceneStats.d.ts +0 -22
  146. package/dist/cjs/inspector/SceneStats.js +0 -53
  147. package/dist/cjs/inspector/SceneStats.js.map +0 -1
  148. package/dist/cjs/instance/InstanceManager.d.ts +0 -14
  149. package/dist/cjs/instance/InstanceManager.js +0 -58
  150. package/dist/cjs/instance/InstanceManager.js.map +0 -1
  151. package/dist/cjs/instance/InstanceReference.d.ts +0 -21
  152. package/dist/cjs/instance/InstanceReference.js +0 -49
  153. package/dist/cjs/instance/InstanceReference.js.map +0 -1
  154. package/dist/cjs/instance/Instanceable.d.ts +0 -16
  155. package/dist/cjs/instance/Instanceable.js +0 -8
  156. package/dist/cjs/instance/Instanceable.js.map +0 -1
  157. package/dist/cjs/lib/OrbitControls.d.ts +0 -64
  158. package/dist/cjs/lib/OrbitControls.js +0 -658
  159. package/dist/cjs/lib/OrbitControls.js.map +0 -1
  160. package/dist/cjs/model/DisplayPosition.d.ts +0 -11
  161. package/dist/cjs/model/DisplayPosition.js +0 -16
  162. package/dist/cjs/model/DisplayPosition.js.map +0 -1
  163. package/dist/cjs/model/ElementFace.d.ts +0 -9
  164. package/dist/cjs/model/ElementFace.js +0 -3
  165. package/dist/cjs/model/ElementFace.js.map +0 -1
  166. package/dist/cjs/model/GuiLight.d.ts +0 -4
  167. package/dist/cjs/model/GuiLight.js +0 -9
  168. package/dist/cjs/model/GuiLight.js.map +0 -1
  169. package/dist/cjs/model/Model.d.ts +0 -46
  170. package/dist/cjs/model/Model.js +0 -20
  171. package/dist/cjs/model/Model.js.map +0 -1
  172. package/dist/cjs/model/ModelElement.d.ts +0 -21
  173. package/dist/cjs/model/ModelElement.js +0 -3
  174. package/dist/cjs/model/ModelElement.js.map +0 -1
  175. package/dist/cjs/model/ModelGenerator.d.ts +0 -6
  176. package/dist/cjs/model/ModelGenerator.js +0 -27
  177. package/dist/cjs/model/ModelGenerator.js.map +0 -1
  178. package/dist/cjs/model/ModelMerger.d.ts +0 -5
  179. package/dist/cjs/model/ModelMerger.js +0 -51
  180. package/dist/cjs/model/ModelMerger.js.map +0 -1
  181. package/dist/cjs/model/ModelPart.d.ts +0 -23
  182. package/dist/cjs/model/ModelPart.js +0 -3
  183. package/dist/cjs/model/ModelPart.js.map +0 -1
  184. package/dist/cjs/model/block/Block.d.ts +0 -6
  185. package/dist/cjs/model/block/Block.js +0 -3
  186. package/dist/cjs/model/block/Block.js.map +0 -1
  187. package/dist/cjs/model/block/BlockState.d.ts +0 -23
  188. package/dist/cjs/model/block/BlockState.js +0 -3
  189. package/dist/cjs/model/block/BlockState.js.map +0 -1
  190. package/dist/cjs/model/block/BlockStateProperties.d.ts +0 -13
  191. package/dist/cjs/model/block/BlockStateProperties.js +0 -3
  192. package/dist/cjs/model/block/BlockStateProperties.js.map +0 -1
  193. package/dist/cjs/model/block/scene/BlockObject.d.ts +0 -46
  194. package/dist/cjs/model/block/scene/BlockObject.js +0 -468
  195. package/dist/cjs/model/block/scene/BlockObject.js.map +0 -1
  196. package/dist/cjs/model/defaultBlockStates.json +0 -12337
  197. package/dist/cjs/model/multiblock/MultiBlockStructure.d.ts +0 -9
  198. package/dist/cjs/model/multiblock/MultiBlockStructure.js +0 -3
  199. package/dist/cjs/model/multiblock/MultiBlockStructure.js.map +0 -1
  200. package/dist/cjs/model/multiblock/SchematicParser.d.ts +0 -4
  201. package/dist/cjs/model/multiblock/SchematicParser.js +0 -23
  202. package/dist/cjs/model/multiblock/SchematicParser.js.map +0 -1
  203. package/dist/cjs/model/multiblock/StructureParser.d.ts +0 -70
  204. package/dist/cjs/model/multiblock/StructureParser.js +0 -52
  205. package/dist/cjs/model/multiblock/StructureParser.js.map +0 -1
  206. package/dist/cjs/model/scene/ModelObject.d.ts +0 -25
  207. package/dist/cjs/model/scene/ModelObject.js +0 -163
  208. package/dist/cjs/model/scene/ModelObject.js.map +0 -1
  209. package/dist/cjs/nbt/NBTHelper.d.ts +0 -8
  210. package/dist/cjs/nbt/NBTHelper.js +0 -42
  211. package/dist/cjs/nbt/NBTHelper.js.map +0 -1
  212. package/dist/cjs/renderer/MineRenderScene.d.ts +0 -35
  213. package/dist/cjs/renderer/MineRenderScene.js +0 -132
  214. package/dist/cjs/renderer/MineRenderScene.js.map +0 -1
  215. package/dist/cjs/renderer/Renderer.d.ts +0 -83
  216. package/dist/cjs/renderer/Renderer.js +0 -267
  217. package/dist/cjs/renderer/Renderer.js.map +0 -1
  218. package/dist/cjs/renderer/SceneObject.d.ts +0 -81
  219. package/dist/cjs/renderer/SceneObject.js +0 -400
  220. package/dist/cjs/renderer/SceneObject.js.map +0 -1
  221. package/dist/cjs/renderer/SceneObjectOptions.d.ts +0 -6
  222. package/dist/cjs/renderer/SceneObjectOptions.js +0 -3
  223. package/dist/cjs/renderer/SceneObjectOptions.js.map +0 -1
  224. package/dist/cjs/request/Requests.d.ts +0 -12
  225. package/dist/cjs/request/Requests.js +0 -39
  226. package/dist/cjs/request/Requests.js.map +0 -1
  227. package/dist/cjs/skin/SkinGeometries.d.ts +0 -5
  228. package/dist/cjs/skin/SkinGeometries.js +0 -39
  229. package/dist/cjs/skin/SkinGeometries.js.map +0 -1
  230. package/dist/cjs/skin/SkinPart.d.ts +0 -16
  231. package/dist/cjs/skin/SkinPart.js +0 -21
  232. package/dist/cjs/skin/SkinPart.js.map +0 -1
  233. package/dist/cjs/skin/SkinTextureCoordinates.d.ts +0 -5
  234. package/dist/cjs/skin/SkinTextureCoordinates.js +0 -751
  235. package/dist/cjs/skin/SkinTextureCoordinates.js.map +0 -1
  236. package/dist/cjs/skin/Skins.d.ts +0 -17
  237. package/dist/cjs/skin/Skins.js +0 -168
  238. package/dist/cjs/skin/Skins.js.map +0 -1
  239. package/dist/cjs/skin/scene/SkinObject.d.ts +0 -21
  240. package/dist/cjs/skin/scene/SkinObject.js +0 -119
  241. package/dist/cjs/skin/scene/SkinObject.js.map +0 -1
  242. package/dist/cjs/texture/TextureAtlas.d.ts +0 -29
  243. package/dist/cjs/texture/TextureAtlas.js +0 -26
  244. package/dist/cjs/texture/TextureAtlas.js.map +0 -1
  245. package/dist/cjs/texture/TextureLoader.d.ts +0 -6
  246. package/dist/cjs/texture/TextureLoader.js +0 -34
  247. package/dist/cjs/texture/TextureLoader.js.map +0 -1
  248. package/dist/cjs/texture/Textures.d.ts +0 -10
  249. package/dist/cjs/texture/Textures.js +0 -52
  250. package/dist/cjs/texture/Textures.js.map +0 -1
  251. package/dist/cjs/three/BufferGeometryUtils.d.ts +0 -44
  252. package/dist/cjs/three/BufferGeometryUtils.js +0 -554
  253. package/dist/cjs/three/BufferGeometryUtils.js.map +0 -1
  254. package/dist/cjs/three/OrbitControls.d.ts +0 -59
  255. package/dist/cjs/three/OrbitControls.js +0 -790
  256. package/dist/cjs/three/OrbitControls.js.map +0 -1
  257. package/dist/cjs/util/BatchedExecutor.d.ts +0 -12
  258. package/dist/cjs/util/BatchedExecutor.js +0 -26
  259. package/dist/cjs/util/BatchedExecutor.js.map +0 -1
  260. package/dist/cjs/util/log.d.ts +0 -1
  261. package/dist/cjs/util/log.js +0 -32
  262. package/dist/cjs/util/log.js.map +0 -1
  263. package/dist/cjs/util/model.d.ts +0 -11
  264. package/dist/cjs/util/model.js +0 -182
  265. package/dist/cjs/util/model.js.map +0 -1
  266. package/dist/cjs/util/performance.d.ts +0 -3
  267. package/dist/cjs/util/performance.js +0 -19
  268. package/dist/cjs/util/performance.js.map +0 -1
  269. package/dist/cjs/util/three.d.ts +0 -8
  270. package/dist/cjs/util/three.js +0 -28
  271. package/dist/cjs/util/three.js.map +0 -1
  272. package/dist/cjs/util/util.d.ts +0 -19
  273. package/dist/cjs/util/util.js +0 -143
  274. package/dist/cjs/util/util.js.map +0 -1
  275. package/dist/cjs/world/BlockInfo.d.ts +0 -6
  276. package/dist/cjs/world/BlockInfo.js +0 -3
  277. package/dist/cjs/world/BlockInfo.js.map +0 -1
  278. package/dist/cjs/world/Chunk.d.ts +0 -33
  279. package/dist/cjs/world/Chunk.js +0 -132
  280. package/dist/cjs/world/Chunk.js.map +0 -1
  281. package/dist/cjs/world/MineRenderWorld.d.ts +0 -31
  282. package/dist/cjs/world/MineRenderWorld.js +0 -133
  283. package/dist/cjs/world/MineRenderWorld.js.map +0 -1
@@ -1,434 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.MinecraftFaceUV = exports.UVMapper = exports.DEFAULT_UV = void 0;
13
- const three_1 = require("three");
14
- const CubeFace_1 = require("./CubeFace");
15
- const ModelTextures_1 = require("./assets/ModelTextures");
16
- const WrappedImage_1 = require("./WrappedImage");
17
- const CanvasImage_1 = require("./canvas/CanvasImage");
18
- const TextureAtlas_1 = require("./texture/TextureAtlas");
19
- const Caching_1 = require("./cache/Caching");
20
- const ImageLoader_1 = require("./image/ImageLoader");
21
- const AssetKey_1 = require("./assets/AssetKey");
22
- const ModelGenerator_1 = require("./model/ModelGenerator");
23
- const log_1 = require("./util/log");
24
- const p = log_1.prefix("UVMapper");
25
- exports.DEFAULT_UV = [0, 0, 16, 16];
26
- const X = 0;
27
- const Y = 1;
28
- const Z = 2;
29
- /*
30
- * - Minecraft Block UVs are from the top-left to bottom-right
31
- * - three.js UVs are from the bottom-left to top-right
32
- * - canvas coordinates are from the top-left to bottom-right
33
- */
34
- // noinspection PointlessArithmeticExpressionJS
35
- class UVMapper {
36
- static makeUv(uvCoord, originalTextureSize, actualTextureSize) {
37
- if (uvCoord === 0)
38
- return 0;
39
- return (actualTextureSize / originalTextureSize) * (uvCoord / originalTextureSize);
40
- }
41
- static makeUvCoords([originalTextureWidth, originalTextureHeight], [actualTextureWidth, actualTextureHeight], [x1, y1, x2, y2]) {
42
- // Flip from top-to-bottom coordinates to bottom-to-top ones
43
- y1 = originalTextureHeight - y1;
44
- y2 = originalTextureHeight - y2;
45
- const u1 = this.makeUv(x1, originalTextureWidth, actualTextureWidth);
46
- const v1 = this.makeUv(y1, originalTextureHeight, actualTextureHeight);
47
- const u2 = this.makeUv(x2, originalTextureWidth, actualTextureWidth);
48
- const v2 = this.makeUv(y2, originalTextureHeight, actualTextureHeight);
49
- return [u1, v1, u2, v2];
50
- }
51
- static rotateSingleUv([u, v], [px, py], radians) {
52
- const sin = Math.sin(radians);
53
- const cos = Math.cos(radians);
54
- u -= px;
55
- v -= py;
56
- const uc = u;
57
- const vc = v;
58
- u = cos * uc - sin * vc;
59
- v = cos * vc + sin * uc;
60
- u += px;
61
- v += py;
62
- // return [parseFloat(u.toFixed(8)), parseFloat(v.toFixed(8))];
63
- return [u, v];
64
- }
65
- static addCubeFaceUvToArray(array, faceIndex, originalTextureSize, actualTextureSize, originalCoords) {
66
- const uv = this.makeUvCoords(originalTextureSize, actualTextureSize, originalCoords);
67
- this.setCubeFaceUvInArray(array, faceIndex, uv);
68
- }
69
- static setCubeFaceUvInArray(array, faceIndex, [u1, v1, u2, v2]) {
70
- let a = [u1, v1]; // top left
71
- let b = [u2, v1]; // top right
72
- let c = [u1, v2]; // bottom left
73
- let d = [u2, v2]; // bottom right
74
- let uvs = [a, b, c, d];
75
- this.setFaceUvInArray(array, faceIndex, uvs);
76
- }
77
- static setFaceUvInArrayV(array, faceIndex, uvs) {
78
- array[((faceIndex + 0) * 2) + 0] = uvs[0].x;
79
- array[((faceIndex + 0) * 2) + 1] = uvs[0].y;
80
- array[((faceIndex + 1) * 2) + 0] = uvs[1].x;
81
- array[((faceIndex + 1) * 2) + 1] = uvs[1].y;
82
- array[((faceIndex + 2) * 2) + 0] = uvs[2].x;
83
- array[((faceIndex + 2) * 2) + 1] = uvs[2].y;
84
- array[((faceIndex + 3) * 2) + 0] = uvs[3].x;
85
- array[((faceIndex + 3) * 2) + 1] = uvs[3].y;
86
- }
87
- static setFaceUvInArray(array, faceIndex, uvs) {
88
- array[((faceIndex + 0) * 2) + 0] = uvs[0][0];
89
- array[((faceIndex + 0) * 2) + 1] = uvs[0][1];
90
- array[((faceIndex + 1) * 2) + 0] = uvs[1][0];
91
- array[((faceIndex + 1) * 2) + 1] = uvs[1][1];
92
- array[((faceIndex + 2) * 2) + 0] = uvs[2][0];
93
- array[((faceIndex + 2) * 2) + 1] = uvs[2][1];
94
- array[((faceIndex + 3) * 2) + 0] = uvs[3][0];
95
- array[((faceIndex + 3) * 2) + 1] = uvs[3][1];
96
- }
97
- static setCubeFaceUvAttribute(attributes, faceIndex, originalTextureSize, actualTextureSize, originalCoords) {
98
- const uv = this.makeUvCoords(originalTextureSize, actualTextureSize, originalCoords);
99
- this.setCubeFaceUvInAttribute(attributes, faceIndex, uv);
100
- }
101
- static setCubeFaceUvInAttribute(attributes, faceIndex, [u1, v1, u2, v2]) {
102
- attributes.setXY(faceIndex + 0, u1, v1);
103
- attributes.setXY(faceIndex + 1, u2, v1);
104
- attributes.setXY(faceIndex + 2, u1, v2);
105
- attributes.setXY(faceIndex + 3, u2, v2);
106
- }
107
- static setCubeUvs(geometry, originalTextureSize, actualTextureSize, faces) {
108
- const attributes = geometry.getAttribute("uv");
109
- for (let faceIndex = 0; faceIndex < CubeFace_1.CUBE_FACES.length; faceIndex++) {
110
- let faceName = CubeFace_1.CUBE_FACES[faceIndex];
111
- let face = faces[faceName];
112
- if (!face)
113
- continue;
114
- if (!face.uv) {
115
- face.uv = exports.DEFAULT_UV;
116
- }
117
- this.setCubeFaceUvAttribute(attributes, faceIndex * 4, originalTextureSize, actualTextureSize, face.uv);
118
- }
119
- }
120
- static facesToUvArray(faces, originalTextureSize, actualTextureSize) {
121
- const array = [];
122
- for (let faceIndex = 0; faceIndex < CubeFace_1.CUBE_FACES.length; faceIndex++) {
123
- let faceName = CubeFace_1.CUBE_FACES[faceIndex];
124
- let face = faces[faceName];
125
- if (!face)
126
- continue;
127
- if (!face.uv) {
128
- face.uv = exports.DEFAULT_UV;
129
- }
130
- this.addCubeFaceUvToArray(array, faceIndex * 4, originalTextureSize, actualTextureSize, face.uv);
131
- }
132
- return array;
133
- }
134
- static facesToUv(faces, originalTextureSize, actualTextureSize) {
135
- return new three_1.Float32BufferAttribute(this.facesToUvArray(faces, originalTextureSize, actualTextureSize), 2);
136
- }
137
- static getAtlas(model) {
138
- return __awaiter(this, void 0, void 0, function* () {
139
- const keyStr = model.key.serialize();
140
- return Caching_1.Caching.modelTextureAtlasCache.get(keyStr, k => {
141
- return this.createAtlas(model);
142
- });
143
- });
144
- }
145
- static fillMissingTextureKeys(textures, target) {
146
- for (let faceName of CubeFace_1.CUBE_FACES) {
147
- let v = textures[faceName];
148
- if (v && v.startsWith("#")) {
149
- target[faceName] = target[v.substr(1)];
150
- }
151
- }
152
- return target;
153
- }
154
- // https://yeleha.co/3qlboGS
155
- static getFallbackUv(element, faceName) {
156
- switch (faceName) {
157
- case CubeFace_1.CubeFace.DOWN:
158
- return [element.from[X], 16 - element.to[Z], element.to[X], 16 - element.from[Z]];
159
- case CubeFace_1.CubeFace.UP:
160
- return [element.from[X], element.from[Z], element.to[X], element.to[Z]];
161
- case CubeFace_1.CubeFace.NORTH:
162
- default:
163
- return [16 - element.to[X], 16 - element.to[Y], 16 - element.from[X], 16 - element.from[Y]];
164
- case CubeFace_1.CubeFace.SOUTH:
165
- return [element.from[X], 16 - element.to[Y], element.to[X], 16 - element.from[Y]];
166
- case CubeFace_1.CubeFace.WEST:
167
- return [element.from[Z], 16 - element.to[Y], element.to[Z], 16 - element.from[Y]];
168
- case CubeFace_1.CubeFace.EAST:
169
- return [16 - element.to[Z], 16 - element.to[Y], 16 - element.from[Z], 16 - element.from[Y]];
170
- }
171
- }
172
- static expandAndRotateMcUvs([u1, v1, u2, v2], rotation = 0, actualWidth, actualHeight) {
173
- // Resize coordinates to actual texture size
174
- const scaleU = actualWidth / 16;
175
- const scaleV = actualHeight / 16;
176
- u1 *= scaleU;
177
- v1 *= scaleV;
178
- u2 *= scaleU;
179
- v2 *= scaleV;
180
- let tl = new three_1.Vector2(u1, v1); // top left
181
- let tr = new three_1.Vector2(u2, v1); // top right
182
- let bl = new three_1.Vector2(u1, v2); // bottom left
183
- let br = new three_1.Vector2(u2, v2); // bottom right
184
- switch (rotation) {
185
- case 0:
186
- case 360:
187
- default:
188
- break;
189
- case 90:
190
- tl = new three_1.Vector2(u1, v2);
191
- tr = new three_1.Vector2(u1, v1);
192
- bl = new three_1.Vector2(u2, v2);
193
- br = new three_1.Vector2(u2, v1);
194
- break;
195
- case 180:
196
- tl = new three_1.Vector2(u2, v2);
197
- tr = new three_1.Vector2(u1, v2);
198
- bl = new three_1.Vector2(u2, v1);
199
- br = new three_1.Vector2(u1, v1);
200
- break;
201
- case 270:
202
- tl = new three_1.Vector2(u2, v1);
203
- tr = new three_1.Vector2(u2, v2);
204
- bl = new three_1.Vector2(u1, v1);
205
- br = new three_1.Vector2(u1, v2);
206
- break;
207
- }
208
- return [tl, tr, bl, br];
209
- }
210
- static createAtlas(originalModel) {
211
- var _a, _b;
212
- return __awaiter(this, void 0, void 0, function* () {
213
- const textureMap = {};
214
- const metaMap = {};
215
- const model = Object.assign({}, originalModel);
216
- const isItemModel = !("elements" in model);
217
- console.debug(p, "Creating Atlas for", model.key);
218
- if (model.textures) {
219
- const promises = [];
220
- const uniqueTextureNames = []; // TODO: make these actually unique
221
- const textureReferences = {};
222
- for (let textureKey in model.textures) {
223
- let textureValue = model.textures[textureKey];
224
- if (textureValue.startsWith("#")) {
225
- textureReferences[textureKey] = textureValue.substr(1);
226
- }
227
- else {
228
- uniqueTextureNames.push(textureKey);
229
- const assetKey = AssetKey_1.AssetKey.parse("textures", textureValue, model.key);
230
- promises.push(ModelTextures_1.ModelTextures.get(assetKey).then(asset => {
231
- textureMap[textureKey] = new WrappedImage_1.WrappedImage(asset);
232
- }));
233
- promises.push(ModelTextures_1.ModelTextures.getMeta(assetKey).then(meta => {
234
- metaMap[textureKey] = meta;
235
- }));
236
- }
237
- }
238
- yield Promise.all(promises);
239
- const textureCount = uniqueTextureNames.length;
240
- console.debug(p, "Creating Atlas for", textureCount, "textures");
241
- // console.log(model.textures)
242
- this.fillMissingTextureKeys(model.textures, textureMap);
243
- this.fillMissingTextureKeys(model.textures, metaMap);
244
- const sizes = {};
245
- // Find largest texture dimensions
246
- let maxWidth = 0;
247
- let maxHeight = 0;
248
- for (let textureKey of uniqueTextureNames) {
249
- let texture = textureMap[textureKey];
250
- if (!texture)
251
- continue;
252
- sizes[textureKey] = [texture.width, texture.height];
253
- if (texture.width > maxWidth) {
254
- maxWidth = texture.width;
255
- }
256
- if (texture.height > maxHeight) {
257
- maxHeight = texture.height;
258
- }
259
- }
260
- this.fillMissingTextureKeys(model.textures, sizes);
261
- // console.log(sizes);
262
- const s = (Math.ceil(Math.sqrt(textureCount + 1))); // +1 for transparency
263
- const size = Math.ceil(s * maxWidth);
264
- console.debug(p, "Atlas size:", size);
265
- // console.log("size: " + size);
266
- const squaredSize = size * size;
267
- const missing = yield ImageLoader_1.ImageLoader.getData("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABAAQMAAACQp+OdAAAABlBMVEX/AP8AAACfphTyAAAAFUlEQVQoz2MIhQKGVVAwKjIqQrwIAHRz/wFI17TEAAAAAElFTkSuQmCC");
268
- const empty = yield ImageLoader_1.ImageLoader.getData("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABAAQMAAACQp+OdAAAAA1BMVEUAAACnej3aAAAAAXRSTlMAQObYZgAAAA5JREFUKM9jGAWjgAIAAAJAAAFSSwuTAAAAAElFTkSuQmCC");
269
- //TODO: add transparent texture and use as default uv
270
- // Create image
271
- const image = new CanvasImage_1.CanvasImage(size, size);
272
- image.putData(missing, 0, 0); // fill with invalid texture image
273
- image.putData(empty, 0, 0, 0, 0, maxWidth, maxWidth); // add transparent section in the top-left corner
274
- const positions = {};
275
- let hasTransparency = false;
276
- let hasAnimation = false;
277
- const animatorFunctions = {};
278
- // Draw all textures onto a single image
279
- let tx = 1; // start one over to leave room for the transparent space
280
- let ty = 0;
281
- for (let textureIndex = 0; textureIndex < uniqueTextureNames.length; textureIndex++) {
282
- let textureKey = uniqueTextureNames[textureIndex];
283
- let texture = textureMap[textureKey];
284
- let x = tx * maxWidth;
285
- let y = ty * maxWidth;
286
- if (texture) {
287
- console.log(texture);
288
- positions[textureKey] = [x, y];
289
- image.putData(texture.data, x, y, 0, 0, maxWidth, maxWidth);
290
- // console.log(image.toDataURL())
291
- //TODO: only first frame for animated textures
292
- if (texture.hasTransparency) {
293
- hasTransparency = true;
294
- }
295
- if (texture.animated) {
296
- hasAnimation = true;
297
- const meta = metaMap[textureKey];
298
- const frameTime = (_b = (_a = meta === null || meta === void 0 ? void 0 : meta.animation) === null || _a === void 0 ? void 0 : _a.frametime) !== null && _b !== void 0 ? _b : 1;
299
- console.log(meta);
300
- console.log(frameTime);
301
- let t = 0;
302
- let f = 0;
303
- animatorFunctions[textureKey] = () => {
304
- var _a;
305
- console.log("animating", textureKey);
306
- //TODO: use mcmeta for frame count, delays, etc
307
- //TODO: interpolate?
308
- if (t++ >= frameTime) {
309
- t = 0;
310
- const frames = (_a = meta === null || meta === void 0 ? void 0 : meta.animation) === null || _a === void 0 ? void 0 : _a.frames;
311
- const frame = frames ? frames[f] : f; //TODO: frame.time support
312
- image.putData(texture.getFrameSectionData(frame), x, y, 0, 0, maxWidth, maxWidth);
313
- f++;
314
- if (f >= (frames ? frames.length : texture.frameCount)) {
315
- f = 0;
316
- }
317
- }
318
- };
319
- }
320
- }
321
- tx++;
322
- if (tx >= s) {
323
- tx = 0;
324
- ty++;
325
- }
326
- }
327
- const atlasImageData = image.toDataURL();
328
- console.log(p, "Atlas Image for", model.key, atlasImageData);
329
- this.fillMissingTextureKeys(model.textures, positions);
330
- // console.log(positions);
331
- if (isItemModel) {
332
- console.debug(p, "Generating item model for", model);
333
- model.elements = [];
334
- for (let layerName of ModelGenerator_1.ModelGenerator.ITEM_LAYERS) {
335
- const textureImage = textureMap[layerName];
336
- if (textureImage) {
337
- model.elements.push(...ModelGenerator_1.ModelGenerator.generateItemModel(textureImage.data, layerName));
338
- }
339
- }
340
- console.debug(p, "Item model elements", model.elements);
341
- }
342
- if (!model.elements) {
343
- //TODO: default elements
344
- }
345
- // Adjust UV positions
346
- if (model.elements) {
347
- for (let elementIndex = 0; elementIndex < model.elements.length; elementIndex++) {
348
- let element = model.elements[elementIndex];
349
- let uv = [];
350
- // Set default uvs to missing texture
351
- for (let i = 0; i < CubeFace_1.CUBE_FACES.length; i++) {
352
- this.setCubeFaceUvInArray(uv, i * 4, [0, 0, 8 / size, 8 / size]);
353
- }
354
- for (let faceIndex = 0; faceIndex < CubeFace_1.CUBE_FACES.length; faceIndex++) {
355
- let faceName = CubeFace_1.CUBE_FACES[faceIndex];
356
- // console.log(faceName)
357
- let face = element.faces[faceName];
358
- if (!face) {
359
- // set uv transparent
360
- this.setCubeFaceUvInArray(uv, faceIndex * 4, [0, 1, 8 / size, (size - 8) / size]);
361
- continue;
362
- }
363
- if (!face.uv) {
364
- face.uv = this.getFallbackUv(element, faceName);
365
- }
366
- let faceTexture = face.texture;
367
- let texPosition;
368
- let texSize;
369
- if (faceTexture) {
370
- faceTexture = faceTexture.substr(1); // remove #
371
- texPosition = positions[faceTexture] || [0, 0];
372
- texSize = sizes[faceTexture] || [16, 16];
373
- }
374
- let texPosV = new three_1.Vector2(texPosition[0], texPosition[1]);
375
- const [tl, tr, bl, br] = this.expandAndRotateMcUvs(face.uv, face.rotation, texSize[0], texSize[1]);
376
- // move to atlas position
377
- tl.add(texPosV);
378
- tr.add(texPosV);
379
- bl.add(texPosV);
380
- br.add(texPosV);
381
- // divide to 0-1
382
- tl.divideScalar(size);
383
- tr.divideScalar(size);
384
- bl.divideScalar(size);
385
- br.divideScalar(size);
386
- // flip y coordinates
387
- tl.y = 1 - tl.y;
388
- tr.y = 1 - tr.y;
389
- bl.y = 1 - bl.y;
390
- br.y = 1 - br.y;
391
- //TODO: figure out how uv lock works
392
- let uvs = [tl, tr, bl, br];
393
- // console.log("uvs", uvs);
394
- this.setFaceUvInArrayV(uv, faceIndex * 4, uvs);
395
- }
396
- element.mappedUv = uv;
397
- }
398
- }
399
- else {
400
- //TODO: item model
401
- }
402
- return new TextureAtlas_1.TextureAtlas(model, image, sizes, positions, hasAnimation, animatorFunctions, hasTransparency);
403
- }
404
- else {
405
- console.warn(p, "Model does not have any textures", model);
406
- }
407
- return undefined;
408
- });
409
- }
410
- }
411
- exports.UVMapper = UVMapper;
412
- // Based on net.minecraft.client.renderer.block.model.BlockFaceUV
413
- class MinecraftFaceUV {
414
- constructor(uv = [0, 0, 16, 16], rotation = 0) {
415
- this.uv = uv;
416
- this.rotation = rotation;
417
- }
418
- getU(index) {
419
- const shiftedIndex = this.getShiftedIndex(index);
420
- return this.uv[shiftedIndex !== 0 && index !== 1 ? 2 : 0];
421
- }
422
- getV(index) {
423
- const shiftedIndex = this.getShiftedIndex(index);
424
- return this.uv[shiftedIndex !== 0 && index !== 3 ? 3 : 1];
425
- }
426
- getShiftedIndex(index) {
427
- return (index + this.rotation / 90) % 40;
428
- }
429
- getReverseIndex(index) {
430
- return (index + 4 - this.rotation / 90) % 4;
431
- }
432
- }
433
- exports.MinecraftFaceUV = MinecraftFaceUV;
434
- //# sourceMappingURL=UVMapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UVMapper.js","sourceRoot":"src/","sources":["UVMapper.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { ImageData } from "canvas";
2
- import { ExtractableImageData } from "./ExtractableImageData";
3
- export declare class WrappedImage {
4
- readonly dta: ExtractableImageData;
5
- constructor(dta: ExtractableImageData);
6
- get data(): ImageData;
7
- get dataArray(): Uint8ClampedArray;
8
- get width(): number;
9
- get height(): number;
10
- get hasTransparency(): boolean;
11
- get animated(): boolean;
12
- get frameCount(): number;
13
- getFrameY(frame: number): number;
14
- getSectionData(sx: number, sy: number, sw: number, sh: number): ImageData;
15
- getPixel(x: number, y: number): Uint8ClampedArray;
16
- getFrameSectionData(frame: number): ImageData;
17
- }
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WrappedImage = void 0;
4
- class WrappedImage {
5
- constructor(dta) {
6
- this.dta = dta;
7
- }
8
- get data() {
9
- return this.getSectionData(0, 0, this.width, this.height);
10
- }
11
- get dataArray() {
12
- return this.data.data;
13
- }
14
- get width() {
15
- return this.dta.width;
16
- }
17
- get height() {
18
- return this.dta.height;
19
- }
20
- get hasTransparency() {
21
- const data = this.data.data;
22
- for (let i = 0; i < data.length; i += 4) {
23
- if (data[i + 3] < 255) {
24
- return true;
25
- }
26
- }
27
- return false;
28
- }
29
- get animated() {
30
- return this.height > this.width && this.height % this.width === 0;
31
- }
32
- get frameCount() {
33
- return this.height / this.width;
34
- }
35
- getFrameY(frame) {
36
- return (this.height / this.frameCount) * Math.max(0, Math.min(this.frameCount, frame));
37
- }
38
- getSectionData(sx, sy, sw, sh) {
39
- return this.dta.data.getImageData(sx, sy, sw, sh);
40
- }
41
- getPixel(x, y) {
42
- return this.dta.data.getImageData(x, y, 1, 1).data;
43
- }
44
- getFrameSectionData(frame) {
45
- const y = this.getFrameY(frame);
46
- return this.getSectionData(0, y, this.width, this.width + y);
47
- }
48
- }
49
- exports.WrappedImage = WrappedImage;
50
- //# sourceMappingURL=WrappedImage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WrappedImage.js","sourceRoot":"src/","sources":["WrappedImage.ts"],"names":[],"mappings":";;;AAIA,MAAa,YAAY;IAErB,YAAqB,GAAyB;QAAzB,QAAG,GAAH,GAAG,CAAsB;IAC9C,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,IAAI,eAAe;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACrC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE;gBACnB,OAAO,IAAI,CAAC;aACf;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;IACpC,CAAC;IAED,SAAS,CAAC,KAAa;QACnB,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,cAAc,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;QACzD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,QAAQ,CAAC,CAAS,EAAE,CAAS;QACzB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpD,CAAC;IAED,mBAAmB,CAAC,KAAa;QAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACjE,CAAC;CAEJ;AAxDD,oCAwDC"}
@@ -1,10 +0,0 @@
1
- import { TripleArray } from "../model/Model";
2
- import { Face } from "./Face";
3
- export interface Cube {
4
- origin: TripleArray;
5
- size: TripleArray;
6
- rotation: TripleArray;
7
- faces: {
8
- [side: string]: Face;
9
- };
10
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=Cube.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Cube.js","sourceRoot":"src/","sources":["_model/Cube.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- import { Cube } from "./Cube";
2
- import { TripleArray } from "../model/Model";
3
- export interface Element {
4
- name: string;
5
- parent?: string;
6
- pivot: TripleArray;
7
- rotation: TripleArray;
8
- cubes: Cube[];
9
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=Element.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Element.js","sourceRoot":"src/","sources":["_model/Element.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- import { QuadArray } from "../model/Model";
2
- export interface Face {
3
- uv: QuadArray;
4
- mappedUv?: QuadArray;
5
- texture: string;
6
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=Face.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Face.js","sourceRoot":"src/","sources":["_model/Face.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- import { Element } from "./Element";
2
- export interface Model {
3
- elements: Element[];
4
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=Model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Model.js","sourceRoot":"src/","sources":["_model/Model.ts"],"names":[],"mappings":""}
@@ -1,26 +0,0 @@
1
- import { Serializable } from "../Serializable";
2
- export declare type AssetType = "models" | "textures" | "blockstates" | string;
3
- export declare class BasicAssetKey implements Serializable {
4
- readonly namespace: string;
5
- readonly path: string;
6
- constructor(key: BasicAssetKey);
7
- constructor(namespace: string, path: string);
8
- toNamespacedString(): string;
9
- toString(): string;
10
- serialize(): string;
11
- }
12
- export declare class AssetKey extends BasicAssetKey {
13
- readonly namespace: string;
14
- readonly path: string;
15
- assetType?: string | undefined;
16
- type?: string | undefined;
17
- rootType: "assets" | "data" | string;
18
- extension: ".json" | ".png" | string;
19
- root?: string | undefined;
20
- constructor(namespace: string, path: string, assetType?: string | undefined, type?: string | undefined, rootType?: "assets" | "data" | string, extension?: ".json" | ".png" | string, root?: string | undefined);
21
- static parse(assetType: AssetType, str: string, origin?: AssetKey): AssetKey;
22
- toString(): string;
23
- serialize(): string;
24
- }
25
- export declare function isBasicAssetKey(obj: any): obj is BasicAssetKey;
26
- export declare function isAssetKey(obj: any): obj is AssetKey;