@divinevoxel/vlox 0.0.78 → 0.0.79

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 (315) hide show
  1. package/Builder/Tools/Wrench/WrenchTool.js +26 -21
  2. package/Builder/VoxelBuildSpace.d.ts +2 -2
  3. package/Builder/VoxelBuildSpace.js +4 -4
  4. package/Builder/World/InitTasks.js +1 -1
  5. package/Cache/Cache.types.d.ts +0 -4
  6. package/Cache/CacheManager.d.ts +1 -2
  7. package/Cache/CacheManager.js +0 -2
  8. package/Contexts/Base/Main/InitDataGenerator.js +10 -2
  9. package/Contexts/Base/Remote/DataSync.types.d.ts +10 -4
  10. package/Contexts/Base/Remote/InitDataSync.js +10 -20
  11. package/Init/StartMesher.js +2 -1
  12. package/Init/StartRenderer.js +2 -1
  13. package/Mesher/{Geomtry → Geometry}/Geometry.types.d.ts +1 -0
  14. package/Mesher/InitMesher.d.ts +1 -2
  15. package/Mesher/InitMesher.js +7 -14
  16. package/Mesher/Items/{Geomtry → Geometry}/ItemGeometryBuilder.d.ts +2 -2
  17. package/Mesher/Items/{Geomtry → Geometry}/ItemGeometryBuilder.js +1 -1
  18. package/Mesher/Items/MeshTexture.d.ts +2 -1
  19. package/Mesher/Items/MeshTexture.js +7 -6
  20. package/Mesher/Items/MeshTextureO.js +1 -1
  21. package/Mesher/Items/Models/ItemModelBuilder.d.ts +1 -1
  22. package/Mesher/Items/Models/ItemModelBuilder.js +2 -2
  23. package/Mesher/Voxels/Base/CompactTemplateMesh.js +1 -1
  24. package/Mesher/Voxels/Base/CompactVoxelSectionMesh.js +2 -2
  25. package/Mesher/Voxels/Base/MeshSectionBase.js +1 -3
  26. package/Mesher/Voxels/{Geomtry → Geometry}/CompactedSectionVoxelMesh.js +3 -3
  27. package/Mesher/Voxels/{Geomtry → Geometry}/VoxelGeometryBuilder.d.ts +2 -2
  28. package/Mesher/Voxels/{Geomtry → Geometry}/VoxelGeometryBuilder.js +1 -1
  29. package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshBVHBuilder.js +1 -1
  30. package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshBVHStructCursor.d.ts +1 -1
  31. package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshBVHStructCursor.js +1 -1
  32. package/Mesher/Voxels/MeshTemplate.js +0 -3
  33. package/Mesher/Voxels/MeshVoxel.js +0 -2
  34. package/Mesher/Voxels/Models/Common/Calc/CalcConstants.d.ts +1 -1
  35. package/Mesher/Voxels/Models/Common/Calc/CalcConstants.js +2 -2
  36. package/Mesher/Voxels/Models/Common/Calc/FaceDataCalc.js +4 -1
  37. package/Mesher/Voxels/Models/Common/Faces/CullRulledFace.js +29 -18
  38. package/Mesher/Voxels/Models/Common/Faces/ShadeRulelessFace.d.ts +1 -1
  39. package/Mesher/Voxels/Models/Common/Faces/ShadeRulledFace.d.ts +1 -1
  40. package/Mesher/Voxels/Models/Common/Faces/ShadeRulledFace.js +31 -21
  41. package/Mesher/Voxels/Models/Common/GetTexture.d.ts +4 -4
  42. package/Mesher/Voxels/Models/Nodes/Custom/Liquid/FlowGradient.d.ts +1 -1
  43. package/Mesher/Voxels/Models/Nodes/Custom/Liquid/FlowGradient.js +1 -1
  44. package/Mesher/Voxels/Models/Nodes/Custom/Liquid/{LiquidGeomtryNode.d.ts → LiquidGeometryNode.d.ts} +2 -2
  45. package/Mesher/Voxels/Models/Nodes/Custom/Liquid/{LiquidGeomtryNode.js → LiquidGeometryNode.js} +5 -5
  46. package/Mesher/Voxels/Models/Nodes/Default/QuadVoxelGeometryNode.d.ts +3 -3
  47. package/Mesher/Voxels/Models/Nodes/Default/QuadVoxelGeometryNode.js +2 -2
  48. package/Mesher/Voxels/Models/Nodes/Default/TriangleVoxelGeometryNode.d.ts +3 -3
  49. package/Mesher/Voxels/Models/Nodes/Default/TriangleVoxelGeometryNode.js +2 -2
  50. package/Mesher/Voxels/Models/Nodes/GeometryNode.d.ts +3 -3
  51. package/Mesher/Voxels/Models/Nodes/GeometryNode.js +3 -3
  52. package/Mesher/Voxels/Models/Nodes/Types/GeometryNode.types.d.ts +7 -0
  53. package/Mesher/Voxels/Models/Nodes/Types/QuadVoxelGometryNodeTypes.d.ts +3 -3
  54. package/Mesher/Voxels/Models/Nodes/Types/TriangleVoxelGometryNodeTypes.d.ts +2 -2
  55. package/Mesher/Voxels/Models/Nodes/VoxelGeometryConstructor.d.ts +2 -3
  56. package/Mesher/Voxels/Models/Nodes/VoxelGeometryConstructor.js +6 -5
  57. package/Mesher/Voxels/Models/Procedures/Default/ConsistentRotationTextureProcedure.d.ts +4 -4
  58. package/Mesher/Voxels/Models/Procedures/Default/OutlinedTextureProcedure.d.ts +4 -4
  59. package/Mesher/Voxels/Models/Procedures/Default/PillarTextureProcedure.d.ts +4 -4
  60. package/Mesher/Voxels/Models/Procedures/Default/PillarTextureProcedure.js +20 -6
  61. package/Mesher/Voxels/Models/Procedures/TextureProcedure.d.ts +2 -2
  62. package/Mesher/Voxels/Models/VoxelConstructor.d.ts +1 -16
  63. package/Mesher/Voxels/Models/VoxelConstructor.js +50 -56
  64. package/Mesher/Voxels/Models/VoxelGeometryBuilderCacheSpace.d.ts +3 -6
  65. package/Mesher/Voxels/Models/VoxelGeometryBuilderCacheSpace.js +40 -44
  66. package/Mesher/Voxels/Models/VoxelModelBuilder.d.ts +4 -4
  67. package/Mesher/Voxels/Models/VoxelModelBuilder.js +4 -4
  68. package/Mesher/Voxels/Models/VoxelModelConstructorRegister.d.ts +1 -14
  69. package/Mesher/Voxels/Models/VoxelModelConstructorRegister.js +7 -21
  70. package/Mesher/Voxels/Models/VoxelModelEffect.d.ts +1 -7
  71. package/Mesher/Voxels/Models/VoxelModelEffect.js +23 -26
  72. package/Renderer/Classes/DVESectionMeshes.d.ts +1 -1
  73. package/Renderer/MeshManager.js +1 -1
  74. package/Settings/EngineSettings.types.d.ts +2 -1
  75. package/Settings/EngineSettings.types.js +1 -0
  76. package/Stats/EngineStats.d.ts +5 -3
  77. package/Stats/EngineStats.js +8 -6
  78. package/Templates/Archive/ArchivedVoxelTemplate.d.ts +1 -1
  79. package/Templates/Archive/ArchivedVoxelTemplate.js +5 -5
  80. package/Templates/Archive/Functions/CreateArchivedTemplate.d.ts +1 -1
  81. package/Templates/Archive/Functions/CreateArchivedTemplate.js +2 -2
  82. package/Templates/Cursor/TemplateCursor.d.ts +1 -1
  83. package/Templates/Cursor/TemplateCursor.js +1 -1
  84. package/Templates/Full/FullVoxelTemplate.d.ts +1 -1
  85. package/Templates/Full/FullVoxelTemplate.js +1 -1
  86. package/Templates/Full/Functions/CreateFullTemplate.d.ts +1 -1
  87. package/Templates/Selection/VoxelBFSSelection.d.ts +1 -1
  88. package/Templates/Selection/VoxelBFSSelection.js +1 -1
  89. package/Templates/Selection/VoxelBoundsSelection.d.ts +1 -1
  90. package/Templates/Selection/VoxelBoundsSelection.js +1 -1
  91. package/Templates/Selection/VoxelPointSelection.d.ts +1 -1
  92. package/Templates/Selection/VoxelPointSelection.js +1 -1
  93. package/Templates/Selection/VoxelSelection.d.ts +1 -1
  94. package/Templates/Selection/VoxelSurfaceSelection.d.ts +1 -1
  95. package/Templates/Selection/VoxelSurfaceSelection.js +1 -1
  96. package/Templates/Selection/VoxelTemplateSelection.d.ts +1 -1
  97. package/Templates/Selection/VoxelTemplateSelection.js +1 -1
  98. package/Templates/Shapes/Selections/BoxVoxelShapeSelection.d.ts +1 -1
  99. package/Templates/Shapes/Selections/BoxVoxelShapeSelection.js +1 -1
  100. package/Templates/Shapes/Selections/ConeVoxelShapeSelection.d.ts +1 -1
  101. package/Templates/Shapes/Selections/ConeVoxelShapeSelection.js +1 -1
  102. package/Templates/Shapes/Selections/CylinderVoxelShapeSelection.d.ts +1 -1
  103. package/Templates/Shapes/Selections/CylinderVoxelShapeSelection.js +1 -1
  104. package/Templates/Shapes/Selections/EllipsoidVoxelShapeSelection.d.ts +1 -1
  105. package/Templates/Shapes/Selections/EllipsoidVoxelShapeSelection.js +1 -1
  106. package/Templates/Shapes/Selections/OctahedronVoxelShapeSelection.d.ts +1 -1
  107. package/Templates/Shapes/Selections/OctahedronVoxelShapeSelection.js +1 -1
  108. package/Templates/Shapes/Selections/PyramidVoxelShapeSelection.d.ts +1 -1
  109. package/Templates/Shapes/Selections/PyramidVoxelShapeSelection.js +1 -1
  110. package/Templates/Shapes/Selections/SphereVoxelShapeSelection.d.ts +1 -1
  111. package/Templates/Shapes/Selections/SphereVoxelShapeSelection.js +1 -1
  112. package/Templates/Shapes/Selections/TorusVoxelShapeSelection.d.ts +1 -1
  113. package/Templates/Shapes/Selections/TorusVoxelShapeSelection.js +1 -1
  114. package/Templates/Shapes/VoxelShapeTemplate.d.ts +1 -1
  115. package/Templates/Shapes/VoxelShapeTemplate.js +1 -1
  116. package/Templates/VoxelTemplates.types.d.ts +1 -1
  117. package/Textures/Functions/BuildTextureData.js +4 -52
  118. package/Tools/Brush/Brush.js +5 -5
  119. package/Util/StringPalette.js +2 -0
  120. package/Voxels/Archive/VoxelPaletteArchiveReader.js +7 -6
  121. package/Voxels/Archive/VoxelPaletteArechive.js +8 -8
  122. package/Voxels/Cursor/DataCursor.interface.d.ts +1 -1
  123. package/Voxels/Cursor/VoxelCursor.interface.d.ts +0 -2
  124. package/Voxels/Cursor/VoxelCursor.interface.js +14 -16
  125. package/Voxels/Cursor/VoxelCursor.js +5 -5
  126. package/Voxels/Data/GeometryLUT.d.ts +32 -0
  127. package/Voxels/Data/GeometryLUT.js +50 -0
  128. package/Voxels/Data/VoxelLUT.d.ts +83 -0
  129. package/Voxels/Data/VoxelLUT.js +119 -0
  130. package/Voxels/Data/VoxelTagsRegister.d.ts +2 -2
  131. package/Voxels/Data/VoxelTagsRegister.js +2 -2
  132. package/Voxels/Functions/BuildLUTs.d.ts +6 -0
  133. package/Voxels/Functions/BuildLUTs.js +361 -0
  134. package/Voxels/Functions/BuildTagData.d.ts +4 -2
  135. package/Voxels/Functions/BuildTagData.js +15 -32
  136. package/Voxels/Functions/Geometry/BuildGeometryLUT.d.ts +11 -0
  137. package/Voxels/Functions/Geometry/BuildGeometryLUT.js +395 -0
  138. package/Voxels/{Models/Rules/Functions/Compile/Nodes → Functions/Geometry}/CalcFunctions.d.ts +3 -3
  139. package/Voxels/{Models/Rules/Functions/Compile/Nodes → Functions/Geometry}/CalcFunctions.js +2 -2
  140. package/Voxels/Functions/Geometry/Compile/BuildCompiled.d.ts +4 -0
  141. package/Voxels/Functions/Geometry/Compile/BuildCompiled.js +25 -0
  142. package/Voxels/Functions/Geometry/Compile/BuildCompiledBox.d.ts +4 -0
  143. package/Voxels/Functions/Geometry/Compile/BuildCompiledBox.js +13 -0
  144. package/Voxels/Functions/Geometry/Compile/BuildCompiledQuad.d.ts +4 -0
  145. package/Voxels/Functions/Geometry/Compile/BuildCompiledQuad.js +41 -0
  146. package/Voxels/Functions/Geometry/Compile/BuildCompiledTri.d.ts +4 -0
  147. package/Voxels/Functions/Geometry/Compile/BuildCompiledTri.js +44 -0
  148. package/Voxels/Functions/Geometry/GeometryLUT.types.d.ts +7 -0
  149. package/Voxels/Functions/Geometry/Inputs/BaseFunctions.d.ts +4 -0
  150. package/Voxels/Functions/Geometry/Inputs/BaseFunctions.js +28 -0
  151. package/Voxels/Functions/Geometry/Inputs/BuildBoxInputs.d.ts +5 -0
  152. package/Voxels/Functions/Geometry/Inputs/BuildBoxInputs.js +8 -0
  153. package/Voxels/Functions/Geometry/Inputs/BuildCustomInputs.d.ts +5 -0
  154. package/Voxels/Functions/Geometry/Inputs/BuildCustomInputs.js +41 -0
  155. package/Voxels/Functions/Geometry/Inputs/BuildQuadInputs.d.ts +5 -0
  156. package/Voxels/Functions/Geometry/Inputs/BuildQuadInputs.js +103 -0
  157. package/Voxels/Functions/Geometry/Inputs/BuildTriangleInputs.d.ts +5 -0
  158. package/Voxels/Functions/Geometry/Inputs/BuildTriangleInputs.js +101 -0
  159. package/Voxels/Functions/Geometry/Inputs/BuldInputs.d.ts +4 -0
  160. package/Voxels/Functions/Geometry/Inputs/BuldInputs.js +22 -0
  161. package/Voxels/Functions/Geometry/Rules/BuildRules.d.ts +1 -0
  162. package/Voxels/{Models/Rules/Functions → Functions/Geometry/Rules}/BuildRules.js +23 -23
  163. package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionFaceRegister.d.ts +2 -2
  164. package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionQuadFace.js +1 -1
  165. package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionTriangleFace.js +1 -1
  166. package/Voxels/{Models/Indexing → Geometry}/AOOcclusionFaceIndex.d.ts +2 -2
  167. package/Voxels/Geometry/AOOcclusionFaceIndex.js +28 -0
  168. package/Voxels/{Models/Indexing → Geometry}/CulledOcclusionFaceIndex.d.ts +2 -2
  169. package/Voxels/Geometry/CulledOcclusionFaceIndex.js +27 -0
  170. package/Voxels/Geometry/VoxelGeometry.types.d.ts +105 -0
  171. package/Voxels/Geometry/VoxelGeometry.types.js +1 -0
  172. package/Voxels/Indexes/VoxelIndex.js +15 -21
  173. package/Voxels/InitVoxelData.d.ts +4 -3
  174. package/Voxels/InitVoxelData.js +53 -110
  175. package/Voxels/Interaction/Functions/PickVoxel.js +1 -1
  176. package/Voxels/Logic/Classes/Types/VoxelLogicStateType.js +2 -2
  177. package/Voxels/Logic/Classes/VoxelLogic.d.ts +2 -2
  178. package/Voxels/Logic/Classes/VoxelLogic.js +2 -2
  179. package/Voxels/Logic/VoxelLogicRegister.js +2 -2
  180. package/Voxels/Models/Defaults/CubeVoxelGeometry.d.ts +1 -1
  181. package/Voxels/Models/Defaults/CubeVoxelModels.d.ts +1 -0
  182. package/Voxels/Models/Defaults/CubeVoxelModels.js +45 -0
  183. package/Voxels/Models/Defaults/Examples.d.ts +2 -1
  184. package/Voxels/Models/Defaults/Examples.js +28 -28
  185. package/Voxels/Models/Defaults/FarmVoxelModels.d.ts +3 -2
  186. package/Voxels/Models/Defaults/FarmVoxelModels.js +3 -3
  187. package/Voxels/Models/Defaults/LiquidVoxelModel.d.ts +2 -1
  188. package/Voxels/Models/Defaults/PanelVoxelGeometry.d.ts +1 -1
  189. package/Voxels/Models/VoxelModel.types.d.ts +2 -109
  190. package/Voxels/State/{Schema → Reltional}/Conditions/SameVoxelConditions.d.ts +2 -2
  191. package/Voxels/State/Reltional/Conditions/SameVoxelConditions.js +19 -0
  192. package/Voxels/State/Reltional/Conditions/ShapeStateSchemaRelationsCondition.d.ts +6 -0
  193. package/Voxels/State/Reltional/Conditions/ShapeStateSchemaRelationsCondition.js +6 -0
  194. package/Voxels/State/Reltional/ReltionalStateBuilder.d.ts +18 -0
  195. package/Voxels/State/Reltional/ReltionalStateBuilder.js +42 -0
  196. package/Voxels/State/Schema/BinarySchema.d.ts +1 -0
  197. package/Voxels/State/Schema/BinarySchema.js +3 -0
  198. package/Voxels/State/State.types.d.ts +0 -25
  199. package/Voxels/State/State.types.js +1 -22
  200. package/Voxels/State/VoxelSchemas.d.ts +22 -0
  201. package/Voxels/State/VoxelSchemas.js +60 -0
  202. package/Voxels/Types/PaintVoxelData.js +55 -45
  203. package/Voxels/Types/VoxelModelCompiledData.types.d.ts +4 -22
  204. package/World/Archive/Classes/ImportedSection.js +8 -8
  205. package/World/Archive/Functions/Sector/ArchiveSector.js +3 -3
  206. package/World/Cursor/SectionCursor.d.ts +1 -1
  207. package/World/Cursor/SectionCursor.js +1 -1
  208. package/World/Cursor/SectorCursor.d.ts +1 -1
  209. package/World/Cursor/SectorCursor.js +1 -1
  210. package/World/Cursor/WorldCursor.d.ts +1 -1
  211. package/World/Cursor/WorldCursor.js +1 -1
  212. package/World/Lock/Function/LockSectors.d.ts +1 -1
  213. package/World/Lock/Function/UnLockSectors.d.ts +1 -1
  214. package/World/SnapShot/SectionSnapShotCursor.d.ts +1 -1
  215. package/World/SnapShot/SectionSnapShotCursor.js +1 -1
  216. package/World/SnapShot/SnapShots.d.ts +1 -1
  217. package/World/SnapShot/SnapShots.js +1 -1
  218. package/WorldSimulation/Dimensions/SimulationSector.d.ts +1 -1
  219. package/WorldSimulation/Dimensions/SimulationSector.js +2 -2
  220. package/WorldSimulation/Tools/SimulationBrush.js +9 -9
  221. package/WorldSimulation/Voxels/Behaviors/Types/CropVoxelBehavior.js +4 -2
  222. package/WorldSimulation/Voxels/Behaviors/Types/FarmlandVoxelBehavior.js +5 -2
  223. package/WorldSimulation/WorldSimulation.d.ts +1 -0
  224. package/WorldSimulation/WorldSimulation.js +2 -1
  225. package/package.json +1 -1
  226. package/Mesher/Voxels/Models/Nodes/Types/GeomtryNode.types.d.ts +0 -7
  227. package/Voxels/Data/VoxelPalettesRegister.d.ts +0 -18
  228. package/Voxels/Data/VoxelPalettesRegister.js +0 -24
  229. package/Voxels/Functions/BuildPaletteData.d.ts +0 -6
  230. package/Voxels/Functions/BuildPaletteData.js +0 -87
  231. package/Voxels/Functions/BuildStateData.d.ts +0 -23
  232. package/Voxels/Functions/BuildStateData.js +0 -327
  233. package/Voxels/Models/CompiledVoxelModel.types.d.ts +0 -46
  234. package/Voxels/Models/Indexing/AOOcclusionFaceIndex.js +0 -28
  235. package/Voxels/Models/Indexing/CulledOcclusionFaceIndex.js +0 -27
  236. package/Voxels/Models/Rules/Classes/GeomtryInput.d.ts +0 -16
  237. package/Voxels/Models/Rules/Classes/GeomtryInput.js +0 -85
  238. package/Voxels/Models/Rules/Classes/VoxelRulesGeometry.d.ts +0 -22
  239. package/Voxels/Models/Rules/Classes/VoxelRulesGeometry.js +0 -15
  240. package/Voxels/Models/Rules/Classes/VoxelRulesModel.d.ts +0 -19
  241. package/Voxels/Models/Rules/Classes/VoxelRulesModel.js +0 -29
  242. package/Voxels/Models/Rules/Functions/BuildFinalInputs.d.ts +0 -5
  243. package/Voxels/Models/Rules/Functions/BuildFinalInputs.js +0 -87
  244. package/Voxels/Models/Rules/Functions/BuildRules.d.ts +0 -7
  245. package/Voxels/Models/Rules/Functions/Compile/CompileGeomtryNodes.d.ts +0 -4
  246. package/Voxels/Models/Rules/Functions/Compile/CompileGeomtryNodes.js +0 -39
  247. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileBoxGeometryNode.d.ts +0 -5
  248. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileBoxGeometryNode.js +0 -14
  249. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileQuadGeometryNode.d.ts +0 -6
  250. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileQuadGeometryNode.js +0 -92
  251. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileTriangleGeometryNode.d.ts +0 -6
  252. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileTriangleGeometryNode.js +0 -115
  253. package/Voxels/Models/Rules/VoxelModelRuleBuilderRegister.d.ts +0 -18
  254. package/Voxels/Models/Rules/VoxelModelRuleBuilderRegister.js +0 -202
  255. package/Voxels/State/CondiotnalTreeReader.d.ts +0 -10
  256. package/Voxels/State/CondiotnalTreeReader.js +0 -23
  257. package/Voxels/State/LogicStatementReader.d.ts +0 -9
  258. package/Voxels/State/LogicStatementReader.js +0 -50
  259. package/Voxels/State/Schema/Conditions/SameVoxelConditions.js +0 -19
  260. package/Voxels/State/Schema/Conditions/ShapeStateSchemaRelationsCondition.d.ts +0 -6
  261. package/Voxels/State/Schema/Conditions/ShapeStateSchemaRelationsCondition.js +0 -6
  262. package/Voxels/State/Schema/ShapeStateRelationsNode.d.ts +0 -10
  263. package/Voxels/State/Schema/ShapeStateRelationsNode.js +0 -26
  264. package/Voxels/State/Schema/StateSchema.d.ts +0 -13
  265. package/Voxels/State/Schema/StateSchema.js +0 -17
  266. package/Voxels/State/Schema/VoxelSchema.d.ts +0 -7
  267. package/Voxels/State/Schema/VoxelSchema.js +0 -10
  268. package/Voxels/State/SchemaRegister.d.ts +0 -18
  269. package/Voxels/State/SchemaRegister.js +0 -76
  270. package/Voxels/State/StateTreeReader.d.ts +0 -9
  271. package/Voxels/State/StateTreeReader.js +0 -37
  272. /package/Mesher/{Geomtry → Geometry}/Functions/GetBounds.d.ts +0 -0
  273. /package/Mesher/{Geomtry → Geometry}/Functions/GetBounds.js +0 -0
  274. /package/Mesher/{Geomtry → Geometry}/Geometry.types.js +0 -0
  275. /package/Mesher/{Geomtry → Geometry}/Primitives/Quad.d.ts +0 -0
  276. /package/Mesher/{Geomtry → Geometry}/Primitives/Quad.js +0 -0
  277. /package/Mesher/{Geomtry → Geometry}/Primitives/QuadVertexData.d.ts +0 -0
  278. /package/Mesher/{Geomtry → Geometry}/Primitives/QuadVertexData.js +0 -0
  279. /package/Mesher/{Geomtry → Geometry}/Primitives/Triangle.d.ts +0 -0
  280. /package/Mesher/{Geomtry → Geometry}/Primitives/Triangle.js +0 -0
  281. /package/Mesher/{Geomtry → Geometry}/Primitives/TriangleVertexData.d.ts +0 -0
  282. /package/Mesher/{Geomtry → Geometry}/Primitives/TriangleVertexData.js +0 -0
  283. /package/Mesher/{Geomtry → Geometry}/Primitives/index.d.ts +0 -0
  284. /package/Mesher/{Geomtry → Geometry}/Primitives/index.js +0 -0
  285. /package/Mesher/{Geomtry → Geometry}/Proto/ProtoMesh.d.ts +0 -0
  286. /package/Mesher/{Geomtry → Geometry}/Proto/ProtoMesh.js +0 -0
  287. /package/Mesher/{Geomtry → Geometry}/Proto/ProtoMeshBuffer.d.ts +0 -0
  288. /package/Mesher/{Geomtry → Geometry}/Proto/ProtoMeshBuffer.js +0 -0
  289. /package/Mesher/{Geomtry → Geometry}/Shapes/Box.d.ts +0 -0
  290. /package/Mesher/{Geomtry → Geometry}/Shapes/Box.js +0 -0
  291. /package/Mesher/{Geomtry → Geometry}/Transform/TransformBox.d.ts +0 -0
  292. /package/Mesher/{Geomtry → Geometry}/Transform/TransformBox.js +0 -0
  293. /package/Mesher/{Geomtry → Geometry}/Transform/TransformQuad.d.ts +0 -0
  294. /package/Mesher/{Geomtry → Geometry}/Transform/TransformQuad.js +0 -0
  295. /package/Mesher/{Geomtry → Geometry}/Transform/TransformTriangle.d.ts +0 -0
  296. /package/Mesher/{Geomtry → Geometry}/Transform/TransformTriangle.js +0 -0
  297. /package/Mesher/{Geomtry → Geometry}/index.d.ts +0 -0
  298. /package/Mesher/{Geomtry → Geometry}/index.js +0 -0
  299. /package/Mesher/Items/{Geomtry → Geometry}/ItemMeshVertexStructCursor.d.ts +0 -0
  300. /package/Mesher/Items/{Geomtry → Geometry}/ItemMeshVertexStructCursor.js +0 -0
  301. /package/Mesher/Voxels/{Geomtry → Geometry}/CompactedSectionVoxelMesh.d.ts +0 -0
  302. /package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshBVHBuilder.d.ts +0 -0
  303. /package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshVertexStructCursor.d.ts +0 -0
  304. /package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshVertexStructCursor.js +0 -0
  305. /package/Mesher/Voxels/{Geomtry → Geometry}/VoxelShaderData.d.ts +0 -0
  306. /package/Mesher/Voxels/{Geomtry → Geometry}/VoxelShaderData.js +0 -0
  307. /package/Mesher/Voxels/Models/Nodes/Types/{GeomtryNode.types.js → GeometryNode.types.js} +0 -0
  308. /package/Voxels/{Models/CompiledVoxelModel.types.js → Functions/Geometry/GeometryLUT.types.js} +0 -0
  309. /package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionFace.d.ts +0 -0
  310. /package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionFace.js +0 -0
  311. /package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionFaceRegister.js +0 -0
  312. /package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionQuadFace.d.ts +0 -0
  313. /package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionTriangleFace.d.ts +0 -0
  314. /package/Voxels/{Models/Indexing → Geometry}/VoxelRelativeCubeIndex.d.ts +0 -0
  315. /package/Voxels/{Models/Indexing → Geometry}/VoxelRelativeCubeIndex.js +0 -0
@@ -0,0 +1,361 @@
1
+ import { VoxelLUT } from "../Data/VoxelLUT";
2
+ import { BinarySchema } from "../State/Schema/BinarySchema";
3
+ import { VoxelSchemas } from "../State/VoxelSchemas";
4
+ import { EngineStats } from "../../Stats/EngineStats";
5
+ import { BuildGeomeetryLUT } from "./Geometry/BuildGeometryLUT";
6
+ import { ReltionalStateBuilder } from "../State/Reltional/ReltionalStateBuilder";
7
+ function recurse(index, current, result, valuePairs) {
8
+ if (index === valuePairs.length) {
9
+ result.push(current.join(","));
10
+ return;
11
+ }
12
+ const [key, values] = valuePairs[index];
13
+ for (const value of values) {
14
+ current.push(`${key}=${value}`);
15
+ recurse(index + 1, current, result, valuePairs);
16
+ current.pop();
17
+ }
18
+ }
19
+ function getAllCombinations(valuePairs) {
20
+ const result = [];
21
+ recurse(0, [], result, valuePairs);
22
+ return result;
23
+ }
24
+ function buildScehmas(voxels, models) {
25
+ //build state schemas
26
+ for (const model of models) {
27
+ VoxelLUT.models.register(model.id);
28
+ //build state schema
29
+ const schemaNodes = [];
30
+ for (const schemaNode of model.stateSchema) {
31
+ const node = {
32
+ name: schemaNode.name,
33
+ bitIndex: schemaNode.bitIndex,
34
+ bitSize: schemaNode.bitSize,
35
+ };
36
+ if (schemaNode.values) {
37
+ node.values = schemaNode.values;
38
+ }
39
+ schemaNodes.push(node);
40
+ }
41
+ const stateSchema = new BinarySchema(schemaNodes);
42
+ VoxelSchemas.state.set(model.id, stateSchema);
43
+ //build reltional state schema
44
+ const reltionalSchemaNodes = [];
45
+ let bitIndex = 0;
46
+ for (const schemaNode of model.relationsSchema) {
47
+ const node = {
48
+ name: schemaNode.name,
49
+ bitIndex: bitIndex,
50
+ bitSize: 1,
51
+ values: ["false", "true"],
52
+ };
53
+ bitIndex++;
54
+ reltionalSchemaNodes.push(node);
55
+ }
56
+ const reltionalStateSchema = new BinarySchema(reltionalSchemaNodes);
57
+ VoxelSchemas.reltioanlState.set(model.id, reltionalStateSchema);
58
+ const reltionalStateBuilder = new ReltionalStateBuilder(reltionalStateSchema, model.relationsSchema);
59
+ VoxelSchemas.reltionalStateBuilder.set(model.id, reltionalStateBuilder);
60
+ }
61
+ //build mod schemas
62
+ for (const voxel of voxels) {
63
+ const modelData = voxel.properties["dve_model_data"];
64
+ const trueVoxelId = VoxelLUT.voxelIds.register(voxel.id);
65
+ VoxelLUT.materialMap[trueVoxelId] = VoxelLUT.material.getNumberId(voxel.properties["dve_rendered_material"] || "dve_solid");
66
+ VoxelLUT.substanceMap[trueVoxelId] = VoxelLUT.material.getNumberId(voxel.properties["dve_substance"] || "dve_solid");
67
+ if (!modelData)
68
+ continue;
69
+ VoxelLUT.modelsIndex[trueVoxelId] = VoxelLUT.models.getNumberId(modelData.id);
70
+ //build state schema
71
+ const schemaNodes = [];
72
+ if (modelData.modSchema) {
73
+ for (const schemaNode of modelData.modSchema) {
74
+ const node = {
75
+ name: schemaNode.name,
76
+ bitIndex: schemaNode.bitIndex,
77
+ bitSize: schemaNode.bitSize,
78
+ };
79
+ if (schemaNode.values) {
80
+ node.values = schemaNode.values;
81
+ }
82
+ schemaNodes.push(node);
83
+ }
84
+ }
85
+ const stateSchema = new BinarySchema(schemaNodes);
86
+ VoxelSchemas.mod.set(voxel.id, stateSchema);
87
+ //build reltional mod schema
88
+ const reltionalSchemaNodes = [];
89
+ if (modelData.modRelationSchema) {
90
+ let bitIndex = 0;
91
+ for (const schemaNode of modelData.modRelationSchema) {
92
+ const node = {
93
+ name: schemaNode.name,
94
+ bitIndex: bitIndex,
95
+ bitSize: 1,
96
+ values: ["false", "true"],
97
+ };
98
+ bitIndex++;
99
+ reltionalSchemaNodes.push(node);
100
+ }
101
+ }
102
+ const reltionalStateSchema = new BinarySchema(reltionalSchemaNodes);
103
+ VoxelSchemas.reltioanlMod.set(voxel.id, reltionalStateSchema);
104
+ const reltionalModBuilder = new ReltionalStateBuilder(reltionalStateSchema, modelData.modRelationSchema || []);
105
+ VoxelSchemas.reltionalModBuilder.set(voxel.id, reltionalModBuilder);
106
+ }
107
+ }
108
+ function buildStatePalette(voxels, models) {
109
+ const modelStateArray = new Map();
110
+ for (const model of models) {
111
+ const schema = VoxelSchemas.state.get(model.id);
112
+ const valuePairs = [];
113
+ for (const node of schema.nodes) {
114
+ valuePairs.push([
115
+ node.name,
116
+ node.valuePalette
117
+ ? node.valuePalette._palette
118
+ : new Array(node.bitMask + 1).fill(0).map((_, i) => `${i}`),
119
+ ]);
120
+ }
121
+ const stateStrings = getAllCombinations(valuePairs);
122
+ const statePalette = [];
123
+ for (const state of stateStrings) {
124
+ const value = schema.readString(!state ? "*" : state);
125
+ statePalette.push(value);
126
+ }
127
+ modelStateArray.set(model.id, statePalette);
128
+ }
129
+ const finalPalette = [[0, 0, 0]];
130
+ const finalPaletteRecord = [[[0]]];
131
+ let voxelIdCount = 1;
132
+ for (const voxel of voxels) {
133
+ const modelData = voxel.properties["dve_model_data"];
134
+ if (!modelData)
135
+ continue;
136
+ const schema = VoxelSchemas.mod.get(voxel.id);
137
+ const valuePairs = [];
138
+ if (schema) {
139
+ for (const node of schema.nodes) {
140
+ valuePairs.push([
141
+ node.name,
142
+ node.valuePalette
143
+ ? node.valuePalette._palette
144
+ : new Array(node.bitMask + 1).fill(0).map((_, i) => `${i}`),
145
+ ]);
146
+ }
147
+ }
148
+ const stateStrings = getAllCombinations(valuePairs);
149
+ const modPalette = [];
150
+ if (valuePairs.length && schema) {
151
+ for (const state of stateStrings) {
152
+ const value = schema.readString(!state ? "*" : state);
153
+ modPalette.push(value);
154
+ }
155
+ }
156
+ else {
157
+ modPalette.push(0);
158
+ }
159
+ const voxelId = VoxelLUT.voxelIds.getNumberId(voxel.id);
160
+ const statePalette = modelStateArray.get(modelData.id);
161
+ VoxelLUT.totalStates[voxelId] = statePalette.length;
162
+ VoxelLUT.totalMods[voxelId] = modPalette.length;
163
+ finalPaletteRecord[voxelId] = new Array(modPalette.length).fill(-1);
164
+ for (let modIndex = 0; modIndex < modPalette.length; modIndex++) {
165
+ finalPaletteRecord[voxelId][modPalette[modIndex]] = new Array(statePalette.length).fill(-1);
166
+ for (let stateIndex = 0; stateIndex < statePalette.length; stateIndex++) {
167
+ finalPalette[voxelIdCount] = [
168
+ voxelId,
169
+ statePalette[stateIndex],
170
+ modPalette[modIndex],
171
+ ];
172
+ finalPaletteRecord[voxelId][modPalette[modIndex]][statePalette[stateIndex]] = voxelIdCount;
173
+ VoxelLUT.voxelIdToModelState[voxelIdCount] = statePalette[stateIndex];
174
+ voxelIdCount++;
175
+ }
176
+ }
177
+ }
178
+ EngineStats.palette.paletteSize = finalPalette.length;
179
+ VoxelLUT.voxels = finalPalette;
180
+ VoxelLUT.voxelRecord = finalPaletteRecord;
181
+ }
182
+ function buildReltionalStatePalette(voxels, models) {
183
+ const modelStateArray = new Map();
184
+ for (const model of models) {
185
+ const schema = VoxelSchemas.reltioanlState.get(model.id);
186
+ const valuePairs = [];
187
+ for (const node of schema.nodes) {
188
+ valuePairs.push([node.name, ["false", "true"]]);
189
+ }
190
+ const stateStrings = getAllCombinations(valuePairs);
191
+ const statePalette = [];
192
+ for (const state of stateStrings) {
193
+ const value = schema.readString(!state ? "*" : state);
194
+ statePalette.push(value);
195
+ }
196
+ modelStateArray.set(model.id, statePalette);
197
+ }
198
+ const finalPalette = [[0, 0, 0]];
199
+ const finalPaletteRecord = [[[0]]];
200
+ let voxelIdCount = 1;
201
+ for (const voxel of voxels) {
202
+ const modelData = voxel.properties["dve_model_data"];
203
+ if (!modelData)
204
+ continue;
205
+ const schema = VoxelSchemas.reltioanlMod.get(voxel.id);
206
+ const valuePairs = [];
207
+ if (schema) {
208
+ for (const node of schema.nodes) {
209
+ valuePairs.push([node.name, ["false", "true"]]);
210
+ }
211
+ }
212
+ const stateStrings = getAllCombinations(valuePairs);
213
+ const modPalette = [];
214
+ if (valuePairs.length && schema) {
215
+ for (const state of stateStrings) {
216
+ const value = schema.readString(!state ? "*" : state);
217
+ modPalette.push(value);
218
+ }
219
+ }
220
+ else {
221
+ modPalette.push(0);
222
+ }
223
+ const voxelId = VoxelLUT.voxelIds.getNumberId(voxel.id);
224
+ const statePalette = modelStateArray.get(modelData.id);
225
+ VoxelLUT.totalReltionalStates[voxelId] = statePalette.length;
226
+ VoxelLUT.totalReltionalMods[voxelId] = modPalette.length;
227
+ finalPaletteRecord[voxelId] = new Array(modPalette.length).fill(-1);
228
+ for (let modIndex = 0; modIndex < modPalette.length; modIndex++) {
229
+ finalPaletteRecord[voxelId][modPalette[modIndex]] = new Array(statePalette.length).fill(-1);
230
+ for (let stateIndex = 0; stateIndex < statePalette.length; stateIndex++) {
231
+ finalPalette[voxelIdCount] = [
232
+ voxelId,
233
+ statePalette[stateIndex],
234
+ modPalette[modIndex],
235
+ ];
236
+ finalPaletteRecord[voxelId][modPalette[modIndex]][statePalette[stateIndex]] = voxelIdCount;
237
+ voxelIdCount++;
238
+ }
239
+ }
240
+ }
241
+ EngineStats.palette.reltionalPaletteSize = finalPalette.length;
242
+ VoxelLUT.reltioanlVoxels = finalPalette;
243
+ VoxelLUT.reltionalVoxelRecord = finalPaletteRecord;
244
+ }
245
+ export function BuildLUTs(materials, substances, voxels, geometry, models) {
246
+ for (const material of materials) {
247
+ VoxelLUT.material.register(material.id);
248
+ }
249
+ for (const substance of substances) {
250
+ VoxelLUT.substance.register(substance.id);
251
+ }
252
+ buildScehmas(voxels, models);
253
+ buildStatePalette(voxels, models);
254
+ buildReltionalStatePalette(voxels, models);
255
+ const { finalModelStateMap, finalModelConditionalMap, finalVoxelStateInputMap, finalVoxelConditionalInputMap, } = BuildGeomeetryLUT(voxels, geometry, models);
256
+ for (const voxel of voxels) {
257
+ const voxelModelData = voxel.properties["dve_model_data"];
258
+ if (!voxelModelData)
259
+ continue;
260
+ const trueVoxelId = VoxelLUT.voxelIds.getNumberId(voxel.id);
261
+ const modelStateMap = finalModelStateMap.get(voxelModelData.id);
262
+ const modelConditonalMap = finalModelConditionalMap.get(voxelModelData.id);
263
+ const stateSchema = VoxelSchemas.state.get(voxelModelData.id);
264
+ const reltionalStateSchema = VoxelSchemas.reltioanlState.get(voxelModelData.id);
265
+ const modSchema = VoxelSchemas.mod.get(voxel.id);
266
+ const reltionalModSchema = VoxelSchemas.reltioanlMod.get(voxel.id);
267
+ const inputs = finalVoxelStateInputMap.get(voxel.id);
268
+ const conditonalInputs = finalVoxelConditionalInputMap.get(voxel.id);
269
+ for (const modKey in voxelModelData.inputs) {
270
+ const [modString, modReltionalString] = modKey.split("|");
271
+ const modValue = modSchema ? modSchema.readString(modString) : 0;
272
+ const reltionalModValue = modReltionalString && reltionalModSchema
273
+ ? reltionalModSchema.readString(modReltionalString)
274
+ : 0;
275
+ for (const stateKey in modelStateMap) {
276
+ const [stateString, reltionalString] = stateKey.split("|");
277
+ const stateValue = stateSchema
278
+ ? stateSchema.readString(stateString)
279
+ : 0;
280
+ const reltionalStateValue = reltionalString && reltionalStateSchema
281
+ ? reltionalStateSchema.readString(reltionalString)
282
+ : 0;
283
+ const voxelId = VoxelLUT.getVoxelId(trueVoxelId, stateValue, modValue);
284
+ const reltionalVoxelId = VoxelLUT.getReltionalVoxelId(trueVoxelId, reltionalStateValue, reltionalModValue);
285
+ VoxelLUT.geometryIndex[voxelId] ??= [];
286
+ VoxelLUT.geometryInputsIndex[voxelId] ??= [];
287
+ const totalReltionalStates = reltionalStateSchema
288
+ ? Math.pow(2, reltionalStateSchema.nodes.length)
289
+ : 0;
290
+ if (!totalReltionalStates) {
291
+ VoxelLUT.geometryIndex[voxelId][reltionalVoxelId] =
292
+ modelStateMap[stateKey];
293
+ VoxelLUT.geometryInputsIndex[voxelId][reltionalVoxelId] =
294
+ inputs[modKey][stateKey];
295
+ }
296
+ else {
297
+ const baseReltionalVoxelId = VoxelLUT.getReltionalVoxelId(trueVoxelId, 0, 0);
298
+ for (let i = baseReltionalVoxelId; i < baseReltionalVoxelId + totalReltionalStates; i++) {
299
+ VoxelLUT.geometryIndex[voxelId][i] = modelStateMap[stateKey];
300
+ VoxelLUT.geometryInputsIndex[voxelId][i] = inputs[modKey][stateKey];
301
+ }
302
+ }
303
+ }
304
+ for (const stateKey in modelConditonalMap) {
305
+ const [stateString, reltionalString] = stateKey.split("|");
306
+ const stateValue = stateSchema
307
+ ? stateSchema.readString(stateString)
308
+ : 0;
309
+ const reltionalStateValue = reltionalString && reltionalStateSchema
310
+ ? reltionalStateSchema.readString(reltionalString)
311
+ : 0;
312
+ const geoId = modelConditonalMap[stateKey];
313
+ const voxelId = VoxelLUT.getVoxelId(trueVoxelId, stateValue, modValue);
314
+ const reltionalVoxelId = VoxelLUT.getReltionalVoxelId(trueVoxelId, reltionalStateValue, reltionalModValue);
315
+ const totalReltionalStates = reltionalStateSchema
316
+ ? Math.pow(2, reltionalStateSchema.nodes.length)
317
+ : 0;
318
+ VoxelLUT.conditionalGeometryInputIndex[geoId] ??= [];
319
+ VoxelLUT.conditionalGeometryInputIndex[geoId][voxelId] ??= [];
320
+ if (!totalReltionalStates) {
321
+ VoxelLUT.conditionalGeometryInputIndex[geoId][voxelId][reltionalVoxelId] = conditonalInputs[modKey][stateKey];
322
+ }
323
+ else {
324
+ const baseReltionalVoxelId = VoxelLUT.getReltionalVoxelId(trueVoxelId, 0, 0);
325
+ for (let i = baseReltionalVoxelId; i < baseReltionalVoxelId + totalReltionalStates; i++) {
326
+ VoxelLUT.conditionalGeometryInputIndex[geoId][voxelId][i] =
327
+ conditonalInputs[modKey][stateKey];
328
+ }
329
+ }
330
+ }
331
+ }
332
+ for (const stateKey in modelConditonalMap) {
333
+ const [stateString, reltionalString] = stateKey.split("|");
334
+ const stateValue = stateSchema ? stateSchema.readString(stateString) : 0;
335
+ const totalReltionalStates = reltionalStateSchema
336
+ ? Math.pow(2, reltionalStateSchema.nodes.length) *
337
+ (reltionalModSchema
338
+ ? Math.pow(2, reltionalModSchema.nodes.length)
339
+ : 1)
340
+ : 0;
341
+ const enabledArray = new Array(totalReltionalStates || 1).fill(true);
342
+ if (reltionalStateSchema) {
343
+ const reltionalNodes = ((reltionalString ? reltionalString.split(",") : []).map((v) => v.split("=")));
344
+ for (let i = 0; i < totalReltionalStates; i++) {
345
+ reltionalStateSchema.startEncoding(i);
346
+ for (const [key, value] of reltionalNodes) {
347
+ if (reltionalStateSchema.getValue(key) !== value) {
348
+ enabledArray[i] = false;
349
+ }
350
+ }
351
+ }
352
+ }
353
+ VoxelLUT.conditionalGeometryIndex[trueVoxelId] ??= [];
354
+ VoxelLUT.conditionalGeometryIndex[trueVoxelId].push([
355
+ modelConditonalMap[stateKey],
356
+ stateValue,
357
+ enabledArray,
358
+ ]);
359
+ }
360
+ }
361
+ }
@@ -1,13 +1,15 @@
1
1
  import { VoxelData } from "../Types/Voxel.types";
2
2
  import { VoxelMaterialData } from "../Types/VoxelMaterial.types";
3
3
  import { VoxelSubstanceData } from "../Types/VoxelSubstances.types";
4
- import { CompiledVoxelTagAndPaletteData } from "../Types/VoxelModelCompiledData.types";
4
+ import { CompiledvVxelTags } from "../Types/VoxelModelCompiledData.types";
5
+ import { VoxelModelData } from "../../Voxels/Models/VoxelModel.types";
5
6
  export type BuildTagDataProps = {
6
7
  voxels: VoxelData[];
8
+ models: VoxelModelData[];
7
9
  voxelsOverrides?: Record<string, (value: any) => any>;
8
10
  substances: VoxelSubstanceData[];
9
11
  substancesOverrides?: Record<string, (value: any) => any>;
10
12
  materials: VoxelMaterialData[];
11
13
  materialsOverrides?: Record<string, (value: any) => any>;
12
14
  };
13
- export declare function BuildTagAndPaletteData(props: BuildTagDataProps): CompiledVoxelTagAndPaletteData;
15
+ export declare function BuildTagAndPaletteData(props: BuildTagDataProps): CompiledvVxelTags;
@@ -1,31 +1,28 @@
1
1
  import { VoxelTagsRegister } from "../Data/VoxelTagsRegister";
2
- import { VoxelPalettesRegister } from "../Data/VoxelPalettesRegister";
3
- import { VoxelModelRuleBuilderRegister } from "../Models/Rules/VoxelModelRuleBuilderRegister";
4
2
  import { VoxelPropertiesRegister } from "../Data/VoxelPropertiesRegister";
5
3
  import { VoxelPlacingStrategyRegister } from "../../Voxels/Interaction/Placing/VoxelPlacingStrategyRegister";
4
+ import { VoxelLUT } from "../../Voxels/Data/VoxelLUT";
6
5
  export function BuildTagAndPaletteData(props) {
7
6
  const logic = {};
7
+ const models = new Map(props.models.map((_) => [_.id, _]));
8
8
  for (const voxel of props.voxels) {
9
9
  const tags = {};
10
- if (VoxelPalettesRegister.voxelIds._map[voxel.id] !== undefined) {
11
- throw new Error(`Voxel with id [${voxel.id}] is already registered.`);
12
- }
13
- const voxelId = VoxelPalettesRegister.voxelIds.register(voxel.id);
10
+ const voxelId = VoxelLUT.voxelIds.getNumberId(voxel.id);
14
11
  VoxelPropertiesRegister.VoxelProperties[voxelId] = voxel.properties;
15
12
  if (voxel.properties["dve_model_data"]) {
16
13
  tags["dve_model_id"] = voxel.properties["dve_model_data"].id;
17
- const model = VoxelModelRuleBuilderRegister.models.get(voxel.properties["dve_model_data"].id);
18
- if (model?.data.properties) {
19
- for (const tagId in model.data.properties) {
20
- voxel.properties[tagId] = model.data.properties[tagId];
14
+ const model = models.get(tags["dve_model_id"]);
15
+ if (model) {
16
+ if (model?.properties) {
17
+ for (const tagId in model.properties) {
18
+ voxel.properties[tagId] = model.properties[tagId];
19
+ }
21
20
  }
22
21
  }
23
22
  }
24
23
  if (voxel.properties["dve_placing_strategy"]) {
25
24
  VoxelPlacingStrategyRegister.register(voxel.id, voxel.properties["dve_placing_strategy"]);
26
25
  }
27
- VoxelPalettesRegister.voxelIdToNameMap.set(voxel.id, voxel.name || "");
28
- VoxelPalettesRegister.voxelNametoIdMap.set(voxel.name || voxel.id, voxel.id);
29
26
  if (voxel.properties["dve_logic_data"]) {
30
27
  logic[voxel.id] = voxel.properties["dve_logic_data"];
31
28
  }
@@ -44,11 +41,11 @@ export function BuildTagAndPaletteData(props) {
44
41
  }
45
42
  for (const substance of props.substances) {
46
43
  const tags = {};
47
- const substanceId = VoxelPalettesRegister.substance.register(substance.id);
44
+ const substanceId = VoxelLUT.substance.getNumberId(substance.id);
48
45
  for (const tag of VoxelTagsRegister.IncludedSubstnacesTags) {
49
46
  if (substance.properties[tag] === undefined) {
50
47
  tags[tag] =
51
- VoxelTagsRegister.SubstanceStagDefaults[tag] || false;
48
+ VoxelTagsRegister.SubstanceTagDefaults[tag] || false;
52
49
  continue;
53
50
  }
54
51
  if (props?.substancesOverrides?.[tag]) {
@@ -57,25 +54,11 @@ export function BuildTagAndPaletteData(props) {
57
54
  }
58
55
  tags[tag] = substance.properties[tag];
59
56
  }
60
- VoxelTagsRegister.SubstanceStags[substanceId] = tags;
61
- }
62
- for (const material of props.materials) {
63
- VoxelPalettesRegister.material.register(material.id);
57
+ VoxelTagsRegister.SubstanceTags[substanceId] = tags;
64
58
  }
65
59
  return {
66
- data: {
67
- logic,
68
- palette: [],
69
- record: [],
70
- idPalette: VoxelPalettesRegister.voxelIds._palette,
71
- tags: VoxelTagsRegister.VoxelTags,
72
- idToNameMap: [...VoxelPalettesRegister.voxelIdToNameMap.entries()],
73
- nameToIdMap: [...VoxelPalettesRegister.voxelNametoIdMap.entries()],
74
- },
75
- substances: {
76
- tags: VoxelTagsRegister.SubstanceStags,
77
- palette: VoxelPalettesRegister.substance._palette,
78
- },
79
- materials: { palette: VoxelPalettesRegister.material._palette },
60
+ logic,
61
+ tags: VoxelTagsRegister.VoxelTags,
62
+ substanceTags: VoxelTagsRegister.SubstanceTags,
80
63
  };
81
64
  }
@@ -0,0 +1,11 @@
1
+ import { VoxelModelData } from "../../Models/VoxelModel.types";
2
+ import { VoxelData } from "../../Types/Voxel.types";
3
+ import { VoxelGeometryData } from "../../Geometry/VoxelGeometry.types";
4
+ type FinalMappedVoxelInputs = Record<string, Record<string, number>>;
5
+ export declare function BuildGeomeetryLUT(voxels: VoxelData[], geomtries: VoxelGeometryData[], models: VoxelModelData[]): {
6
+ finalModelStateMap: Map<string, Record<string, number>>;
7
+ finalModelConditionalMap: Map<string, Record<string, number>>;
8
+ finalVoxelStateInputMap: Map<string, FinalMappedVoxelInputs>;
9
+ finalVoxelConditionalInputMap: Map<string, FinalMappedVoxelInputs>;
10
+ };
11
+ export {};