@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,5 @@
1
- import { VoxelFaceNameArray } from "../../Math";
2
- import { StringPalette } from "../../Util/StringPalette";
1
+ import { VoxelFaceNameArray } from "../../../Math";
2
+ import { StringPalette } from "../../../Util/StringPalette";
3
3
  import { VoxelRuleGeometry } from "./Classes/VoxelRulesGeometry";
4
4
  import { VoxelRulesModoel } from "./Classes/VoxelRulesModel";
5
5
  const addGeo = (model, stateId, nodes) => {
@@ -15,6 +15,9 @@ const addGeo = (model, stateId, nodes) => {
15
15
  if (!VoxelModelRuleBuilderRegister.geometryPalette.isRegistered(newId))
16
16
  VoxelModelRuleBuilderRegister.geometryPalette.register(newId);
17
17
  const newData = structuredClone(geo.data);
18
+ newData.cullingProcedure = geoLinkNode?.cullingProcedure
19
+ ? geoLinkNode?.cullingProcedure
20
+ : newData.cullingProcedure;
18
21
  for (const node of newData.nodes) {
19
22
  node.tranform = {
20
23
  ...(geoLinkNode.position ? { position: geoLinkNode.position } : {}),
@@ -32,7 +35,7 @@ const addGeo = (model, stateId, nodes) => {
32
35
  return registred;
33
36
  };
34
37
  const getGeometryLinkId = (node) => {
35
- return `${node.geometryId}${node.position ? `-p${node.position.toString()}` : ""}${node.rotation ? `-r${node.rotation.toString()}` : ""}${node.scale ? `-s${node.scale.toString()}` : ""}`.trim();
38
+ return `${node.geometryId}${node.cullingProcedure ? JSON.stringify(node.cullingProcedure) : " "}${node.position ? `-p${node.position.toString()}` : ""}${node.rotation ? `-r${node.rotation.toString()}` : ""}${node.scale ? `-s${node.scale.toString()}` : ""}`.trim();
36
39
  };
37
40
  export class VoxelModelRuleBuilderRegister {
38
41
  static geometryPalette = new StringPalette();
@@ -90,11 +93,32 @@ export class VoxelModelRuleBuilderRegister {
90
93
  }
91
94
  }
92
95
  }
96
+ if (node.type == "triangle") {
97
+ let d = node.divisor ? node.divisor : divisor;
98
+ for (let i = 0; i < 4; i++) {
99
+ const point = node.points[i];
100
+ point[0] /= d[0];
101
+ point[1] /= d[1];
102
+ point[2] /= d[2];
103
+ }
104
+ if (Array.isArray(node.uv)) {
105
+ if (Array.isArray(node.uv[0])) {
106
+ let uvs = node.uv;
107
+ for (let i = 0; i < node.uv.length; i++) {
108
+ uvs[i][0] /= d[0];
109
+ uvs[i][1] /= d[1];
110
+ }
111
+ }
112
+ }
113
+ }
93
114
  }
94
115
  }
95
116
  this.geometry.set(geo.id, new VoxelRuleGeometry(geo.id, {
96
117
  ogData: geo,
97
118
  id: geo.id,
119
+ cullingProcedure: geo.cullingProcedure
120
+ ? geo.cullingProcedure
121
+ : { type: "default" },
98
122
  nodes: geo.nodes.map((node) => ({
99
123
  node,
100
124
  tranform: {},
@@ -111,8 +135,8 @@ export class VoxelModelRuleBuilderRegister {
111
135
  this.models.set(model.id, rulesModel);
112
136
  const divisor = model.divisor ? model.divisor : null;
113
137
  if (divisor) {
114
- for (const stateId in model.shapeStatesNodes) {
115
- const nodes = model.shapeStatesNodes[stateId];
138
+ for (const stateId in model.stateNodes) {
139
+ const nodes = model.stateNodes[stateId];
116
140
  for (const node of nodes) {
117
141
  const d = "divisor" in node ? node.divisor : divisor;
118
142
  if (node.position) {
@@ -127,8 +151,8 @@ export class VoxelModelRuleBuilderRegister {
127
151
  }
128
152
  }
129
153
  }
130
- for (const stateId in model.shapeStatesConditonalNodes) {
131
- const nodes = model.shapeStatesConditonalNodes[stateId];
154
+ for (const stateId in model.conditonalNodes) {
155
+ const nodes = model.conditonalNodes[stateId];
132
156
  for (const node of nodes) {
133
157
  const d = "divisor" in node ? node.divisor : divisor;
134
158
  if (node.position) {
@@ -157,12 +181,12 @@ export class VoxelModelRuleBuilderRegister {
157
181
  }
158
182
  }
159
183
  }
160
- for (const stateId in model.shapeStatesNodes) {
161
- const nodes = model.shapeStatesNodes[stateId];
184
+ for (const stateId in model.stateNodes) {
185
+ const nodes = model.stateNodes[stateId];
162
186
  addGeo(model, stateId, nodes).forEach((_) => rulesModel.registerShapeState(..._));
163
187
  }
164
- for (const stateId in model.shapeStatesConditonalNodes) {
165
- const nodes = model.shapeStatesConditonalNodes[stateId];
188
+ for (const stateId in model.conditonalNodes) {
189
+ const nodes = model.conditonalNodes[stateId];
166
190
  addGeo(model, stateId, nodes).forEach((_) => rulesModel.registerCondiotnalNode(..._));
167
191
  }
168
192
  }
@@ -1,19 +1,8 @@
1
1
  import { Vec2Array, Vec3Array } from "@amodx/math";
2
- import { QuadUVData } from "../Mesher/Geomtry/Geometry.types";
3
- import { VoxelFaceNames } from "../Math";
4
- import { VoxelStateStringSchemaData, VoxelModelRelationsSchemaData, VoxelStateNumberSchemaData } from "../Voxels/State/State.types";
5
- import { VoxelEffectData } from "../Voxels/Effects/VoxelEffects.types";
6
- /**The model data assoicated with the actual voxel. */
7
- export interface VoxelModelConstructorData {
8
- id: string;
9
- modRelationSchema?: VoxelModelRelationsSchemaData[];
10
- modSchema?: VoxelStateStringSchemaData[];
11
- inputs: Record<string, Record<string, any>>;
12
- tagOverrides?: {
13
- isLightSource?: Record<string, boolean>;
14
- lightValue?: Record<string, Vec3Array>;
15
- };
16
- }
2
+ import { VoxelFaceNames } from "../../Math";
3
+ import { VoxelModelRelationsSchemaNodes, VoxelBinaryStateSchemaNode } from "../../Voxels/State/State.types";
4
+ import { VoxelEffectData } from "../../Voxels/Effects/VoxelEffects.types";
5
+ import { VoxelBaseProperties } from "../Types/Voxel.types";
17
6
  /**Define a custom geomtry node */
18
7
  export interface VoxelCustomGeomtryNode {
19
8
  type: "custom";
@@ -24,49 +13,40 @@ export interface VoxelBoxGeometryNode {
24
13
  type: "box";
25
14
  /**Divisor used for transform of this specific node.*/
26
15
  divisor?: Vec3Array;
27
- noShade?: boolean;
28
16
  points: [start: Vec3Array, end: Vec3Array];
29
17
  rotation?: Vec3Array;
30
- faces: Record<VoxelFaceNames, VoxelBoxFaceData>;
18
+ faces: Record<VoxelFaceNames, BaseVoxelQuadData>;
31
19
  }
32
- export interface VoxelBoxFaceData {
20
+ export interface BaseVoxelQuadData {
21
+ doubleSided?: boolean | string;
33
22
  enabled?: boolean;
34
- flip?: boolean;
23
+ /**Id for an input arg for the texture */
35
24
  texture: string;
36
- transparent?: boolean | string;
25
+ /**UV for the face or id for an input arg. */
37
26
  uv: [x1: number, y1: number, x2: number, y2: number] | string;
27
+ /**UV rotation or id for an input arg */
38
28
  rotation?: number | string;
39
29
  }
40
- export interface VoxelQuadGeometryNode {
30
+ export interface VoxelQuadGeometryNode extends BaseVoxelQuadData {
41
31
  type: "quad";
42
32
  /**Divisor used for transform of this specific node.*/
43
33
  divisor?: Vec3Array;
44
- doubleSided?: boolean | string;
45
34
  points: [p1: Vec3Array, p2: Vec3Array, p3: Vec3Array, p4: Vec3Array];
46
- transparent?: boolean | string;
35
+ }
36
+ export interface BaseVoxelTriangleData {
37
+ doubleSided?: boolean;
38
+ /**Id for the input arg for the texture */
47
39
  texture: string;
48
- uv: [x1: number, y1: number, x2: number, y2: number] | QuadUVData | string;
49
- textureRotation?: number | string;
40
+ /**UV for the triangle or id for the input arg. */
41
+ uv: [v1: Vec2Array, v2: Vec2Array, v3: Vec2Array] | string;
42
+ /**UV rotation or id for an input arg */
43
+ rotation?: number | string;
50
44
  }
51
- export interface VoxelTriangleGeometryNode {
45
+ export interface VoxelTriangleGeometryNode extends BaseVoxelTriangleData {
52
46
  type: "triangle";
53
47
  /**Divisor used for transform of this specific node.*/
54
48
  divisor?: Vec3Array;
55
- orientation?: 0 | 1;
56
- doubleSided?: boolean;
57
49
  points: [p1: Vec3Array, p2: Vec3Array, p3: Vec3Array];
58
- transparent?: boolean | string;
59
- texture: string;
60
- uv: [v1: Vec2Array, v2: Vec2Array, v3: Vec2Array] | string;
61
- textureRotation?: number | string;
62
- }
63
- export interface VoxelRawGeometryGeometryNode {
64
- type: "raw-geometry";
65
- positions: number[];
66
- normals: number[];
67
- indices: number[];
68
- uvs: number[];
69
- texture: string;
70
50
  }
71
51
  export interface VoxelGeometryTextureArgument {
72
52
  type: "texture";
@@ -87,13 +67,28 @@ export interface VoxelGeometryBoxUVArgument {
87
67
  type: "box-uv";
88
68
  default: [x1: number, y1: number, x2: number, y2: number];
89
69
  }
70
+ export interface VoxelGeometryUVArgument {
71
+ type: "uv";
72
+ default: Vec2Array[];
73
+ }
90
74
  export interface VoxelGeometryVector3Argument {
91
75
  type: "vector3";
92
76
  default?: Vec3Array;
93
77
  min?: Vec3Array;
94
78
  max?: Vec3Array;
95
79
  }
96
- export type VoxelGeometryNodes = VoxelCustomGeomtryNode | VoxelBoxGeometryNode | VoxelTriangleGeometryNode | VoxelQuadGeometryNode | VoxelRawGeometryGeometryNode;
80
+ export type VoxelGeometryNodes = VoxelCustomGeomtryNode | VoxelBoxGeometryNode | VoxelTriangleGeometryNode | VoxelQuadGeometryNode;
81
+ export type CullingProcedureData = {
82
+ type: "default";
83
+ } | {
84
+ type: "none";
85
+ } | {
86
+ type: "transparent";
87
+ } | {
88
+ type: "custom";
89
+ id: string;
90
+ data: any;
91
+ };
97
92
  export interface VoxelGeometryData {
98
93
  id: string;
99
94
  nodes: VoxelGeometryNodes[];
@@ -104,11 +99,18 @@ export interface VoxelGeometryData {
104
99
  * Ideal for advanced or non cubic models.
105
100
  * */
106
101
  doNotBuildRules?: true;
107
- arguments: Record<string, VoxelGeometryTextureArgument | VoxelGeometryBoxUVArgument | VoxelGeometryVector3Argument | VoxelGeometryIntArgument | VoxelGeometryBooleanArgument | VoxelGeometryFloatArgument>;
102
+ /**
103
+ * Define the culling procedure for faces
104
+ */
105
+ cullingProcedure?: CullingProcedureData;
106
+ arguments: Record<string, VoxelGeometryTextureArgument | VoxelGeometryBoxUVArgument | VoxelGeometryUVArgument | VoxelGeometryVector3Argument | VoxelGeometryIntArgument | VoxelGeometryBooleanArgument | VoxelGeometryFloatArgument>;
108
107
  }
109
108
  export interface VoxelGeometryLinkData {
110
- id: string;
111
109
  geometryId: string;
110
+ /**
111
+ * Overrride the culling procedure for faces
112
+ */
113
+ cullingProcedure?: CullingProcedureData;
112
114
  /**Divisor used for transform of this specific node.*/
113
115
  divisor?: Vec3Array;
114
116
  inputs: Record<string, any>;
@@ -123,9 +125,18 @@ export interface VoxelModelData {
123
125
  /**Divisor used all transforms of geometry nodes. */
124
126
  divisor?: Vec3Array;
125
127
  arguments: Record<string, VoxelGeometryTextureArgument | VoxelGeometryBoxUVArgument | VoxelGeometryVector3Argument | VoxelGeometryIntArgument | VoxelGeometryBooleanArgument | VoxelGeometryFloatArgument>;
126
- shapeStateSchema: (VoxelStateStringSchemaData | VoxelStateNumberSchemaData)[];
128
+ stateSchema: VoxelBinaryStateSchemaNode[];
129
+ /**Define default properties for the voxel. */
130
+ properties?: Partial<VoxelBaseProperties>;
127
131
  effects?: VoxelEffectData[];
128
- relationsSchema: VoxelModelRelationsSchemaData[];
129
- shapeStatesNodes: Record<string, VoxelGeometryLinkData[]>;
130
- shapeStatesConditonalNodes: Record<string, VoxelGeometryLinkData[]>;
132
+ relationsSchema: VoxelModelRelationsSchemaNodes[];
133
+ stateNodes: Record<string, VoxelGeometryLinkData[]>;
134
+ conditonalNodes: Record<string, VoxelGeometryLinkData[]>;
135
+ }
136
+ /**The model data assoicated with the actual voxel. */
137
+ export interface VoxelModelConstructorData {
138
+ id: string;
139
+ modRelationSchema?: VoxelModelRelationsSchemaNodes[];
140
+ modSchema?: VoxelBinaryStateSchemaNode[];
141
+ inputs: Record<string, Record<string, any>>;
131
142
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,17 +1,19 @@
1
1
  import { BinarySchemaNode } from "./BinarySchemaNode";
2
- import { BinarySchemaNodeData } from "../State.types";
2
+ import { VoxelBinaryStateSchemaNode } from "../State.types";
3
3
  type StateObject = (string | number)[];
4
4
  export declare class BinarySchema {
5
5
  nodeMap: Map<string, BinarySchemaNode>;
6
6
  nodes: BinarySchemaNode[];
7
- constructor(schema: BinarySchemaNodeData[]);
7
+ constructor(schema: VoxelBinaryStateSchemaNode[]);
8
8
  private _value;
9
+ toStateString(): string;
9
10
  readString(stateString: string): number;
10
11
  fromStateObject(stateObject: StateObject): number;
11
12
  getStateObject(stateValue: number): StateObject;
12
13
  compareString(stateString: string, ecnoded: number): boolean;
13
14
  startEncoding(value?: number): this;
14
- getNmber(id: string): number;
15
+ get(id: string): string | number;
16
+ getNumber(id: string): number;
15
17
  getValue(id: string): string;
16
18
  setNumber(id: string, value: number): this;
17
19
  setValue(id: string, value: string): this;
@@ -4,14 +4,21 @@ export class BinarySchema {
4
4
  nodes = [];
5
5
  constructor(schema) {
6
6
  for (const node of schema) {
7
- if (node.type == "binary") {
8
- const newNode = new BinarySchemaNode(node);
9
- this.nodes.push(newNode);
10
- this.nodeMap.set(node.id, newNode);
11
- }
7
+ const newNode = new BinarySchemaNode(node);
8
+ this.nodes.push(newNode);
9
+ this.nodeMap.set(node.name, newNode);
12
10
  }
13
11
  }
14
12
  _value = 0;
13
+ toStateString() {
14
+ if (!this.nodes.length)
15
+ return "*";
16
+ let stateString = [];
17
+ for (let i = 0; i < this.nodes.length; i++) {
18
+ stateString.push(`${this.nodes[i].name}=${String(this.get(this.nodes[i].name))}`);
19
+ }
20
+ return stateString.join(",");
21
+ }
15
22
  readString(stateString) {
16
23
  if (stateString == "*")
17
24
  return 0;
@@ -60,10 +67,10 @@ export class BinarySchema {
60
67
  const stateArray = [];
61
68
  for (const node of this.nodes) {
62
69
  if (node.valuePalette) {
63
- stateArray.push(node.id, node.valuePalette.getStringId(node.getValue(stateValue)));
70
+ stateArray.push(node.name, node.valuePalette.getStringId(node.getValue(stateValue)));
64
71
  continue;
65
72
  }
66
- stateArray.push(node.id, node.getValue(stateValue));
73
+ stateArray.push(node.name, node.getValue(stateValue));
67
74
  }
68
75
  return stateArray;
69
76
  }
@@ -98,7 +105,15 @@ export class BinarySchema {
98
105
  this._value = value;
99
106
  return this;
100
107
  }
101
- getNmber(id) {
108
+ get(id) {
109
+ const node = this.nodeMap.get(id);
110
+ if (!node)
111
+ throw new Error(`Node with ${id} does not exist.`);
112
+ if (node.valuePalette)
113
+ return node.valuePalette.getStringId(node.getValue(this._value));
114
+ return node.getValue(this._value);
115
+ }
116
+ getNumber(id) {
102
117
  const node = this.nodeMap.get(id);
103
118
  if (!node)
104
119
  throw new Error(`Node with ${id} does not exist.`);
@@ -1,11 +1,11 @@
1
1
  import { StringPalette } from "../../../Util/StringPalette";
2
- import { BinarySchemaNodeData } from "../State.types";
2
+ import { VoxelBinaryStateSchemaNode } from "../State.types";
3
3
  export declare class BinarySchemaNode {
4
- id: string;
4
+ name: string;
5
5
  valuePalette?: StringPalette;
6
6
  bitIndex: number;
7
7
  bitMask: number;
8
- constructor(data: BinarySchemaNodeData);
8
+ constructor(data: VoxelBinaryStateSchemaNode);
9
9
  getValue(data: number): number;
10
10
  setValue(data: number, value: number): number;
11
11
  }
@@ -1,15 +1,15 @@
1
1
  import { StringPalette } from "../../../Util/StringPalette";
2
2
  export class BinarySchemaNode {
3
- id;
3
+ name;
4
4
  valuePalette;
5
5
  bitIndex = 0;
6
6
  bitMask = 0;
7
7
  constructor(data) {
8
- this.id = data.id;
9
- this.bitIndex = data.index;
10
- this.bitMask = data.mask;
11
- if (data.valuePalette)
12
- this.valuePalette = new StringPalette(data.valuePalette);
8
+ this.name = data.name;
9
+ this.bitIndex = data.bitIndex;
10
+ this.bitMask = (1 << data.bitSize) - 1;
11
+ if (data.values)
12
+ this.valuePalette = new StringPalette(data.values);
13
13
  }
14
14
  getValue(data) {
15
15
  return (data & (this.bitMask << this.bitIndex)) >> this.bitIndex;
@@ -1,10 +1,10 @@
1
- import { VoxelRelationsScehmaNodeData } from "../State.types";
1
+ import { VoxelModelRelationsSchemaNodes } from "../State.types";
2
2
  import { ShapeStateSchemaRelationsCondition } from "./Conditions/ShapeStateSchemaRelationsCondition";
3
3
  import { StateSchema } from "./StateSchema";
4
4
  export declare class ShapeStateRelationsNode {
5
5
  schema: StateSchema;
6
- id: string;
6
+ name: string;
7
7
  conditions: ShapeStateSchemaRelationsCondition[];
8
- constructor(schema: StateSchema, data: VoxelRelationsScehmaNodeData);
8
+ constructor(schema: StateSchema, data: VoxelModelRelationsSchemaNodes);
9
9
  getValue(): number;
10
10
  }
@@ -1,11 +1,11 @@
1
1
  import { SameVoxelCondition } from "./Conditions/SameVoxelConditions";
2
2
  export class ShapeStateRelationsNode {
3
3
  schema;
4
- id;
4
+ name;
5
5
  conditions = [];
6
6
  constructor(schema, data) {
7
7
  this.schema = schema;
8
- this.id = data.id;
8
+ this.name = data.name;
9
9
  for (const cond of data.conditions) {
10
10
  if (cond.type == "same-voxel") {
11
11
  this.conditions.push(new SameVoxelCondition(schema, cond));
@@ -1,13 +1,13 @@
1
1
  import { ShapeStateRelationsNode } from "./ShapeStateRelationsNode";
2
2
  import { BinarySchemaNode } from "./BinarySchemaNode";
3
- import { VoxelModelStateSchemaData } from "../State.types";
4
3
  import { DataCursorInterface } from "../../Cursor/DataCursor.interface";
5
4
  import { Vector3Like } from "@amodx/math";
6
5
  import { VoxelCursorInterface } from "../../Cursor/VoxelCursor.interface";
6
+ import { VoxelStateSchemaData } from "../State.types";
7
7
  export declare class StateSchema {
8
8
  nodes: (BinarySchemaNode | ShapeStateRelationsNode)[];
9
9
  position: Vector3Like;
10
10
  voxel: VoxelCursorInterface;
11
11
  dataCursor: DataCursorInterface;
12
- constructor(schema: VoxelModelStateSchemaData[]);
12
+ constructor(schema: VoxelStateSchemaData);
13
13
  }
@@ -7,13 +7,11 @@ export class StateSchema {
7
7
  voxel;
8
8
  dataCursor;
9
9
  constructor(schema) {
10
- for (const node of schema) {
11
- if (node.type == "binary") {
12
- this.nodes.push(new BinarySchemaNode(node));
13
- }
14
- if (node.type == "relation") {
15
- this.nodes.push(new ShapeStateRelationsNode(this, node));
16
- }
10
+ for (const binary of schema.binary) {
11
+ this.nodes.push(new BinarySchemaNode(binary));
12
+ }
13
+ for (const relational of schema.relational) {
14
+ this.nodes.push(new ShapeStateRelationsNode(this, relational));
17
15
  }
18
16
  }
19
17
  }
@@ -1,16 +1,18 @@
1
1
  import { BinarySchema } from "./Schema/BinarySchema";
2
2
  import { VoxelSchema } from "./Schema/VoxelSchema";
3
- import { BinarySchemaNodeData, VoxelModelStateSchemaData } from "./State.types";
3
+ import { VoxelStateSchemaData, VoxelBinaryStateSchemaNode } from "./State.types";
4
4
  export declare class SchemaRegister {
5
- static modelStaeBaseSchemaData: Map<string, VoxelModelStateSchemaData[]>;
6
- static modelStateSchemaData: Map<string, BinarySchemaNodeData[]>;
7
- static voxelModSchemaData: Map<string, BinarySchemaNodeData[]>;
5
+ static modelStaeBaseSchemaData: Map<string, VoxelStateSchemaData>;
6
+ static stateSchemaData: Map<string, VoxelBinaryStateSchemaNode[]>;
7
+ static modSchemaData: Map<string, VoxelBinaryStateSchemaNode[]>;
8
8
  static modelStaeSchemas: Map<string, BinarySchema>;
9
9
  static voxelModSchemas: Map<string, BinarySchema>;
10
10
  static voxelModelMap: Map<string, string>;
11
11
  static voxelSchemas: Map<string, VoxelSchema>;
12
12
  static hasVoxelSchema(voxelId: string): boolean;
13
+ static getModelSchema(modelId: string): BinarySchema;
14
+ static getVoxelModSchema(voxelId: string): BinarySchema;
13
15
  static getVoxelSchemas(voxelId: string): VoxelSchema;
14
- static registerModel(id: string, data: VoxelModelStateSchemaData[]): void;
15
- static registerVoxel(id: string, modelId: string, data: VoxelModelStateSchemaData[]): void;
16
+ static registerModel(id: string, data: VoxelStateSchemaData): void;
17
+ static registerVoxel(id: string, modelId: string, data: VoxelStateSchemaData): void;
16
18
  }
@@ -2,14 +2,43 @@ import { BinarySchema } from "./Schema/BinarySchema";
2
2
  import { VoxelSchema } from "./Schema/VoxelSchema";
3
3
  export class SchemaRegister {
4
4
  static modelStaeBaseSchemaData = new Map();
5
- static modelStateSchemaData = new Map();
6
- static voxelModSchemaData = new Map();
5
+ static stateSchemaData = new Map([
6
+ ["dve_air", []],
7
+ ]);
8
+ static modSchemaData = new Map([
9
+ ["dve_air", []],
10
+ ]);
7
11
  static modelStaeSchemas = new Map();
8
12
  static voxelModSchemas = new Map();
9
- static voxelModelMap = new Map();
13
+ static voxelModelMap = new Map([["dve_air", "dve_air"]]);
10
14
  static voxelSchemas = new Map();
11
15
  static hasVoxelSchema(voxelId) {
12
- return this.voxelSchemas.has(voxelId);
16
+ if (this.voxelSchemas.has(voxelId))
17
+ return true;
18
+ if (this.stateSchemaData.has(this.voxelModelMap.get(voxelId) || "") &&
19
+ this.modSchemaData.has(voxelId))
20
+ return true;
21
+ return false;
22
+ }
23
+ static getModelSchema(modelId) {
24
+ let stateSchema = this.modelStaeSchemas.get(modelId);
25
+ if (!stateSchema) {
26
+ const schemaData = this.stateSchemaData.get(modelId);
27
+ if (!schemaData)
28
+ throw new Error(`Model ${modelId} is not registered`);
29
+ stateSchema = new BinarySchema(schemaData);
30
+ }
31
+ return stateSchema;
32
+ }
33
+ static getVoxelModSchema(voxelId) {
34
+ let modSchema = this.voxelModSchemas.get(voxelId);
35
+ if (!modSchema) {
36
+ const schemaData = this.modSchemaData.get(voxelId);
37
+ if (!schemaData)
38
+ throw new Error(`Voxel mod sceham [${voxelId}] is not registered`);
39
+ modSchema = new BinarySchema(schemaData);
40
+ }
41
+ return modSchema;
13
42
  }
14
43
  static getVoxelSchemas(voxelId) {
15
44
  if (this.voxelSchemas.has(voxelId)) {
@@ -18,42 +47,30 @@ export class SchemaRegister {
18
47
  const modelId = this.voxelModelMap.get(voxelId);
19
48
  if (!modelId)
20
49
  throw new Error(`Voxel ${voxelId} is not registered`);
21
- let shapeStateSchema = this.modelStaeSchemas.get(modelId);
22
- if (!shapeStateSchema) {
23
- const schemaData = this.modelStateSchemaData.get(modelId);
50
+ let stateSchema = this.modelStaeSchemas.get(modelId);
51
+ if (!stateSchema) {
52
+ const schemaData = this.stateSchemaData.get(modelId);
24
53
  if (!schemaData)
25
54
  throw new Error(`Model ${modelId} is not registered`);
26
- shapeStateSchema = new BinarySchema(schemaData);
55
+ stateSchema = new BinarySchema(schemaData);
27
56
  }
28
57
  let modSchema = this.voxelModSchemas.get(voxelId);
29
58
  if (!modSchema) {
30
- const schemaData = this.voxelModSchemaData.get(voxelId);
59
+ const schemaData = this.modSchemaData.get(voxelId);
31
60
  if (!schemaData)
32
61
  throw new Error(`Voxel ${voxelId} is not registered`);
33
62
  modSchema = new BinarySchema(schemaData);
34
63
  }
35
- const voxelSchema = new VoxelSchema(voxelId, shapeStateSchema, modSchema);
64
+ const voxelSchema = new VoxelSchema(voxelId, stateSchema, modSchema);
36
65
  this.voxelSchemas.set(voxelId, voxelSchema);
37
66
  return voxelSchema;
38
67
  }
39
68
  static registerModel(id, data) {
40
- const binaryData = [];
41
69
  this.modelStaeBaseSchemaData.set(id, data);
42
- for (const node of data) {
43
- if (node.type == "binary") {
44
- binaryData.push(node);
45
- }
46
- }
47
- this.modelStateSchemaData.set(id, binaryData);
70
+ this.stateSchemaData.set(id, data.binary);
48
71
  }
49
72
  static registerVoxel(id, modelId, data) {
50
73
  this.voxelModelMap.set(id, modelId);
51
- const binaryData = [];
52
- for (const node of data) {
53
- if (node.type == "binary") {
54
- binaryData.push(node);
55
- }
56
- }
57
- this.voxelModSchemaData.set(id, binaryData);
74
+ this.modSchemaData.set(id, data.binary);
58
75
  }
59
76
  }
@@ -1,14 +1,16 @@
1
1
  import { Vec3Array } from "@amodx/math";
2
- export interface VoxelStateStringSchemaData {
2
+ /**
3
+ * Binary State
4
+ */
5
+ export type VoxelBinaryStateSchemaNode = {
3
6
  name: string;
4
- type: "string";
5
- values: Record<number, string>;
6
- }
7
- export interface VoxelStateNumberSchemaData {
8
- name: string;
9
- type: "number";
10
- maxValue: number;
11
- }
7
+ bitIndex: number;
8
+ bitSize: number;
9
+ values?: string[];
10
+ };
11
+ /**
12
+ * Relational
13
+ */
12
14
  export interface SameVoxelRelationsConditionData {
13
15
  type: "same-voxel";
14
16
  direction: Vec3Array;
@@ -18,23 +20,10 @@ export interface AnyVoxelRelationsConditionData {
18
20
  direction: Vec3Array;
19
21
  }
20
22
  export type VoxelStateRelationsConditionData = SameVoxelRelationsConditionData | AnyVoxelRelationsConditionData;
21
- export interface VoxelModelRelationsSchemaData {
23
+ export interface VoxelModelRelationsSchemaNodes {
22
24
  name: string;
23
25
  conditions: VoxelStateRelationsConditionData[];
24
26
  }
25
- export type BinarySchemaNodeData = {
26
- id: string;
27
- type: "binary";
28
- valuePalette?: string[];
29
- index: number;
30
- mask: number;
31
- };
32
- export type VoxelRelationsScehmaNodeData = {
33
- id: string;
34
- type: "relation";
35
- conditions: VoxelStateRelationsConditionData[];
36
- };
37
- export type VoxelModelStateSchemaData = BinarySchemaNodeData | VoxelRelationsScehmaNodeData;
38
27
  export declare enum StateCompareOperations {
39
28
  Equals = 0,
40
29
  NotEquals = 1,
@@ -53,3 +42,10 @@ export type StateLogicNode = [
53
42
  value: number
54
43
  ];
55
44
  export type StateLogicStatement = (StateLogicNode | StateLogiceOperations)[];
45
+ /**
46
+ * Voxel State
47
+ */
48
+ export type VoxelStateSchemaData = {
49
+ binary: VoxelBinaryStateSchemaNode[];
50
+ relational: VoxelModelRelationsSchemaNodes[];
51
+ };
@@ -5,5 +5,5 @@ export declare class StateTreeReader {
5
5
  tree: any[];
6
6
  startingIndex: number;
7
7
  constructor(schema: StateSchema, defaultValue: number | undefined, tree: any[]);
8
- getState(shapeState: number): number;
8
+ getState(state: number): number;
9
9
  }
@@ -8,15 +8,14 @@ export class StateTreeReader {
8
8
  this.defaultValue = defaultValue;
9
9
  this.tree = tree;
10
10
  }
11
- getState(shapeState) {
11
+ getState(state) {
12
12
  if (!this.tree.length)
13
13
  return this.defaultValue;
14
14
  let found = -1;
15
15
  let index = this.startingIndex;
16
16
  let curretNode = this.tree;
17
17
  while (found == -1) {
18
- curretNode =
19
- curretNode[index][this.schema.nodes[index].getValue(shapeState)];
18
+ curretNode = curretNode[index][this.schema.nodes[index].getValue(state)];
20
19
  if (typeof curretNode == "number") {
21
20
  return curretNode;
22
21
  }