minerender 2.0.0-alpha.1 → 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 (284) hide show
  1. package/package.json +3 -2
  2. package/dist/bundle.js +0 -106338
  3. package/dist/esm/AnimatorFunction.d.ts +0 -3
  4. package/dist/esm/AnimatorFunction.js +0 -2
  5. package/dist/esm/AnimatorFunction.js.map +0 -1
  6. package/dist/esm/Axis.d.ts +0 -8
  7. package/dist/esm/Axis.js +0 -19
  8. package/dist/esm/Axis.js.map +0 -1
  9. package/dist/esm/CubeFace.d.ts +0 -17
  10. package/dist/esm/CubeFace.js +0 -20
  11. package/dist/esm/CubeFace.js.map +0 -1
  12. package/dist/esm/Disposable.d.ts +0 -4
  13. package/dist/esm/Disposable.js +0 -4
  14. package/dist/esm/Disposable.js.map +0 -1
  15. package/dist/esm/Env.d.ts +0 -2
  16. package/dist/esm/Env.js +0 -3
  17. package/dist/esm/Env.js.map +0 -1
  18. package/dist/esm/ExtractableImageData.d.ts +0 -5
  19. package/dist/esm/ExtractableImageData.js +0 -2
  20. package/dist/esm/ExtractableImageData.js.map +0 -1
  21. package/dist/esm/Geometries.d.ts +0 -6
  22. package/dist/esm/Geometries.js +0 -88
  23. package/dist/esm/Geometries.js.map +0 -1
  24. package/dist/esm/ListAsset.d.ts +0 -5
  25. package/dist/esm/ListAsset.js +0 -2
  26. package/dist/esm/ListAsset.js.map +0 -1
  27. package/dist/esm/Materials.d.ts +0 -9
  28. package/dist/esm/Materials.js +0 -147
  29. package/dist/esm/Materials.js.map +0 -1
  30. package/dist/esm/Meshes.d.ts +0 -6
  31. package/dist/esm/Meshes.js +0 -17
  32. package/dist/esm/Meshes.js.map +0 -1
  33. package/dist/esm/MinecraftAsset.d.ts +0 -7
  34. package/dist/esm/MinecraftAsset.js +0 -2
  35. package/dist/esm/MinecraftAsset.js.map +0 -1
  36. package/dist/esm/MinecraftCubeTexture.d.ts +0 -26
  37. package/dist/esm/MinecraftCubeTexture.js +0 -100
  38. package/dist/esm/MinecraftCubeTexture.js.map +0 -1
  39. package/dist/esm/MinecraftTextureMeta.d.ts +0 -15
  40. package/dist/esm/MinecraftTextureMeta.js +0 -2
  41. package/dist/esm/MinecraftTextureMeta.js.map +0 -1
  42. package/dist/esm/SceneStats.d.ts +0 -5
  43. package/dist/esm/SceneStats.js +0 -8
  44. package/dist/esm/SceneStats.js.map +0 -1
  45. package/dist/esm/Serializable.d.ts +0 -3
  46. package/dist/esm/Serializable.js +0 -2
  47. package/dist/esm/Serializable.js.map +0 -1
  48. package/dist/esm/Ticker.d.ts +0 -20
  49. package/dist/esm/Ticker.js +0 -51
  50. package/dist/esm/Ticker.js.map +0 -1
  51. package/dist/esm/TintColors.d.ts +0 -1
  52. package/dist/esm/TintColors.js +0 -2
  53. package/dist/esm/TintColors.js.map +0 -1
  54. package/dist/esm/Transformable.d.ts +0 -11
  55. package/dist/esm/Transformable.js +0 -4
  56. package/dist/esm/Transformable.js.map +0 -1
  57. package/dist/esm/UVMapper.d.ts +0 -40
  58. package/dist/esm/UVMapper.js +0 -429
  59. package/dist/esm/UVMapper.js.map +0 -1
  60. package/dist/esm/WrappedImage.d.ts +0 -17
  61. package/dist/esm/WrappedImage.js +0 -46
  62. package/dist/esm/WrappedImage.js.map +0 -1
  63. package/dist/esm/_model/Cube.d.ts +0 -10
  64. package/dist/esm/_model/Cube.js +0 -2
  65. package/dist/esm/_model/Cube.js.map +0 -1
  66. package/dist/esm/_model/Element.d.ts +0 -9
  67. package/dist/esm/_model/Element.js +0 -2
  68. package/dist/esm/_model/Element.js.map +0 -1
  69. package/dist/esm/_model/Face.d.ts +0 -6
  70. package/dist/esm/_model/Face.js +0 -2
  71. package/dist/esm/_model/Face.js.map +0 -1
  72. package/dist/esm/_model/Model.d.ts +0 -4
  73. package/dist/esm/_model/Model.js +0 -2
  74. package/dist/esm/_model/Model.js.map +0 -1
  75. package/dist/esm/assets/AssetKey.d.ts +0 -26
  76. package/dist/esm/assets/AssetKey.js +0 -76
  77. package/dist/esm/assets/AssetKey.js.map +0 -1
  78. package/dist/esm/assets/AssetLoader.d.ts +0 -26
  79. package/dist/esm/assets/AssetLoader.js +0 -149
  80. package/dist/esm/assets/AssetLoader.js.map +0 -1
  81. package/dist/esm/assets/Assets.d.ts +0 -14
  82. package/dist/esm/assets/Assets.js +0 -33
  83. package/dist/esm/assets/Assets.js.map +0 -1
  84. package/dist/esm/assets/BlockStates.d.ts +0 -11
  85. package/dist/esm/assets/BlockStates.js +0 -68
  86. package/dist/esm/assets/BlockStates.js.map +0 -1
  87. package/dist/esm/assets/Entities.d.ts +0 -8
  88. package/dist/esm/assets/Entities.js +0 -50
  89. package/dist/esm/assets/Entities.js.map +0 -1
  90. package/dist/esm/assets/ModelTextures.d.ts +0 -12
  91. package/dist/esm/assets/ModelTextures.js +0 -62
  92. package/dist/esm/assets/ModelTextures.js.map +0 -1
  93. package/dist/esm/assets/Models.d.ts +0 -12
  94. package/dist/esm/assets/Models.js +0 -91
  95. package/dist/esm/assets/Models.js.map +0 -1
  96. package/dist/esm/bedrock/BedrockEntityDescription.d.ts +0 -19
  97. package/dist/esm/bedrock/BedrockEntityDescription.js +0 -2
  98. package/dist/esm/bedrock/BedrockEntityDescription.js.map +0 -1
  99. package/dist/esm/bedrock/BedrockEntityFile.d.ts +0 -7
  100. package/dist/esm/bedrock/BedrockEntityFile.js +0 -2
  101. package/dist/esm/bedrock/BedrockEntityFile.js.map +0 -1
  102. package/dist/esm/bedrock/BedrockGeometry.d.ts +0 -27
  103. package/dist/esm/bedrock/BedrockGeometry.js +0 -2
  104. package/dist/esm/bedrock/BedrockGeometry.js.map +0 -1
  105. package/dist/esm/bedrock/BedrockGeometryFile.d.ts +0 -5
  106. package/dist/esm/bedrock/BedrockGeometryFile.js +0 -2
  107. package/dist/esm/bedrock/BedrockGeometryFile.js.map +0 -1
  108. package/dist/esm/cache/CacheKey.d.ts +0 -28
  109. package/dist/esm/cache/CacheKey.js +0 -19
  110. package/dist/esm/cache/CacheKey.js.map +0 -1
  111. package/dist/esm/cache/Caching.d.ts +0 -29
  112. package/dist/esm/cache/Caching.js +0 -89
  113. package/dist/esm/cache/Caching.js.map +0 -1
  114. package/dist/esm/cache/PersistentCache.d.ts +0 -15
  115. package/dist/esm/cache/PersistentCache.js +0 -105
  116. package/dist/esm/cache/PersistentCache.js.map +0 -1
  117. package/dist/esm/canvas/CanvasCompat.d.ts +0 -5
  118. package/dist/esm/canvas/CanvasCompat.js +0 -29
  119. package/dist/esm/canvas/CanvasCompat.js.map +0 -1
  120. package/dist/esm/canvas/CanvasImage.d.ts +0 -18
  121. package/dist/esm/canvas/CanvasImage.js +0 -41
  122. package/dist/esm/canvas/CanvasImage.js.map +0 -1
  123. package/dist/esm/entity/EntityModel.d.ts +0 -7
  124. package/dist/esm/entity/EntityModel.js +0 -2
  125. package/dist/esm/entity/EntityModel.js.map +0 -1
  126. package/dist/esm/entity/blockEntityModels.json +0 -1401
  127. package/dist/esm/entity/entityModels.json +0 -20623
  128. package/dist/esm/entity/scene/EntityObject.d.ts +0 -20
  129. package/dist/esm/entity/scene/EntityObject.js +0 -104
  130. package/dist/esm/entity/scene/EntityObject.js.map +0 -1
  131. package/dist/esm/error/MineRenderError.d.ts +0 -4
  132. package/dist/esm/error/MineRenderError.js +0 -11
  133. package/dist/esm/error/MineRenderError.js.map +0 -1
  134. package/dist/esm/gui/scene/GuiObject.d.ts +0 -6
  135. package/dist/esm/gui/scene/GuiObject.js +0 -4
  136. package/dist/esm/gui/scene/GuiObject.js.map +0 -1
  137. package/dist/esm/image/ImageLoader.d.ts +0 -28
  138. package/dist/esm/image/ImageLoader.js +0 -159
  139. package/dist/esm/image/ImageLoader.js.map +0 -1
  140. package/dist/esm/index.d.ts +0 -28
  141. package/dist/esm/index.js +0 -31
  142. package/dist/esm/index.js.map +0 -1
  143. package/dist/esm/inspector/SceneInspector.d.ts +0 -27
  144. package/dist/esm/inspector/SceneInspector.js +0 -362
  145. package/dist/esm/inspector/SceneInspector.js.map +0 -1
  146. package/dist/esm/inspector/SceneStats.d.ts +0 -22
  147. package/dist/esm/inspector/SceneStats.js +0 -49
  148. package/dist/esm/inspector/SceneStats.js.map +0 -1
  149. package/dist/esm/instance/InstanceManager.d.ts +0 -14
  150. package/dist/esm/instance/InstanceManager.js +0 -53
  151. package/dist/esm/instance/InstanceManager.js.map +0 -1
  152. package/dist/esm/instance/InstanceReference.d.ts +0 -21
  153. package/dist/esm/instance/InstanceReference.js +0 -44
  154. package/dist/esm/instance/InstanceReference.js.map +0 -1
  155. package/dist/esm/instance/Instanceable.d.ts +0 -16
  156. package/dist/esm/instance/Instanceable.js +0 -4
  157. package/dist/esm/instance/Instanceable.js.map +0 -1
  158. package/dist/esm/lib/OrbitControls.d.ts +0 -64
  159. package/dist/esm/lib/OrbitControls.js +0 -636
  160. package/dist/esm/lib/OrbitControls.js.map +0 -1
  161. package/dist/esm/model/DisplayPosition.d.ts +0 -11
  162. package/dist/esm/model/DisplayPosition.js +0 -13
  163. package/dist/esm/model/DisplayPosition.js.map +0 -1
  164. package/dist/esm/model/ElementFace.d.ts +0 -9
  165. package/dist/esm/model/ElementFace.js +0 -2
  166. package/dist/esm/model/ElementFace.js.map +0 -1
  167. package/dist/esm/model/GuiLight.d.ts +0 -4
  168. package/dist/esm/model/GuiLight.js +0 -6
  169. package/dist/esm/model/GuiLight.js.map +0 -1
  170. package/dist/esm/model/Model.d.ts +0 -46
  171. package/dist/esm/model/Model.js +0 -14
  172. package/dist/esm/model/Model.js.map +0 -1
  173. package/dist/esm/model/ModelElement.d.ts +0 -21
  174. package/dist/esm/model/ModelElement.js +0 -2
  175. package/dist/esm/model/ModelElement.js.map +0 -1
  176. package/dist/esm/model/ModelGenerator.d.ts +0 -6
  177. package/dist/esm/model/ModelGenerator.js +0 -23
  178. package/dist/esm/model/ModelGenerator.js.map +0 -1
  179. package/dist/esm/model/ModelMerger.d.ts +0 -5
  180. package/dist/esm/model/ModelMerger.js +0 -44
  181. package/dist/esm/model/ModelMerger.js.map +0 -1
  182. package/dist/esm/model/ModelPart.d.ts +0 -23
  183. package/dist/esm/model/ModelPart.js +0 -2
  184. package/dist/esm/model/ModelPart.js.map +0 -1
  185. package/dist/esm/model/block/Block.d.ts +0 -6
  186. package/dist/esm/model/block/Block.js +0 -2
  187. package/dist/esm/model/block/Block.js.map +0 -1
  188. package/dist/esm/model/block/BlockState.d.ts +0 -23
  189. package/dist/esm/model/block/BlockState.js +0 -2
  190. package/dist/esm/model/block/BlockState.js.map +0 -1
  191. package/dist/esm/model/block/BlockStateProperties.d.ts +0 -13
  192. package/dist/esm/model/block/BlockStateProperties.js +0 -2
  193. package/dist/esm/model/block/BlockStateProperties.js.map +0 -1
  194. package/dist/esm/model/block/scene/BlockObject.d.ts +0 -46
  195. package/dist/esm/model/block/scene/BlockObject.js +0 -460
  196. package/dist/esm/model/block/scene/BlockObject.js.map +0 -1
  197. package/dist/esm/model/defaultBlockStates.json +0 -12337
  198. package/dist/esm/model/multiblock/MultiBlockStructure.d.ts +0 -9
  199. package/dist/esm/model/multiblock/MultiBlockStructure.js +0 -2
  200. package/dist/esm/model/multiblock/MultiBlockStructure.js.map +0 -1
  201. package/dist/esm/model/multiblock/SchematicParser.d.ts +0 -4
  202. package/dist/esm/model/multiblock/SchematicParser.js +0 -19
  203. package/dist/esm/model/multiblock/SchematicParser.js.map +0 -1
  204. package/dist/esm/model/multiblock/StructureParser.d.ts +0 -70
  205. package/dist/esm/model/multiblock/StructureParser.js +0 -48
  206. package/dist/esm/model/multiblock/StructureParser.js.map +0 -1
  207. package/dist/esm/model/scene/ModelObject.d.ts +0 -25
  208. package/dist/esm/model/scene/ModelObject.js +0 -155
  209. package/dist/esm/model/scene/ModelObject.js.map +0 -1
  210. package/dist/esm/nbt/NBTHelper.d.ts +0 -8
  211. package/dist/esm/nbt/NBTHelper.js +0 -19
  212. package/dist/esm/nbt/NBTHelper.js.map +0 -1
  213. package/dist/esm/renderer/MineRenderScene.d.ts +0 -35
  214. package/dist/esm/renderer/MineRenderScene.js +0 -124
  215. package/dist/esm/renderer/MineRenderScene.js.map +0 -1
  216. package/dist/esm/renderer/Renderer.d.ts +0 -83
  217. package/dist/esm/renderer/Renderer.js +0 -260
  218. package/dist/esm/renderer/Renderer.js.map +0 -1
  219. package/dist/esm/renderer/SceneObject.d.ts +0 -81
  220. package/dist/esm/renderer/SceneObject.js +0 -392
  221. package/dist/esm/renderer/SceneObject.js.map +0 -1
  222. package/dist/esm/renderer/SceneObjectOptions.d.ts +0 -6
  223. package/dist/esm/renderer/SceneObjectOptions.js +0 -2
  224. package/dist/esm/renderer/SceneObjectOptions.js.map +0 -1
  225. package/dist/esm/request/Requests.d.ts +0 -12
  226. package/dist/esm/request/Requests.js +0 -32
  227. package/dist/esm/request/Requests.js.map +0 -1
  228. package/dist/esm/skin/SkinGeometries.d.ts +0 -5
  229. package/dist/esm/skin/SkinGeometries.js +0 -33
  230. package/dist/esm/skin/SkinGeometries.js.map +0 -1
  231. package/dist/esm/skin/SkinPart.d.ts +0 -16
  232. package/dist/esm/skin/SkinPart.js +0 -18
  233. package/dist/esm/skin/SkinPart.js.map +0 -1
  234. package/dist/esm/skin/SkinTextureCoordinates.d.ts +0 -5
  235. package/dist/esm/skin/SkinTextureCoordinates.js +0 -748
  236. package/dist/esm/skin/SkinTextureCoordinates.js.map +0 -1
  237. package/dist/esm/skin/Skins.d.ts +0 -17
  238. package/dist/esm/skin/Skins.js +0 -164
  239. package/dist/esm/skin/Skins.js.map +0 -1
  240. package/dist/esm/skin/scene/SkinObject.d.ts +0 -21
  241. package/dist/esm/skin/scene/SkinObject.js +0 -112
  242. package/dist/esm/skin/scene/SkinObject.js.map +0 -1
  243. package/dist/esm/texture/TextureAtlas.d.ts +0 -29
  244. package/dist/esm/texture/TextureAtlas.js +0 -22
  245. package/dist/esm/texture/TextureAtlas.js.map +0 -1
  246. package/dist/esm/texture/TextureLoader.d.ts +0 -6
  247. package/dist/esm/texture/TextureLoader.js +0 -30
  248. package/dist/esm/texture/TextureLoader.js.map +0 -1
  249. package/dist/esm/texture/Textures.d.ts +0 -10
  250. package/dist/esm/texture/Textures.js +0 -29
  251. package/dist/esm/texture/Textures.js.map +0 -1
  252. package/dist/esm/three/BufferGeometryUtils.d.ts +0 -44
  253. package/dist/esm/three/BufferGeometryUtils.js +0 -544
  254. package/dist/esm/three/BufferGeometryUtils.js.map +0 -1
  255. package/dist/esm/three/OrbitControls.d.ts +0 -59
  256. package/dist/esm/three/OrbitControls.js +0 -786
  257. package/dist/esm/three/OrbitControls.js.map +0 -1
  258. package/dist/esm/util/BatchedExecutor.d.ts +0 -12
  259. package/dist/esm/util/BatchedExecutor.js +0 -22
  260. package/dist/esm/util/BatchedExecutor.js.map +0 -1
  261. package/dist/esm/util/log.d.ts +0 -1
  262. package/dist/esm/util/log.js +0 -28
  263. package/dist/esm/util/log.js.map +0 -1
  264. package/dist/esm/util/model.d.ts +0 -11
  265. package/dist/esm/util/model.js +0 -173
  266. package/dist/esm/util/model.js.map +0 -1
  267. package/dist/esm/util/performance.d.ts +0 -3
  268. package/dist/esm/util/performance.js +0 -13
  269. package/dist/esm/util/performance.js.map +0 -1
  270. package/dist/esm/util/three.d.ts +0 -8
  271. package/dist/esm/util/three.js +0 -19
  272. package/dist/esm/util/three.js.map +0 -1
  273. package/dist/esm/util/util.d.ts +0 -19
  274. package/dist/esm/util/util.js +0 -107
  275. package/dist/esm/util/util.js.map +0 -1
  276. package/dist/esm/world/BlockInfo.d.ts +0 -6
  277. package/dist/esm/world/BlockInfo.js +0 -2
  278. package/dist/esm/world/BlockInfo.js.map +0 -1
  279. package/dist/esm/world/Chunk.d.ts +0 -33
  280. package/dist/esm/world/Chunk.js +0 -128
  281. package/dist/esm/world/Chunk.js.map +0 -1
  282. package/dist/esm/world/MineRenderWorld.d.ts +0 -31
  283. package/dist/esm/world/MineRenderWorld.js +0 -129
  284. package/dist/esm/world/MineRenderWorld.js.map +0 -1
@@ -1,460 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { SceneObject } from "../../../renderer/SceneObject";
11
- import { isModelObject, ModelObject } from "../../scene/ModelObject";
12
- import { Models } from "../../../assets/Models";
13
- import merge from "ts-deepmerge";
14
- import { Euler, Matrix4, Vector3 } from "three";
15
- import { clampRotationDegrees, toRadians } from "../../../util/util";
16
- import { MineRenderError } from "../../../error/MineRenderError";
17
- import { BlockStates } from "../../../assets/BlockStates";
18
- import { isInstanceReference } from "../../../instance/InstanceReference";
19
- import { AssetKey } from "../../../assets/AssetKey";
20
- import { prefix } from "../../../util/log";
21
- const p = prefix("BlockObject");
22
- export class BlockObject extends SceneObject {
23
- constructor(blockState, options) {
24
- super();
25
- this.blockState = blockState;
26
- this.isBlockObject = true;
27
- this._previousState = {};
28
- this._state = {};
29
- this._variant = undefined;
30
- this._instanceState = [];
31
- this._instanceVariant = [];
32
- this._instanceModel = [];
33
- this._variants = [];
34
- this._models = [];
35
- this.options = merge({}, BlockObject.DEFAULT_OPTIONS, options !== null && options !== void 0 ? options : {});
36
- //TODO
37
- }
38
- init() {
39
- return __awaiter(this, void 0, void 0, function* () {
40
- if (this.options.applyDefaultState) {
41
- const defaultState = this.blockState.key ? BlockStates.getDefaultState(this.blockState.key) : undefined;
42
- if (defaultState && Object.keys(defaultState).length > 0) { // use defined state
43
- const state = {};
44
- for (let k in defaultState) {
45
- state[k] = defaultState[k].default;
46
- }
47
- yield this.setState(state);
48
- }
49
- else { // fallback to guessing from blockState definition
50
- if (this.blockState.variants) {
51
- yield this.setState(Object.keys(this.blockState.variants)[0]);
52
- }
53
- else if (this.blockState.multipart) {
54
- for (let part of this.blockState.multipart) {
55
- if (part.when && !("OR" in part.when)) {
56
- const k = Object.keys(part.when)[0];
57
- if (k) {
58
- yield this.setState(k, part.when[k].split("|")[0]);
59
- break;
60
- }
61
- }
62
- }
63
- }
64
- }
65
- }
66
- else {
67
- yield this.recreateModels();
68
- }
69
- //TODO
70
- });
71
- }
72
- dispose() {
73
- super.dispose();
74
- }
75
- removeFromScene() {
76
- for (let model of this._models) {
77
- if (isModelObject(model)) {
78
- model.removeFromScene();
79
- }
80
- else if (isInstanceReference(model)) {
81
- model.setScale(new Vector3(0, 0, 0));
82
- }
83
- }
84
- super.removeFromScene();
85
- }
86
- get state() {
87
- return this._state;
88
- }
89
- nextInstance() {
90
- const ref = super.nextInstance();
91
- for (let child of this.children) {
92
- if (isModelObject(child)) {
93
- child._instanceCounter = this.instanceCounter;
94
- }
95
- }
96
- return ref;
97
- }
98
- mapStateToVariant(state) {
99
- return __awaiter(this, void 0, void 0, function* () {
100
- const out = [];
101
- if (this.blockState.variants) {
102
- if (Object.keys(this.blockState.variants).length === 1 && "" in this.blockState.variants) { // default variant
103
- out.push(this.getSingleVariant(this.blockState.variants[""]));
104
- }
105
- else {
106
- for (let variantKey in this.blockState.variants) {
107
- const split = variantKey.split(",");
108
- let matches = true;
109
- for (let s of split) {
110
- const [k, v] = s.split("=");
111
- if (`${state[k]}` !== `${v}`) {
112
- matches = false;
113
- break;
114
- }
115
- }
116
- if (matches) {
117
- const variants = this.blockState.variants[variantKey];
118
- out.push(this.getSingleVariant(variants));
119
- }
120
- }
121
- }
122
- }
123
- else if (this.blockState.multipart) {
124
- for (let part of this.blockState.multipart) {
125
- if (!part.apply) {
126
- console.debug(p, "Missing apply for blockState part", part);
127
- continue;
128
- }
129
- if (!part.when) { // no condition -> always apply
130
- out.push(this.getSingleVariant(part.apply));
131
- }
132
- else {
133
- let matches = true;
134
- // TODO: apparently AND is a thing too (https://yeleha.co/31Jec6P)
135
- if ("OR" in part.when) {
136
- const or = part.when.OR;
137
- let anyMatch = false;
138
- for (let o of or) {
139
- for (let k in o) {
140
- const split = o[k].split("|");
141
- let m = false;
142
- for (let s of split) {
143
- if (`${state[k]}` === `${s}`) {
144
- m = true;
145
- break;
146
- }
147
- }
148
- if (m) {
149
- anyMatch = true;
150
- break;
151
- }
152
- }
153
- }
154
- if (!anyMatch) {
155
- matches = false;
156
- }
157
- }
158
- else {
159
- for (let k in part.when) {
160
- const split = part.when[k].split("|");
161
- let m = false;
162
- for (let s of split) {
163
- if (`${state[k]}` === `${s}`) {
164
- m = true;
165
- break;
166
- }
167
- }
168
- if (!m) { // none of the possible values match
169
- matches = false;
170
- break;
171
- }
172
- }
173
- }
174
- if (matches) {
175
- const variants = part.apply;
176
- out.push(this.getSingleVariant(variants));
177
- }
178
- }
179
- }
180
- }
181
- return out;
182
- });
183
- }
184
- recreateModels() {
185
- return __awaiter(this, void 0, void 0, function* () {
186
- //TODO: change this to create models once, and then modify rotations when updating the state
187
- // Copy current instance info
188
- const instanceInfo = [];
189
- if (this.isInstanced) {
190
- for (let i = 0; i < this.instanceCounter; i++) {
191
- instanceInfo[i] = this.getMatrixAt(i);
192
- }
193
- }
194
- // Remove all children
195
- // this.disposeAndRemoveAllChildren(); //TODO: just removes all children of all instances atm...
196
- // TODO: try to reuse models instead of just removing them and creating new ones
197
- for (let model of this._models) {
198
- if (isInstanceReference(model)) {
199
- model.setScale(new Vector3(0, 0, 0)); //TODO
200
- }
201
- else {
202
- model.dispose();
203
- }
204
- }
205
- while (this._models.length > 0) {
206
- this._models.shift();
207
- }
208
- //TODO: might want to preload all possible states & cache their data
209
- //TODO: make sure to only instance stuff with different rotations together; i.e. not those with different multipart settings, or different models
210
- /*
211
- if (this.isInstanced) {
212
- //TODO: only map once per state
213
- for (let i = 0; i < this.instanceCounter; i++) {
214
- this._instanceVariant[i] = await this.mapStateToVariant(this._instanceState[i]);
215
- for (let variant of this._instanceVariant[i]) {
216
- this._instanceModel[i] = await this.createVariant(variant);
217
- }
218
- }
219
- //TODO: actually create
220
- //TODO: group by model
221
- this._isInstanced = true;
222
- } else {
223
- */
224
- const variantsToCreate = yield this.mapStateToVariant(this.state);
225
- this._variants = variantsToCreate;
226
- for (let blockStateVariant of variantsToCreate) {
227
- this._models.push(yield this.createVariant(blockStateVariant));
228
- }
229
- /*
230
- }
231
-
232
- */
233
- // console.log(instanceInfo);
234
- // // Re-apply instances
235
- // if (instanceInfo.length>0) {
236
- // for (let i = 0; i < instanceInfo.length; i++) {
237
- // this.setMatrixAt(i, instanceInfo[i]);
238
- // }
239
- // }
240
- });
241
- }
242
- getSingleVariant(variants) {
243
- if (Array.isArray(variants)) {
244
- //TODO: randomizer option / weights
245
- return variants[0];
246
- }
247
- else {
248
- return variants;
249
- }
250
- }
251
- // @deprecated
252
- createAVariant(variants, instanceInfo) {
253
- return __awaiter(this, void 0, void 0, function* () {
254
- const variant = this.getSingleVariant(variants);
255
- yield this.createVariant(variant);
256
- });
257
- }
258
- createVariant(variant) {
259
- return __awaiter(this, void 0, void 0, function* () {
260
- //TODO: uvlock
261
- //TODO: default state?
262
- const model = yield Models.getMerged(AssetKey.parse("models", variant.model));
263
- const obj = yield this.scene.addModel(model, this.options);
264
- /*
265
- const obj = new ModelObject(model!, this.options);
266
- await obj.init();
267
- */
268
- if (isInstanceReference(obj) || obj.isInstanced) {
269
- this._isInstanced = true;
270
- this._instanceCounter = 1; //TODO: BlockObject itself isn't technically instanced, but needs the id for the get/setMatrix calls to work properly
271
- /*
272
- if (isInstanceReference(obj)) {
273
- this._instanceCounter = obj.index;
274
- } else {
275
- this._instanceCounter = (<ModelObject>obj).instanceCounter;
276
- }
277
- */
278
- }
279
- /*
280
- // Re-apply instance info as a base
281
- if (instanceInfo.length > 0) {
282
- for (let i = 0; i < instanceInfo.length; i++) {
283
- obj.setMatrixAt(i, instanceInfo[i]);
284
- }
285
- }
286
- */
287
- let rotation = new Euler(0, 0, 0);
288
- if (typeof variant.x !== "undefined") {
289
- // obj.rotation.x = toRadians(variant.x);
290
- // obj.rotation.set(obj.rotation.x + toRadians(variant.x), obj.rotation.y, obj.rotation.z);
291
- // for (let child of obj.children) {
292
- // // applyGenericRotation(Axis.X, variant.x, child);
293
- // child.rotation.x = toRadians(variant.x);
294
- // }
295
- // this.setRotationAt(0, new Euler(variant.x, 0, 0));
296
- rotation.x = toRadians(clampRotationDegrees(variant.x));
297
- }
298
- if (typeof variant.y !== "undefined") {
299
- // obj.rotation.y = toRadians(variant.y);
300
- // obj.rotation.set(obj.rotation.x, obj.rotation.y + toRadians(variant.y), obj.rotation.z);
301
- // for (let child of obj.children) {
302
- // // applyGenericRotation(Axis.Y, variant.y, child);
303
- // child.rotation.y = toRadians(variant.y);
304
- // }
305
- // this.setRotationAt(0, new Euler(0, variant.y, 0));
306
- // Y-Rotations are weird...
307
- if (typeof variant.x !== "undefined") {
308
- rotation.y = toRadians(clampRotationDegrees(variant.y));
309
- }
310
- else {
311
- rotation.y = toRadians(clampRotationDegrees(360 - variant.y));
312
- }
313
- }
314
- // console.log(obj.isInstanced);
315
- obj.setRotation(rotation);
316
- setTimeout(() => {
317
- obj.setRotation(rotation);
318
- }, 150); //TODO
319
- console.log(obj);
320
- /*
321
- this.add(obj);
322
-
323
- if (this.options.wireframe) {
324
- addWireframeToObject(this, 0xff0000, 2)
325
- }
326
- */
327
- return obj;
328
- });
329
- }
330
- resetState() {
331
- return __awaiter(this, void 0, void 0, function* () {
332
- this._previousState = this._state;
333
- this._state = {};
334
- yield this.recreateModels();
335
- });
336
- }
337
- setState(stringOrKeyOrState, value) {
338
- return __awaiter(this, void 0, void 0, function* () {
339
- this._setState(stringOrKeyOrState, value);
340
- yield this.recreateModels();
341
- });
342
- }
343
- _setState(stringOrKeyOrState, value) {
344
- this._previousState = this._state;
345
- if (typeof value === "undefined") { // a=b,c=d,... or state object
346
- if (typeof stringOrKeyOrState === "string") {
347
- if (stringOrKeyOrState === "")
348
- return;
349
- const split = stringOrKeyOrState.split(",");
350
- for (let s of split) {
351
- let [k, v] = s.split("=");
352
- this._setState(k, v);
353
- }
354
- }
355
- else if (typeof stringOrKeyOrState === "object") {
356
- for (let k in stringOrKeyOrState) {
357
- this._state[k] = stringOrKeyOrState[k];
358
- }
359
- }
360
- }
361
- else {
362
- this._state[stringOrKeyOrState] = value;
363
- }
364
- }
365
- /*
366
- public async setStateAt(index: number, string: string);
367
- public async setStateAt(index: number, state: BlockStateProperties);
368
- public async setStateAt(index: number, key: string, value: string);
369
- public async setStateAt(index: number, stringOrKeyOrState: string | BlockStateProperties, value?: string);
370
- public async setStateAt(index: number, stringOrKeyOrState: string | BlockStateProperties, value?: string) {
371
- this._setStateAt(index, stringOrKeyOrState, value);
372
- await this.recreateModels();
373
- }
374
-
375
- protected _setStateAt(index: number, stringOrKeyOrState: string | BlockStateProperties, value?: string): void {
376
- if (!this._instanceState[index]) this._instanceState[index] = {};
377
- if (typeof value === "undefined") { // a=b,c=d,... or state object
378
- if (typeof stringOrKeyOrState === "string") {
379
- if (stringOrKeyOrState === "") return;
380
- const split = stringOrKeyOrState.split(",");
381
- for (let s of split) {
382
- let [k, v] = s.split("=");
383
- this._setStateAt(index, k, v);
384
- }
385
- } else if (typeof stringOrKeyOrState === "object") {
386
- for (let k in stringOrKeyOrState) {
387
- this._instanceState[index][k] = stringOrKeyOrState[k];
388
- }
389
- }
390
- } else {
391
- this._instanceState[index][stringOrKeyOrState as string] = value;
392
- }
393
- }
394
-
395
- _getStateAt(index: number): BlockStateProperties {
396
- return this._instanceState[index];
397
- }
398
-
399
- */
400
- setPositionRotationScaleAt(index, position, rotation, scale) {
401
- super.setPositionRotationScaleAt(index, position, rotation, scale);
402
- }
403
- getMatrixAt(index, matrix = new Matrix4()) {
404
- if (!this.isInstanced)
405
- throw new MineRenderError("Object is not instanced");
406
- const child = this._models[0];
407
- if (child && isModelObject(child)) {
408
- child.getMatrixAt(index, matrix);
409
- }
410
- else if (child && isInstanceReference(child)) {
411
- child.getMatrix(matrix);
412
- }
413
- /*
414
- console.log(this.children)
415
- const child = this.children[0];
416
- if (child && isModelObject(child)) {
417
- if (!child.isInstanced) throw new MineRenderError("Object is not instanced");
418
- child.getMatrixAt(index, matrix);
419
- }
420
- return matrix;
421
- */
422
- // return super.getMatrixAt(0, matrix);
423
- return matrix;
424
- }
425
- setMatrixAt(index, matrix) {
426
- if (!this.isInstanced)
427
- throw new MineRenderError("Object is not instanced");
428
- // const child = this._models[0];
429
- for (let child of this._models) {
430
- if (child && isModelObject(child)) {
431
- child.setMatrixAt(index, matrix);
432
- }
433
- else if (child && isInstanceReference(child)) {
434
- child.setMatrix(matrix);
435
- }
436
- }
437
- /*
438
- console.log(this.children)
439
- for (let child of this.children) {
440
- if (isModelObject(child)) {
441
- if (!child.isInstanced) throw new MineRenderError("Object is not instanced");
442
- child.setMatrixAt(index, matrix);
443
- }
444
- }
445
- */
446
- }
447
- setPosition(position) {
448
- super.setPosition(position);
449
- for (let model of this._models) {
450
- model.setPosition(position);
451
- }
452
- }
453
- }
454
- BlockObject.DEFAULT_OPTIONS = merge({}, ModelObject.DEFAULT_OPTIONS, {
455
- applyDefaultState: true
456
- });
457
- export function isBlockObject(obj) {
458
- return obj.isBlockObject;
459
- }
460
- //# sourceMappingURL=BlockObject.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BlockObject.js","sourceRoot":"src/","sources":["model/block/scene/BlockObject.ts"],"names":[],"mappings":"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"}