@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
@@ -1,327 +0,0 @@
1
- import { StateCompareOperationsMap, StateLogicOperationsMap, } from "../State/State.types";
2
- import { StringPalette } from "../../Util/StringPalette";
3
- import { VoxelModelRuleBuilderRegister } from "../Models/Rules/VoxelModelRuleBuilderRegister";
4
- class StateTreeNode {
5
- id;
6
- children = new Map();
7
- result;
8
- constructor(id) {
9
- this.id = id;
10
- }
11
- addChild(value, node) {
12
- this.children.set(value, node);
13
- }
14
- getChild(value) {
15
- return this.children.get(value);
16
- }
17
- toJSON() {
18
- const childrenObj = {};
19
- this.children.forEach((childNode, key) => {
20
- childrenObj[key] = childNode.toJSON();
21
- });
22
- if (this.result != undefined)
23
- return this.result;
24
- return childrenObj;
25
- }
26
- }
27
- function generateCombinations(length) {
28
- const values = [0, 1];
29
- function gen(currentCombination, remainingLength) {
30
- if (remainingLength === 0) {
31
- return [currentCombination];
32
- }
33
- let combinations = [];
34
- for (let value of values) {
35
- combinations.push(...gen([...currentCombination, value], remainingLength - 1));
36
- }
37
- return combinations;
38
- }
39
- return gen([], length);
40
- }
41
- function generateNestedCombinations(length, values) {
42
- let combinationIndex = 0;
43
- function createNestedArray(depth) {
44
- if (depth === length) {
45
- return combinationIndex++;
46
- }
47
- const nestedArray = [];
48
- for (let i = 0; i < values.length; i++) {
49
- nestedArray.push(createNestedArray(depth + 1));
50
- }
51
- return nestedArray;
52
- }
53
- return createNestedArray(0);
54
- }
55
- function addPathToTree(root, path, result) {
56
- let currentNode = root;
57
- for (let i = 0; i < path.length; i += 2) {
58
- const key = path[i];
59
- const value = path[i + 1];
60
- let childNode = currentNode.getChild(key);
61
- if (!childNode) {
62
- childNode = new StateTreeNode(key);
63
- currentNode.addChild(key, childNode);
64
- }
65
- let valueNode = childNode.getChild(value);
66
- if (!valueNode) {
67
- valueNode = new StateTreeNode(value);
68
- childNode.addChild(value, valueNode);
69
- }
70
- currentNode = valueNode;
71
- }
72
- currentNode.result = result;
73
- }
74
- function reMapTree(schemaIdPalette, schemaValuePalette, baseObj, newObj, modelOrVodelId) {
75
- for (const key in baseObj) {
76
- if (key == "*")
77
- continue;
78
- const propertyIndex = schemaIdPalette.getNumberId(key);
79
- const baseChild = baseObj[key];
80
- const reMapedChildren = [];
81
- const schemaValueIndex = schemaValuePalette.has(key)
82
- ? schemaValuePalette.get(key)
83
- : Number(key);
84
- if (propertyIndex === undefined) {
85
- console.error(baseObj);
86
- throw new Error(`Unkown variable in state string ${key} | ${modelOrVodelId}`);
87
- }
88
- if (schemaValueIndex === undefined)
89
- continue;
90
- for (const value in baseChild) {
91
- const propertyValue = baseChild[value];
92
- const valueIndex = typeof value === "string" && typeof schemaValueIndex == "object"
93
- ? schemaValueIndex.getNumberId(value)
94
- : Number(value);
95
- if (typeof propertyValue == "object" && !Array.isArray(propertyValue)) {
96
- reMapedChildren[valueIndex] = reMapTree(schemaIdPalette, schemaValuePalette, baseChild[value], [], modelOrVodelId);
97
- continue;
98
- }
99
- reMapedChildren[valueIndex] = baseChild[value];
100
- }
101
- newObj[propertyIndex] = reMapedChildren;
102
- }
103
- return newObj;
104
- }
105
- function buildSchemas(binaryNodes, relationNodes) {
106
- const baseSchema = {
107
- binary: [],
108
- relational: [],
109
- };
110
- const schemaIdPalette = new StringPalette();
111
- const schemaValuePalette = new Map();
112
- for (const schemaNode of binaryNodes) {
113
- schemaIdPalette.register(schemaNode.name);
114
- if (schemaNode.values) {
115
- schemaValuePalette.set(schemaNode.name, new StringPalette(schemaNode.values));
116
- }
117
- baseSchema.binary.push(schemaNode);
118
- }
119
- for (const schemaNode of relationNodes) {
120
- schemaIdPalette.register(schemaNode.name);
121
- baseSchema.relational.push(schemaNode);
122
- schemaValuePalette.set(schemaNode.name, new StringPalette(["false", "true"]));
123
- }
124
- return {
125
- baseSchema,
126
- schemaIdPalette,
127
- schemaValuePalette,
128
- };
129
- }
130
- export function BuildStateData(model, geoPalette) {
131
- const data = model.data;
132
- const { baseSchema, schemaIdPalette, schemaValuePalette } = buildSchemas(data.stateSchema, data.relationsSchema);
133
- //maps geo link ids to geomtry ids
134
- const geometryLinkStateMap = {};
135
- //add geomtry from main shape states
136
- for (const key in data.stateNodes) {
137
- const nodeData = data.stateNodes[key];
138
- for (let i = 0; i < nodeData.length; i++) {
139
- geometryLinkStateMap[key] ??= {};
140
- const node = nodeData[i];
141
- geometryLinkStateMap[key][i] ??= geoPalette.getNumberId(VoxelModelRuleBuilderRegister.getGeometryLinkId(node));
142
- }
143
- }
144
- //add geomtry from condiotnal shape states
145
- for (const key in data.conditonalNodes) {
146
- const nodeData = data.conditonalNodes[key];
147
- for (let i = 0; i < nodeData.length; i++) {
148
- geometryLinkStateMap[key] ??= {};
149
- const node = nodeData[i];
150
- geometryLinkStateMap[key][i] ??= geoPalette.getNumberId(VoxelModelRuleBuilderRegister.getGeometryLinkId(node));
151
- }
152
- }
153
- const stateRelativeGeometryMap = [];
154
- const relativeGeometryByteIndexMap = [];
155
- //build state trees
156
- const stateTree = new StateTreeNode("root");
157
- const stateGeoLinkPalette = [];
158
- const stateGeometryPalette = [];
159
- let relativeGeoId = 0;
160
- let relativeByteCount = 0;
161
- const stateRecord = {};
162
- for (const key in data.stateNodes) {
163
- stateGeoLinkPalette.push(data.stateNodes[key].map((_, index) => geometryLinkStateMap[key][index]));
164
- stateGeometryPalette.push(data.stateNodes[key].map((_) => geoPalette.getNumberId(VoxelModelRuleBuilderRegister.getGeometryLinkId(_))));
165
- stateRecord[key] = stateGeometryPalette.length - 1;
166
- stateRelativeGeometryMap[stateRecord[key]] ??= [];
167
- const nodeData = data.stateNodes[key];
168
- for (const node of nodeData) {
169
- stateRelativeGeometryMap[stateRecord[key]][geoPalette.getNumberId(VoxelModelRuleBuilderRegister.getGeometryLinkId(node))] = relativeGeoId;
170
- relativeGeometryByteIndexMap[relativeGeoId] = relativeByteCount;
171
- relativeGeoId++;
172
- }
173
- addPathToTree(stateTree, key
174
- .split(",")
175
- .map((pair) => pair.split("="))
176
- .flat(), stateGeoLinkPalette.length - 1);
177
- }
178
- const condiotnalShapeStateRelativeGeometryMap = [];
179
- const condiotnalShapeStateNodePalette = [];
180
- const condiotnalShapeStateGeometryPalette = [];
181
- const condiotnalShapeStateNodeRecord = {};
182
- const condiotnalStatements = [];
183
- const compareOperations = Object.keys(StateCompareOperationsMap);
184
- for (const key in data.conditonalNodes) {
185
- condiotnalShapeStateNodePalette.push(data.conditonalNodes[key].map((_, index) => geometryLinkStateMap[key][index]));
186
- condiotnalShapeStateGeometryPalette.push(data.conditonalNodes[key].map((_) => geoPalette.getNumberId(VoxelModelRuleBuilderRegister.getGeometryLinkId(_))));
187
- condiotnalShapeStateNodeRecord[key] =
188
- condiotnalShapeStateGeometryPalette.length - 1;
189
- condiotnalShapeStateRelativeGeometryMap[condiotnalShapeStateNodeRecord[key]] ??= [];
190
- const nodeData = data.conditonalNodes[key];
191
- for (const node of nodeData) {
192
- condiotnalShapeStateRelativeGeometryMap[condiotnalShapeStateNodeRecord[key]][geoPalette.getNumberId(VoxelModelRuleBuilderRegister.getGeometryLinkId(node))] = relativeGeoId;
193
- relativeGeometryByteIndexMap[relativeGeoId] = relativeByteCount;
194
- relativeGeoId++;
195
- }
196
- const statement = [];
197
- const nodes = key.split(" ");
198
- let mode = "node";
199
- for (const node of nodes) {
200
- if (!node)
201
- continue;
202
- if (mode == "node") {
203
- mode = "operation";
204
- for (const op of compareOperations) {
205
- if (node.includes(op)) {
206
- const [schemaId, value] = node.split(op);
207
- statement.push([
208
- schemaIdPalette.getNumberId(schemaId),
209
- StateCompareOperationsMap[op],
210
- schemaValuePalette.has(schemaId)
211
- ? schemaValuePalette.get(schemaId).getNumberId(value)
212
- : Number(value),
213
- ]);
214
- break;
215
- }
216
- }
217
- continue;
218
- }
219
- if (mode == "operation") {
220
- mode = "node";
221
- statement.push(StateLogicOperationsMap[node]);
222
- }
223
- }
224
- condiotnalStatements.push(statement);
225
- }
226
- const condiotnalNodeStateTree = generateNestedCombinations(condiotnalStatements.length, [0, 1]);
227
- const allCombinations = generateCombinations(condiotnalStatements.length);
228
- const condiotanlStatePalette = [];
229
- const condiotanlGeometryStatePalette = [];
230
- for (const combo of allCombinations) {
231
- const newStateCombo = [];
232
- const newGeoCombo = [];
233
- for (let i = 0; i < combo.length; i++) {
234
- if (combo[i] == 0) {
235
- newStateCombo[i] = [];
236
- newGeoCombo[i] = [];
237
- continue;
238
- }
239
- newStateCombo[i] = condiotnalShapeStateNodePalette[i];
240
- newGeoCombo[i] = condiotnalShapeStateGeometryPalette[i];
241
- }
242
- condiotanlStatePalette.push(newStateCombo);
243
- condiotanlGeometryStatePalette.push(newGeoCombo);
244
- }
245
- const stateTreeData = stateTree.toJSON();
246
- const newShapeStateTree = [];
247
- reMapTree(schemaIdPalette, schemaValuePalette, stateTreeData, newShapeStateTree, model.data.id);
248
- const modelEffects = [];
249
- const tagEffects = [];
250
- if (model.data.effects) {
251
- for (const effect of model.data.effects) {
252
- const tagStateTree = new StateTreeNode("root");
253
- const treePalette = [];
254
- for (const key in effect.values) {
255
- const nodeData = effect.values[key];
256
- treePalette.push(nodeData);
257
- addPathToTree(tagStateTree, key
258
- .split(",")
259
- .map((pair) => pair.split("="))
260
- .flat(), treePalette.length - 1);
261
- }
262
- const tagStateTreeData = tagStateTree.toJSON();
263
- const newTagStateTree = [];
264
- reMapTree(schemaIdPalette, schemaValuePalette, tagStateTreeData, newTagStateTree, model.data.id);
265
- if (effect.type == "tag") {
266
- tagEffects.push({
267
- type: "tag",
268
- tagId: effect.tagId,
269
- tree: newTagStateTree,
270
- treePalette,
271
- });
272
- }
273
- if (effect.type == "fx-points") {
274
- modelEffects.push({
275
- type: "fx-points",
276
- effectId: effect.effectId,
277
- tree: newTagStateTree,
278
- treePalette,
279
- });
280
- }
281
- }
282
- }
283
- for (const [voxelId, voxelData] of model.voxels) {
284
- const modeStateTree = new StateTreeNode("root");
285
- const modStatePalette = [];
286
- const modStateRecord = {};
287
- const { baseSchema, schemaIdPalette, schemaValuePalette } = buildSchemas(voxelData.modSchema || [], voxelData.modRelationSchema || []);
288
- for (const key in voxelData.inputs) {
289
- modStatePalette.push(voxelData.inputs[key]);
290
- modStateRecord[key] = modStatePalette.length - 1;
291
- addPathToTree(modeStateTree, key
292
- .split(",")
293
- .map((pair) => pair.split("="))
294
- .flat(), modStatePalette.length - 1);
295
- }
296
- const modTreeData = modeStateTree.toJSON();
297
- const newModTree = [];
298
- reMapTree(schemaIdPalette, schemaValuePalette, modTreeData, newModTree, voxelId);
299
- model.voxelModData.set(voxelId, {
300
- modSchema: baseSchema,
301
- modPalette: modStatePalette,
302
- modRecord: modStateRecord,
303
- modStateTree: newModTree,
304
- });
305
- }
306
- const finalData = {
307
- schema: baseSchema,
308
- effects: modelEffects,
309
- stateGeometryPalette: stateGeometryPalette,
310
- condiotnalShapeStateGeometryPalette,
311
- stateTree: newShapeStateTree,
312
- geometryLinkStateMap,
313
- statePalette: stateGeoLinkPalette,
314
- stateRecord: stateRecord,
315
- condiotnalNodeStateTree,
316
- condiotnalStatements,
317
- condiotnalStatePalette: condiotnalShapeStateNodePalette,
318
- condiotnalShapeStateRecord: condiotnalShapeStateNodeRecord,
319
- condiotanlStatePalette,
320
- condiotanlGeometryStatePalette,
321
- stateRelativeGeometryMap: stateRelativeGeometryMap,
322
- relativeGeometryByteIndexMap,
323
- condiotnalShapeStateRelativeGeometryMap,
324
- };
325
- model.stateData = finalData;
326
- return finalData;
327
- }
@@ -1,46 +0,0 @@
1
- import { AOOcclusionFaceIndexData } from "../Models/Indexing/AOOcclusionFaceIndex";
2
- import { CulledOcclusionFaceIndexData } from "../Models/Indexing/CulledOcclusionFaceIndex";
3
- import { VoxelStateSchemaData, StateLogicStatement } from "../State/State.types";
4
- import { CullingProcedureData } from "../Models/VoxelModel.types";
5
- import { VoxelEffectSyncData } from "../Effects/VoxelEffects.types";
6
- import { CompiledGeomtryNodes } from "../../Mesher/Voxels/Models/Nodes/Types/GeomtryNode.types";
7
- export type CompiledVoxelGeometrySyncData = {
8
- id: string;
9
- cullingProcedure: CullingProcedureData;
10
- nodes: CompiledGeomtryNodes[];
11
- };
12
- export interface CompiledVoxelModelData {
13
- id: string;
14
- schema: VoxelStateSchemaData;
15
- effects: VoxelEffectSyncData[];
16
- stateTree: any[];
17
- stateMap: number[][];
18
- stateGeometryMap: number[][];
19
- stateRelativeGeometryMap: number[][];
20
- relativeGeometryByteIndexMap: number[];
21
- condiotnalStatements: StateLogicStatement[];
22
- condiotnalStateMap: number[][];
23
- condiotnalShapeStateMap: number[][][];
24
- condiotanlGeometryStatePalette: number[][][];
25
- condiotnalShapeStateRelativeGeometryMap: number[][];
26
- condiotnalStateTree: any[];
27
- }
28
- export interface CompiledVoxelModelInputData {
29
- id: string;
30
- materialId: string;
31
- modelId: string;
32
- modSchema: VoxelStateSchemaData;
33
- modStateTree: any[];
34
- baseGeometryInputMap: any[][];
35
- condiotnalGeometryInputMap: any[][];
36
- }
37
- export interface FinalCompiledVoxelModelData {
38
- geometryPalette: string[];
39
- geometry: CompiledVoxelGeometrySyncData[];
40
- aoIndex: AOOcclusionFaceIndexData;
41
- faceCullIndex: CulledOcclusionFaceIndexData;
42
- vertexHitMap: number[][][];
43
- faceCullMap: number[][];
44
- models: CompiledVoxelModelData[];
45
- voxels: CompiledVoxelModelInputData[];
46
- }
@@ -1,28 +0,0 @@
1
- import { getBitArrayIndex, setBitArrayIndex, } from "../../../Util/Binary/BinaryArrays";
2
- import { VoxelRelativeCubeIndex } from "./VoxelRelativeCubeIndex";
3
- const flatIndexSize = VoxelRelativeCubeIndex.flatIndex.size;
4
- function getIndex(geomtryId, directionIndex, faceIndex, totalFaces, vertexIndex) {
5
- const start = totalFaces * 4 * flatIndexSize * geomtryId +
6
- directionIndex * (totalFaces * 4);
7
- return start + faceIndex * 4 + vertexIndex;
8
- }
9
- export class AOOcclusionFaceIndex {
10
- view;
11
- totalFaces;
12
- constructor(data) {
13
- this.view = new Uint8Array(data.buffer);
14
- this.totalFaces = data.totalFaces;
15
- }
16
- getValue(geomtryId, directionIndex, faceIndex, vertexIndex) {
17
- return getBitArrayIndex(this.view, getIndex(geomtryId, directionIndex, faceIndex, this.totalFaces, vertexIndex));
18
- }
19
- setValue(geomtryId, directionIndex, faceIndex, vertexIndex, value = 0) {
20
- return setBitArrayIndex(this.view, getIndex(geomtryId, directionIndex, faceIndex, this.totalFaces, vertexIndex), value);
21
- }
22
- toJSON() {
23
- return {
24
- buffer: this.view.buffer,
25
- totalFaces: this.totalFaces,
26
- };
27
- }
28
- }
@@ -1,27 +0,0 @@
1
- import { getBitArrayIndex, setBitArrayIndex } from "../../../Util/Binary/BinaryArrays";
2
- import { VoxelRelativeCubeIndex } from "./VoxelRelativeCubeIndex";
3
- const flatIndexSize = VoxelRelativeCubeIndex.flatIndex.size;
4
- function getIndex(geomtryId, directionIndex, faceIndex, totalFaces) {
5
- const start = totalFaces * flatIndexSize * geomtryId + directionIndex * totalFaces;
6
- return start + faceIndex;
7
- }
8
- export class CulledOcclusionFaceIndex {
9
- view;
10
- totalFaces;
11
- constructor(data) {
12
- this.view = new Uint8Array(data.buffer);
13
- this.totalFaces = data.totalFaces;
14
- }
15
- getValue(geomtryId, directionIndex, faceIndex) {
16
- return getBitArrayIndex(this.view, getIndex(geomtryId, directionIndex, faceIndex, this.totalFaces));
17
- }
18
- setValue(geomtryId, directionIndex, faceIndex, value = 0) {
19
- return setBitArrayIndex(this.view, getIndex(geomtryId, directionIndex, faceIndex, this.totalFaces), value);
20
- }
21
- toJSON() {
22
- return {
23
- buffer: this.view.buffer,
24
- totalFaces: this.totalFaces,
25
- };
26
- }
27
- }
@@ -1,16 +0,0 @@
1
- import { VoxelGeometryData, VoxelModelConstructorData } from "../../VoxelModel.types";
2
- export declare class GeomtryInput {
3
- geomtry: VoxelGeometryData;
4
- inputObservers: Map<string, ((data: any) => void)[]>;
5
- orginalArgs: any[];
6
- args: any[];
7
- get arguments(): Record<string, import("../../VoxelModel.types").VoxelGeometryTextureArgument | import("../../VoxelModel.types").VoxelGeometryArgumentAliasList | import("../../VoxelModel.types").VoxelGeometryBooleanArgument | import("../../VoxelModel.types").VoxelGeometryIntArgument | import("../../VoxelModel.types").VoxelGeometryFloatArgument | import("../../VoxelModel.types").VoxelGeometryBoxUVArgument | import("../../VoxelModel.types").VoxelGeometryUVArgument | import("../../VoxelModel.types").VoxelGeometryVector3Argument>;
8
- proxy: Record<string, any>;
9
- isArgString(data: any): boolean;
10
- cloneArgs(): any[];
11
- resetDefaults(): void;
12
- currentModelState: string;
13
- currentModel: VoxelModelConstructorData;
14
- constructor(geomtry: VoxelGeometryData);
15
- onInput(id: string, subscribe: (data: any) => any): number;
16
- }
@@ -1,85 +0,0 @@
1
- import { TextureManager } from "../../../../Textures/TextureManager";
2
- export class GeomtryInput {
3
- geomtry;
4
- inputObservers = new Map();
5
- orginalArgs = [];
6
- args = [];
7
- get arguments() {
8
- return this.geomtry.arguments;
9
- }
10
- proxy = {};
11
- isArgString(data) {
12
- if (typeof data !== "string")
13
- return false;
14
- return data[0] == "@";
15
- }
16
- cloneArgs() {
17
- return structuredClone(this.args);
18
- }
19
- resetDefaults() {
20
- this.args = structuredClone(this.orginalArgs);
21
- }
22
- currentModelState;
23
- currentModel;
24
- constructor(geomtry) {
25
- this.geomtry = geomtry;
26
- for (const arg in geomtry.arguments) {
27
- if (this.inputObservers.has(arg))
28
- continue;
29
- const obs = [];
30
- this.inputObservers.set(arg, obs);
31
- const data = geomtry.arguments[arg];
32
- Object.defineProperty(this.proxy, arg, {
33
- set: (value) => {
34
- if (data.type == "texture") {
35
- const textureId = value;
36
- if (!Array.isArray(textureId) && typeof textureId == "object") {
37
- const procedureData = structuredClone({
38
- ...textureId,
39
- });
40
- if (procedureData.texture) {
41
- let texture = procedureData.texture;
42
- if (typeof texture == "string" && texture[0] === "@") {
43
- const input = texture.replace("@", "");
44
- texture =
45
- this.currentModel.inputs["*"]?.[input] ??
46
- this.currentModel.inputs[this.currentModelState][input];
47
- }
48
- procedureData.texture =
49
- TextureManager.getTexture("dve_voxel")?.getTextureIndex(texture);
50
- }
51
- if (procedureData.textureRecrod) {
52
- for (const key in procedureData.textureRecrod) {
53
- let texture = procedureData.textureRecrod[key];
54
- if (typeof texture == "string" && texture[0] === "@") {
55
- const input = texture.replace("@", "");
56
- texture =
57
- this.currentModel.inputs["*"]?.[input] ??
58
- this.currentModel.inputs[this.currentModelState][input];
59
- }
60
- procedureData.textureRecrod[key] =
61
- TextureManager.getTexture("dve_voxel")?.getTextureIndex(texture);
62
- }
63
- }
64
- value = { ...procedureData };
65
- }
66
- else {
67
- value =
68
- TextureManager.getTexture("dve_voxel")?.getTextureIndex(textureId);
69
- }
70
- }
71
- for (const func of obs) {
72
- func(value);
73
- }
74
- },
75
- });
76
- }
77
- }
78
- onInput(id, subscribe) {
79
- id = id.replace("@", "");
80
- const obs = this.inputObservers.get(id);
81
- if (!obs)
82
- throw new Error(`Input [${id}] does not exist on ${this.geomtry.id}`);
83
- return obs.push(subscribe);
84
- }
85
- }
@@ -1,22 +0,0 @@
1
- import { BuildStateData } from "../../../../Voxels/Functions/BuildStateData";
2
- import { CullingProcedureData, VoxelGeometryData, VoxelGeometryNodes } from "../../../../Voxels/Models/VoxelModel.types";
3
- import { CompiledGeomtryNodes } from "../../../../Mesher/Voxels/Models/Nodes/Types/GeomtryNode.types";
4
- import { GeomtryInput } from "./GeomtryInput";
5
- import { VoxelGeometryTransform } from "Mesher/Geomtry/Geometry.types";
6
- export interface VoxelRuleGeometryData {
7
- id: string;
8
- cullingProcedure: CullingProcedureData;
9
- ogData: VoxelGeometryData;
10
- nodes: {
11
- node: VoxelGeometryNodes;
12
- tranform: VoxelGeometryTransform;
13
- }[];
14
- }
15
- export declare class VoxelRuleGeometry {
16
- id: string;
17
- data: VoxelRuleGeometryData;
18
- state: ReturnType<typeof BuildStateData>;
19
- input: GeomtryInput;
20
- compiled: CompiledGeomtryNodes[];
21
- constructor(id: string, data: VoxelRuleGeometryData);
22
- }
@@ -1,15 +0,0 @@
1
- import { CompileGeomtryNodes } from "../Functions/Compile/CompileGeomtryNodes";
2
- import { GeomtryInput } from "./GeomtryInput";
3
- export class VoxelRuleGeometry {
4
- id;
5
- data;
6
- state;
7
- input;
8
- compiled;
9
- constructor(id, data) {
10
- this.id = id;
11
- this.data = data;
12
- this.input = new GeomtryInput(data.ogData);
13
- this.compiled = CompileGeomtryNodes(data.ogData.doNotBuildRules !== true, this.input, data.nodes);
14
- }
15
- }
@@ -1,19 +0,0 @@
1
- import { VoxelModelConstructorData, VoxelModelData } from "../../VoxelModel.types";
2
- import { BuildStateData } from "../../../../Voxels/Functions/BuildStateData";
3
- import { VoxelStateSchemaData } from "../../../../Voxels/State/State.types";
4
- export declare class VoxelRulesModoel {
5
- data: VoxelModelData;
6
- states: Map<string, string[]>;
7
- conditionalNodes: Map<string, string[]>;
8
- stateData: ReturnType<typeof BuildStateData>;
9
- voxels: Map<string, VoxelModelConstructorData>;
10
- voxelModData: Map<string, {
11
- modSchema: VoxelStateSchemaData;
12
- modStateTree: any[];
13
- modPalette: any[];
14
- modRecord: Record<string, any>;
15
- }>;
16
- constructor(data: VoxelModelData);
17
- registerShapeState(id: string, geomtryId: string): void;
18
- registerCondiotnalNode(id: string, geomtryId: string): void;
19
- }
@@ -1,29 +0,0 @@
1
- export class VoxelRulesModoel {
2
- data;
3
- states = new Map();
4
- conditionalNodes = new Map();
5
- stateData;
6
- voxels = new Map();
7
- voxelModData = new Map();
8
- constructor(data) {
9
- this.data = data;
10
- }
11
- registerShapeState(id, geomtryId) {
12
- let stateArray = this.states.get(id);
13
- if (!stateArray) {
14
- stateArray = [];
15
- this.states.set(id, stateArray);
16
- }
17
- if (!stateArray.find((_) => _ == geomtryId))
18
- stateArray.push(geomtryId);
19
- }
20
- registerCondiotnalNode(id, geomtryId) {
21
- let stateArray = this.conditionalNodes.get(id);
22
- if (!stateArray) {
23
- stateArray = [];
24
- this.conditionalNodes.set(id, stateArray);
25
- }
26
- if (!stateArray.find((_) => _ == geomtryId))
27
- stateArray.push(geomtryId);
28
- }
29
- }
@@ -1,5 +0,0 @@
1
- import { VoxelRulesModoel } from "../Classes/VoxelRulesModel";
2
- export declare function BuildFinalInputs(model: VoxelRulesModoel): {
3
- stateVoxelInputs: Record<string, any[]>;
4
- conditionalShapeStateVoxelInputs: Record<string, any[]>;
5
- };