@divinevoxel/vlox 0.0.73 → 0.0.75

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 (688) hide show
  1. package/Cache/Cache.types.d.ts +1 -1
  2. package/Contexts/Base/Remote/InitDataSync.js +7 -3
  3. package/Contexts/Base/Remote/InitWorldDataSync.d.ts +2 -1
  4. package/Contexts/Base/Remote/InitWorldDataSync.js +14 -3
  5. package/Contexts/Generator/DivineVoxelEngineGenerator.d.ts +9 -0
  6. package/Contexts/Generator/DivineVoxelEngineGenerator.js +14 -0
  7. package/Contexts/{Constructor/ConstrcutorTheads.d.ts → Generator/GeneratorThreads.d.ts} +2 -2
  8. package/Contexts/{Constructor/ConstrcutorTheads.js → Generator/GeneratorThreads.js} +2 -2
  9. package/Contexts/Generator/index.d.ts +1 -0
  10. package/Contexts/Generator/index.js +1 -0
  11. package/Contexts/Mesher/DivineVoxelEngineMesher.d.ts +9 -0
  12. package/Contexts/Mesher/DivineVoxelEngineMesher.js +14 -0
  13. package/Contexts/Mesher/MesherTheads.d.ts +7 -0
  14. package/Contexts/Mesher/MesherTheads.js +14 -0
  15. package/Contexts/Mesher/index.d.ts +1 -0
  16. package/Contexts/Mesher/index.js +1 -0
  17. package/Contexts/Nexus/NexusTheads.js +1 -1
  18. package/Contexts/Render/DVERenderThreads.d.ts +2 -1
  19. package/Contexts/Render/DVERenderThreads.js +4 -2
  20. package/Contexts/Render/DivineVoxelEngineRender.d.ts +12 -1
  21. package/Contexts/Render/DivineVoxelEngineRender.js +9 -4
  22. package/Contexts/World/DivineVoxelEngineWorld.d.ts +10 -0
  23. package/Contexts/World/WorldThreads.d.ts +2 -1
  24. package/Contexts/World/WorldThreads.js +4 -2
  25. package/Init/StartGenerator.d.ts +2 -0
  26. package/Init/StartGenerator.js +45 -0
  27. package/Init/StartMesher.d.ts +2 -0
  28. package/Init/StartMesher.js +41 -0
  29. package/Init/StartNexus.js +4 -2
  30. package/Init/StartRenderer.d.ts +4 -1
  31. package/Init/StartRenderer.js +59 -14
  32. package/Init/StartWorld.js +2 -1
  33. package/LICENSE.md +2 -1
  34. package/Math/CardinalNeighbors.d.ts +43 -3
  35. package/Math/CardinalNeighbors.js +54 -8
  36. package/Math/Indexing.d.ts +1 -0
  37. package/Math/Location.d.ts +10 -0
  38. package/Math/UtilFunctions.d.ts +4 -0
  39. package/Math/UtilFunctions.js +52 -0
  40. package/Math/index.d.ts +1 -6
  41. package/Math/index.js +1 -0
  42. package/Mesher/Functions/Base/MeshSectionBase.d.ts +5 -0
  43. package/Mesher/Functions/Base/MeshSectionBase.js +105 -0
  44. package/Mesher/Functions/CompactVoxelSectionMesh.d.ts +4 -0
  45. package/Mesher/Functions/CompactVoxelSectionMesh.js +106 -0
  46. package/Mesher/Functions/MeshSection.d.ts +1 -1
  47. package/Mesher/Functions/MeshSection.js +3 -114
  48. package/Mesher/Functions/MeshSectionSnapShot.d.ts +3 -0
  49. package/Mesher/Functions/MeshSectionSnapShot.js +14 -0
  50. package/Mesher/Functions/MeshTexture.js +8 -4
  51. package/Mesher/Functions/MeshVoxel.js +10 -4
  52. package/Mesher/Geomtry/CompactedSectionVoxelMesh.d.ts +26 -0
  53. package/Mesher/Geomtry/CompactedSectionVoxelMesh.js +149 -0
  54. package/Mesher/Geomtry/Functions/GetBounds.d.ts +2 -0
  55. package/Mesher/{Models/Common/BoundsFunctions.js → Geomtry/Functions/GetBounds.js} +13 -13
  56. package/Mesher/Geomtry/Geometry.types.d.ts +14 -0
  57. package/Mesher/Geomtry/Geometry.types.js +11 -0
  58. package/Mesher/Geomtry/Primitives/Quad.d.ts +7 -15
  59. package/Mesher/Geomtry/Primitives/Quad.js +36 -91
  60. package/Mesher/Geomtry/Primitives/QuadVertexData.d.ts +4 -14
  61. package/Mesher/Geomtry/Primitives/QuadVertexData.js +17 -57
  62. package/Mesher/Geomtry/Primitives/Triangle.d.ts +65 -0
  63. package/Mesher/Geomtry/Primitives/Triangle.js +148 -0
  64. package/Mesher/Geomtry/Primitives/TriangleVertexData.d.ts +58 -0
  65. package/Mesher/Geomtry/Primitives/TriangleVertexData.js +263 -0
  66. package/Mesher/Geomtry/Primitives/index.d.ts +2 -0
  67. package/Mesher/Geomtry/Primitives/index.js +2 -0
  68. package/Mesher/Geomtry/Shapes/Box.d.ts +20 -0
  69. package/Mesher/Geomtry/Shapes/Box.js +69 -0
  70. package/Mesher/Geomtry/Transform/TransformBox.d.ts +3 -0
  71. package/{Models/Shared/Transform.js → Mesher/Geomtry/Transform/TransformBox.js} +9 -124
  72. package/Mesher/Geomtry/Transform/TransformQuad.d.ts +3 -0
  73. package/Mesher/Geomtry/Transform/TransformQuad.js +113 -0
  74. package/Mesher/Geomtry/Transform/TransformTriangle.d.ts +3 -0
  75. package/Mesher/Geomtry/Transform/TransformTriangle.js +112 -0
  76. package/Mesher/Geomtry/VoxelGeometryBuilder.d.ts +3 -4
  77. package/Mesher/Geomtry/VoxelGeometryBuilder.js +140 -203
  78. package/Mesher/Geomtry/VoxelMesh.js +2 -2
  79. package/Mesher/Geomtry/VoxelMeshBVHBuilder.d.ts +8 -70
  80. package/Mesher/Geomtry/VoxelMeshBVHBuilder.js +18 -183
  81. package/Mesher/Geomtry/VoxelMeshBVHStructCursor.d.ts +22 -0
  82. package/Mesher/Geomtry/VoxelMeshBVHStructCursor.js +78 -0
  83. package/Mesher/Geomtry/VoxelMeshBuffers.js +2 -2
  84. package/Mesher/Geomtry/VoxelMeshVertexStructCursor.d.ts +9 -3
  85. package/Mesher/Geomtry/VoxelMeshVertexStructCursor.js +26 -3
  86. package/Mesher/Geomtry/VoxelShaderData.d.ts +4 -1
  87. package/Mesher/Geomtry/VoxelShaderData.js +25 -10
  88. package/Mesher/InitMesher.d.ts +1 -1
  89. package/Mesher/InitMesher.js +6 -0
  90. package/Mesher/InitTask.js +18 -3
  91. package/Mesher/Models/Common/Calc/CalcConstants.d.ts +1 -5
  92. package/Mesher/Models/Common/Calc/CalcConstants.js +2 -76
  93. package/Mesher/Models/Common/Faces/CullRulledFace.d.ts +2 -0
  94. package/Mesher/Models/Common/Faces/CullRulledFace.js +60 -0
  95. package/Mesher/Models/Common/Faces/ShadeRulelessFace.d.ts +4 -0
  96. package/Mesher/Models/Common/Faces/ShadeRulelessFace.js +12 -0
  97. package/Mesher/Models/Common/Faces/ShadeRulledFace.d.ts +4 -0
  98. package/Mesher/Models/Common/Faces/ShadeRulledFace.js +58 -0
  99. package/Mesher/Models/Common/GetTexture.d.ts +6 -0
  100. package/Mesher/Models/Common/GetTexture.js +12 -0
  101. package/Mesher/Models/Nodes/Custom/Liquid/FlowGradient.js +1 -1
  102. package/Mesher/Models/Nodes/Custom/Liquid/LiquidGeomtryNode.d.ts +2 -3
  103. package/Mesher/Models/Nodes/Custom/Liquid/LiquidGeomtryNode.js +125 -49
  104. package/Mesher/Models/Nodes/Default/QuadVoxelGeometryNode.d.ts +13 -0
  105. package/Mesher/Models/Nodes/Default/QuadVoxelGeometryNode.js +55 -0
  106. package/Mesher/Models/Nodes/Default/TriangleVoxelGeometryNode.d.ts +13 -0
  107. package/Mesher/Models/Nodes/Default/TriangleVoxelGeometryNode.js +52 -0
  108. package/Mesher/Models/Nodes/GeometryNode.d.ts +2 -8
  109. package/Mesher/Models/Nodes/GeometryNode.js +1 -7
  110. package/Mesher/Models/Nodes/Types/GeomtryNode.types.d.ts +7 -0
  111. package/Mesher/Models/Nodes/Types/QuadVoxelGometryNodeTypes.d.ts +29 -0
  112. package/{Models/Input/QuadVoxelGometryInputs.js → Mesher/Models/Nodes/Types/QuadVoxelGometryNodeTypes.js} +4 -8
  113. package/Mesher/Models/Nodes/Types/TriangleVoxelGometryNodeTypes.d.ts +28 -0
  114. package/Mesher/Models/Nodes/Types/TriangleVoxelGometryNodeTypes.js +24 -0
  115. package/Mesher/Models/Nodes/VoxelGeometryConstructor.d.ts +4 -8
  116. package/Mesher/Models/Nodes/VoxelGeometryConstructor.js +16 -52
  117. package/Mesher/Models/Procedures/Default/ConsistentRotationTextureProcedure.d.ts +25 -0
  118. package/Mesher/Models/Procedures/Default/ConsistentRotationTextureProcedure.js +44 -0
  119. package/Mesher/Models/Procedures/Default/OutlinedTextureProcedure.d.ts +28 -0
  120. package/Mesher/Models/Procedures/Default/OutlinedTextureProcedure.js +162 -0
  121. package/Mesher/Models/Procedures/TextureProcedure.d.ts +16 -0
  122. package/Mesher/Models/Procedures/TextureProcedure.js +2 -0
  123. package/Mesher/Models/Procedures/TextureProcedureRegister.d.ts +6 -0
  124. package/Mesher/Models/Procedures/TextureProcedureRegister.js +16 -0
  125. package/Mesher/Models/VoxelConstructor.d.ts +2 -6
  126. package/Mesher/Models/VoxelConstructor.js +5 -15
  127. package/Mesher/Models/VoxelGeometryBuilderCacheSpace.d.ts +2 -2
  128. package/Mesher/Models/VoxelGeometryBuilderCacheSpace.js +10 -11
  129. package/Mesher/Models/VoxelModelBuilder.d.ts +0 -1
  130. package/Mesher/Models/VoxelModelBuilder.js +2 -10
  131. package/Mesher/Models/VoxelModelConstructorRegister.d.ts +8 -2
  132. package/Mesher/Models/VoxelModelConstructorRegister.js +6 -8
  133. package/Mesher/Types/Mesher.types.d.ts +1 -0
  134. package/Renderer/Classes/DVESectionMeshes.d.ts +2 -3
  135. package/Renderer/Classes/SectionMesh.d.ts +2 -3
  136. package/Renderer/Classes/SectionMesh.js +13 -10
  137. package/Renderer/Classes/SectorMesh.d.ts +5 -5
  138. package/Renderer/Classes/SectorMesh.js +17 -6
  139. package/Renderer/InitTasks.d.ts +1 -2
  140. package/Renderer/InitTasks.js +5 -19
  141. package/Renderer/MeshManager.d.ts +7 -2
  142. package/Renderer/MeshManager.js +34 -36
  143. package/Renderer/MeshRegister.d.ts +10 -8
  144. package/Renderer/MeshRegister.js +36 -45
  145. package/Settings/EngineSettings.d.ts +1 -0
  146. package/Settings/EngineSettings.js +9 -3
  147. package/Settings/EngineSettings.types.d.ts +14 -22
  148. package/Settings/EngineSettings.types.js +11 -15
  149. package/Stats/EngineStats.d.ts +19 -0
  150. package/Stats/EngineStats.js +27 -0
  151. package/Tasks/Paint/Common.d.ts +7 -0
  152. package/Tasks/Paint/Common.js +200 -0
  153. package/Tasks/Paint/Erase/EraseVoxel.d.ts +3 -0
  154. package/Tasks/Paint/Erase/EraseVoxel.js +31 -0
  155. package/Tasks/Paint/Erase/EraseVoxelPath.d.ts +4 -0
  156. package/Tasks/Paint/Erase/EraseVoxelPath.js +80 -0
  157. package/Tasks/Paint/Erase/EraseVoxelTemplate.d.ts +4 -0
  158. package/Tasks/Paint/Erase/EraseVoxelTemplate.js +34 -0
  159. package/Tasks/Paint/InitTasks.d.ts +1 -0
  160. package/Tasks/Paint/InitTasks.js +16 -0
  161. package/Tasks/Paint/Paint/PaintVoxel.d.ts +4 -0
  162. package/Tasks/Paint/Paint/PaintVoxel.js +29 -0
  163. package/Tasks/Paint/Paint/PaintVoxelPath.d.ts +4 -0
  164. package/Tasks/Paint/Paint/PaintVoxelPath.js +78 -0
  165. package/Tasks/Paint/Paint/PaintVoxelTemplate.d.ts +4 -0
  166. package/Tasks/Paint/Paint/PaintVoxelTemplate.js +36 -0
  167. package/Tasks/Propagation/Flow/FlowManager.d.ts +4 -4
  168. package/Tasks/Propagation/Flow/FlowRemove.d.ts +2 -2
  169. package/Tasks/Propagation/Flow/FlowUpdate.d.ts +2 -2
  170. package/Tasks/Propagation/Flow/FlowUpdate.js +1 -1
  171. package/Tasks/Propagation/Flow/WorldFlow.d.ts +2 -2
  172. package/Tasks/Propagation/Flow/WorldFlow.js +2 -2
  173. package/Tasks/Propagation/Illumanation/CommonFunctions.d.ts +6 -6
  174. package/Tasks/Propagation/Illumanation/CommonFunctions.js +6 -7
  175. package/Tasks/Propagation/Illumanation/RGBUpdate.d.ts +3 -3
  176. package/Tasks/Propagation/Illumanation/RGBUpdate.js +9 -9
  177. package/Tasks/Propagation/Illumanation/SunUpdate.d.ts +3 -3
  178. package/Tasks/Propagation/Illumanation/SunUpdate.js +8 -7
  179. package/Tasks/Propagation/Illumanation/WorldRGB.d.ts +2 -2
  180. package/Tasks/Propagation/Illumanation/WorldSun.d.ts +2 -2
  181. package/Tasks/Propagation/Illumanation/WorldSun.js +19 -24
  182. package/Tasks/Propagation/InitTasks.js +17 -29
  183. package/Tasks/Propagation/Power/PowerUpdate.d.ts +3 -0
  184. package/Tasks/Propagation/Power/PowerUpdate.js +80 -0
  185. package/Tasks/Tasks.types.d.ts +26 -10
  186. package/Tasks/TasksIds.d.ts +13 -19
  187. package/Tasks/TasksIds.js +13 -19
  188. package/Tasks/{Update/UpdateTask.d.ts → VoxelUpdateTask.d.ts} +21 -12
  189. package/Tasks/{Update/UpdateTask.js → VoxelUpdateTask.js} +72 -43
  190. package/Tasks/WorldGeneration/InitTasks.d.ts +4 -1
  191. package/Tasks/WorldGeneration/InitTasks.js +6 -3
  192. package/Tasks/WorldGeneration/WorldGen.types.d.ts +2 -3
  193. package/Tasks/WorldGeneration/WorldGenBrush.d.ts +3 -3
  194. package/Tasks/WorldGeneration/WorldGenBrush.js +8 -9
  195. package/Tasks/WorldGeneration/WorldGenRegister.d.ts +4 -2
  196. package/Tasks/WorldGeneration/WorldGenRegister.js +13 -3
  197. package/Tasks/WorldGeneration/WorldGeneration.d.ts +2 -2
  198. package/Tasks/WorldGeneration/WorldGeneration.js +22 -3
  199. package/Templates/Archive/ArchivedVoxelTemplate.d.ts +37 -0
  200. package/Templates/Archive/ArchivedVoxelTemplate.js +124 -0
  201. package/Templates/Archive/ArchivedVoxelTemplate.types.d.ts +45 -0
  202. package/Templates/Archive/ArchivedVoxelTemplate.types.js +1 -0
  203. package/Templates/Archive/Functions/CreateArchivedTemplate.d.ts +11 -0
  204. package/Templates/Archive/Functions/CreateArchivedTemplate.js +184 -0
  205. package/Templates/Archive/Functions/ExportArchiedTemplateJSON.d.ts +2 -0
  206. package/Templates/Archive/Functions/ExportArchiedTemplateJSON.js +44 -0
  207. package/Templates/Archive/Functions/ImportArchivedTemplateJSON.d.ts +2 -0
  208. package/Templates/Archive/Functions/ImportArchivedTemplateJSON.js +37 -0
  209. package/Templates/Cursor/TemplateCursor.d.ts +5 -3
  210. package/Templates/Cursor/TemplateCursor.js +8 -4
  211. package/Templates/Cursor/TemplateProxy.d.ts +10 -0
  212. package/Templates/Cursor/TemplateProxy.js +22 -0
  213. package/Templates/Cursor/TemplateVoxelCursor.d.ts +5 -7
  214. package/Templates/Cursor/TemplateVoxelCursor.js +7 -13
  215. package/Templates/Full/FullVoxelTemplate.d.ts +27 -0
  216. package/Templates/Full/FullVoxelTemplate.js +108 -0
  217. package/Templates/Full/FullVoxelTemplate.types.d.ts +5 -0
  218. package/Templates/Full/FullVoxelTemplate.types.js +1 -0
  219. package/Templates/Full/Functions/CreateFullTemplate.d.ts +3 -0
  220. package/Templates/Full/Functions/CreateFullTemplate.js +27 -0
  221. package/Templates/Functions/FlipTemplate.d.ts +2 -2
  222. package/Templates/Functions/FlipTemplate.js +1 -9
  223. package/Templates/Functions/RotateTemplate.d.ts +2 -2
  224. package/Templates/Functions/RotateTemplate.js +2 -10
  225. package/Templates/Functions/index.d.ts +1 -1
  226. package/Templates/Functions/index.js +1 -1
  227. package/Templates/Path/VoxelPath.d.ts +34 -0
  228. package/Templates/Path/VoxelPath.js +127 -0
  229. package/Templates/Path/VoxelPath.types.d.ts +10 -0
  230. package/Templates/Path/VoxelPath.types.js +1 -0
  231. package/Templates/Selection/VoxelBFSSelection.d.ts +20 -0
  232. package/Templates/Selection/VoxelBFSSelection.js +130 -0
  233. package/Templates/Selection/VoxelBoxSelection.d.ts +14 -0
  234. package/Templates/Selection/VoxelBoxSelection.js +105 -0
  235. package/Templates/Selection/VoxelSelecton.d.ts +6 -0
  236. package/Templates/Selection/VoxelSelecton.js +1 -0
  237. package/Templates/Selection/VoxelSurfaceSelection.d.ts +27 -0
  238. package/Templates/Selection/VoxelSurfaceSelection.js +206 -0
  239. package/Templates/Selection/VoxelTemplateSelection.d.ts +10 -0
  240. package/Templates/Selection/VoxelTemplateSelection.js +26 -0
  241. package/Templates/Shapes/BasicVoxelShapeTemplate.d.ts +35 -0
  242. package/Templates/Shapes/BasicVoxelShapeTemplate.js +126 -0
  243. package/Templates/Shapes/BoxVoxelTemplate.d.ts +22 -0
  244. package/Templates/Shapes/BoxVoxelTemplate.js +75 -0
  245. package/Templates/Shapes/ConeVoxelTemplate.d.ts +22 -0
  246. package/Templates/Shapes/ConeVoxelTemplate.js +69 -0
  247. package/Templates/Shapes/CylinderVoxelTemplate.d.ts +22 -0
  248. package/Templates/Shapes/CylinderVoxelTemplate.js +69 -0
  249. package/Templates/Shapes/OctahedronVoxelTemplate.d.ts +22 -0
  250. package/Templates/Shapes/OctahedronVoxelTemplate.js +69 -0
  251. package/Templates/Shapes/PyramidVoxelTemplate.d.ts +30 -0
  252. package/Templates/Shapes/PyramidVoxelTemplate.js +140 -0
  253. package/Templates/Shapes/SphereVoxelTemplate.d.ts +24 -0
  254. package/Templates/Shapes/SphereVoxelTemplate.js +97 -0
  255. package/Templates/Shapes/TorusVoxelTemplate.d.ts +22 -0
  256. package/Templates/Shapes/TorusVoxelTemplate.js +69 -0
  257. package/Templates/Shapes/VoxelShapeTemplate.types.d.ts +25 -0
  258. package/Templates/Shapes/VoxelShapeTemplate.types.js +1 -0
  259. package/Templates/VoxelTempateRegister.d.ts +6 -0
  260. package/Templates/VoxelTempateRegister.js +30 -0
  261. package/Templates/VoxelTemplates.types.d.ts +23 -26
  262. package/Templates/index.d.ts +1 -1
  263. package/Templates/index.js +1 -1
  264. package/Textures/Classes/CompiledTexture.d.ts +3 -0
  265. package/Textures/Classes/CompiledTexture.js +3 -0
  266. package/Textures/Classes/CompiledTextureAnimation.d.ts +1 -1
  267. package/Textures/Classes/CompiledTextureAnimation.js +8 -2
  268. package/Textures/Functions/BuildTextureData.d.ts +2 -1
  269. package/Textures/Functions/BuildTextureData.js +86 -17
  270. package/Textures/Texture.types.d.ts +5 -1
  271. package/Textures/TextureManager.d.ts +2 -1
  272. package/Textures/TextureManager.js +5 -2
  273. package/Tools/Brush/AdvancedBrushTool.d.ts +1 -5
  274. package/Tools/Brush/AdvancedBrushTool.js +3 -31
  275. package/Tools/Brush/Brush.d.ts +10 -4
  276. package/Tools/Brush/Brush.js +62 -37
  277. package/Tools/Tasks/TasksTool.d.ts +49 -19
  278. package/Tools/Tasks/TasksTool.js +87 -21
  279. package/Util/Binary/BinaryArrays.d.ts +2 -0
  280. package/Util/Binary/BinaryArrays.js +15 -0
  281. package/Util/Binary/BinaryFunctions.d.ts +3 -0
  282. package/Util/Binary/BinaryFunctions.js +18 -0
  283. package/Util/BinaryBuffer/BinaryBuffer.d.ts +30 -0
  284. package/Util/BinaryBuffer/BinaryBuffer.js +78 -0
  285. package/Util/BinaryBuffer/BinaryBuffer.types.d.ts +37 -0
  286. package/Util/BinaryBuffer/BinaryBuffer.types.js +28 -0
  287. package/Util/BinaryBuffer/Functions/BinaryBufferConvert.d.ts +5 -0
  288. package/Util/BinaryBuffer/Functions/BinaryBufferConvert.js +60 -0
  289. package/Util/BinaryBuffer/Functions/BinaryBufferJSON.d.ts +3 -0
  290. package/Util/BinaryBuffer/Functions/BinaryBufferJSON.js +64 -0
  291. package/Util/BinaryBuffer/Functions/BinaryBufferRead.d.ts +3 -0
  292. package/Util/BinaryBuffer/Functions/BinaryBufferRead.js +26 -0
  293. package/Util/BinaryBuffer/Functions/BinaryBufferToTypedArray.d.ts +2 -0
  294. package/Util/BinaryBuffer/Functions/BinaryBufferToTypedArray.js +43 -0
  295. package/Util/BinaryBuffer/index.d.ts +2 -0
  296. package/Util/BinaryBuffer/index.js +2 -0
  297. package/Util/FlatBinaryTreeIndex.d.ts +46 -0
  298. package/Util/FlatBinaryTreeIndex.js +104 -0
  299. package/Util/LocationData.d.ts +3 -0
  300. package/Util/LocationData.js +16 -0
  301. package/Util/PriorityQueue.d.ts +18 -0
  302. package/Util/PriorityQueue.js +62 -0
  303. package/Util/TickInterval.d.ts +16 -0
  304. package/Util/TickInterval.js +49 -0
  305. package/Util/TypedEventTarget.d.ts +1 -0
  306. package/Util/TypedEventTarget.js +3 -0
  307. package/Util/Util.types.d.ts +4 -0
  308. package/Util/WorkItemProgress.d.ts +23 -0
  309. package/Util/WorkItemProgress.js +52 -0
  310. package/Voxels/Archive/VoxelArchive.types.d.ts +43 -0
  311. package/Voxels/Archive/VoxelArchive.types.js +6 -0
  312. package/Voxels/Archive/VoxelPaletteArchiveReader.d.ts +11 -0
  313. package/Voxels/Archive/VoxelPaletteArchiveReader.js +73 -0
  314. package/Voxels/Archive/VoxelPaletteArechive.d.ts +15 -0
  315. package/Voxels/Archive/VoxelPaletteArechive.js +81 -0
  316. package/Voxels/Cursor/DataCursor.interface.d.ts +1 -0
  317. package/Voxels/Cursor/VoxelCursor.d.ts +6 -7
  318. package/Voxels/Cursor/VoxelCursor.interface.d.ts +28 -24
  319. package/Voxels/Cursor/VoxelCursor.interface.js +114 -75
  320. package/Voxels/Cursor/VoxelCursor.js +22 -12
  321. package/Voxels/Cursor/VoxelLightData.d.ts +2 -0
  322. package/Voxels/Cursor/VoxelLightData.js +3 -1
  323. package/Voxels/Data/VoxelPalettesRegister.d.ts +11 -1
  324. package/Voxels/Data/VoxelPalettesRegister.js +17 -1
  325. package/Voxels/Data/VoxelPropertiesRegister.d.ts +4 -0
  326. package/Voxels/Data/VoxelPropertiesRegister.js +3 -0
  327. package/Voxels/Data/VoxelTag.types.d.ts +23 -2
  328. package/Voxels/Data/VoxelTag.types.js +9 -1
  329. package/Voxels/Data/VoxelTagsRegister.js +8 -0
  330. package/Voxels/Functions/BuildPaletteData.d.ts +6 -0
  331. package/Voxels/Functions/BuildPaletteData.js +87 -0
  332. package/Voxels/Functions/BuildStateData.d.ts +10 -12
  333. package/Voxels/Functions/BuildStateData.js +55 -109
  334. package/Voxels/Functions/{BuildTagAndPaletteData.d.ts → BuildTagData.d.ts} +2 -2
  335. package/Voxels/Functions/{BuildTagAndPaletteData.js → BuildTagData.js} +28 -2
  336. package/Voxels/Indexes/VoxelIndex.d.ts +3 -3
  337. package/Voxels/Indexes/VoxelIndex.js +20 -21
  338. package/Voxels/InitVoxelData.d.ts +1 -1
  339. package/Voxels/InitVoxelData.js +50 -48
  340. package/Voxels/Interaction/Functions/PickVoxel.d.ts +9 -0
  341. package/Voxels/Interaction/Functions/PickVoxel.js +95 -0
  342. package/Voxels/Interaction/Functions/PickVoxelWorld.d.ts +8 -0
  343. package/Voxels/Interaction/Functions/PickVoxelWorld.js +66 -0
  344. package/Voxels/Interaction/Placing/VoxelPlacingStrategy.d.ts +9 -0
  345. package/Voxels/Interaction/Placing/VoxelPlacingStrategy.js +58 -0
  346. package/Voxels/Interaction/Placing/VoxelPlacingStrategy.types.d.ts +15 -0
  347. package/Voxels/Interaction/Placing/VoxelPlacingStrategy.types.js +1 -0
  348. package/Voxels/Interaction/Placing/VoxelPlacingStrategyRegister.d.ts +7 -0
  349. package/Voxels/Interaction/Placing/VoxelPlacingStrategyRegister.js +13 -0
  350. package/Voxels/Interaction/VoxelPickResult.d.ts +50 -0
  351. package/Voxels/Interaction/VoxelPickResult.js +55 -0
  352. package/Voxels/Logic/Classes/Types/VoxelLogicPoweredType.d.ts +8 -0
  353. package/Voxels/Logic/Classes/Types/VoxelLogicPoweredType.js +13 -0
  354. package/Voxels/Logic/Classes/Types/VoxelLogicStateType.d.ts +9 -0
  355. package/Voxels/Logic/Classes/Types/VoxelLogicStateType.js +23 -0
  356. package/Voxels/Logic/Classes/VoxelLogic.d.ts +14 -0
  357. package/Voxels/Logic/Classes/VoxelLogic.js +47 -0
  358. package/Voxels/Logic/Classes/VoxelLogicType.d.ts +14 -0
  359. package/Voxels/Logic/Classes/VoxelLogicType.js +8 -0
  360. package/Voxels/Logic/VoxelLogic.types.d.ts +25 -0
  361. package/Voxels/Logic/VoxelLogic.types.js +1 -0
  362. package/Voxels/Logic/VoxelLogicRegister.d.ts +10 -0
  363. package/Voxels/Logic/VoxelLogicRegister.js +23 -0
  364. package/Voxels/Models/CompiledVoxelModel.types.d.ts +46 -0
  365. package/Voxels/Models/CompiledVoxelModel.types.js +1 -0
  366. package/{Models → Voxels/Models}/Defaults/CubeVoxelGeometry.js +0 -30
  367. package/{Models → Voxels/Models}/Defaults/CubeVoxelModels.d.ts +2 -0
  368. package/{Models → Voxels/Models}/Defaults/CubeVoxelModels.js +202 -109
  369. package/{Models → Voxels/Models/Defaults}/Examples.d.ts +1 -1
  370. package/{Models → Voxels/Models/Defaults}/Examples.js +73 -191
  371. package/Voxels/Models/Defaults/FarmVoxelModels.d.ts +3 -0
  372. package/Voxels/Models/Defaults/FarmVoxelModels.js +349 -0
  373. package/{Models → Voxels/Models}/Defaults/LiquidVoxelModel.js +6 -4
  374. package/{Models → Voxels/Models}/Defaults/PanelVoxelGeometry.js +2 -92
  375. package/{Models → Voxels/Models}/Defaults/PanelVoxelModels.d.ts +1 -0
  376. package/{Models → Voxels/Models}/Defaults/PanelVoxelModels.js +62 -216
  377. package/{Models → Voxels/Models}/Defaults/StairVoxelModel.js +64 -169
  378. package/Voxels/Models/Indexing/AOOcclusionFaceIndex.d.ts +12 -0
  379. package/Voxels/Models/Indexing/AOOcclusionFaceIndex.js +28 -0
  380. package/Voxels/Models/Indexing/CulledOcclusionFaceIndex.d.ts +12 -0
  381. package/Voxels/Models/Indexing/CulledOcclusionFaceIndex.js +27 -0
  382. package/Voxels/Models/Rules/Classes/GeomtryInput.d.ts +13 -0
  383. package/Voxels/Models/Rules/Classes/GeomtryInput.js +64 -0
  384. package/Voxels/Models/Rules/Classes/OcclusionFace.d.ts +10 -0
  385. package/Voxels/Models/Rules/Classes/OcclusionFace.js +5 -0
  386. package/Voxels/Models/Rules/Classes/OcclusionFaceRegister.d.ts +18 -0
  387. package/Voxels/Models/Rules/Classes/OcclusionFaceRegister.js +33 -0
  388. package/Voxels/Models/Rules/Classes/OcclusionQuadFace.d.ts +14 -0
  389. package/Voxels/Models/Rules/Classes/OcclusionQuadFace.js +118 -0
  390. package/Voxels/Models/Rules/Classes/OcclusionTriangleFace.d.ts +14 -0
  391. package/Voxels/Models/Rules/Classes/OcclusionTriangleFace.js +114 -0
  392. package/Voxels/Models/Rules/Classes/VoxelRulesGeometry.d.ts +22 -0
  393. package/Voxels/Models/Rules/Classes/VoxelRulesGeometry.js +15 -0
  394. package/{Models → Voxels/Models}/Rules/Classes/VoxelRulesModel.d.ts +4 -3
  395. package/{Models → Voxels/Models}/Rules/Classes/VoxelRulesModel.js +3 -3
  396. package/Voxels/Models/Rules/Functions/BuildFinalInputs.d.ts +5 -0
  397. package/Voxels/Models/Rules/Functions/BuildFinalInputs.js +72 -0
  398. package/Voxels/Models/Rules/Functions/BuildRules.d.ts +7 -0
  399. package/Voxels/Models/Rules/Functions/BuildRules.js +217 -0
  400. package/Voxels/Models/Rules/Functions/Compile/CompileGeomtryNodes.d.ts +4 -0
  401. package/Voxels/Models/Rules/Functions/Compile/CompileGeomtryNodes.js +39 -0
  402. package/Voxels/Models/Rules/Functions/Compile/Nodes/CalcFunctions.d.ts +8 -0
  403. package/Voxels/Models/Rules/Functions/Compile/Nodes/CalcFunctions.js +106 -0
  404. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileBoxGeometryNode.d.ts +5 -0
  405. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileBoxGeometryNode.js +14 -0
  406. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileQuadGeometryNode.d.ts +6 -0
  407. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileQuadGeometryNode.js +92 -0
  408. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileTriangleGeometryNode.d.ts +6 -0
  409. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileTriangleGeometryNode.js +115 -0
  410. package/{Models → Voxels/Models}/Rules/VoxelModelRuleBuilderRegister.d.ts +1 -1
  411. package/{Models → Voxels/Models}/Rules/VoxelModelRuleBuilderRegister.js +35 -11
  412. package/{Models → Voxels/Models}/VoxelModel.types.d.ts +58 -47
  413. package/Voxels/Models/VoxelModel.types.js +1 -0
  414. package/Voxels/State/Schema/BinarySchema.d.ts +5 -3
  415. package/Voxels/State/Schema/BinarySchema.js +23 -8
  416. package/Voxels/State/Schema/BinarySchemaNode.d.ts +3 -3
  417. package/Voxels/State/Schema/BinarySchemaNode.js +6 -6
  418. package/Voxels/State/Schema/ShapeStateRelationsNode.d.ts +3 -3
  419. package/Voxels/State/Schema/ShapeStateRelationsNode.js +2 -2
  420. package/Voxels/State/Schema/StateSchema.d.ts +2 -2
  421. package/Voxels/State/Schema/StateSchema.js +5 -7
  422. package/Voxels/State/SchemaRegister.d.ts +8 -6
  423. package/Voxels/State/SchemaRegister.js +41 -24
  424. package/Voxels/State/State.types.d.ts +19 -23
  425. package/Voxels/State/StateTreeReader.d.ts +1 -1
  426. package/Voxels/State/StateTreeReader.js +2 -3
  427. package/Voxels/Types/PaintVoxelData.d.ts +17 -0
  428. package/Voxels/Types/PaintVoxelData.js +73 -0
  429. package/Voxels/Types/Voxel.types.d.ts +15 -25
  430. package/Voxels/Types/Voxel.types.js +1 -23
  431. package/Voxels/Types/VoxelModelCompiledData.types.d.ts +7 -73
  432. package/Voxels/index.d.ts +1 -0
  433. package/Voxels/index.js +1 -0
  434. package/World/Archive/Classes/ArchiveClasses.d.ts +43 -0
  435. package/World/Archive/Classes/ArchiveClasses.js +53 -0
  436. package/World/Archive/Classes/ImportedSection.d.ts +31 -0
  437. package/World/Archive/Classes/ImportedSection.js +169 -0
  438. package/World/Archive/Classes/ImportedSector.d.ts +21 -0
  439. package/World/Archive/Classes/ImportedSector.js +50 -0
  440. package/World/Archive/Functions/Area/ArchiveArea.d.ts +8 -0
  441. package/World/Archive/Functions/Area/ArchiveArea.js +65 -0
  442. package/World/Archive/Functions/{ArchiveArea.d.ts → Area/ImportArea.d.ts} +1 -8
  443. package/World/Archive/Functions/Area/ImportArea.js +59 -0
  444. package/World/Archive/Functions/JSON/ExportArchivedAreaJSON.d.ts +2 -0
  445. package/World/Archive/Functions/JSON/ExportArchivedAreaJSON.js +100 -0
  446. package/World/Archive/Functions/JSON/ImportArchivedAreaJSON.d.ts +2 -0
  447. package/World/Archive/Functions/JSON/ImportArchivedAreaJSON.js +100 -0
  448. package/World/Archive/Functions/Sector/ArchiveSector.d.ts +7 -0
  449. package/World/Archive/Functions/Sector/ArchiveSector.js +209 -0
  450. package/World/Archive/Functions/Sector/CreateArchivedSection.d.ts +3 -0
  451. package/World/Archive/Functions/Sector/CreateArchivedSection.js +147 -0
  452. package/World/Archive/Functions/Sector/ImportSector.d.ts +7 -0
  453. package/World/Archive/Functions/Sector/ImportSector.js +32 -0
  454. package/World/Archive/Functions/Sector/RemoveDuplicateSections.d.ts +2 -0
  455. package/World/Archive/Functions/Sector/RemoveDuplicateSections.js +137 -0
  456. package/World/Archive/Functions/Shared/BaseData.d.ts +2 -0
  457. package/World/Archive/Functions/Shared/BaseData.js +14 -0
  458. package/World/Archive/Functions/Shared/IntToString.d.ts +1 -0
  459. package/World/Archive/Functions/Shared/IntToString.js +13 -0
  460. package/World/Archive/Functions/{Shared.d.ts → Shared/LightSegments.d.ts} +2 -3
  461. package/World/Archive/Functions/Shared/LightSegments.js +37 -0
  462. package/World/Archive/Functions/Shared/index.d.ts +3 -0
  463. package/World/Archive/Functions/Shared/index.js +3 -0
  464. package/World/Archive/Functions/index.d.ts +3 -3
  465. package/World/Archive/Functions/index.js +3 -3
  466. package/World/Archive/InitTasks.js +21 -33
  467. package/World/Archive/Types/Archive.types.d.ts +45 -0
  468. package/World/Archive/Types/Archive.types.js +1 -0
  469. package/World/Archive/Types/ArchiveArea.types.d.ts +38 -0
  470. package/World/Archive/Types/ArchiveArea.types.js +1 -0
  471. package/World/Archive/Types/ArchiveJSON.types.d.ts +52 -0
  472. package/World/Archive/Types/ArchiveJSON.types.js +1 -0
  473. package/World/Archive/Types/ArchivedSector.types.d.ts +43 -0
  474. package/World/Archive/Types/ArchivedSector.types.js +1 -0
  475. package/World/Archive/Types/index.d.ts +4 -0
  476. package/World/Archive/Types/index.js +4 -0
  477. package/World/Archive/index.d.ts +1 -1
  478. package/World/Archive/index.js +1 -1
  479. package/World/Cursor/SectionCursor.d.ts +4 -3
  480. package/World/Cursor/SectionCursor.js +13 -11
  481. package/World/Cursor/SectorCursor.d.ts +4 -2
  482. package/World/Cursor/SectorCursor.js +11 -1
  483. package/World/Cursor/WorldCursor.d.ts +5 -3
  484. package/World/Cursor/WorldCursor.js +23 -17
  485. package/World/Cursor/WorldVoxelCursor.d.ts +1 -7
  486. package/World/Cursor/WorldVoxelCursor.js +4 -15
  487. package/World/Dimension/Dimension.d.ts +4 -1
  488. package/World/Dimension/Dimension.js +8 -1
  489. package/World/InitTasks.js +52 -40
  490. package/World/Lock/Function/LockSectors.d.ts +2 -0
  491. package/World/Lock/Function/LockSectors.js +28 -0
  492. package/World/Lock/Function/UnLockSectors.d.ts +2 -0
  493. package/World/Lock/Function/UnLockSectors.js +28 -0
  494. package/World/Lock/WorldLock.d.ts +1 -2
  495. package/World/Lock/WorldLock.js +3 -1
  496. package/World/Section/Section.d.ts +20 -12
  497. package/World/Section/Section.js +77 -91
  498. package/World/Section/SectionState.d.ts +8 -2
  499. package/World/Section/SectionState.js +9 -2
  500. package/World/Sector/Sector.d.ts +26 -6
  501. package/World/Sector/Sector.js +100 -48
  502. package/World/Sector/SectorHeightMap.d.ts +1 -1
  503. package/World/Sector/SectorHeightMap.js +6 -6
  504. package/World/Sector/SectorState.d.ts +4 -2
  505. package/World/Sector/SectorState.js +4 -2
  506. package/World/SnapShot/SectionSnapShot.d.ts +19 -0
  507. package/World/SnapShot/SectionSnapShot.js +72 -0
  508. package/World/SnapShot/SectionSnapShotCursor.d.ts +23 -0
  509. package/World/SnapShot/SectionSnapShotCursor.js +107 -0
  510. package/World/SnapShot/SnapShots.d.ts +11 -0
  511. package/World/SnapShot/SnapShots.js +24 -0
  512. package/World/Types/WorldData.types.d.ts +2 -7
  513. package/World/Types/WorldDataSyncIds.d.ts +2 -0
  514. package/World/Types/WorldDataSyncIds.js +2 -0
  515. package/World/WorldRegister.d.ts +25 -13
  516. package/World/WorldRegister.js +56 -29
  517. package/World/WorldSpaces.d.ts +20 -0
  518. package/World/WorldSpaces.js +39 -6
  519. package/WorldSimulation/Dimensions/DimensionSegment.d.ts +38 -0
  520. package/WorldSimulation/Dimensions/DimensionSegment.js +120 -0
  521. package/WorldSimulation/Dimensions/DimensionSimulation.d.ts +26 -0
  522. package/WorldSimulation/Dimensions/DimensionSimulation.js +95 -0
  523. package/{Tasks/IWG/Internal/Classes → WorldSimulation/Dimensions}/Generator.d.ts +7 -9
  524. package/{Tasks/IWG/Internal/Classes → WorldSimulation/Dimensions}/Generator.js +11 -18
  525. package/{Tasks/IWG/Internal/Classes → WorldSimulation/Dimensions}/SectorState.d.ts +4 -0
  526. package/WorldSimulation/Dimensions/SectorState.js +56 -0
  527. package/WorldSimulation/Dimensions/SimulationSector.d.ts +30 -0
  528. package/WorldSimulation/Dimensions/SimulationSector.js +214 -0
  529. package/WorldSimulation/Internal/WorldSimulationDimensions.d.ts +6 -0
  530. package/{Tasks/IWG/Internal/IWGDimensions.js → WorldSimulation/Internal/WorldSimulationDimensions.js} +5 -4
  531. package/WorldSimulation/Internal/WorldSimulationTasks.d.ts +35 -0
  532. package/WorldSimulation/Internal/WorldSimulationTasks.js +200 -0
  533. package/WorldSimulation/Internal/WorldSimulationTools.d.ts +8 -0
  534. package/{Tasks/IWG/Internal/IWGTools.js → WorldSimulation/Internal/WorldSimulationTools.js} +1 -1
  535. package/WorldSimulation/Internal/runActiveSectorUpdate.d.ts +1 -0
  536. package/WorldSimulation/Internal/runActiveSectorUpdate.js +106 -0
  537. package/{Tasks/IWG → WorldSimulation}/Procedures/InitalLoad.d.ts +2 -2
  538. package/{Tasks/IWG → WorldSimulation}/Procedures/InitalLoad.js +16 -14
  539. package/{Tasks/IWG → WorldSimulation}/Procedures/SaveAllSectors.js +5 -5
  540. package/WorldSimulation/Tasks/SimulationTaskBase.d.ts +19 -0
  541. package/WorldSimulation/Tasks/SimulationTaskBase.js +50 -0
  542. package/WorldSimulation/Tasks/TaskRegister.d.ts +7 -0
  543. package/{Tasks/IWG/Internal → WorldSimulation/Tasks}/TaskRegister.js +3 -3
  544. package/WorldSimulation/Tasks/TaskSegment.d.ts +20 -0
  545. package/WorldSimulation/Tasks/TaskSegment.js +83 -0
  546. package/WorldSimulation/Tick/TickQueue.d.ts +9 -0
  547. package/WorldSimulation/Tick/TickQueue.js +31 -0
  548. package/WorldSimulation/Tools/SimulationBrush.d.ts +25 -0
  549. package/WorldSimulation/Tools/SimulationBrush.js +203 -0
  550. package/WorldSimulation/Voxels/Behaviors/Types/CropVoxelBehavior.d.ts +1 -0
  551. package/WorldSimulation/Voxels/Behaviors/Types/CropVoxelBehavior.js +23 -0
  552. package/WorldSimulation/Voxels/Behaviors/Types/DefaultVoxelBehavior.d.ts +1 -0
  553. package/WorldSimulation/Voxels/Behaviors/Types/DefaultVoxelBehavior.js +10 -0
  554. package/WorldSimulation/Voxels/Behaviors/Types/FarmlandVoxelBehavior.d.ts +1 -0
  555. package/WorldSimulation/Voxels/Behaviors/Types/FarmlandVoxelBehavior.js +73 -0
  556. package/WorldSimulation/Voxels/Behaviors/Types/LiquidVoxelBehavior.d.ts +1 -0
  557. package/WorldSimulation/Voxels/Behaviors/Types/LiquidVoxelBehavior.js +21 -0
  558. package/WorldSimulation/Voxels/Behaviors/Types/index.d.ts +4 -0
  559. package/WorldSimulation/Voxels/Behaviors/Types/index.js +4 -0
  560. package/WorldSimulation/Voxels/Behaviors/VoxelBehaviors.d.ts +18 -0
  561. package/WorldSimulation/Voxels/Behaviors/VoxelBehaviors.js +30 -0
  562. package/WorldSimulation/Voxels/Behaviors/VoxelBehaviorsRegister.d.ts +6 -0
  563. package/WorldSimulation/Voxels/Behaviors/VoxelBehaviorsRegister.js +25 -0
  564. package/WorldSimulation/Voxels/Behaviors/VoxelUpdate.d.ts +10 -0
  565. package/WorldSimulation/Voxels/Behaviors/VoxelUpdate.js +1 -0
  566. package/WorldSimulation/Voxels/Behaviors/index.d.ts +4 -0
  567. package/WorldSimulation/Voxels/Behaviors/index.js +4 -0
  568. package/WorldSimulation/Voxels/Ticks/Types/LiquidVoxelUpdate.d.ts +1 -0
  569. package/WorldSimulation/Voxels/Ticks/Types/LiquidVoxelUpdate.js +163 -0
  570. package/WorldSimulation/Voxels/Ticks/Types/index.d.ts +1 -0
  571. package/WorldSimulation/Voxels/Ticks/Types/index.js +1 -0
  572. package/WorldSimulation/Voxels/Ticks/VoxelTickUpdate.d.ts +8 -0
  573. package/WorldSimulation/Voxels/Ticks/VoxelTickUpdate.js +14 -0
  574. package/WorldSimulation/Voxels/Ticks/VoxelTickUpdateRegister.d.ts +6 -0
  575. package/WorldSimulation/Voxels/Ticks/VoxelTickUpdateRegister.js +13 -0
  576. package/WorldSimulation/Voxels/Ticks/VoxelTickUpdateType.d.ts +12 -0
  577. package/WorldSimulation/Voxels/Ticks/VoxelTickUpdateType.js +10 -0
  578. package/WorldSimulation/Voxels/Ticks/index.d.ts +4 -0
  579. package/WorldSimulation/Voxels/Ticks/index.js +4 -0
  580. package/{Tasks/IWG/IWG.d.ts → WorldSimulation/WorldSimulation.d.ts} +10 -9
  581. package/WorldSimulation/WorldSimulation.js +94 -0
  582. package/{Tasks/IWG → WorldSimulation}/index.d.ts +1 -1
  583. package/{Tasks/IWG → WorldSimulation}/index.js +1 -1
  584. package/package.json +2 -2
  585. package/Contexts/Constructor/DivineVoxelEngineConstructor.d.ts +0 -10
  586. package/Contexts/Constructor/DivineVoxelEngineConstructor.js +0 -14
  587. package/Contexts/Constructor/index.d.ts +0 -1
  588. package/Contexts/Constructor/index.js +0 -1
  589. package/Init/StartConstructor.d.ts +0 -2
  590. package/Init/StartConstructor.js +0 -57
  591. package/Mesher/Models/Common/BoundsFunctions.d.ts +0 -2
  592. package/Mesher/Models/Common/BoxGeometryNode.d.ts +0 -10
  593. package/Mesher/Models/Common/BoxGeometryNode.js +0 -80
  594. package/Mesher/Models/Common/QuadGeometryNode.d.ts +0 -11
  595. package/Mesher/Models/Common/QuadGeometryNode.js +0 -51
  596. package/Mesher/Models/Nodes/Ruled/BoxVoxelGeometryNode.d.ts +0 -24
  597. package/Mesher/Models/Nodes/Ruled/BoxVoxelGeometryNode.js +0 -176
  598. package/Mesher/Models/Nodes/Ruled/QuadVoxelGeometryNode.d.ts +0 -19
  599. package/Mesher/Models/Nodes/Ruled/QuadVoxelGeometryNode.js +0 -157
  600. package/Mesher/Models/Nodes/Ruleless/RulelessBoxVoxelGeometryNode.d.ts +0 -22
  601. package/Mesher/Models/Nodes/Ruleless/RulelessBoxVoxelGeometryNode.js +0 -75
  602. package/Mesher/Models/Nodes/Ruleless/RulelessQuadVoxelGeometryNode.d.ts +0 -18
  603. package/Mesher/Models/Nodes/Ruleless/RulelessQuadVoxelGeometryNode.js +0 -77
  604. package/Mesher/Models/Protocols/OutlinedVoxelTool.d.ts +0 -6
  605. package/Mesher/Models/Protocols/OutlinedVoxelTool.js +0 -233
  606. package/Models/Indexing/VoxelAOResultsIndex.d.ts +0 -12
  607. package/Models/Indexing/VoxelAOResultsIndex.js +0 -26
  608. package/Models/Indexing/VoxelFaceCullResultsIndex.d.ts +0 -12
  609. package/Models/Indexing/VoxelFaceCullResultsIndex.js +0 -26
  610. package/Models/Indexing/VoxelFaceTransparentResultsIndex.d.ts +0 -11
  611. package/Models/Indexing/VoxelFaceTransparentResultsIndex.js +0 -15
  612. package/Models/Input/BoxVoxelGometryInputs.d.ts +0 -25
  613. package/Models/Input/BoxVoxelGometryInputs.js +0 -36
  614. package/Models/Input/QuadVoxelGometryInputs.d.ts +0 -24
  615. package/Models/Rules/Classes/OcclusionFace.d.ts +0 -65
  616. package/Models/Rules/Classes/OcclusionFace.js +0 -492
  617. package/Models/Rules/Classes/VoxelRulesGeometry.d.ts +0 -15
  618. package/Models/Rules/Classes/VoxelRulesGeometry.js +0 -29
  619. package/Models/Rules/Functions/BuildFinalInputs.d.ts +0 -7
  620. package/Models/Rules/Functions/BuildFinalInputs.js +0 -93
  621. package/Models/Rules/Functions/BuildGeomtryInputs.d.ts +0 -6
  622. package/Models/Rules/Functions/BuildGeomtryInputs.js +0 -251
  623. package/Models/Rules/Functions/BuildRules.d.ts +0 -8
  624. package/Models/Rules/Functions/BuildRules.js +0 -187
  625. package/Models/Rules/Functions/GetOcclusionFaces.d.ts +0 -4
  626. package/Models/Rules/Functions/GetOcclusionFaces.js +0 -112
  627. package/Models/Shared/Transform.d.ts +0 -4
  628. package/Tasks/IWG/IWG.js +0 -98
  629. package/Tasks/IWG/Internal/Classes/BuildQueue.d.ts +0 -11
  630. package/Tasks/IWG/Internal/Classes/BuildQueue.js +0 -49
  631. package/Tasks/IWG/Internal/Classes/DimensionSegment.d.ts +0 -37
  632. package/Tasks/IWG/Internal/Classes/DimensionSegment.js +0 -67
  633. package/Tasks/IWG/Internal/Classes/IWGTaskBase.d.ts +0 -15
  634. package/Tasks/IWG/Internal/Classes/IWGTaskBase.js +0 -62
  635. package/Tasks/IWG/Internal/Classes/SectorState.js +0 -20
  636. package/Tasks/IWG/Internal/Classes/SectorVisistedMap.d.ts +0 -9
  637. package/Tasks/IWG/Internal/Classes/SectorVisistedMap.js +0 -24
  638. package/Tasks/IWG/Internal/Functions/cullSectors.d.ts +0 -2
  639. package/Tasks/IWG/Internal/Functions/cullSectors.js +0 -111
  640. package/Tasks/IWG/Internal/Functions/getSectorState.d.ts +0 -4
  641. package/Tasks/IWG/Internal/Functions/getSectorState.js +0 -39
  642. package/Tasks/IWG/Internal/Functions/runBuildUpdate.d.ts +0 -2
  643. package/Tasks/IWG/Internal/Functions/runBuildUpdate.js +0 -70
  644. package/Tasks/IWG/Internal/Functions/runWorldUpdate.d.ts +0 -2
  645. package/Tasks/IWG/Internal/Functions/runWorldUpdate.js +0 -69
  646. package/Tasks/IWG/Internal/IWGDimensions.d.ts +0 -6
  647. package/Tasks/IWG/Internal/IWGTasks.d.ts +0 -30
  648. package/Tasks/IWG/Internal/IWGTasks.js +0 -129
  649. package/Tasks/IWG/Internal/IWGTools.d.ts +0 -8
  650. package/Tasks/IWG/Internal/TaskRegister.d.ts +0 -7
  651. package/Tasks/Propagation/Explosion/ExplosionManager.d.ts +0 -4
  652. package/Tasks/Propagation/Explosion/ExplosionManager.js +0 -117
  653. package/Tasks/Update/InitTasks.d.ts +0 -5
  654. package/Tasks/Update/InitTasks.js +0 -23
  655. package/Tasks/Update/VoxelUpdate.d.ts +0 -6
  656. package/Tasks/Update/VoxelUpdate.js +0 -177
  657. package/Templates/FullVoxelTemplate.d.ts +0 -14
  658. package/Templates/FullVoxelTemplate.js +0 -61
  659. package/Templates/Functions/CreateTemplate.d.ts +0 -3
  660. package/Templates/Functions/CreateTemplate.js +0 -134
  661. package/Templates/VoxelTemplate.d.ts +0 -34
  662. package/Templates/VoxelTemplate.js +0 -135
  663. package/Util/Binary/BinaryBuffer.d.ts +0 -29
  664. package/Util/Binary/BinaryBuffer.js +0 -130
  665. package/Util/Binary/Palettes.d.ts +0 -5
  666. package/Util/Binary/Palettes.js +0 -46
  667. package/Util/LocationVisitedMap.d.ts +0 -9
  668. package/Util/LocationVisitedMap.js +0 -18
  669. package/Util/VisistedMap.d.ts +0 -10
  670. package/Util/VisistedMap.js +0 -29
  671. package/Voxels/Data/VoxelTagStates.d.ts +0 -22
  672. package/Voxels/Data/VoxelTagStates.js +0 -47
  673. package/World/Archive/Archive.types.d.ts +0 -163
  674. package/World/Archive/Functions/ArchiveArea.js +0 -338
  675. package/World/Archive/Functions/ArchiveSector.d.ts +0 -7
  676. package/World/Archive/Functions/ArchiveSector.js +0 -625
  677. package/World/Archive/Functions/ImportSector.d.ts +0 -9
  678. package/World/Archive/Functions/ImportSector.js +0 -288
  679. package/World/Archive/Functions/Shared.js +0 -75
  680. /package/{Models/VoxelModel.types.js → Math/Location.js} +0 -0
  681. /package/{World/Archive/Archive.types.js → Mesher/Models/Nodes/Types/GeomtryNode.types.js} +0 -0
  682. /package/{Models → Voxels/Models}/Defaults/CubeVoxelGeometry.d.ts +0 -0
  683. /package/{Models → Voxels/Models}/Defaults/LiquidVoxelModel.d.ts +0 -0
  684. /package/{Models → Voxels/Models}/Defaults/PanelVoxelGeometry.d.ts +0 -0
  685. /package/{Models → Voxels/Models}/Defaults/StairVoxelModel.d.ts +0 -0
  686. /package/{Models → Voxels/Models}/Indexing/VoxelRelativeCubeIndex.d.ts +0 -0
  687. /package/{Models → Voxels/Models}/Indexing/VoxelRelativeCubeIndex.js +0 -0
  688. /package/{Tasks/IWG → WorldSimulation}/Procedures/SaveAllSectors.d.ts +0 -0
@@ -1,5 +1,6 @@
1
- import { Thread } from "@amodx/threads/";
1
+ import { Thread, Threads } from "@amodx/threads/";
2
2
  import { TasksIds } from "../../Tasks/TasksIds.js";
3
+ import { setLocationData } from "../../Util/LocationData";
3
4
  class TaskQueue {
4
5
  _task;
5
6
  _queue = [];
@@ -28,6 +29,36 @@ class TaskQueue {
28
29
  });
29
30
  }
30
31
  }
32
+ export class LocationTaskToolTask {
33
+ id;
34
+ _count = 0;
35
+ _threads;
36
+ constructor(id, threads) {
37
+ this.id = id;
38
+ if (threads instanceof Thread) {
39
+ this._threads = [threads];
40
+ }
41
+ else {
42
+ this._threads = [...threads.getThreads()];
43
+ }
44
+ }
45
+ run(location, transfer, onDone, thread = this._threads[this._count]) {
46
+ const view = Threads.createBinaryTask(16);
47
+ setLocationData(view, location);
48
+ thread.runBinaryTask(this.id, view, onDone);
49
+ this._count++;
50
+ if (this._count >= this._threads.length)
51
+ this._count = 0;
52
+ }
53
+ runAsync(location) {
54
+ return new Promise((resolve) => {
55
+ this.run(location, null, resolve);
56
+ });
57
+ }
58
+ createQueue() {
59
+ return new TaskQueue(this);
60
+ }
61
+ }
31
62
  export class TaskToolTask {
32
63
  id;
33
64
  _count = 0;
@@ -59,44 +90,79 @@ export class TaskToolTask {
59
90
  }
60
91
  class VoxelTasks {
61
92
  tool;
62
- update;
63
93
  paint;
64
- erease;
94
+ paintTemplate;
95
+ paintPath;
96
+ erase;
97
+ eraseTemplate;
98
+ erasePath;
65
99
  constructor(tool) {
66
100
  this.tool = tool;
67
- this.update = new TaskToolTask(TasksIds.VoxelUpdate, tool.threads);
68
- this.paint = new TaskToolTask(TasksIds.VoxelPaint, tool.threads);
69
- this.erease = new TaskToolTask(TasksIds.VoxelErease, tool.threads);
101
+ this.paint = new TaskToolTask(TasksIds.PaintVoxel, tool.generators);
102
+ this.paintTemplate = new TaskToolTask(TasksIds.PaintVoxelTemplate, tool.generators);
103
+ this.paintPath = new TaskToolTask(TasksIds.PaintVoxelPath, tool.generators);
104
+ this.erase = new TaskToolTask(TasksIds.EraseVoxel, tool.generators);
105
+ this.eraseTemplate = new TaskToolTask(TasksIds.EraseVoxelTemplate, tool.generators);
106
+ this.erasePath = new TaskToolTask(TasksIds.EraseVoxelPath, tool.generators);
70
107
  }
71
108
  }
72
109
  class BuildTask {
73
110
  tool;
111
+ sectionSnapShot;
74
112
  section;
75
113
  sector;
76
114
  constructor(tool) {
77
115
  this.tool = tool;
78
- this.section = new TaskToolTask(TasksIds.BuildSection, tool.threads);
79
- this.sector = new TaskToolTask(TasksIds.BuildSector, tool.threads);
116
+ this.section = new LocationTaskToolTask(TasksIds.BuildSection, tool.meshers);
117
+ this.sectionSnapShot = new TaskToolTask(TasksIds.BuildSectionSnapShot, tool.meshers);
118
+ this.sector = new LocationTaskToolTask(TasksIds.BuildSector, tool.meshers);
80
119
  }
81
120
  }
82
- export class TaskTool {
83
- threads;
84
- voxel;
85
- build;
86
- explosion;
87
- anaylzer;
121
+ class SimulationTasks {
122
+ tool;
123
+ logic;
124
+ propagation;
125
+ constructor(tool) {
126
+ this.tool = tool;
127
+ }
128
+ }
129
+ class GenerationTasks {
130
+ tool;
88
131
  propagation;
89
132
  generate;
90
133
  decorate;
91
134
  worldSun;
92
- constructor(threads) {
93
- this.threads = threads;
135
+ constructor(tool) {
136
+ this.tool = tool;
137
+ this.propagation = new LocationTaskToolTask(TasksIds.WorldPropagation, tool.generators);
138
+ this.generate = new LocationTaskToolTask(TasksIds.Generate, tool.generators);
139
+ this.decorate = new LocationTaskToolTask(TasksIds.Decorate, tool.generators);
140
+ this.worldSun = new LocationTaskToolTask(TasksIds.WorldSun, tool.generators);
141
+ }
142
+ }
143
+ export class TaskTool {
144
+ meshers;
145
+ generators;
146
+ voxel;
147
+ build;
148
+ generation;
149
+ simulation;
150
+ constructor(meshers, generators) {
151
+ this.meshers = meshers;
152
+ this.generators = generators;
94
153
  this.voxel = new VoxelTasks(this);
95
154
  this.build = new BuildTask(this);
96
- this.explosion = new TaskToolTask(TasksIds.Explosion, threads);
97
- this.propagation = new TaskToolTask(TasksIds.Propagation, threads);
98
- this.generate = new TaskToolTask(TasksIds.Generate, threads);
99
- this.decorate = new TaskToolTask(TasksIds.Decorate, threads);
100
- this.worldSun = new TaskToolTask(TasksIds.WorldSun, threads);
155
+ this.generation = new GenerationTasks(this);
156
+ this.simulation = new SimulationTasks(this);
157
+ }
158
+ getMesher() {
159
+ if (this.meshers instanceof Thread)
160
+ return this.meshers;
161
+ return this.meshers.nextThread();
162
+ }
163
+ getGenerator() {
164
+ if (this.generators instanceof Thread)
165
+ return this.generators;
166
+ return this.generators.nextThread();
101
167
  }
102
168
  }
@@ -1,5 +1,7 @@
1
1
  export declare function getBitArrayIndex(data: Uint8Array, arrayIndex: number): number;
2
2
  export declare function setBitArrayIndex(data: Uint8Array, arrayIndex: number, value: number): void;
3
+ export declare function getBitAtomicArrayIndex(data: Uint8Array, arrayIndex: number): number;
4
+ export declare function setBitAtomicArrayIndex(data: Uint8Array, arrayIndex: number, value: number): void;
3
5
  export declare function getNibbleArrayIndex(data: Uint8Array, arrayIndex: number): number;
4
6
  export declare function setNibbleArrayIndex(data: Uint8Array, arrayIndex: number, value: number): void;
5
7
  export declare function getHalfNibbleArrayIndex(data: Uint8Array, arrayIndex: number): number;
@@ -9,6 +9,21 @@ export function setBitArrayIndex(data, arrayIndex, value) {
9
9
  const bitPosition = arrayIndex % 8;
10
10
  data[arrayByteIndex] = setBitValue(data[arrayByteIndex], bitPosition, value & 1, 1);
11
11
  }
12
+ export function getBitAtomicArrayIndex(data, arrayIndex) {
13
+ const arrayByteIndex = Math.floor(arrayIndex / 8);
14
+ const bitPosition = arrayIndex % 8;
15
+ return getBitValue(Atomics.load(data, arrayByteIndex), bitPosition, 1);
16
+ }
17
+ export function setBitAtomicArrayIndex(data, arrayIndex, value) {
18
+ const arrayByteIndex = Math.floor(arrayIndex / 8);
19
+ const bitPosition = arrayIndex % 8;
20
+ // Load current byte atomically
21
+ let byte = Atomics.load(data, arrayByteIndex);
22
+ // Modify the bit
23
+ byte = setBitValue(byte, bitPosition, value & 1, 1);
24
+ // Store it back atomically
25
+ Atomics.store(data, arrayByteIndex, byte);
26
+ }
12
27
  export function getNibbleArrayIndex(data, arrayIndex) {
13
28
  return getBitValue(data[(arrayIndex / 2) >> 0], arrayIndex % 2 === 0 ? 4 : 0, 4);
14
29
  }
@@ -1,3 +1,6 @@
1
1
  export declare function getBitValue(data: number, bitIndex: number, bitSize: number): number;
2
2
  export declare function setBitValue(data: number, bitIndex: number, value: number, bitSize: number): number;
3
3
  export declare function forceMultipleOf2(n: number): number;
4
+ export declare function forceMultipleOf4(n: number): number;
5
+ export declare function bitsNeeded(n: number): number;
6
+ export declare function nextPowerOf2(n: number): number;
@@ -9,3 +9,21 @@ export function setBitValue(data, bitIndex, value, bitSize) {
9
9
  export function forceMultipleOf2(n) {
10
10
  return n % 2 === 0 ? n : n + 1;
11
11
  }
12
+ export function forceMultipleOf4(n) {
13
+ return n % 4 === 0 ? n : n + (4 - (n % 4));
14
+ }
15
+ export function bitsNeeded(n) {
16
+ if (n < 0)
17
+ throw new Error("Input must be a non-negative integer.");
18
+ let bits = 0;
19
+ while (n > 0) {
20
+ bits++;
21
+ n >>= 1;
22
+ }
23
+ return bits;
24
+ }
25
+ export function nextPowerOf2(n) {
26
+ if (n <= 1)
27
+ return 1;
28
+ return 2 ** Math.ceil(Math.log2(n));
29
+ }
@@ -0,0 +1,30 @@
1
+ import { BinaryBufferConstants, BinaryBufferData, BinaryBufferFormat } from "./BinaryBuffer.types";
2
+ import { ConvertBinaryBuffer, DetermineSubByteArrayForBinaryBuffer, GetBinaryBufferIndexLength, GetConvertedBinaryBufferSize } from "./Functions/BinaryBufferConvert";
3
+ import { BinaryBufferFromJSON, BinaryBufferToJSON } from "./Functions/BinaryBufferJSON";
4
+ import { ReadBufferAtIndex, SetBufferAtIndex } from "./Functions/BinaryBufferRead";
5
+ import BinaryBufferToTypedArray from "./Functions/BinaryBufferToTypedArray";
6
+ export interface BinaryBuffer extends BinaryBufferData {
7
+ }
8
+ export declare class BinaryBuffer {
9
+ static Constants: typeof BinaryBufferConstants;
10
+ static Compare(buffer1: BinaryBufferData, buffer2: BinaryBufferData): boolean;
11
+ static ToJSON: typeof BinaryBufferToJSON;
12
+ static FromJSON: typeof BinaryBufferFromJSON;
13
+ static ToTypedArray: typeof BinaryBufferToTypedArray;
14
+ static ReadBufferAtIndex: typeof ReadBufferAtIndex;
15
+ static SetBufferAtIndex: typeof SetBufferAtIndex;
16
+ static DetermineSubByteArray: typeof DetermineSubByteArrayForBinaryBuffer;
17
+ static GetConvertedBufferSize: typeof GetConvertedBinaryBufferSize;
18
+ static GetIndexLength: typeof GetBinaryBufferIndexLength;
19
+ static Convert: typeof ConvertBinaryBuffer;
20
+ static Create(data: Partial<BinaryBufferData>): BinaryBufferData;
21
+ bufferView: Uint8Array | Uint16Array;
22
+ constructor(data: BinaryBufferData);
23
+ isValue: boolean;
24
+ getValue(index: number): number;
25
+ toJSON(): {
26
+ buffer: number | ArrayBuffer | SharedArrayBuffer;
27
+ length: number;
28
+ type: BinaryBufferFormat;
29
+ };
30
+ }
@@ -0,0 +1,78 @@
1
+ import { BinaryBufferConstants, BinaryBufferFormat, } from "./BinaryBuffer.types";
2
+ import { ConvertBinaryBuffer, DetermineSubByteArrayForBinaryBuffer, GetBinaryBufferIndexLength, GetConvertedBinaryBufferSize, } from "./Functions/BinaryBufferConvert";
3
+ import { BinaryBufferFromJSON, BinaryBufferToJSON, } from "./Functions/BinaryBufferJSON";
4
+ import { ReadBufferAtIndex, SetBufferAtIndex, } from "./Functions/BinaryBufferRead";
5
+ import BinaryBufferToTypedArray from "./Functions/BinaryBufferToTypedArray";
6
+ export class BinaryBuffer {
7
+ static Constants = BinaryBufferConstants;
8
+ static Compare(buffer1, buffer2) {
9
+ if (buffer1.format != buffer2.format)
10
+ return false;
11
+ if (buffer1.byteLength != buffer2.byteLength)
12
+ return false;
13
+ if (typeof buffer1.buffer == "number" && buffer1.buffer == buffer2.buffer)
14
+ return true;
15
+ if (typeof buffer1.buffer == "number" || typeof buffer2.buffer == "number")
16
+ return false;
17
+ if (buffer1.buffer.byteLength != buffer2.buffer.byteLength)
18
+ return false;
19
+ const view1 = new Uint8Array(buffer1.buffer);
20
+ const view2 = new Uint8Array(buffer2.buffer);
21
+ let i = view1.length;
22
+ while (i--) {
23
+ if (view1[i] != view2[i])
24
+ return false;
25
+ }
26
+ return true;
27
+ }
28
+ static ToJSON = BinaryBufferToJSON;
29
+ static FromJSON = BinaryBufferFromJSON;
30
+ static ToTypedArray = BinaryBufferToTypedArray;
31
+ static ReadBufferAtIndex = ReadBufferAtIndex;
32
+ static SetBufferAtIndex = SetBufferAtIndex;
33
+ static DetermineSubByteArray = DetermineSubByteArrayForBinaryBuffer;
34
+ static GetConvertedBufferSize = GetConvertedBinaryBufferSize;
35
+ static GetIndexLength = GetBinaryBufferIndexLength;
36
+ static Convert = ConvertBinaryBuffer;
37
+ static Create(data) {
38
+ const bufferData = {
39
+ buffer: 0,
40
+ byteLength: 0,
41
+ format: BinaryBufferFormat.Uint8,
42
+ ...data,
43
+ };
44
+ if (!bufferData.byteLength && typeof bufferData.buffer !== "number") {
45
+ bufferData.byteLength = bufferData.buffer.byteLength;
46
+ }
47
+ return bufferData;
48
+ }
49
+ bufferView;
50
+ constructor(data) {
51
+ this.buffer = data.buffer;
52
+ this.format = data.format;
53
+ if (typeof this.buffer !== "number") {
54
+ if (this.format == BinaryBufferFormat.Uint16) {
55
+ this.bufferView = new Uint16Array(this.buffer);
56
+ }
57
+ else {
58
+ this.bufferView = new Uint8Array(this.buffer);
59
+ }
60
+ }
61
+ else {
62
+ this.isValue = true;
63
+ }
64
+ }
65
+ isValue = false;
66
+ getValue(index) {
67
+ if (this.isValue)
68
+ return this.buffer;
69
+ return ReadBufferAtIndex(this.bufferView, this.format, index);
70
+ }
71
+ toJSON() {
72
+ return {
73
+ buffer: this.buffer,
74
+ length: this.byteLength,
75
+ type: this.format,
76
+ };
77
+ }
78
+ }
@@ -0,0 +1,37 @@
1
+ export declare enum BinaryBufferFormat {
2
+ BitArray = "bit",
3
+ HalfNibbleArray = "half-nibble",
4
+ NibbleArray = "nibble",
5
+ Buffer = "buffer",
6
+ Uint8 = "uint8",
7
+ Uint16 = "uint16",
8
+ Uint32 = "uint32",
9
+ Int8 = "int8",
10
+ Int16 = "int16",
11
+ Int32 = "int32",
12
+ Float32 = "float32",
13
+ Float64 = "float64"
14
+ }
15
+ export declare enum BinaryBufferCompresedTypes {
16
+ Gzip = "gzip",
17
+ Deflate = "deflate",
18
+ DeflateRaw = "deflate-raw"
19
+ }
20
+ export declare enum BinaryBufferConstants {
21
+ ByteArrayMax = 256,
22
+ NibbleArrayMax = 16,
23
+ HalfNibbleArrayMax = 4,
24
+ BitArrayMax = 2
25
+ }
26
+ export interface BinaryBufferData {
27
+ format: BinaryBufferFormat;
28
+ byteLength: number;
29
+ buffer: number | ArrayBuffer | SharedArrayBuffer;
30
+ }
31
+ export interface JSONBinaryBufferData {
32
+ format: BinaryBufferFormat;
33
+ base64?: string;
34
+ value?: number | null;
35
+ byteLength: number;
36
+ compression?: BinaryBufferCompresedTypes;
37
+ }
@@ -0,0 +1,28 @@
1
+ export var BinaryBufferFormat;
2
+ (function (BinaryBufferFormat) {
3
+ BinaryBufferFormat["BitArray"] = "bit";
4
+ BinaryBufferFormat["HalfNibbleArray"] = "half-nibble";
5
+ BinaryBufferFormat["NibbleArray"] = "nibble";
6
+ BinaryBufferFormat["Buffer"] = "buffer";
7
+ BinaryBufferFormat["Uint8"] = "uint8";
8
+ BinaryBufferFormat["Uint16"] = "uint16";
9
+ BinaryBufferFormat["Uint32"] = "uint32";
10
+ BinaryBufferFormat["Int8"] = "int8";
11
+ BinaryBufferFormat["Int16"] = "int16";
12
+ BinaryBufferFormat["Int32"] = "int32";
13
+ BinaryBufferFormat["Float32"] = "float32";
14
+ BinaryBufferFormat["Float64"] = "float64";
15
+ })(BinaryBufferFormat || (BinaryBufferFormat = {}));
16
+ export var BinaryBufferCompresedTypes;
17
+ (function (BinaryBufferCompresedTypes) {
18
+ BinaryBufferCompresedTypes["Gzip"] = "gzip";
19
+ BinaryBufferCompresedTypes["Deflate"] = "deflate";
20
+ BinaryBufferCompresedTypes["DeflateRaw"] = "deflate-raw";
21
+ })(BinaryBufferCompresedTypes || (BinaryBufferCompresedTypes = {}));
22
+ export var BinaryBufferConstants;
23
+ (function (BinaryBufferConstants) {
24
+ BinaryBufferConstants[BinaryBufferConstants["ByteArrayMax"] = 256] = "ByteArrayMax";
25
+ BinaryBufferConstants[BinaryBufferConstants["NibbleArrayMax"] = 16] = "NibbleArrayMax";
26
+ BinaryBufferConstants[BinaryBufferConstants["HalfNibbleArrayMax"] = 4] = "HalfNibbleArrayMax";
27
+ BinaryBufferConstants[BinaryBufferConstants["BitArrayMax"] = 2] = "BitArrayMax";
28
+ })(BinaryBufferConstants || (BinaryBufferConstants = {}));
@@ -0,0 +1,5 @@
1
+ import { BinaryBufferFormat } from "../BinaryBuffer.types";
2
+ export declare function DetermineSubByteArrayForBinaryBuffer(paletteSize: number): BinaryBufferFormat | null;
3
+ export declare function GetConvertedBinaryBufferSize(source: Uint8Array | Uint16Array, format: BinaryBufferFormat): number;
4
+ export declare function GetBinaryBufferIndexLength(source: Uint8Array | Uint16Array, format: BinaryBufferFormat): number;
5
+ export declare function ConvertBinaryBuffer(source: Uint8Array | Uint16Array, sourceType: BinaryBufferFormat, destinationType: BinaryBufferFormat): Uint16Array | Uint8Array;
@@ -0,0 +1,60 @@
1
+ import { BinaryBufferConstants, BinaryBufferFormat, } from "../BinaryBuffer.types";
2
+ import { ReadBufferAtIndex, SetBufferAtIndex } from "./BinaryBufferRead";
3
+ export function DetermineSubByteArrayForBinaryBuffer(paletteSize) {
4
+ if (paletteSize == BinaryBufferConstants.BitArrayMax)
5
+ return BinaryBufferFormat.BitArray;
6
+ if (paletteSize > BinaryBufferConstants.BitArrayMax &&
7
+ paletteSize <= BinaryBufferConstants.HalfNibbleArrayMax)
8
+ return BinaryBufferFormat.HalfNibbleArray;
9
+ if (paletteSize > BinaryBufferConstants.HalfNibbleArrayMax &&
10
+ paletteSize <= BinaryBufferConstants.NibbleArrayMax)
11
+ return BinaryBufferFormat.NibbleArray;
12
+ if (paletteSize > BinaryBufferConstants.NibbleArrayMax &&
13
+ paletteSize <= BinaryBufferConstants.ByteArrayMax)
14
+ return BinaryBufferFormat.Uint8;
15
+ return null;
16
+ }
17
+ function CreateBufferForType(type, length) {
18
+ if (type == BinaryBufferFormat.Uint16)
19
+ return new Uint16Array(length);
20
+ return new Uint8Array(length);
21
+ }
22
+ export function GetConvertedBinaryBufferSize(source, format) {
23
+ if (format == BinaryBufferFormat.Uint16 || format == BinaryBufferFormat.Uint8)
24
+ return source.length;
25
+ if (format == BinaryBufferFormat.BitArray)
26
+ return source.length / 8;
27
+ if (format == BinaryBufferFormat.HalfNibbleArray)
28
+ return source.length / 4;
29
+ if (format == BinaryBufferFormat.NibbleArray)
30
+ return source.length / 2;
31
+ return source.length;
32
+ }
33
+ export function GetBinaryBufferIndexLength(source, format) {
34
+ if (format == BinaryBufferFormat.Uint16 || format == BinaryBufferFormat.Uint8)
35
+ return source.length;
36
+ if (format == BinaryBufferFormat.BitArray)
37
+ return source.length * 8;
38
+ if (format == BinaryBufferFormat.HalfNibbleArray)
39
+ return source.length * 4;
40
+ if (format == BinaryBufferFormat.NibbleArray)
41
+ return source.length * 2;
42
+ return source.length;
43
+ }
44
+ export function ConvertBinaryBuffer(source, sourceType, destinationType) {
45
+ if (sourceType == destinationType ||
46
+ (sourceType == BinaryBufferFormat.Uint16 &&
47
+ destinationType == BinaryBufferFormat.Uint8) ||
48
+ (sourceType == BinaryBufferFormat.Uint8 &&
49
+ destinationType == BinaryBufferFormat.Uint16)) {
50
+ const destination = CreateBufferForType(destinationType, GetConvertedBinaryBufferSize(source, destinationType));
51
+ destination.set(source);
52
+ return destination;
53
+ }
54
+ const length = GetBinaryBufferIndexLength(source, sourceType);
55
+ const destination = CreateBufferForType(destinationType, GetConvertedBinaryBufferSize(source, destinationType));
56
+ for (let i = 0; i < length; i++) {
57
+ SetBufferAtIndex(destination, destinationType, i, ReadBufferAtIndex(source, sourceType, i));
58
+ }
59
+ return destination;
60
+ }
@@ -0,0 +1,3 @@
1
+ import { BinaryBufferCompresedTypes, BinaryBufferData, JSONBinaryBufferData } from "../BinaryBuffer.types";
2
+ export declare function BinaryBufferFromJSON(data: JSONBinaryBufferData): Promise<BinaryBufferData>;
3
+ export declare function BinaryBufferToJSON(data: BinaryBufferData, compression?: boolean | BinaryBufferCompresedTypes): Promise<JSONBinaryBufferData>;
@@ -0,0 +1,64 @@
1
+ import { BinaryBufferCompresedTypes, } from "../BinaryBuffer.types";
2
+ export async function BinaryBufferFromJSON(data) {
3
+ let raw;
4
+ if (data.base64) {
5
+ let binary = atob(data.base64);
6
+ raw = new Uint8Array(binary.length);
7
+ for (let i = 0; i < binary.length; i++) {
8
+ raw[i] = binary.charCodeAt(i);
9
+ }
10
+ if (data.compression) {
11
+ const ds = new DecompressionStream(data.compression);
12
+ const writer = ds.writable.getWriter();
13
+ writer.write(raw);
14
+ writer.close();
15
+ const decompressed = await new Response(ds.readable).arrayBuffer();
16
+ raw = new Uint8Array(decompressed);
17
+ }
18
+ }
19
+ else if (typeof data.value == "number") {
20
+ raw = data.value;
21
+ }
22
+ else {
23
+ throw new Error(`Error converting binary buffer json. `);
24
+ }
25
+ return {
26
+ format: data.format,
27
+ byteLength: data.byteLength,
28
+ buffer: typeof raw === "number" ? raw : raw.buffer,
29
+ };
30
+ }
31
+ export async function BinaryBufferToJSON(data, compression) {
32
+ if (typeof data.buffer === "number") {
33
+ return {
34
+ format: data.format,
35
+ byteLength: data.byteLength,
36
+ value: data.buffer,
37
+ };
38
+ }
39
+ const input = new Uint8Array(data.buffer);
40
+ let bufferToEncode = input;
41
+ if (compression) {
42
+ compression =
43
+ typeof compression == "boolean"
44
+ ? BinaryBufferCompresedTypes.Gzip
45
+ : compression;
46
+ const cs = new CompressionStream(compression);
47
+ const writer = cs.writable.getWriter();
48
+ writer.write(input);
49
+ writer.close();
50
+ const compressedBuffer = await new Response(cs.readable).arrayBuffer();
51
+ bufferToEncode = new Uint8Array(compressedBuffer);
52
+ }
53
+ let binary = "";
54
+ for (let i = 0; i < bufferToEncode.length; i++) {
55
+ binary += String.fromCharCode(bufferToEncode[i]);
56
+ }
57
+ const base64 = btoa(binary);
58
+ return {
59
+ format: data.format,
60
+ byteLength: data.byteLength,
61
+ base64: base64,
62
+ ...(compression ? { compression } : {}),
63
+ };
64
+ }
@@ -0,0 +1,3 @@
1
+ import { BinaryBufferFormat } from "../BinaryBuffer.types";
2
+ export declare function ReadBufferAtIndex(source: Uint8Array | Uint16Array, format: BinaryBufferFormat, index: number): number;
3
+ export declare function SetBufferAtIndex(source: Uint8Array | Uint16Array, format: BinaryBufferFormat, index: number, value: number): number | void;
@@ -0,0 +1,26 @@
1
+ import { BinaryBufferFormat } from "../BinaryBuffer.types";
2
+ import { getBitArrayIndex, getHalfNibbleArrayIndex, getNibbleArrayIndex, setBitArrayIndex, setHalfNibbleArrayIndex, setNibbleArrayIndex, } from "../../Binary/BinaryArrays";
3
+ export function ReadBufferAtIndex(source, format, index) {
4
+ if (format == BinaryBufferFormat.Uint16 || format == BinaryBufferFormat.Uint8)
5
+ return source[index];
6
+ if (format == BinaryBufferFormat.BitArray)
7
+ return getBitArrayIndex(source, index);
8
+ if (format == BinaryBufferFormat.NibbleArray)
9
+ return getNibbleArrayIndex(source, index);
10
+ if (format == BinaryBufferFormat.HalfNibbleArray)
11
+ return getHalfNibbleArrayIndex(source, index);
12
+ return source[index];
13
+ }
14
+ export function SetBufferAtIndex(source, format, index, value) {
15
+ if (format == BinaryBufferFormat.Uint16 ||
16
+ format == BinaryBufferFormat.Uint8) {
17
+ return (source[index] = value);
18
+ }
19
+ if (format == BinaryBufferFormat.BitArray)
20
+ return setBitArrayIndex(source, index, value);
21
+ if (format == BinaryBufferFormat.NibbleArray)
22
+ return setNibbleArrayIndex(source, index, value);
23
+ if (format == BinaryBufferFormat.HalfNibbleArray)
24
+ return setHalfNibbleArrayIndex(source, index, value);
25
+ return source[index];
26
+ }
@@ -0,0 +1,2 @@
1
+ import { BinaryBufferData } from "../BinaryBuffer.types";
2
+ export default function BinaryBufferToTypedArray(buffer: BinaryBufferData): Uint16Array | Uint8Array | undefined;
@@ -0,0 +1,43 @@
1
+ import { BinaryBufferFormat } from "../BinaryBuffer.types";
2
+ export default function BinaryBufferToTypedArray(buffer) {
3
+ if (buffer.format == BinaryBufferFormat.Uint16) {
4
+ if (typeof buffer.buffer == "number") {
5
+ const array = new Uint16Array(buffer.byteLength);
6
+ array.fill(buffer.buffer);
7
+ return array;
8
+ }
9
+ return new Uint16Array(buffer.buffer);
10
+ }
11
+ if (buffer.format == BinaryBufferFormat.Uint8) {
12
+ if (typeof buffer.buffer == "number") {
13
+ const array = new Uint8Array(buffer.byteLength);
14
+ array.fill(buffer.buffer);
15
+ return array;
16
+ }
17
+ return new Uint8Array(buffer.buffer);
18
+ }
19
+ if (buffer.format == BinaryBufferFormat.NibbleArray) {
20
+ if (typeof buffer.buffer == "number") {
21
+ const array = new Uint8Array(buffer.byteLength / 2);
22
+ array.fill(buffer.buffer);
23
+ return array;
24
+ }
25
+ return new Uint8Array(buffer.buffer);
26
+ }
27
+ if (buffer.format == BinaryBufferFormat.HalfNibbleArray) {
28
+ if (typeof buffer.buffer == "number") {
29
+ const array = new Uint8Array(buffer.byteLength / 4);
30
+ array.fill(buffer.buffer);
31
+ return array;
32
+ }
33
+ return new Uint8Array(buffer.buffer);
34
+ }
35
+ if (buffer.format == BinaryBufferFormat.BitArray) {
36
+ if (typeof buffer.buffer == "number") {
37
+ const array = new Uint8Array(buffer.byteLength / 8);
38
+ array.fill(buffer.buffer);
39
+ return array;
40
+ }
41
+ return new Uint8Array(buffer.buffer);
42
+ }
43
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./BinaryBuffer";
2
+ export * from "./BinaryBuffer.types";
@@ -0,0 +1,2 @@
1
+ export * from "./BinaryBuffer";
2
+ export * from "./BinaryBuffer.types";
@@ -0,0 +1,46 @@
1
+ /**
2
+ * A class to help with indexing a full flat binary tree defined by the number of levels it has.
3
+ */
4
+ export declare class FlatBinaryTreeIndex {
5
+ levels: number;
6
+ constructor(levels: number);
7
+ /** Gets the number of nodes at a level of the tree */
8
+ getLevelSize(level: number): number;
9
+ /**
10
+ * Gets the flat index of a node indexed by the level it's on and its relative index in that level.
11
+ */
12
+ getIndexAtLevel(level: number, node: number): number;
13
+ /**
14
+ * Gets the level and relative index of a node's flat index.
15
+ */
16
+ getLevelAndIndex(index: number): [level: number, relativeIndex: number];
17
+ /**
18
+ * Gets the flat left child of a node, where the node is indexed by its level and its relative index at that level.
19
+ * @returns -1 if no child exist
20
+ */
21
+ getLeftChildAtLevel(level: number, node: number): number;
22
+ /**
23
+ * Gets the flat right child of a node, where the node is indexed by its level and its relative index at that level.
24
+ * @returns -1 if no child exist
25
+ */
26
+ getRightChildAtLevel(level: number, node: number): number;
27
+ /**
28
+ * Gets the flat index of the parent of a node, where the node is indexed by its level and its relative index at that level.
29
+ * @returns -1 if level has no parent
30
+ */
31
+ getParentAtLevel(level: number, node: number): number;
32
+ /** Gets the flat index of the left child of the node.
33
+ * @returns -1 if no child exist
34
+ */
35
+ getLeftChild(node: number): number;
36
+ /** Gets the flat index of the right child of the node.
37
+ * @returns -1 if no child exist
38
+ */
39
+ getRightChild(node: number): number;
40
+ /** Gets the flat index of the parent of the node.
41
+ * @returns -1 if no parent exist
42
+ */
43
+ getParent(node: number): number;
44
+ /** Gets the total number of nodes in the tree */
45
+ getTotalSize(): number;
46
+ }