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,33 +0,0 @@
1
- import { Block } from "../model/block/Block";
2
- import { Vector3 } from "three";
3
- import { Maybe } from "../util/util";
4
- import { BlockInfo } from "./BlockInfo";
5
- import { MineRenderScene } from "../renderer/MineRenderScene";
6
- import { TripleArray } from "../model/Model";
7
- export declare class Chunk {
8
- readonly scene: MineRenderScene;
9
- readonly x: number;
10
- readonly y: number;
11
- readonly z: number;
12
- private readonly _blocks;
13
- private readonly _anchor;
14
- constructor(scene: MineRenderScene, x: number, y: number, z: number);
15
- getBlockAt(x: number, y: number, z: number): Maybe<BlockInfo>;
16
- getBlockAt(pos: Vector3): Maybe<BlockInfo>;
17
- getBlockAt(pos: TripleArray): Maybe<BlockInfo>;
18
- /**
19
- * Set block at a _world_ position
20
- */
21
- setBlockAt(x: number, y: number, z: number, block: Maybe<Block>): Promise<Maybe<BlockInfo>>;
22
- setBlockAt(pos: Vector3, block: Maybe<Block>): Promise<Maybe<BlockInfo>>;
23
- setBlockAt(pos: TripleArray, block: Maybe<Block>): Promise<Maybe<BlockInfo>>;
24
- /**
25
- * Set block at a _chunk_ position (0-16)
26
- */
27
- setBlockInChunkAt(pos: Vector3, block?: Block, worldPos?: Vector3): Promise<Maybe<BlockInfo>>;
28
- clear(): Promise<void>;
29
- dispose(): Promise<void>;
30
- static chunkPosToBlockIndex(pos: Vector3): number;
31
- worldPosToChunkPos(pos: Vector3): Vector3;
32
- chunkPosToWorldPos(pos: Vector3): Vector3;
33
- }
@@ -1,132 +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.Chunk = void 0;
13
- const three_1 = require("three");
14
- const BlockStates_1 = require("../assets/BlockStates");
15
- const AssetKey_1 = require("../assets/AssetKey");
16
- const MineRenderWorld_1 = require("./MineRenderWorld");
17
- const Model_1 = require("../model/Model");
18
- const model_1 = require("../util/model");
19
- const log_1 = require("../util/log");
20
- const p = log_1.prefix("Chunk");
21
- class Chunk {
22
- constructor(scene, x, y, z) {
23
- this._blocks = [];
24
- this.scene = scene;
25
- this.x = x;
26
- this.y = y;
27
- this.z = z;
28
- //TODO: option to visualize chunks
29
- let anchor = new three_1.Object3D();
30
- this._anchor = anchor;
31
- scene.add(anchor);
32
- anchor.position.set((this.x * 256) + 128 - 8, (this.y * 256) + 128 - 8, (this.z * 256) + 128 - 8);
33
- model_1.addBox3WireframeToObject(new three_1.Box3(new three_1.Vector3(0, 0, 0), new three_1.Vector3(256, 256, 256)), anchor, 0xffff00, 4);
34
- }
35
- getBlockAt(posOrX, y, z) {
36
- if (typeof posOrX == "number") {
37
- return this.getBlockAt(new three_1.Vector3(posOrX, y, z));
38
- }
39
- if (Model_1.isTripleArray(posOrX)) {
40
- return this.getBlockAt(new three_1.Vector3(posOrX[0], posOrX[1], posOrX[2]));
41
- }
42
- const pos = this.worldPosToChunkPos(posOrX);
43
- const index = Chunk.chunkPosToBlockIndex(pos);
44
- return this._blocks[index];
45
- }
46
- setBlockAt(posOrX, yOrBlock, z, block) {
47
- return __awaiter(this, void 0, void 0, function* () {
48
- if (typeof posOrX == "number") {
49
- return this.setBlockAt(new three_1.Vector3(posOrX, yOrBlock, z), block);
50
- }
51
- if (Model_1.isTripleArray(posOrX)) {
52
- return this.setBlockAt(new three_1.Vector3(posOrX[0], posOrX[1], posOrX[2]), yOrBlock);
53
- }
54
- const worldPos = posOrX;
55
- const pos = this.worldPosToChunkPos(worldPos);
56
- block = yOrBlock;
57
- return this.setBlockInChunkAt(pos, block, worldPos);
58
- });
59
- }
60
- /**
61
- * Set block at a _chunk_ position (0-16)
62
- */
63
- setBlockInChunkAt(pos, block, worldPos) {
64
- return __awaiter(this, void 0, void 0, function* () {
65
- if (typeof worldPos === "undefined") {
66
- worldPos = this.chunkPosToWorldPos(pos);
67
- }
68
- const index = Chunk.chunkPosToBlockIndex(pos);
69
- const current = this._blocks[index];
70
- if (typeof current !== "undefined") {
71
- console.debug(p, "deleting existing block at", pos, worldPos, index);
72
- // current.object.setScale(new Vector3(0, 0, 0));//TODO
73
- current.object.removeFromScene();
74
- delete this._blocks[index];
75
- }
76
- if (typeof block === "undefined" || typeof block.type === "undefined" || block.type === "air")
77
- return undefined; // only delete block
78
- const blockState = yield BlockStates_1.BlockStates.get(AssetKey_1.AssetKey.parse("blockstates", block.type));
79
- if (blockState) {
80
- const blockObject = yield this.scene.addBlock(blockState, {
81
- mergeMeshes: true,
82
- instanceMeshes: true,
83
- wireframe: true,
84
- maxInstanceCount: 2000 //TODO: setting this to high kills FPS; increase on demand somehow?
85
- }); //TODO
86
- if (block.properties) {
87
- yield blockObject.setState(block.properties);
88
- }
89
- const scenePos = MineRenderWorld_1.MineRenderWorld.worldToScenePosition(worldPos);
90
- blockObject.setPosition(scenePos);
91
- this._blocks[index] = {
92
- block: block,
93
- object: blockObject
94
- };
95
- return this._blocks[index];
96
- }
97
- return undefined;
98
- });
99
- }
100
- clear() {
101
- return __awaiter(this, void 0, void 0, function* () {
102
- let promises = [];
103
- let pos = new three_1.Vector3();
104
- for (let x = 0; x < 16; x++) {
105
- for (let z = 0; z < 16; z++) {
106
- for (let y = 0; y < 16; y++) {
107
- promises.push(this.setBlockInChunkAt(pos.set(x, y, z), undefined));
108
- }
109
- }
110
- }
111
- return Promise.all(promises).then(ignored => {
112
- });
113
- });
114
- }
115
- dispose() {
116
- return __awaiter(this, void 0, void 0, function* () {
117
- yield this.clear();
118
- this.scene.remove(this._anchor);
119
- });
120
- }
121
- static chunkPosToBlockIndex(pos) {
122
- return (pos.y * 16 * 16) + (pos.z * 16) + pos.x;
123
- }
124
- worldPosToChunkPos(pos) {
125
- return new three_1.Vector3(pos.x - (this.x * 16), pos.y - (this.y * 16), pos.z - (this.z * 16));
126
- }
127
- chunkPosToWorldPos(pos) {
128
- return new three_1.Vector3((this.x * 16) + pos.x, (this.y * 16) + pos.y, (this.z * 16) + pos.z);
129
- }
130
- }
131
- exports.Chunk = Chunk;
132
- //# sourceMappingURL=Chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Chunk.js","sourceRoot":"src/","sources":["world/Chunk.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- import { MineRenderScene } from "../renderer/MineRenderScene";
2
- import { Block } from "../model/block/Block";
3
- import { Vector3 } from "three";
4
- import { TripleArray } from "../model/Model";
5
- import { Maybe } from "../util/util";
6
- import { Chunk } from "./Chunk";
7
- import { BlockInfo } from "./BlockInfo";
8
- import { MultiBlockStructure } from "../model/multiblock/MultiBlockStructure";
9
- import { BatchedExecutor } from "../util/BatchedExecutor";
10
- export declare class MineRenderWorld {
11
- readonly scene: MineRenderScene;
12
- private _size;
13
- private _blockSize;
14
- private readonly _chunks;
15
- constructor(scene: MineRenderScene);
16
- getBlockAt(x: number, y: number, z: number): Maybe<BlockInfo>;
17
- getBlockAt(pos: Vector3): Maybe<BlockInfo>;
18
- getBlockAt(pos: TripleArray): Maybe<BlockInfo>;
19
- setBlockAt(x: number, y: number, z: number, block: Block): Promise<Maybe<BlockInfo>>;
20
- setBlockAt(pos: Vector3, block: Block): Promise<Maybe<BlockInfo>>;
21
- setBlockAt(pos: TripleArray, block: Block): Promise<Maybe<BlockInfo>>;
22
- placeMultiBlock(multiblock: MultiBlockStructure, useBatches?: boolean, executor?: BatchedExecutor): Promise<void>;
23
- clear(): Promise<void>;
24
- private getOrCreateChunkAt;
25
- getChunkAt(pos: Vector3): Maybe<Chunk>;
26
- static worldToScenePosition(pos: Vector3): Vector3;
27
- static sceneToWorldPosition(pos: Vector3): Vector3;
28
- worldPosToChunkIndex(pos: Vector3): number;
29
- worldPosToChunkKey(pos: Vector3): string;
30
- validatePosBounds(pos: Vector3): void;
31
- }
@@ -1,133 +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.MineRenderWorld = void 0;
13
- const three_1 = require("three");
14
- const Model_1 = require("../model/Model");
15
- const Chunk_1 = require("./Chunk");
16
- const BatchedExecutor_1 = require("../util/BatchedExecutor");
17
- const AssetKey_1 = require("../assets/AssetKey");
18
- const BlockStates_1 = require("../assets/BlockStates");
19
- //TODO: maybe make this an Object3D to add children
20
- class MineRenderWorld {
21
- constructor(scene) {
22
- this._size = 4; //TODO: expandable
23
- this._blockSize = this._size * 16;
24
- this._chunks = new Map();
25
- this.scene = scene;
26
- }
27
- getBlockAt(posOrX, y, z) {
28
- if (typeof posOrX == "number") {
29
- return this.getBlockAt(new three_1.Vector3(posOrX, y, z));
30
- }
31
- if (Model_1.isTripleArray(posOrX)) {
32
- return this.getBlockAt(new three_1.Vector3(posOrX[0], posOrX[1], posOrX[2]));
33
- }
34
- const chunk = this.getChunkAt(posOrX);
35
- if (typeof chunk === "undefined") {
36
- return undefined;
37
- }
38
- this.validatePosBounds(posOrX);
39
- return chunk.getBlockAt(posOrX);
40
- }
41
- setBlockAt(posOrX, yOrBlock, z, block) {
42
- return __awaiter(this, void 0, void 0, function* () {
43
- if (typeof posOrX == "number") {
44
- return this.setBlockAt(new three_1.Vector3(posOrX, yOrBlock, z), block);
45
- }
46
- if (Model_1.isTripleArray(posOrX)) {
47
- return this.setBlockAt(new three_1.Vector3(posOrX[0], posOrX[1], posOrX[2]), yOrBlock);
48
- }
49
- this.validatePosBounds(posOrX);
50
- const chunk = this.getOrCreateChunkAt(posOrX);
51
- return chunk.setBlockAt(posOrX, yOrBlock);
52
- });
53
- }
54
- placeMultiBlock(multiblock, useBatches = true, executor = new BatchedExecutor_1.BatchedExecutor()) {
55
- return __awaiter(this, void 0, void 0, function* () {
56
- // preload blockstates
57
- const keys = new Set(multiblock.blocks.map(block => AssetKey_1.AssetKey.parse("blockstates", block.type)));
58
- yield BlockStates_1.BlockStates.getAll(keys);
59
- const place = (block) => __awaiter(this, void 0, void 0, function* () {
60
- if (useBatches && typeof executor !== "undefined") {
61
- yield new Promise((resolve, reject) => {
62
- executor.submit(() => {
63
- this.setBlockAt(block.position, block).then(resolve).catch(reject);
64
- });
65
- });
66
- }
67
- else {
68
- yield this.setBlockAt(block.position, block);
69
- }
70
- });
71
- for (let block of multiblock.blocks) {
72
- yield place(block);
73
- }
74
- });
75
- }
76
- clear() {
77
- return __awaiter(this, void 0, void 0, function* () {
78
- console.log("CHUNKS", this._chunks);
79
- for (let chunk of this._chunks.values()) {
80
- console.log("dispose chunk", chunk);
81
- yield (chunk === null || chunk === void 0 ? void 0 : chunk.dispose());
82
- }
83
- this._chunks.clear();
84
- });
85
- }
86
- getOrCreateChunkAt(pos) {
87
- const key = this.worldPosToChunkKey(pos);
88
- let chunk = this._chunks.get(key);
89
- if (typeof chunk === "undefined") {
90
- chunk = new Chunk_1.Chunk(this.scene, Math.floor(pos.x / 16), Math.floor(pos.y / 16), Math.floor(pos.z / 16));
91
- this._chunks.set(key, chunk);
92
- }
93
- return chunk;
94
- }
95
- getChunkAt(pos) {
96
- const index = this.worldPosToChunkIndex(pos);
97
- return this._chunks[index];
98
- }
99
- static worldToScenePosition(pos) {
100
- return new three_1.Vector3(pos.x * 16.0, pos.y * 16.0, pos.z * 16.0);
101
- }
102
- static sceneToWorldPosition(pos) {
103
- return new three_1.Vector3(pos.x / 16.0, pos.y / 16.0, pos.z / 16.0);
104
- }
105
- worldPosToChunkIndex(pos) {
106
- const chunkX = Math.floor(pos.x / 16);
107
- const chunkY = Math.floor(pos.y / 16);
108
- const chunkZ = Math.floor(pos.z / 16);
109
- return (chunkZ * this._size * this._size) + (chunkY * this._size) + chunkX;
110
- }
111
- worldPosToChunkKey(pos) {
112
- const chunkX = Math.floor(pos.x / 16);
113
- const chunkY = Math.floor(pos.y / 16);
114
- const chunkZ = Math.floor(pos.z / 16);
115
- return `${chunkX}_${chunkY}_${chunkZ}`;
116
- }
117
- validatePosBounds(pos) {
118
- if (pos.x < 0)
119
- throw new Error("x<0");
120
- if (pos.y < 0)
121
- throw new Error("y<0");
122
- if (pos.z < 0)
123
- throw new Error("z<0");
124
- if (pos.x > this._blockSize)
125
- throw new Error("x>" + this._blockSize);
126
- if (pos.y > this._blockSize)
127
- throw new Error("y>" + this._blockSize);
128
- if (pos.z > this._blockSize)
129
- throw new Error("z>" + this._blockSize);
130
- }
131
- }
132
- exports.MineRenderWorld = MineRenderWorld;
133
- //# sourceMappingURL=MineRenderWorld.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MineRenderWorld.js","sourceRoot":"src/","sources":["world/MineRenderWorld.ts"],"names":[],"mappings":"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"}