@divinevoxel/vlox 0.0.75 → 0.0.77

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 (330) hide show
  1. package/Builder/RayProvider.d.ts +6 -0
  2. package/Builder/Tools/Brush/BrushTool.d.ts +55 -0
  3. package/Builder/Tools/Brush/BrushTool.js +352 -0
  4. package/Builder/Tools/BuilderToolBase.d.ts +39 -0
  5. package/Builder/Tools/BuilderToolBase.js +42 -0
  6. package/Builder/Tools/Hand/HandTool.d.ts +24 -0
  7. package/Builder/Tools/Hand/HandTool.js +73 -0
  8. package/Builder/Tools/Path/PahtTool.d.ts +34 -0
  9. package/Builder/Tools/Path/PahtTool.js +128 -0
  10. package/Builder/Tools/Sculpt/SculptTool.d.ts +34 -0
  11. package/Builder/Tools/Sculpt/SculptTool.js +102 -0
  12. package/Builder/Tools/Shape/ShapeTool.d.ts +32 -0
  13. package/Builder/Tools/Shape/ShapeTool.js +78 -0
  14. package/Builder/Tools/Template/TemplateTool.d.ts +35 -0
  15. package/Builder/Tools/Template/TemplateTool.js +73 -0
  16. package/Builder/Tools/Wand/WandTool.d.ts +30 -0
  17. package/Builder/Tools/Wand/WandTool.js +90 -0
  18. package/Builder/Tools/Wrench/WrenchTool.d.ts +47 -0
  19. package/Builder/Tools/Wrench/WrenchTool.js +184 -0
  20. package/Builder/Util/FreeBoxSelection.d.ts +12 -0
  21. package/Builder/Util/FreeBoxSelection.js +21 -0
  22. package/Builder/Util/FreePointSelection.d.ts +14 -0
  23. package/Builder/Util/FreePointSelection.js +39 -0
  24. package/Builder/Util/SurfaceBoxSelection.d.ts +12 -0
  25. package/Builder/Util/SurfaceBoxSelection.js +25 -0
  26. package/Builder/VoxelBuildSpace.d.ts +73 -0
  27. package/Builder/VoxelBuildSpace.js +224 -0
  28. package/Builder/World/InitTasks.d.ts +1 -0
  29. package/Builder/World/InitTasks.js +129 -0
  30. package/Builder/World/VoxelBuildSpaceWorld.d.ts +4 -0
  31. package/Builder/World/VoxelBuildSpaceWorld.js +10 -0
  32. package/Contexts/Render/DivineVoxelEngineRender.d.ts +5 -5
  33. package/Contexts/World/DivineVoxelEngineWorld.d.ts +5 -5
  34. package/Mesher/Geomtry/Proto/ProtoMesh.d.ts +18 -0
  35. package/Mesher/Geomtry/Proto/ProtoMesh.js +73 -0
  36. package/Mesher/Geomtry/{VoxelMeshBuffers.d.ts → Proto/ProtoMeshBuffer.d.ts} +2 -2
  37. package/Mesher/Geomtry/{VoxelMeshBuffers.js → Proto/ProtoMeshBuffer.js} +2 -2
  38. package/Mesher/Geomtry/Shapes/Box.d.ts +2 -9
  39. package/Mesher/Geomtry/Shapes/Box.js +7 -12
  40. package/Mesher/Geomtry/Transform/TransformBox.js +5 -2
  41. package/Mesher/InitMesher.js +4 -4
  42. package/Mesher/InitTask.js +2 -2
  43. package/Mesher/Items/Base/CompactItemMesh.d.ts +3 -0
  44. package/Mesher/Items/Base/CompactItemMesh.js +20 -0
  45. package/Mesher/Items/Geomtry/ItemGeometryBuilder.d.ts +5 -0
  46. package/Mesher/Items/Geomtry/ItemGeometryBuilder.js +131 -0
  47. package/Mesher/Items/Geomtry/ItemMeshVertexStructCursor.d.ts +48 -0
  48. package/Mesher/Items/Geomtry/ItemMeshVertexStructCursor.js +114 -0
  49. package/Mesher/Items/MeshTexture.d.ts +1 -0
  50. package/Mesher/Items/MeshTexture.js +214 -0
  51. package/Mesher/Items/MeshTextureO.js +277 -0
  52. package/Mesher/Items/Models/ItemModelBuilder.d.ts +27 -0
  53. package/Mesher/Items/Models/ItemModelBuilder.js +64 -0
  54. package/Mesher/Types/ItemMesh.types.d.ts +5 -0
  55. package/Mesher/Types/ItemMesh.types.js +12 -0
  56. package/Mesher/Types/Mesher.types.d.ts +15 -9
  57. package/Mesher/Types/Mesher.types.js +14 -0
  58. package/Mesher/Types/VoxelMesh.types.js +7 -6
  59. package/Mesher/Voxels/Base/CompactTemplateMesh.d.ts +3 -0
  60. package/Mesher/{Functions/CompactVoxelMesh.js → Voxels/Base/CompactTemplateMesh.js} +4 -40
  61. package/Mesher/{Functions → Voxels/Base}/CompactVoxelSectionMesh.d.ts +2 -2
  62. package/Mesher/{Functions → Voxels}/Base/MeshSectionBase.d.ts +1 -1
  63. package/Mesher/{Functions → Voxels}/Base/MeshSectionBase.js +11 -7
  64. package/Mesher/{Geomtry → Voxels/Geomtry}/CompactedSectionVoxelMesh.d.ts +1 -1
  65. package/Mesher/{Geomtry → Voxels/Geomtry}/CompactedSectionVoxelMesh.js +1 -1
  66. package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelGeometryBuilder.d.ts +2 -2
  67. package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelGeometryBuilder.js +1 -1
  68. package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelMeshBVHBuilder.d.ts +3 -3
  69. package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelMeshBVHBuilder.js +2 -2
  70. package/Mesher/Voxels/MeshTemplate.d.ts +3 -0
  71. package/Mesher/Voxels/MeshTemplate.js +81 -0
  72. package/Mesher/{Functions → Voxels}/MeshVoxel.d.ts +1 -1
  73. package/Mesher/{Functions → Voxels}/MeshVoxel.js +6 -4
  74. package/Mesher/{Models → Voxels/Models}/Common/Calc/CalcConstants.d.ts +3 -3
  75. package/Mesher/{Models → Voxels/Models}/Common/Calc/CalcConstants.js +4 -4
  76. package/Mesher/{Models → Voxels/Models}/Common/Calc/FaceDataCalc.d.ts +1 -1
  77. package/Mesher/{Models → Voxels/Models}/Common/Calc/FaceDataCalc.js +2 -2
  78. package/Mesher/{Models → Voxels/Models}/Common/Faces/CullRulledFace.js +1 -1
  79. package/Mesher/{Models → Voxels/Models}/Common/Faces/ShadeRulelessFace.d.ts +1 -1
  80. package/Mesher/{Models → Voxels/Models}/Common/Faces/ShadeRulledFace.d.ts +1 -1
  81. package/Mesher/{Models → Voxels/Models}/Common/Faces/ShadeRulledFace.js +1 -1
  82. package/Mesher/{Models → Voxels/Models}/Common/GetTexture.d.ts +3 -3
  83. package/Mesher/{Models → Voxels/Models}/Nodes/Custom/Liquid/FlowGradient.d.ts +1 -1
  84. package/Mesher/{Models → Voxels/Models}/Nodes/Custom/Liquid/FlowGradient.js +1 -1
  85. package/Mesher/{Models → Voxels/Models}/Nodes/Custom/Liquid/LiquidGeomtryNode.d.ts +3 -3
  86. package/Mesher/{Models → Voxels/Models}/Nodes/Custom/Liquid/LiquidGeomtryNode.js +14 -16
  87. package/Mesher/{Models → Voxels/Models}/Nodes/Default/QuadVoxelGeometryNode.d.ts +2 -2
  88. package/Mesher/{Models → Voxels/Models}/Nodes/Default/QuadVoxelGeometryNode.js +1 -1
  89. package/Mesher/{Models → Voxels/Models}/Nodes/Default/TriangleVoxelGeometryNode.d.ts +2 -2
  90. package/Mesher/{Models → Voxels/Models}/Nodes/Default/TriangleVoxelGeometryNode.js +1 -1
  91. package/Mesher/{Models → Voxels/Models}/Nodes/Types/QuadVoxelGometryNodeTypes.d.ts +2 -2
  92. package/Mesher/{Models → Voxels/Models}/Nodes/Types/TriangleVoxelGometryNodeTypes.d.ts +1 -1
  93. package/Mesher/{Models → Voxels/Models}/Nodes/VoxelGeometryConstructor.d.ts +2 -2
  94. package/Mesher/Voxels/Models/Procedures/Default/ConsistentRotationTextureProcedure.d.ts +24 -0
  95. package/Mesher/{Models → Voxels/Models}/Procedures/Default/ConsistentRotationTextureProcedure.js +2 -2
  96. package/Mesher/{Models → Voxels/Models}/Procedures/Default/OutlinedTextureProcedure.d.ts +4 -5
  97. package/Mesher/Voxels/Models/Procedures/Default/OutlinedTextureProcedure.js +205 -0
  98. package/Mesher/Voxels/Models/Procedures/Default/PillarTextureProcedure.d.ts +28 -0
  99. package/Mesher/Voxels/Models/Procedures/Default/PillarTextureProcedure.js +109 -0
  100. package/Mesher/{Models → Voxels/Models}/Procedures/TextureProcedure.d.ts +3 -3
  101. package/Mesher/{Models → Voxels/Models}/Procedures/TextureProcedureRegister.js +2 -0
  102. package/Mesher/{Models → Voxels/Models}/VoxelConstructor.d.ts +4 -4
  103. package/Mesher/{Models → Voxels/Models}/VoxelConstructor.js +3 -3
  104. package/Mesher/{Models → Voxels/Models}/VoxelGeometryBuilderCacheSpace.d.ts +2 -2
  105. package/Mesher/{Models → Voxels/Models}/VoxelGeometryBuilderCacheSpace.js +2 -2
  106. package/Mesher/{Models → Voxels/Models}/VoxelModelBuilder.d.ts +7 -7
  107. package/Mesher/{Models → Voxels/Models}/VoxelModelBuilder.js +6 -5
  108. package/Mesher/{Models → Voxels/Models}/VoxelModelConstructorRegister.d.ts +4 -4
  109. package/Mesher/{Models → Voxels/Models}/VoxelModelConstructorRegister.js +2 -2
  110. package/Mesher/{Models → Voxels/Models}/VoxelModelEffect.d.ts +1 -1
  111. package/Mesher/{Models → Voxels/Models}/VoxelModelEffect.js +1 -1
  112. package/Renderer/Classes/DVESectionMeshes.d.ts +1 -1
  113. package/Renderer/MeshManager.js +1 -1
  114. package/Settings/EngineSettings.types.d.ts +2 -1
  115. package/Settings/EngineSettings.types.js +3 -1
  116. package/Tasks/Paint/Common.js +14 -9
  117. package/Tasks/Paint/Erase/EraseVoxel.js +1 -1
  118. package/Tasks/Paint/Erase/EraseVoxelSelection.d.ts +4 -0
  119. package/Tasks/Paint/Erase/EraseVoxelSelection.js +33 -0
  120. package/Tasks/Paint/Erase/EraseVoxelTemplate.js +1 -2
  121. package/Tasks/Paint/Paint/PaintVoxelTemplate.js +1 -1
  122. package/Tasks/Propagation/Illumanation/RGBUpdate.js +1 -1
  123. package/Tasks/Tasks.types.d.ts +2 -0
  124. package/Tasks/TasksIds.d.ts +1 -0
  125. package/Tasks/TasksIds.js +1 -0
  126. package/Tasks/WorldGeneration/InitTasks.js +3 -1
  127. package/Templates/Archive/ArchivedVoxelTemplate.d.ts +6 -5
  128. package/Templates/Archive/ArchivedVoxelTemplate.js +56 -49
  129. package/Templates/Archive/Functions/CreateArchivedTemplate.js +4 -4
  130. package/Templates/Archive/Functions/ExportArchiedTemplateJSON.js +0 -1
  131. package/Templates/Archive/Functions/ImportArchivedTemplateJSON.js +0 -2
  132. package/Templates/Cursor/TemplateCursor.d.ts +6 -1
  133. package/Templates/Cursor/TemplateCursor.js +16 -3
  134. package/Templates/Cursor/TemplateProxy.d.ts +1 -0
  135. package/Templates/Cursor/TemplateProxy.js +9 -0
  136. package/Templates/Cursor/TemplateVoxelCursor.d.ts +1 -0
  137. package/Templates/Cursor/TemplateVoxelCursor.js +6 -0
  138. package/Templates/Full/FullVoxelTemplate.d.ts +5 -4
  139. package/Templates/Full/FullVoxelTemplate.js +32 -17
  140. package/Templates/Functions/ExtrudeSelection.d.ts +5 -0
  141. package/Templates/Functions/ExtrudeSelection.js +44 -0
  142. package/Templates/Functions/FillSelection.d.ts +4 -0
  143. package/Templates/Functions/FillSelection.js +20 -0
  144. package/Templates/Functions/FlipTemplate.d.ts +2 -2
  145. package/Templates/Functions/FlipTemplate.js +8 -8
  146. package/Templates/Functions/RotateTemplate.d.ts +2 -2
  147. package/Templates/Path/VoxelPath.d.ts +4 -0
  148. package/Templates/Path/VoxelPath.js +18 -0
  149. package/Templates/Path/VoxelPath.types.d.ts +1 -0
  150. package/Templates/Selection/VoxelBFSSelection.d.ts +6 -6
  151. package/Templates/Selection/VoxelBFSSelection.js +29 -22
  152. package/Templates/Selection/VoxelBoundsSelection.d.ts +20 -0
  153. package/Templates/Selection/{VoxelBoxSelection.js → VoxelBoundsSelection.js} +38 -20
  154. package/Templates/Selection/VoxelPointSelection.d.ts +19 -0
  155. package/Templates/Selection/VoxelPointSelection.js +49 -0
  156. package/Templates/Selection/VoxelSelection.d.ts +18 -0
  157. package/Templates/Selection/VoxelSelection.js +1 -0
  158. package/Templates/Selection/VoxelSurfaceSelection.d.ts +8 -12
  159. package/Templates/Selection/VoxelSurfaceSelection.js +88 -84
  160. package/Templates/Selection/VoxelTemplateSelection.d.ts +13 -4
  161. package/Templates/Selection/VoxelTemplateSelection.js +27 -9
  162. package/Templates/Shapes/Selections/BoxVoxelShapeSelection.d.ts +28 -0
  163. package/Templates/Shapes/Selections/BoxVoxelShapeSelection.js +77 -0
  164. package/Templates/Shapes/Selections/ConeVoxelShapeSelection.d.ts +28 -0
  165. package/Templates/Shapes/Selections/ConeVoxelShapeSelection.js +77 -0
  166. package/Templates/Shapes/Selections/CylinderVoxelShapeSelection.d.ts +28 -0
  167. package/Templates/Shapes/Selections/CylinderVoxelShapeSelection.js +77 -0
  168. package/Templates/Shapes/Selections/EllipsoidVoxelShapeSelection.d.ts +28 -0
  169. package/Templates/Shapes/Selections/EllipsoidVoxelShapeSelection.js +92 -0
  170. package/Templates/Shapes/Selections/OctahedronVoxelShapeSelection.d.ts +28 -0
  171. package/Templates/Shapes/Selections/OctahedronVoxelShapeSelection.js +76 -0
  172. package/Templates/Shapes/Selections/PyramidVoxelShapeSelection.d.ts +37 -0
  173. package/Templates/Shapes/Selections/PyramidVoxelShapeSelection.js +137 -0
  174. package/Templates/Shapes/Selections/SphereVoxelShapeSelection.d.ts +20 -0
  175. package/Templates/Shapes/Selections/SphereVoxelShapeSelection.js +61 -0
  176. package/Templates/Shapes/Selections/TorusVoxelShapeSelection.d.ts +28 -0
  177. package/Templates/Shapes/Selections/TorusVoxelShapeSelection.js +76 -0
  178. package/Templates/Shapes/Selections/VoxelShapeSelection.d.ts +5 -0
  179. package/Templates/Shapes/Selections/VoxelShapeSelection.js +1 -0
  180. package/Templates/Shapes/VoxelShape.types.d.ts +2 -0
  181. package/Templates/Shapes/VoxelShape.types.js +8 -0
  182. package/Templates/Shapes/VoxelShapeTemplate.d.ts +37 -0
  183. package/Templates/Shapes/{BasicVoxelShapeTemplate.js → VoxelShapeTemplate.js} +43 -37
  184. package/Templates/Shapes/VoxelShapeTemplate.types.d.ts +5 -12
  185. package/Templates/Shapes/VoxelShapeTemplate.types.js +5 -1
  186. package/Templates/{VoxelTempateRegister.d.ts → VoxelTemplateRegister.d.ts} +4 -0
  187. package/Templates/VoxelTemplateRegister.js +60 -0
  188. package/Templates/VoxelTemplates.types.d.ts +3 -3
  189. package/Textures/Classes/CompiledTexture.d.ts +2 -0
  190. package/Textures/Classes/CompiledTexture.js +19 -1
  191. package/Textures/Classes/TextureAnimationTexture.d.ts +1 -1
  192. package/Textures/Functions/BuildTextureData.js +13 -0
  193. package/Textures/TextureManager.d.ts +1 -0
  194. package/Textures/TextureManager.js +11 -5
  195. package/Tools/Brush/Brush.d.ts +2 -0
  196. package/Tools/Brush/Brush.js +19 -0
  197. package/Tools/Tasks/TasksTool.d.ts +2 -1
  198. package/Tools/Tasks/TasksTool.js +2 -0
  199. package/Util/BinaryBuffer/Functions/BinaryBufferConvert.d.ts +1 -1
  200. package/Util/BinaryBuffer/Functions/BinaryBufferToTypedArray.d.ts +1 -1
  201. package/Util/LocationData.d.ts +1 -1
  202. package/Voxels/Cursor/DataCursor.interface.d.ts +4 -0
  203. package/Voxels/Cursor/VoxelCursor.interface.d.ts +2 -0
  204. package/Voxels/Cursor/VoxelCursor.interface.js +2 -0
  205. package/Voxels/Cursor/VoxelLightData.js +2 -2
  206. package/Voxels/Functions/BuildTagData.js +1 -1
  207. package/Voxels/Indexes/VoxelIndex.d.ts +1 -0
  208. package/Voxels/Indexes/VoxelIndex.js +11 -13
  209. package/Voxels/InitVoxelData.js +5 -14
  210. package/Voxels/Interaction/Functions/PickVoxel.d.ts +0 -5
  211. package/Voxels/Interaction/Functions/PickVoxel.js +64 -85
  212. package/Voxels/Interaction/Functions/PickVoxelWorld.js +21 -46
  213. package/Voxels/Interaction/VoxelPickResult.d.ts +1 -0
  214. package/Voxels/Interaction/VoxelPickResult.js +3 -0
  215. package/Voxels/Models/CompiledVoxelModel.types.d.ts +1 -1
  216. package/Voxels/Models/Defaults/CubeVoxelGeometry.js +11 -0
  217. package/Voxels/Models/Defaults/CubeVoxelModels.js +44 -99
  218. package/Voxels/Models/Defaults/PanelVoxelGeometry.d.ts +1 -3
  219. package/Voxels/Models/Defaults/PanelVoxelGeometry.js +2 -226
  220. package/Voxels/Models/Defaults/PanelVoxelModels.d.ts +1 -0
  221. package/Voxels/Models/Defaults/PanelVoxelModels.js +100 -258
  222. package/Voxels/Models/Defaults/StairVoxelModel.js +2 -2
  223. package/Voxels/Models/Rules/Classes/GeomtryInput.d.ts +4 -1
  224. package/Voxels/Models/Rules/Classes/GeomtryInput.js +26 -5
  225. package/Voxels/Models/Rules/Classes/VoxelRulesGeometry.d.ts +1 -1
  226. package/Voxels/Models/Rules/Functions/BuildFinalInputs.js +23 -8
  227. package/Voxels/Models/Rules/Functions/Compile/CompileGeomtryNodes.d.ts +1 -1
  228. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileBoxGeometryNode.d.ts +1 -1
  229. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileQuadGeometryNode.d.ts +1 -1
  230. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileQuadGeometryNode.js +1 -1
  231. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileTriangleGeometryNode.d.ts +1 -1
  232. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileTriangleGeometryNode.js +1 -1
  233. package/Voxels/Models/VoxelModel.types.d.ts +6 -1
  234. package/Voxels/State/Schema/BinarySchemaNode.d.ts +2 -1
  235. package/Voxels/State/Schema/BinarySchemaNode.js +5 -2
  236. package/Voxels/State/Schema/Conditions/SameVoxelConditions.js +2 -0
  237. package/Voxels/Types/PaintVoxelData.d.ts +13 -1
  238. package/Voxels/Types/PaintVoxelData.js +151 -14
  239. package/World/Archive/Functions/Shared/LightSegments.d.ts +1 -1
  240. package/World/Cursor/SectionCursor.d.ts +4 -0
  241. package/World/Cursor/SectionCursor.js +13 -16
  242. package/World/Cursor/SectorCursor.d.ts +4 -0
  243. package/World/Cursor/SectorCursor.js +13 -16
  244. package/World/Cursor/WorldCursor.d.ts +4 -0
  245. package/World/Cursor/WorldCursor.js +8 -0
  246. package/World/Sector/Sector.d.ts +1 -1
  247. package/World/Sector/SectorHeightMap.d.ts +6 -0
  248. package/World/Sector/SectorHeightMap.js +6 -0
  249. package/World/SnapShot/SectionSnapShotCursor.d.ts +3 -0
  250. package/World/SnapShot/SectionSnapShotCursor.js +6 -0
  251. package/World/WorldSpaces.js +3 -3
  252. package/WorldSimulation/Dimensions/DimensionSimulation.d.ts +5 -1
  253. package/WorldSimulation/Dimensions/DimensionSimulation.js +12 -0
  254. package/WorldSimulation/Dimensions/Generator.d.ts +1 -0
  255. package/WorldSimulation/Dimensions/Generator.js +1 -0
  256. package/WorldSimulation/Dimensions/SimulationSector.d.ts +4 -1
  257. package/WorldSimulation/Dimensions/SimulationSector.js +71 -41
  258. package/WorldSimulation/Internal/WorldSimulationTasks.js +5 -2
  259. package/WorldSimulation/Procedures/BuildOnly.d.ts +10 -0
  260. package/WorldSimulation/Procedures/BuildOnly.js +55 -0
  261. package/WorldSimulation/Procedures/InitalLoad.js +3 -0
  262. package/WorldSimulation/Tasks/SimulationTaskBase.d.ts +2 -0
  263. package/WorldSimulation/Tasks/SimulationTaskBase.js +11 -3
  264. package/WorldSimulation/Tasks/TaskSegment.d.ts +2 -1
  265. package/WorldSimulation/Tasks/TaskSegment.js +3 -1
  266. package/WorldSimulation/Tick/TickQueue.d.ts +2 -0
  267. package/WorldSimulation/Tick/TickQueue.js +26 -0
  268. package/WorldSimulation/Tools/SimulationBrush.d.ts +3 -0
  269. package/WorldSimulation/Tools/SimulationBrush.js +52 -0
  270. package/WorldSimulation/Voxels/Behaviors/Types/DefaultVoxelBehavior.js +3 -0
  271. package/WorldSimulation/Voxels/Behaviors/Types/LiquidVoxelBehavior.js +21 -1
  272. package/WorldSimulation/Voxels/Behaviors/VoxelBehaviors.d.ts +2 -0
  273. package/WorldSimulation/Voxels/Behaviors/VoxelBehaviors.js +6 -0
  274. package/WorldSimulation/Voxels/Ticks/Types/LiquidVoxelUpdate.js +39 -14
  275. package/WorldSimulation/WorldSimulation.d.ts +10 -0
  276. package/WorldSimulation/WorldSimulation.js +41 -1
  277. package/package.json +1 -30
  278. package/Mesher/Functions/CompactVoxelMesh.d.ts +0 -3
  279. package/Mesher/Functions/MeshTexture.js +0 -278
  280. package/Mesher/Geomtry/VoxelMesh.d.ts +0 -12
  281. package/Mesher/Geomtry/VoxelMesh.js +0 -25
  282. package/Mesher/Models/Procedures/Default/ConsistentRotationTextureProcedure.d.ts +0 -25
  283. package/Mesher/Models/Procedures/Default/OutlinedTextureProcedure.js +0 -162
  284. package/Templates/Selection/VoxelBoxSelection.d.ts +0 -14
  285. package/Templates/Selection/VoxelSelecton.d.ts +0 -6
  286. package/Templates/Shapes/BasicVoxelShapeTemplate.d.ts +0 -35
  287. package/Templates/Shapes/BoxVoxelTemplate.d.ts +0 -22
  288. package/Templates/Shapes/BoxVoxelTemplate.js +0 -75
  289. package/Templates/Shapes/ConeVoxelTemplate.d.ts +0 -22
  290. package/Templates/Shapes/ConeVoxelTemplate.js +0 -69
  291. package/Templates/Shapes/CylinderVoxelTemplate.d.ts +0 -22
  292. package/Templates/Shapes/CylinderVoxelTemplate.js +0 -69
  293. package/Templates/Shapes/OctahedronVoxelTemplate.d.ts +0 -22
  294. package/Templates/Shapes/OctahedronVoxelTemplate.js +0 -69
  295. package/Templates/Shapes/PyramidVoxelTemplate.d.ts +0 -30
  296. package/Templates/Shapes/PyramidVoxelTemplate.js +0 -140
  297. package/Templates/Shapes/SphereVoxelTemplate.d.ts +0 -24
  298. package/Templates/Shapes/SphereVoxelTemplate.js +0 -97
  299. package/Templates/Shapes/TorusVoxelTemplate.d.ts +0 -22
  300. package/Templates/Shapes/TorusVoxelTemplate.js +0 -69
  301. package/Templates/VoxelTempateRegister.js +0 -30
  302. /package/{Mesher/Models/Nodes/Types/GeomtryNode.types.js → Builder/RayProvider.js} +0 -0
  303. /package/Mesher/{Functions/MeshTexture.d.ts → Items/MeshTextureO.d.ts} +0 -0
  304. /package/Mesher/{Functions → Voxels/Base}/CompactVoxelSectionMesh.js +0 -0
  305. /package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelMeshBVHStructCursor.d.ts +0 -0
  306. /package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelMeshBVHStructCursor.js +0 -0
  307. /package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelMeshVertexStructCursor.d.ts +0 -0
  308. /package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelMeshVertexStructCursor.js +0 -0
  309. /package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelShaderData.d.ts +0 -0
  310. /package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelShaderData.js +0 -0
  311. /package/Mesher/{Functions → Voxels}/MeshSection.d.ts +0 -0
  312. /package/Mesher/{Functions → Voxels}/MeshSection.js +0 -0
  313. /package/Mesher/{Functions → Voxels}/MeshSectionSnapShot.d.ts +0 -0
  314. /package/Mesher/{Functions → Voxels}/MeshSectionSnapShot.js +0 -0
  315. /package/Mesher/{Models → Voxels/Models}/Common/Faces/CullRulledFace.d.ts +0 -0
  316. /package/Mesher/{Models → Voxels/Models}/Common/Faces/ShadeRulelessFace.js +0 -0
  317. /package/Mesher/{Models → Voxels/Models}/Common/GetTexture.js +0 -0
  318. /package/Mesher/{Models → Voxels/Models}/Nodes/Custom/index.d.ts +0 -0
  319. /package/Mesher/{Models → Voxels/Models}/Nodes/Custom/index.js +0 -0
  320. /package/Mesher/{Models → Voxels/Models}/Nodes/GeometryNode.d.ts +0 -0
  321. /package/Mesher/{Models → Voxels/Models}/Nodes/GeometryNode.js +0 -0
  322. /package/Mesher/{Models → Voxels/Models}/Nodes/Types/GeomtryNode.types.d.ts +0 -0
  323. /package/{Templates/Selection/VoxelSelecton.js → Mesher/Voxels/Models/Nodes/Types/GeomtryNode.types.js} +0 -0
  324. /package/Mesher/{Models → Voxels/Models}/Nodes/Types/QuadVoxelGometryNodeTypes.js +0 -0
  325. /package/Mesher/{Models → Voxels/Models}/Nodes/Types/TriangleVoxelGometryNodeTypes.js +0 -0
  326. /package/Mesher/{Models → Voxels/Models}/Nodes/VoxelGeometryConstructor.js +0 -0
  327. /package/Mesher/{Models → Voxels/Models}/Procedures/TextureProcedure.js +0 -0
  328. /package/Mesher/{Models → Voxels/Models}/Procedures/TextureProcedureRegister.d.ts +0 -0
  329. /package/Mesher/{Models → Voxels/Models}/RenderedMaterials.d.ts +0 -0
  330. /package/Mesher/{Models → Voxels/Models}/RenderedMaterials.js +0 -0
@@ -1,6 +1,6 @@
1
1
  import { Vec4Array } from "@amodx/math";
2
- import { VoxelFaces } from "../../../../Math";
3
- import { Quad } from "../../../Geomtry/Primitives/Quad";
2
+ import { VoxelFaces } from "../../../../../Math";
3
+ import { Quad } from "../../../../Geomtry/Primitives/Quad";
4
4
  import { GeoemtryNode } from "../GeometryNode";
5
5
  import { CompiledQuadVoxelGeomtryNode, QuadVoxelGometryArgs } from "../Types/QuadVoxelGometryNodeTypes";
6
6
  export declare class QuadVoxelGometryNode extends GeoemtryNode<CompiledQuadVoxelGeomtryNode, QuadVoxelGometryArgs> {
@@ -1,4 +1,4 @@
1
- import { Quad } from "../../../Geomtry/Primitives/Quad";
1
+ import { Quad } from "../../../../Geomtry/Primitives/Quad";
2
2
  import { addVoxelQuad } from "../../../Geomtry/VoxelGeometryBuilder";
3
3
  import { GeoemtryNode } from "../GeometryNode";
4
4
  import { QuadVoxelGometryInputs, } from "../Types/QuadVoxelGometryNodeTypes";
@@ -1,8 +1,8 @@
1
1
  import { Vec4Array } from "@amodx/math";
2
- import { VoxelFaces } from "../../../../Math";
2
+ import { VoxelFaces } from "../../../../../Math";
3
3
  import { GeoemtryNode } from "../GeometryNode";
4
4
  import { CompiledTriangleVoxelGeomtryNode, TriangleVoxelGometryArgs } from "../Types/TriangleVoxelGometryNodeTypes";
5
- import { Triangle } from "../../../Geomtry/Primitives/Triangle";
5
+ import { Triangle } from "../../../../Geomtry/Primitives/Triangle";
6
6
  export declare class TriangleVoxelGeometryNode extends GeoemtryNode<CompiledTriangleVoxelGeomtryNode, TriangleVoxelGometryArgs> {
7
7
  triangle: Triangle;
8
8
  vertexWeights: Vec4Array[];
@@ -2,7 +2,7 @@ import { addVoxelTriangle } from "../../../Geomtry/VoxelGeometryBuilder";
2
2
  import { GeoemtryNode } from "../GeometryNode";
3
3
  import { GetTexture } from "../../Common/GetTexture";
4
4
  import { TriangleVoxelGometryInputs, } from "../Types/TriangleVoxelGometryNodeTypes";
5
- import { Triangle } from "../../../Geomtry/Primitives/Triangle";
5
+ import { Triangle } from "../../../../Geomtry/Primitives/Triangle";
6
6
  import { CullRulledFace } from "../../Common/Faces/CullRulledFace";
7
7
  import { ShadeRulledFace } from "../../Common/Faces/ShadeRulledFace";
8
8
  import { ShadeRulelessFace } from "../../Common/Faces/ShadeRulelessFace";
@@ -1,6 +1,6 @@
1
1
  import { Vec3Array, Vec4Array } from "@amodx/math";
2
- import { QuadUVData } from "../../../Geomtry/Geometry.types";
3
- import { VoxelFaces } from "../../../../Math";
2
+ import { QuadUVData } from "../../../../Geomtry/Geometry.types";
3
+ import { VoxelFaces } from "../../../../../Math";
4
4
  export type QuadVoxelGometryArgs = [
5
5
  enabled: boolean,
6
6
  texture: number,
@@ -1,5 +1,5 @@
1
1
  import { Vec2Array, Vec3Array, Vec4Array } from "@amodx/math";
2
- import { VoxelFaces } from "../../../../Math";
2
+ import { VoxelFaces } from "../../../../../Math";
3
3
  export type TriangleVoxelGometryArgs = [
4
4
  enabled: boolean,
5
5
  texture: number,
@@ -1,6 +1,6 @@
1
- import { CompiledVoxelGeometrySyncData } from "../../../Voxels/Models/CompiledVoxelModel.types";
1
+ import { CompiledVoxelGeometrySyncData } from "../../../../Voxels/Models/CompiledVoxelModel.types";
2
2
  import { GeoemtryNode } from "./GeometryNode";
3
- import { CullingProcedureData } from "../../../Voxels/Models/VoxelModel.types";
3
+ import { CullingProcedureData } from "../../../../Voxels/Models/VoxelModel.types";
4
4
  export declare class VoxelGeometryConstructor {
5
5
  geometryPaletteId: number;
6
6
  nodes: GeoemtryNode<any, any>[];
@@ -0,0 +1,24 @@
1
+ import { Vec3Array, Vector4Like } from "@amodx/math";
2
+ import type { Quad } from "../../../../Geomtry";
3
+ import { VoxelModelBuilder } from "Mesher/Voxels/Models/VoxelModelBuilder";
4
+ import { TextureProcedure, BaseVoxelGeomtryTextureProcedureData } from "../TextureProcedure";
5
+ import { TextureId } from "Textures";
6
+ import { VoxelFaces } from "Math";
7
+ /**
8
+ * Extend your data type so we can add a seed if we want, and define
9
+ * the rotations we can choose from.
10
+ */
11
+ export interface ConsistentRotationTextureProcedureData extends BaseVoxelGeomtryTextureProcedureData {
12
+ type: "consistent-rotation";
13
+ texture: TextureId | number;
14
+ /**
15
+ * You can allow (0 | 90 | 180 | 270), or remove 0 if you don’t want an unrotated option
16
+ */
17
+ rotations: (0 | 90 | 180 | 270)[];
18
+ rotationBounds?: Vec3Array;
19
+ }
20
+ export declare class ConsistentRotationTextureProcedure extends TextureProcedure<ConsistentRotationTextureProcedureData> {
21
+ getTexture(builder: VoxelModelBuilder, data: ConsistentRotationTextureProcedureData, closestFace: VoxelFaces, primitive: Quad): number;
22
+ getOverlayTexture(builder: VoxelModelBuilder, data: ConsistentRotationTextureProcedureData, closestFace: VoxelFaces, primitive: Quad, ref: Vector4Like): Vector4Like;
23
+ transformUVs(builder: VoxelModelBuilder, data: ConsistentRotationTextureProcedureData, closestFace: VoxelFaces, primitive: Quad): void;
24
+ }
@@ -1,7 +1,7 @@
1
1
  import { Vector3Like } from "@amodx/math";
2
2
  import { TextureProcedure, } from "../TextureProcedure";
3
- import { WorldSpaces } from "../../../../World/WorldSpaces";
4
- import { GetYXZOrderArrayIndex } from "../../../../Math/Indexing";
3
+ import { WorldSpaces } from "../../../../../World/WorldSpaces";
4
+ import { GetYXZOrderArrayIndex } from "../../../../../Math/Indexing";
5
5
  const voxelPos = Vector3Like.Create();
6
6
  const defaultBounds = [4, 4, 4];
7
7
  export class ConsistentRotationTextureProcedure extends TextureProcedure {
@@ -1,10 +1,10 @@
1
1
  import { Vector4Like } from "@amodx/math";
2
- import type { Quad } from "../../../Geomtry";
3
- import { VoxelModelBuilder } from "Mesher/Models/VoxelModelBuilder";
2
+ import type { Quad } from "../../../../Geomtry";
3
+ import { VoxelModelBuilder } from "Mesher/Voxels/Models/VoxelModelBuilder";
4
4
  import { TextureProcedure, BaseVoxelGeomtryTextureProcedureData } from "../TextureProcedure";
5
5
  import { TextureId } from "Textures";
6
- import { VoxelFaces } from "../../../../Math/index.js";
7
- interface OutlinedTextureProcedureData extends BaseVoxelGeomtryTextureProcedureData {
6
+ import { VoxelFaces } from "../../../../../Math/index.js";
7
+ export interface OutlinedTextureProcedureData extends BaseVoxelGeomtryTextureProcedureData {
8
8
  type: "outlined";
9
9
  texture: TextureId | number;
10
10
  textureRecrod: {
@@ -25,4 +25,3 @@ export declare class OutlinedTextureProcedure extends TextureProcedure<OutlinedT
25
25
  getOverlayTexture(builder: VoxelModelBuilder, data: OutlinedTextureProcedureData, closestFace: VoxelFaces, primitive: Quad, ref: Vector4Like): Vector4Like;
26
26
  transformUVs(builder: VoxelModelBuilder, data: OutlinedTextureProcedureData, closestFace: VoxelFaces, primitive: Quad): void;
27
27
  }
28
- export {};
@@ -0,0 +1,205 @@
1
+ import { TextureProcedure, } from "../TextureProcedure";
2
+ import { VoxelFaceDirections, VoxelFaces } from "../../../../../Math/index.js";
3
+ const textureMap = [
4
+ "top",
5
+ "corner-top-right",
6
+ "corner-top-left",
7
+ "corner-top-left-top-right",
8
+ "bottom",
9
+ "corner-bottom-right",
10
+ "corner-bottom-left",
11
+ "corner-bottom-left-bottom-right",
12
+ "right",
13
+ "left",
14
+ ];
15
+ /*
16
+ 0 -> normal direction
17
+ 1 -> top right
18
+ 2 -> top left
19
+ */
20
+ const uvsSets = {
21
+ //top bottom faces
22
+ north: {
23
+ 0b0: 0,
24
+ 0b101: 1,
25
+ 0b011: 2,
26
+ 0b001: 3,
27
+ },
28
+ south: {
29
+ 0b0: 4,
30
+ 0b101: 5,
31
+ 0b011: 6,
32
+ 0b001: 7,
33
+ },
34
+ east: {
35
+ 0b0: 8,
36
+ },
37
+ west: {
38
+ 0b0: 9,
39
+ },
40
+ //side faces
41
+ top: {
42
+ 0b0: 0,
43
+ 0b101: 1,
44
+ 0b011: 2,
45
+ 0b001: 3,
46
+ },
47
+ bottom: {
48
+ 0b0: 4,
49
+ 0b101: 5,
50
+ 0b011: 6,
51
+ 0b001: 7,
52
+ },
53
+ right: {
54
+ 0b0: 8,
55
+ },
56
+ left: {
57
+ 0b0: 9,
58
+ },
59
+ };
60
+ const CheckSets = {
61
+ [VoxelFaces.Up]: {
62
+ north: [
63
+ [0, 0, 1],
64
+ [1, 0, 1],
65
+ [-1, 0, 1],
66
+ ],
67
+ south: [
68
+ [0, 0, -1],
69
+ [1, 0, -1],
70
+ [-1, 0, -1],
71
+ ],
72
+ east: [[1, 0, 0]],
73
+ west: [[-1, 0, 0]],
74
+ },
75
+ [VoxelFaces.Down]: {
76
+ north: [
77
+ [0, 0, 1],
78
+ [1, 0, 1],
79
+ [-1, 0, 1],
80
+ ],
81
+ south: [
82
+ [0, 0, -1],
83
+ [1, 0, -1],
84
+ [-1, 0, -1],
85
+ ],
86
+ east: [[-1, 0, 0]],
87
+ west: [[1, 0, 0]],
88
+ },
89
+ [VoxelFaces.North]: {
90
+ north: [
91
+ [0, 1, 0],
92
+ [1, 1, 0],
93
+ [-1, 1, 0],
94
+ ],
95
+ south: [
96
+ [0, -1, 0],
97
+ [1, -1, 0],
98
+ [-1, -1, 0],
99
+ ],
100
+ east: [[-1, 0, 0]],
101
+ west: [[1, 0, 0]],
102
+ },
103
+ [VoxelFaces.South]: {
104
+ north: [
105
+ [0, 1, 0],
106
+ [1, 1, 0],
107
+ [-1, 1, 0],
108
+ ],
109
+ south: [
110
+ [0, -1, 0],
111
+ [1, -1, 0],
112
+ [-1, -1, 0],
113
+ ],
114
+ east: [[1, 0, 0]],
115
+ west: [[-1, 0, 0]],
116
+ },
117
+ [VoxelFaces.East]: {
118
+ north: [
119
+ [0, 1, 0],
120
+ [0, 1, 1],
121
+ [0, 1, -1],
122
+ ],
123
+ south: [
124
+ [0, -1, 0],
125
+ [0, -1, 1],
126
+ [0, -1, -1],
127
+ ],
128
+ east: [[0, 0, 1]],
129
+ west: [[0, 0, -1]],
130
+ },
131
+ [VoxelFaces.West]: {
132
+ north: [
133
+ [0, 1, 0],
134
+ [0, 1, 1],
135
+ [0, 1, -1],
136
+ ],
137
+ south: [
138
+ [0, -1, 0],
139
+ [0, -1, 1],
140
+ [0, -1, -1],
141
+ ],
142
+ east: [[0, 0, -1]],
143
+ west: [[0, 0, 1]],
144
+ },
145
+ };
146
+ const generateCheck = (direction, tool, normal, sets) => {
147
+ const { x, y, z } = tool.position;
148
+ let key = 0b0;
149
+ for (let i = 0; i < sets.length; i++) {
150
+ const set = sets[i];
151
+ const cx = x + set[0];
152
+ const cy = y + set[1];
153
+ const cz = z + set[2];
154
+ const sameLevelCheck = tool.nVoxel
155
+ .getVoxel(cx, cy, cz)
156
+ ?.isSameVoxel(tool.voxel);
157
+ let normalCheck = true;
158
+ const nVoxel = tool.nVoxel.getVoxel(cx + normal[0], cy + normal[1], cz + normal[2]);
159
+ if (nVoxel && nVoxel.isRenderable() && nVoxel.isOpaque()) {
160
+ normalCheck = false;
161
+ }
162
+ if (sameLevelCheck && normalCheck) {
163
+ key |= 0b1 << i;
164
+ }
165
+ else {
166
+ key |= 0b0 << i;
167
+ if (i == 0)
168
+ break;
169
+ }
170
+ }
171
+ if (uvsSets[direction][key] == undefined)
172
+ return 0;
173
+ const index = uvsSets[direction][key];
174
+ return textureMap[index];
175
+ };
176
+ export class OutlinedTextureProcedure extends TextureProcedure {
177
+ getTexture(builder, data, closestFace, primitive) {
178
+ return data.texture;
179
+ }
180
+ getOverlayTexture(builder, data, closestFace, primitive, ref) {
181
+ const set = CheckSets[closestFace];
182
+ const normal = VoxelFaceDirections[closestFace];
183
+ const isTopOrBottom = closestFace === VoxelFaces.Up || closestFace === VoxelFaces.Down;
184
+ // For top/bottom faces, use north/south/east/west sets.
185
+ // For side faces (north/south/east/west), use top/bottom/right/left sets.
186
+ const dirNorth = isTopOrBottom ? "north" : "top";
187
+ const dirSouth = isTopOrBottom ? "south" : "bottom";
188
+ const dirEast = isTopOrBottom ? "east" : "right";
189
+ const dirWest = isTopOrBottom ? "west" : "left";
190
+ const x = generateCheck(dirNorth, builder, normal, set.north);
191
+ if (x)
192
+ ref.x = data.textureRecrod[x];
193
+ const y = generateCheck(dirSouth, builder, normal, set.south);
194
+ if (y)
195
+ ref.y = data.textureRecrod[y];
196
+ const z = generateCheck(dirEast, builder, normal, set.east);
197
+ if (z)
198
+ ref.z = data.textureRecrod[z];
199
+ const w = generateCheck(dirWest, builder, normal, set.west);
200
+ if (w)
201
+ ref.w = data.textureRecrod[w];
202
+ return ref;
203
+ }
204
+ transformUVs(builder, data, closestFace, primitive) { }
205
+ }
@@ -0,0 +1,28 @@
1
+ import { Vector4Like } from "@amodx/math";
2
+ import type { Quad } from "../../../../Geomtry";
3
+ import { VoxelModelBuilder } from "Mesher/Voxels/Models/VoxelModelBuilder";
4
+ import { TextureProcedure, BaseVoxelGeomtryTextureProcedureData } from "../TextureProcedure";
5
+ import { TextureId } from "../../../../../Textures";
6
+ import { VoxelFaces } from "../../../../../Math";
7
+ /**
8
+ * Extend your data type so we can add a seed if we want, and define
9
+ * the rotations we can choose from.
10
+ */
11
+ export interface PillarTextureProcedureData extends BaseVoxelGeomtryTextureProcedureData {
12
+ type: "pillar";
13
+ texture: TextureId | number;
14
+ textureRecrod: {
15
+ sideConnectedTex: TextureId | number;
16
+ sideDisconnectedTex: TextureId | number;
17
+ sideUpTex: TextureId | number;
18
+ sideDownTex: TextureId | number;
19
+ upTex: TextureId | number;
20
+ downTex: TextureId | number;
21
+ };
22
+ direction: "up-down" | "north-south" | "east-west";
23
+ }
24
+ export declare class PillarTextureProcedure extends TextureProcedure<PillarTextureProcedureData> {
25
+ getTexture(builder: VoxelModelBuilder, data: PillarTextureProcedureData, closestFace: VoxelFaces, primitive: Quad): number;
26
+ getOverlayTexture(builder: VoxelModelBuilder, data: PillarTextureProcedureData, closestFace: VoxelFaces, primitive: Quad, ref: Vector4Like): Vector4Like;
27
+ transformUVs(builder: VoxelModelBuilder, data: PillarTextureProcedureData, closestFace: VoxelFaces, primitive: Quad): void;
28
+ }
@@ -0,0 +1,109 @@
1
+ import { TextureProcedure, } from "../TextureProcedure";
2
+ import { VoxelFaces } from "../../../../../Math";
3
+ export class PillarTextureProcedure extends TextureProcedure {
4
+ getTexture(builder, data, closestFace, primitive) {
5
+ if (data.direction == "up-down") {
6
+ if (closestFace == VoxelFaces.Up)
7
+ return data.textureRecrod.upTex;
8
+ if (closestFace == VoxelFaces.Down)
9
+ return data.textureRecrod.downTex;
10
+ let sideTexture = data.textureRecrod.sideDisconnectedTex;
11
+ const topVoxel = builder.nVoxel.getVoxel(builder.position.x, builder.position.y + 1, builder.position.z);
12
+ const topSame = topVoxel ? builder.voxel.isSameVoxel(topVoxel) : false;
13
+ const bottomVoxel = builder.nVoxel.getVoxel(builder.position.x, builder.position.y - 1, builder.position.z);
14
+ const bottomSame = bottomVoxel
15
+ ? builder.voxel.isSameVoxel(bottomVoxel)
16
+ : false;
17
+ if (topSame && !bottomSame) {
18
+ sideTexture = data.textureRecrod.sideDownTex;
19
+ }
20
+ if (!topSame && bottomSame) {
21
+ sideTexture = data.textureRecrod.sideUpTex;
22
+ }
23
+ if (topSame && bottomSame) {
24
+ sideTexture = data.textureRecrod.sideConnectedTex;
25
+ }
26
+ if (closestFace == VoxelFaces.North ||
27
+ closestFace == VoxelFaces.South ||
28
+ closestFace == VoxelFaces.East ||
29
+ closestFace == VoxelFaces.West)
30
+ return sideTexture;
31
+ }
32
+ if (data.direction == "north-south") {
33
+ if (closestFace == VoxelFaces.North)
34
+ return data.textureRecrod.upTex;
35
+ if (closestFace == VoxelFaces.South)
36
+ return data.textureRecrod.downTex;
37
+ let sideTexture = data.textureRecrod.sideDisconnectedTex;
38
+ const northVoxel = builder.nVoxel.getVoxel(builder.position.x, builder.position.y, builder.position.z + 1);
39
+ const northSame = northVoxel
40
+ ? builder.voxel.isSameVoxel(northVoxel)
41
+ : false;
42
+ const southVoxel = builder.nVoxel.getVoxel(builder.position.x, builder.position.y, builder.position.z - 1);
43
+ const southSame = southVoxel
44
+ ? builder.voxel.isSameVoxel(southVoxel)
45
+ : false;
46
+ if (northSame && !southSame) {
47
+ sideTexture = data.textureRecrod.sideDownTex;
48
+ }
49
+ if (!northSame && southSame) {
50
+ sideTexture = data.textureRecrod.sideUpTex;
51
+ }
52
+ if (northSame && southSame) {
53
+ sideTexture = data.textureRecrod.sideConnectedTex;
54
+ }
55
+ if (closestFace == VoxelFaces.Up ||
56
+ closestFace == VoxelFaces.Down ||
57
+ closestFace == VoxelFaces.East ||
58
+ closestFace == VoxelFaces.West)
59
+ return sideTexture;
60
+ }
61
+ if (data.direction == "east-west") {
62
+ if (closestFace == VoxelFaces.East)
63
+ return data.textureRecrod.upTex;
64
+ if (closestFace == VoxelFaces.West)
65
+ return data.textureRecrod.downTex;
66
+ let sideTexture = data.textureRecrod.sideDisconnectedTex;
67
+ const eastVoxel = builder.nVoxel.getVoxel(builder.position.x + 1, builder.position.y, builder.position.z);
68
+ const northSame = eastVoxel
69
+ ? builder.voxel.isSameVoxel(eastVoxel)
70
+ : false;
71
+ const westVoxel = builder.nVoxel.getVoxel(builder.position.x - 1, builder.position.y, builder.position.z);
72
+ const westSame = westVoxel ? builder.voxel.isSameVoxel(westVoxel) : false;
73
+ if (northSame && !westSame) {
74
+ sideTexture = data.textureRecrod.sideDownTex;
75
+ }
76
+ if (!northSame && westSame) {
77
+ sideTexture = data.textureRecrod.sideUpTex;
78
+ }
79
+ if (northSame && westSame) {
80
+ sideTexture = data.textureRecrod.sideConnectedTex;
81
+ }
82
+ if (closestFace == VoxelFaces.Up ||
83
+ closestFace == VoxelFaces.Down ||
84
+ closestFace == VoxelFaces.North ||
85
+ closestFace == VoxelFaces.South)
86
+ return sideTexture;
87
+ }
88
+ throw new Error(`Invalid direction for pillar box texture procedure | ${data.direction}`);
89
+ }
90
+ getOverlayTexture(builder, data, closestFace, primitive, ref) {
91
+ return ref;
92
+ }
93
+ transformUVs(builder, data, closestFace, primitive) {
94
+ if ((data.direction == "north-south" &&
95
+ (closestFace == VoxelFaces.East || closestFace == VoxelFaces.West)) ||
96
+ (data.direction == "east-west" &&
97
+ (closestFace == VoxelFaces.North ||
98
+ closestFace == VoxelFaces.South ||
99
+ closestFace == VoxelFaces.Up ||
100
+ closestFace == VoxelFaces.Down))) {
101
+ for (const v of primitive.uvs.vertices) {
102
+ const oldX = v.x;
103
+ const oldY = v.y;
104
+ v.x = 1 - oldY;
105
+ v.y = oldX;
106
+ }
107
+ }
108
+ }
109
+ }
@@ -1,8 +1,8 @@
1
1
  import { Vector4Like } from "@amodx/math";
2
- import { Quad, Triangle } from "../../Geomtry";
2
+ import { Quad, Triangle } from "../../../Geomtry";
3
3
  import { VoxelModelBuilder } from "../VoxelModelBuilder";
4
- import { VoxelFaces } from "../../../Math";
5
- import { TextureId } from "../../../Textures";
4
+ import { VoxelFaces } from "../../../../Math";
5
+ import { TextureId } from "../../../../Textures";
6
6
  export interface BaseVoxelGeomtryTextureProcedureData {
7
7
  type: string;
8
8
  texture?: TextureId | number;
@@ -1,5 +1,6 @@
1
1
  import { ConsistentRotationTextureProcedure } from "./Default/ConsistentRotationTextureProcedure";
2
2
  import { OutlinedTextureProcedure } from "./Default/OutlinedTextureProcedure";
3
+ import { PillarTextureProcedure } from "./Default/PillarTextureProcedure";
3
4
  export class TextureProcedureRegister {
4
5
  static procedures = new Map();
5
6
  static register(id, procedure) {
@@ -14,3 +15,4 @@ export class TextureProcedureRegister {
14
15
  }
15
16
  TextureProcedureRegister.register("consistent-rotation", new ConsistentRotationTextureProcedure());
16
17
  TextureProcedureRegister.register("outlined", new OutlinedTextureProcedure());
18
+ TextureProcedureRegister.register("pillar", new PillarTextureProcedure());
@@ -1,9 +1,9 @@
1
1
  import { VoxelModelBuilder } from "./VoxelModelBuilder";
2
- import { CompiledVoxelModelInputData, CompiledVoxelModelData } from "../../Voxels/Models/CompiledVoxelModel.types";
3
- import { StateSchema } from "../../Voxels/State/Schema/StateSchema";
4
- import { StateTreeReader } from "../../Voxels/State/StateTreeReader";
2
+ import { CompiledVoxelModelInputData, CompiledVoxelModelData } from "../../../Voxels/Models/CompiledVoxelModel.types";
3
+ import { StateSchema } from "../../../Voxels/State/Schema/StateSchema";
4
+ import { StateTreeReader } from "../../../Voxels/State/StateTreeReader";
5
5
  import { VoxelModelEffect } from "./VoxelModelEffect";
6
- import { CondtionalTreeReader } from "../../Voxels/State/CondiotnalTreeReader";
6
+ import { CondtionalTreeReader } from "../../../Voxels/State/CondiotnalTreeReader";
7
7
  export declare class VoxelConstructor {
8
8
  id: string;
9
9
  builder: VoxelModelBuilder;
@@ -1,8 +1,8 @@
1
1
  import { VoxelModelConstructorRegister } from "./VoxelModelConstructorRegister";
2
- import { StateSchema } from "../../Voxels/State/Schema/StateSchema";
3
- import { StateTreeReader } from "../../Voxels/State/StateTreeReader";
2
+ import { StateSchema } from "../../../Voxels/State/Schema/StateSchema";
3
+ import { StateTreeReader } from "../../../Voxels/State/StateTreeReader";
4
4
  import { VoxelModelEffect } from "./VoxelModelEffect";
5
- import { CondtionalTreeReader } from "../../Voxels/State/CondiotnalTreeReader";
5
+ import { CondtionalTreeReader } from "../../../Voxels/State/CondiotnalTreeReader";
6
6
  export class VoxelConstructor {
7
7
  id;
8
8
  builder;
@@ -1,6 +1,6 @@
1
- import { DataCursorInterface } from "../../Voxels/Cursor/DataCursor.interface";
1
+ import { DataCursorInterface } from "../../../Voxels/Cursor/DataCursor.interface";
2
2
  import { Vec3Array, Vector3Like } from "@amodx/math";
3
- import { VoxelCursor } from "../../Voxels/Cursor/VoxelCursor";
3
+ import { VoxelCursor } from "../../../Voxels/Cursor/VoxelCursor";
4
4
  export declare class VoxelGeometryBuilderCacheSpace {
5
5
  bounds: Vector3Like;
6
6
  foundHash: Uint8Array;
@@ -1,6 +1,6 @@
1
1
  import { VoxelModelConstructorRegister } from "./VoxelModelConstructorRegister";
2
- import { VoxelCursor } from "../../Voxels/Cursor/VoxelCursor";
3
- import { GetYXZOrderArrayIndex } from "../../Math/Indexing";
2
+ import { VoxelCursor } from "../../../Voxels/Cursor/VoxelCursor";
3
+ import { GetYXZOrderArrayIndex } from "../../../Math/Indexing";
4
4
  export class VoxelGeometryBuilderCacheSpace {
5
5
  bounds;
6
6
  foundHash;
@@ -1,11 +1,11 @@
1
- import { QuadScalarVertexData } from "../Geomtry/Primitives/QuadVertexData";
2
- import { VoxelFaces } from "../../Math";
3
- import { QuadVerticies } from "../Geomtry/Geometry.types";
4
- import { VoxelMesh } from "../Geomtry/VoxelMesh";
1
+ import { QuadScalarVertexData } from "../../Geomtry/Primitives/QuadVertexData";
2
+ import { VoxelFaces } from "../../../Math";
3
+ import { QuadVerticies } from "../../Geomtry/Geometry.types";
4
+ import { ProtoMesh } from "../../Geomtry/Proto/ProtoMesh";
5
5
  import { VoxelMeshBVHBuilder } from "../Geomtry/VoxelMeshBVHBuilder";
6
6
  import { Vec3Array, Vector3Like, Vector4Like } from "@amodx/math";
7
- import { VoxelCursorInterface } from "../../Voxels/Cursor/VoxelCursor.interface.js";
8
- import { DataCursorInterface } from "../../Voxels/Cursor/DataCursor.interface.js";
7
+ import { VoxelCursorInterface } from "../../../Voxels/Cursor/VoxelCursor.interface.js";
8
+ import { DataCursorInterface } from "../../../Voxels/Cursor/DataCursor.interface.js";
9
9
  import { VoxelGeometryBuilderCacheSpace } from "./VoxelGeometryBuilderCacheSpace";
10
10
  declare class VoxelVars {
11
11
  textureIndex: number;
@@ -26,7 +26,7 @@ export declare class VoxelModelBuilder {
26
26
  position: Vector3Like;
27
27
  /**The current local origin */
28
28
  origin: Vector3Like;
29
- mesh: VoxelMesh;
29
+ mesh: ProtoMesh;
30
30
  bvhTool: VoxelMeshBVHBuilder | null;
31
31
  vars: VoxelVars;
32
32
  dataCalculated: Record<VoxelFaces, boolean>;
@@ -1,11 +1,12 @@
1
1
  //tools
2
2
  //data
3
- import { QuadScalarVertexData } from "../Geomtry/Primitives/QuadVertexData";
4
- import { VoxelFaces, VoxelFacesArray } from "../../Math";
5
- import { QuadVerticies } from "../Geomtry/Geometry.types";
3
+ import { QuadScalarVertexData } from "../../Geomtry/Primitives/QuadVertexData";
4
+ import { VoxelFaces, VoxelFacesArray } from "../../../Math";
5
+ import { QuadVerticies } from "../../Geomtry/Geometry.types";
6
6
  import calculateFaceData from "./Common/Calc/FaceDataCalc.js";
7
- import { VoxelMesh } from "../Geomtry/VoxelMesh";
7
+ import { ProtoMesh } from "../../Geomtry/Proto/ProtoMesh";
8
8
  import { Vector3Like, Vector4Like } from "@amodx/math";
9
+ import { VoxelMeshVertexStructCursor } from "../Geomtry/VoxelMeshVertexStructCursor";
9
10
  class VoxelVars {
10
11
  textureIndex = 0;
11
12
  overlayTextures = Vector4Like.Create();
@@ -31,7 +32,7 @@ export class VoxelModelBuilder {
31
32
  position = Vector3Like.Create();
32
33
  /**The current local origin */
33
34
  origin = Vector3Like.Create();
34
- mesh = new VoxelMesh();
35
+ mesh = new ProtoMesh(VoxelMeshVertexStructCursor.VertexFloatSize);
35
36
  bvhTool = null;
36
37
  vars = new VoxelVars();
37
38
  dataCalculated;
@@ -1,10 +1,10 @@
1
- import { StringPalette } from "../../Util/StringPalette";
2
- import { CompiledVoxelGeometrySyncData, CompiledVoxelModelData } from "../../Voxels/Models/CompiledVoxelModel.types";
1
+ import { StringPalette } from "../../../Util/StringPalette";
2
+ import { CompiledVoxelGeometrySyncData, CompiledVoxelModelData } from "../../../Voxels/Models/CompiledVoxelModel.types";
3
3
  import { GeoemtryNodeConstructor } from "./Nodes/GeometryNode";
4
4
  import { VoxelConstructor } from "./VoxelConstructor";
5
5
  import { VoxelGeometryConstructor } from "./Nodes/VoxelGeometryConstructor";
6
- import { AOOcclusionFaceIndex } from "../../Voxels/Models/Indexing/AOOcclusionFaceIndex";
7
- import { CulledOcclusionFaceIndex } from "../../Voxels/Models/Indexing/CulledOcclusionFaceIndex";
6
+ import { AOOcclusionFaceIndex } from "../../../Voxels/Models/Indexing/AOOcclusionFaceIndex";
7
+ import { CulledOcclusionFaceIndex } from "../../../Voxels/Models/Indexing/CulledOcclusionFaceIndex";
8
8
  export declare class VoxelModelConstructorRegister {
9
9
  static geometryPalette: StringPalette;
10
10
  static geometry: VoxelGeometryConstructor[];
@@ -1,6 +1,6 @@
1
- import { StringPalette } from "../../Util/StringPalette";
1
+ import { StringPalette } from "../../../Util/StringPalette";
2
2
  import { VoxelGeometryConstructor } from "./Nodes/VoxelGeometryConstructor";
3
- import { VoxelPalettesRegister } from "../../Voxels/Data/VoxelPalettesRegister";
3
+ import { VoxelPalettesRegister } from "../../../Voxels/Data/VoxelPalettesRegister";
4
4
  export class VoxelModelConstructorRegister {
5
5
  static geometryPalette;
6
6
  static geometry = [];
@@ -1,5 +1,5 @@
1
1
  import { VoxelConstructor } from "./VoxelConstructor";
2
- import { StateTreeReader } from "../../Voxels/State/StateTreeReader";
2
+ import { StateTreeReader } from "../../../Voxels/State/StateTreeReader";
3
3
  import { Vec3Array, Vector3Like } from "@amodx/math";
4
4
  export declare class VoxelModelEffect {
5
5
  model: VoxelConstructor;
@@ -1,4 +1,4 @@
1
- import { StateTreeReader } from "../../Voxels/State/StateTreeReader";
1
+ import { StateTreeReader } from "../../../Voxels/State/StateTreeReader";
2
2
  export class VoxelModelEffect {
3
3
  model;
4
4
  effects = [];
@@ -1,5 +1,5 @@
1
1
  import { SectionMesh } from "./SectionMesh";
2
- import { CompactedSectionVoxelMesh } from "../../Mesher/Geomtry/CompactedSectionVoxelMesh";
2
+ import { CompactedSectionVoxelMesh } from "../../Mesher/Voxels/Geomtry/CompactedSectionVoxelMesh";
3
3
  export declare abstract class DVESectionMeshes {
4
4
  abstract updateVertexData(section: SectionMesh, data: CompactedSectionVoxelMesh): SectionMesh;
5
5
  abstract returnMesh(mesh: any): void;