@divinevoxel/vlox 0.0.76 → 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 (315) hide show
  1. package/Builder/Tools/Brush/BrushTool.d.ts +16 -9
  2. package/Builder/Tools/Brush/BrushTool.js +258 -52
  3. package/Builder/Tools/BuilderToolBase.d.ts +36 -0
  4. package/Builder/Tools/BuilderToolBase.js +39 -0
  5. package/Builder/Tools/Hand/HandTool.d.ts +9 -7
  6. package/Builder/Tools/Hand/HandTool.js +40 -23
  7. package/Builder/Tools/Path/PahtTool.d.ts +12 -7
  8. package/Builder/Tools/Path/PahtTool.js +32 -21
  9. package/Builder/Tools/Sculpt/SculptTool.d.ts +34 -0
  10. package/Builder/Tools/Sculpt/SculptTool.js +102 -0
  11. package/Builder/Tools/Shape/ShapeTool.d.ts +32 -0
  12. package/Builder/Tools/Shape/ShapeTool.js +78 -0
  13. package/Builder/Tools/Template/TemplateTool.d.ts +35 -0
  14. package/Builder/Tools/Template/TemplateTool.js +73 -0
  15. package/Builder/Tools/Wand/WandTool.d.ts +9 -7
  16. package/Builder/Tools/Wand/WandTool.js +43 -20
  17. package/Builder/Tools/Wrench/WrenchTool.d.ts +7 -7
  18. package/Builder/Tools/Wrench/WrenchTool.js +22 -13
  19. package/Builder/Util/FreeBoxSelection.d.ts +12 -0
  20. package/Builder/Util/FreeBoxSelection.js +21 -0
  21. package/Builder/Util/FreePointSelection.d.ts +14 -0
  22. package/Builder/Util/FreePointSelection.js +39 -0
  23. package/Builder/Util/SurfaceBoxSelection.d.ts +12 -0
  24. package/Builder/{Tools/Box/BoxSelection.js → Util/SurfaceBoxSelection.js} +1 -3
  25. package/Builder/VoxelBuildSpace.d.ts +37 -25
  26. package/Builder/VoxelBuildSpace.js +99 -40
  27. package/Builder/World/InitTasks.js +17 -22
  28. package/Mesher/Geomtry/Proto/ProtoMesh.d.ts +18 -0
  29. package/Mesher/Geomtry/Proto/ProtoMesh.js +73 -0
  30. package/Mesher/Geomtry/{VoxelMeshBuffers.d.ts → Proto/ProtoMeshBuffer.d.ts} +2 -2
  31. package/Mesher/Geomtry/{VoxelMeshBuffers.js → Proto/ProtoMeshBuffer.js} +2 -2
  32. package/Mesher/Geomtry/Shapes/Box.d.ts +2 -9
  33. package/Mesher/Geomtry/Shapes/Box.js +7 -12
  34. package/Mesher/Geomtry/Transform/TransformBox.js +5 -2
  35. package/Mesher/InitMesher.js +4 -4
  36. package/Mesher/InitTask.js +2 -2
  37. package/Mesher/Items/Base/CompactItemMesh.d.ts +3 -0
  38. package/Mesher/Items/Base/CompactItemMesh.js +20 -0
  39. package/Mesher/Items/Geomtry/ItemGeometryBuilder.d.ts +5 -0
  40. package/Mesher/Items/Geomtry/ItemGeometryBuilder.js +131 -0
  41. package/Mesher/Items/Geomtry/ItemMeshVertexStructCursor.d.ts +48 -0
  42. package/Mesher/Items/Geomtry/ItemMeshVertexStructCursor.js +114 -0
  43. package/Mesher/Items/MeshTexture.d.ts +1 -0
  44. package/Mesher/Items/MeshTexture.js +214 -0
  45. package/Mesher/Items/MeshTextureO.js +277 -0
  46. package/Mesher/Items/Models/ItemModelBuilder.d.ts +27 -0
  47. package/Mesher/Items/Models/ItemModelBuilder.js +64 -0
  48. package/Mesher/Types/ItemMesh.types.d.ts +5 -0
  49. package/Mesher/Types/ItemMesh.types.js +12 -0
  50. package/Mesher/Types/Mesher.types.d.ts +15 -9
  51. package/Mesher/Types/Mesher.types.js +14 -0
  52. package/Mesher/Types/VoxelMesh.types.js +7 -6
  53. package/Mesher/Voxels/Base/CompactTemplateMesh.d.ts +3 -0
  54. package/Mesher/{Functions/CompactVoxelMesh.js → Voxels/Base/CompactTemplateMesh.js} +4 -40
  55. package/Mesher/{Functions → Voxels/Base}/CompactVoxelSectionMesh.d.ts +2 -2
  56. package/Mesher/{Functions → Voxels}/Base/MeshSectionBase.d.ts +1 -1
  57. package/Mesher/{Functions → Voxels}/Base/MeshSectionBase.js +9 -8
  58. package/Mesher/{Geomtry → Voxels/Geomtry}/CompactedSectionVoxelMesh.d.ts +1 -1
  59. package/Mesher/{Geomtry → Voxels/Geomtry}/CompactedSectionVoxelMesh.js +1 -1
  60. package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelGeometryBuilder.d.ts +2 -2
  61. package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelGeometryBuilder.js +1 -1
  62. package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelMeshBVHBuilder.d.ts +1 -1
  63. package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelMeshBVHBuilder.js +2 -2
  64. package/Mesher/Voxels/MeshTemplate.d.ts +3 -0
  65. package/Mesher/Voxels/MeshTemplate.js +81 -0
  66. package/Mesher/{Functions → Voxels}/MeshVoxel.d.ts +1 -1
  67. package/Mesher/{Functions → Voxels}/MeshVoxel.js +4 -4
  68. package/Mesher/{Models → Voxels/Models}/Common/Calc/CalcConstants.d.ts +2 -2
  69. package/Mesher/{Models → Voxels/Models}/Common/Calc/CalcConstants.js +4 -4
  70. package/Mesher/{Models → Voxels/Models}/Common/Calc/FaceDataCalc.d.ts +1 -1
  71. package/Mesher/{Models → Voxels/Models}/Common/Calc/FaceDataCalc.js +2 -2
  72. package/Mesher/{Models → Voxels/Models}/Common/Faces/CullRulledFace.js +1 -1
  73. package/Mesher/{Models → Voxels/Models}/Common/Faces/ShadeRulelessFace.d.ts +1 -1
  74. package/Mesher/{Models → Voxels/Models}/Common/Faces/ShadeRulledFace.d.ts +1 -1
  75. package/Mesher/{Models → Voxels/Models}/Common/Faces/ShadeRulledFace.js +1 -1
  76. package/Mesher/{Models → Voxels/Models}/Common/GetTexture.d.ts +3 -3
  77. package/Mesher/{Models → Voxels/Models}/Nodes/Custom/Liquid/FlowGradient.d.ts +1 -1
  78. package/Mesher/{Models → Voxels/Models}/Nodes/Custom/Liquid/FlowGradient.js +1 -1
  79. package/Mesher/{Models → Voxels/Models}/Nodes/Custom/Liquid/LiquidGeomtryNode.d.ts +3 -3
  80. package/Mesher/{Models → Voxels/Models}/Nodes/Custom/Liquid/LiquidGeomtryNode.js +14 -16
  81. package/Mesher/{Models → Voxels/Models}/Nodes/Default/QuadVoxelGeometryNode.d.ts +2 -2
  82. package/Mesher/{Models → Voxels/Models}/Nodes/Default/QuadVoxelGeometryNode.js +1 -1
  83. package/Mesher/{Models → Voxels/Models}/Nodes/Default/TriangleVoxelGeometryNode.d.ts +2 -2
  84. package/Mesher/{Models → Voxels/Models}/Nodes/Default/TriangleVoxelGeometryNode.js +1 -1
  85. package/Mesher/{Models → Voxels/Models}/Nodes/Types/QuadVoxelGometryNodeTypes.d.ts +2 -2
  86. package/Mesher/{Models → Voxels/Models}/Nodes/Types/TriangleVoxelGometryNodeTypes.d.ts +1 -1
  87. package/Mesher/{Models → Voxels/Models}/Nodes/VoxelGeometryConstructor.d.ts +2 -2
  88. package/Mesher/Voxels/Models/Procedures/Default/ConsistentRotationTextureProcedure.d.ts +24 -0
  89. package/Mesher/{Models → Voxels/Models}/Procedures/Default/ConsistentRotationTextureProcedure.js +2 -2
  90. package/Mesher/{Models → Voxels/Models}/Procedures/Default/OutlinedTextureProcedure.d.ts +4 -5
  91. package/Mesher/Voxels/Models/Procedures/Default/OutlinedTextureProcedure.js +205 -0
  92. package/Mesher/Voxels/Models/Procedures/Default/PillarTextureProcedure.d.ts +28 -0
  93. package/Mesher/Voxels/Models/Procedures/Default/PillarTextureProcedure.js +109 -0
  94. package/Mesher/{Models → Voxels/Models}/Procedures/TextureProcedure.d.ts +3 -3
  95. package/Mesher/{Models → Voxels/Models}/Procedures/TextureProcedureRegister.js +2 -0
  96. package/Mesher/{Models → Voxels/Models}/VoxelConstructor.d.ts +4 -4
  97. package/Mesher/{Models → Voxels/Models}/VoxelConstructor.js +3 -3
  98. package/Mesher/{Models → Voxels/Models}/VoxelGeometryBuilderCacheSpace.d.ts +2 -2
  99. package/Mesher/{Models → Voxels/Models}/VoxelGeometryBuilderCacheSpace.js +2 -2
  100. package/Mesher/{Models → Voxels/Models}/VoxelModelBuilder.d.ts +7 -7
  101. package/Mesher/{Models → Voxels/Models}/VoxelModelBuilder.js +6 -5
  102. package/Mesher/{Models → Voxels/Models}/VoxelModelConstructorRegister.d.ts +4 -4
  103. package/Mesher/{Models → Voxels/Models}/VoxelModelConstructorRegister.js +2 -2
  104. package/Mesher/{Models → Voxels/Models}/VoxelModelEffect.d.ts +1 -1
  105. package/Mesher/{Models → Voxels/Models}/VoxelModelEffect.js +1 -1
  106. package/Renderer/Classes/DVESectionMeshes.d.ts +1 -1
  107. package/Renderer/MeshManager.js +1 -1
  108. package/Settings/EngineSettings.types.d.ts +2 -1
  109. package/Settings/EngineSettings.types.js +3 -1
  110. package/Tasks/Paint/Common.js +14 -9
  111. package/Tasks/Paint/Erase/EraseVoxelSelection.d.ts +4 -0
  112. package/Tasks/Paint/Erase/EraseVoxelSelection.js +33 -0
  113. package/Tasks/Paint/Erase/EraseVoxelTemplate.js +1 -2
  114. package/Tasks/Paint/Paint/PaintVoxel.js +1 -1
  115. package/Tasks/Paint/Paint/PaintVoxelTemplate.js +1 -1
  116. package/Tasks/Propagation/Illumanation/RGBUpdate.js +1 -1
  117. package/Tasks/Tasks.types.d.ts +2 -0
  118. package/Tasks/TasksIds.d.ts +1 -0
  119. package/Tasks/TasksIds.js +1 -0
  120. package/Tasks/WorldGeneration/InitTasks.js +3 -1
  121. package/Templates/Archive/ArchivedVoxelTemplate.d.ts +5 -5
  122. package/Templates/Archive/ArchivedVoxelTemplate.js +52 -49
  123. package/Templates/Archive/Functions/CreateArchivedTemplate.js +0 -2
  124. package/Templates/Archive/Functions/ExportArchiedTemplateJSON.js +0 -1
  125. package/Templates/Archive/Functions/ImportArchivedTemplateJSON.js +0 -2
  126. package/Templates/Cursor/TemplateCursor.d.ts +6 -1
  127. package/Templates/Cursor/TemplateCursor.js +13 -2
  128. package/Templates/Cursor/TemplateProxy.js +1 -6
  129. package/Templates/Cursor/TemplateVoxelCursor.d.ts +1 -0
  130. package/Templates/Cursor/TemplateVoxelCursor.js +6 -0
  131. package/Templates/Full/FullVoxelTemplate.d.ts +4 -4
  132. package/Templates/Full/FullVoxelTemplate.js +29 -18
  133. package/Templates/Functions/ExtrudeSelection.d.ts +5 -0
  134. package/Templates/Functions/ExtrudeSelection.js +44 -0
  135. package/Templates/Functions/FillSelection.d.ts +4 -0
  136. package/Templates/Functions/FillSelection.js +20 -0
  137. package/Templates/Functions/FlipTemplate.d.ts +2 -2
  138. package/Templates/Functions/FlipTemplate.js +8 -8
  139. package/Templates/Functions/RotateTemplate.d.ts +2 -2
  140. package/Templates/Path/VoxelPath.js +2 -1
  141. package/Templates/Selection/VoxelBFSSelection.d.ts +3 -6
  142. package/Templates/Selection/VoxelBFSSelection.js +20 -24
  143. package/Templates/Selection/{VoxelBoxSelection.d.ts → VoxelBoundsSelection.d.ts} +9 -6
  144. package/Templates/Selection/{VoxelBoxSelection.js → VoxelBoundsSelection.js} +29 -22
  145. package/Templates/Selection/VoxelPointSelection.d.ts +8 -6
  146. package/Templates/Selection/VoxelPointSelection.js +25 -24
  147. package/Templates/Selection/VoxelSelection.d.ts +18 -0
  148. package/Templates/Selection/VoxelSurfaceSelection.d.ts +5 -12
  149. package/Templates/Selection/VoxelSurfaceSelection.js +76 -90
  150. package/Templates/Selection/VoxelTemplateSelection.d.ts +10 -4
  151. package/Templates/Selection/VoxelTemplateSelection.js +18 -10
  152. package/Templates/Shapes/Selections/BoxVoxelShapeSelection.d.ts +28 -0
  153. package/Templates/Shapes/Selections/BoxVoxelShapeSelection.js +77 -0
  154. package/Templates/Shapes/Selections/ConeVoxelShapeSelection.d.ts +28 -0
  155. package/Templates/Shapes/Selections/ConeVoxelShapeSelection.js +77 -0
  156. package/Templates/Shapes/Selections/CylinderVoxelShapeSelection.d.ts +28 -0
  157. package/Templates/Shapes/Selections/CylinderVoxelShapeSelection.js +77 -0
  158. package/Templates/Shapes/Selections/EllipsoidVoxelShapeSelection.d.ts +28 -0
  159. package/Templates/Shapes/Selections/EllipsoidVoxelShapeSelection.js +92 -0
  160. package/Templates/Shapes/Selections/OctahedronVoxelShapeSelection.d.ts +28 -0
  161. package/Templates/Shapes/Selections/OctahedronVoxelShapeSelection.js +76 -0
  162. package/Templates/Shapes/Selections/PyramidVoxelShapeSelection.d.ts +37 -0
  163. package/Templates/Shapes/Selections/PyramidVoxelShapeSelection.js +137 -0
  164. package/Templates/Shapes/Selections/SphereVoxelShapeSelection.d.ts +20 -0
  165. package/Templates/Shapes/Selections/SphereVoxelShapeSelection.js +61 -0
  166. package/Templates/Shapes/Selections/TorusVoxelShapeSelection.d.ts +28 -0
  167. package/Templates/Shapes/Selections/TorusVoxelShapeSelection.js +76 -0
  168. package/Templates/Shapes/Selections/VoxelShapeSelection.d.ts +5 -0
  169. package/Templates/Shapes/Selections/VoxelShapeSelection.js +1 -0
  170. package/Templates/Shapes/VoxelShape.types.d.ts +2 -0
  171. package/Templates/Shapes/VoxelShape.types.js +8 -0
  172. package/Templates/Shapes/VoxelShapeTemplate.d.ts +37 -0
  173. package/Templates/Shapes/{BasicVoxelShapeTemplate.js → VoxelShapeTemplate.js} +43 -37
  174. package/Templates/Shapes/VoxelShapeTemplate.types.d.ts +4 -13
  175. package/Templates/Shapes/VoxelShapeTemplate.types.js +0 -1
  176. package/Templates/{VoxelTempateRegister.d.ts → VoxelTemplateRegister.d.ts} +4 -0
  177. package/Templates/VoxelTemplateRegister.js +60 -0
  178. package/Templates/VoxelTemplates.types.d.ts +2 -3
  179. package/Textures/Classes/CompiledTexture.d.ts +2 -0
  180. package/Textures/Classes/CompiledTexture.js +19 -1
  181. package/Textures/Functions/BuildTextureData.js +13 -0
  182. package/Textures/TextureManager.d.ts +1 -0
  183. package/Textures/TextureManager.js +11 -5
  184. package/Tools/Brush/Brush.d.ts +2 -0
  185. package/Tools/Brush/Brush.js +19 -0
  186. package/Tools/Tasks/TasksTool.d.ts +2 -1
  187. package/Tools/Tasks/TasksTool.js +2 -0
  188. package/Voxels/Cursor/DataCursor.interface.d.ts +4 -0
  189. package/Voxels/Cursor/VoxelLightData.js +2 -2
  190. package/Voxels/Functions/BuildTagData.js +1 -1
  191. package/Voxels/Indexes/VoxelIndex.d.ts +1 -0
  192. package/Voxels/Indexes/VoxelIndex.js +11 -13
  193. package/Voxels/InitVoxelData.js +5 -14
  194. package/Voxels/Interaction/Functions/PickVoxel.d.ts +0 -5
  195. package/Voxels/Interaction/Functions/PickVoxel.js +64 -85
  196. package/Voxels/Interaction/Functions/PickVoxelWorld.js +6 -3
  197. package/Voxels/Models/CompiledVoxelModel.types.d.ts +1 -1
  198. package/Voxels/Models/Defaults/CubeVoxelGeometry.js +11 -0
  199. package/Voxels/Models/Defaults/CubeVoxelModels.js +44 -99
  200. package/Voxels/Models/Defaults/PanelVoxelGeometry.d.ts +1 -3
  201. package/Voxels/Models/Defaults/PanelVoxelGeometry.js +2 -226
  202. package/Voxels/Models/Defaults/PanelVoxelModels.d.ts +1 -0
  203. package/Voxels/Models/Defaults/PanelVoxelModels.js +100 -258
  204. package/Voxels/Models/Defaults/StairVoxelModel.js +2 -2
  205. package/Voxels/Models/Rules/Classes/GeomtryInput.d.ts +4 -1
  206. package/Voxels/Models/Rules/Classes/GeomtryInput.js +26 -5
  207. package/Voxels/Models/Rules/Classes/VoxelRulesGeometry.d.ts +1 -1
  208. package/Voxels/Models/Rules/Functions/BuildFinalInputs.js +23 -8
  209. package/Voxels/Models/Rules/Functions/Compile/CompileGeomtryNodes.d.ts +1 -1
  210. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileBoxGeometryNode.d.ts +1 -1
  211. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileQuadGeometryNode.d.ts +1 -1
  212. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileQuadGeometryNode.js +1 -1
  213. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileTriangleGeometryNode.d.ts +1 -1
  214. package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileTriangleGeometryNode.js +1 -1
  215. package/Voxels/Models/VoxelModel.types.d.ts +6 -1
  216. package/Voxels/Types/PaintVoxelData.d.ts +2 -0
  217. package/Voxels/Types/PaintVoxelData.js +51 -0
  218. package/World/Cursor/SectionCursor.d.ts +4 -0
  219. package/World/Cursor/SectionCursor.js +13 -16
  220. package/World/Cursor/SectorCursor.d.ts +4 -0
  221. package/World/Cursor/SectorCursor.js +13 -16
  222. package/World/Cursor/WorldCursor.d.ts +4 -0
  223. package/World/Cursor/WorldCursor.js +8 -0
  224. package/World/Sector/SectorHeightMap.d.ts +6 -0
  225. package/World/Sector/SectorHeightMap.js +6 -0
  226. package/World/SnapShot/SectionSnapShotCursor.d.ts +3 -0
  227. package/World/SnapShot/SectionSnapShotCursor.js +6 -0
  228. package/World/WorldSpaces.js +3 -3
  229. package/WorldSimulation/Dimensions/DimensionSimulation.d.ts +5 -1
  230. package/WorldSimulation/Dimensions/DimensionSimulation.js +12 -0
  231. package/WorldSimulation/Dimensions/Generator.d.ts +1 -0
  232. package/WorldSimulation/Dimensions/Generator.js +1 -0
  233. package/WorldSimulation/Dimensions/SimulationSector.d.ts +3 -0
  234. package/WorldSimulation/Dimensions/SimulationSector.js +71 -41
  235. package/WorldSimulation/Internal/WorldSimulationTasks.js +5 -2
  236. package/WorldSimulation/Procedures/BuildOnly.d.ts +10 -0
  237. package/WorldSimulation/Procedures/BuildOnly.js +55 -0
  238. package/WorldSimulation/Procedures/InitalLoad.js +3 -0
  239. package/WorldSimulation/Tasks/SimulationTaskBase.d.ts +2 -0
  240. package/WorldSimulation/Tasks/SimulationTaskBase.js +11 -3
  241. package/WorldSimulation/Tasks/TaskSegment.d.ts +2 -1
  242. package/WorldSimulation/Tasks/TaskSegment.js +3 -1
  243. package/WorldSimulation/Tick/TickQueue.d.ts +2 -0
  244. package/WorldSimulation/Tick/TickQueue.js +26 -0
  245. package/WorldSimulation/Tools/SimulationBrush.d.ts +3 -0
  246. package/WorldSimulation/Tools/SimulationBrush.js +52 -0
  247. package/WorldSimulation/Voxels/Behaviors/Types/DefaultVoxelBehavior.js +3 -0
  248. package/WorldSimulation/Voxels/Behaviors/Types/LiquidVoxelBehavior.js +21 -1
  249. package/WorldSimulation/Voxels/Behaviors/VoxelBehaviors.d.ts +2 -0
  250. package/WorldSimulation/Voxels/Behaviors/VoxelBehaviors.js +6 -0
  251. package/WorldSimulation/Voxels/Ticks/Types/LiquidVoxelUpdate.js +39 -14
  252. package/WorldSimulation/WorldSimulation.d.ts +10 -0
  253. package/WorldSimulation/WorldSimulation.js +41 -1
  254. package/package.json +1 -30
  255. package/Builder/Tools/Box/BoxSelection.d.ts +0 -12
  256. package/Builder/Tools/Box/BoxTool.d.ts +0 -31
  257. package/Builder/Tools/Box/BoxTool.js +0 -91
  258. package/Builder/Tools/Box/BoxToolTemplate.d.ts +0 -13
  259. package/Builder/Tools/Box/BoxToolTemplate.js +0 -23
  260. package/Builder/VoxelBuilder.types.d.ts +0 -0
  261. package/Builder/VoxelBuilder.types.js +0 -1
  262. package/Mesher/Functions/CompactVoxelMesh.d.ts +0 -3
  263. package/Mesher/Functions/MeshTexture.js +0 -278
  264. package/Mesher/Geomtry/VoxelMesh.d.ts +0 -12
  265. package/Mesher/Geomtry/VoxelMesh.js +0 -25
  266. package/Mesher/Models/Procedures/Default/ConsistentRotationTextureProcedure.d.ts +0 -25
  267. package/Mesher/Models/Procedures/Default/OutlinedTextureProcedure.js +0 -162
  268. package/Templates/Selection/VoxelSelecton.d.ts +0 -9
  269. package/Templates/Shapes/BasicVoxelShapeTemplate.d.ts +0 -36
  270. package/Templates/Shapes/BoxVoxelTemplate.d.ts +0 -23
  271. package/Templates/Shapes/BoxVoxelTemplate.js +0 -83
  272. package/Templates/Shapes/ConeVoxelTemplate.d.ts +0 -23
  273. package/Templates/Shapes/ConeVoxelTemplate.js +0 -73
  274. package/Templates/Shapes/CylinderVoxelTemplate.d.ts +0 -23
  275. package/Templates/Shapes/CylinderVoxelTemplate.js +0 -73
  276. package/Templates/Shapes/EllipsoidVoxelTemplate.d.ts +0 -23
  277. package/Templates/Shapes/EllipsoidVoxelTemplate.js +0 -89
  278. package/Templates/Shapes/OctahedronVoxelTemplate.d.ts +0 -23
  279. package/Templates/Shapes/OctahedronVoxelTemplate.js +0 -73
  280. package/Templates/Shapes/PyramidVoxelTemplate.d.ts +0 -31
  281. package/Templates/Shapes/PyramidVoxelTemplate.js +0 -148
  282. package/Templates/Shapes/SphereVoxelTemplate.d.ts +0 -15
  283. package/Templates/Shapes/SphereVoxelTemplate.js +0 -59
  284. package/Templates/Shapes/TorusVoxelTemplate.d.ts +0 -23
  285. package/Templates/Shapes/TorusVoxelTemplate.js +0 -73
  286. package/Templates/VoxelTempateRegister.js +0 -30
  287. /package/Mesher/{Functions/MeshTexture.d.ts → Items/MeshTextureO.d.ts} +0 -0
  288. /package/Mesher/{Functions → Voxels/Base}/CompactVoxelSectionMesh.js +0 -0
  289. /package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelMeshBVHStructCursor.d.ts +0 -0
  290. /package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelMeshBVHStructCursor.js +0 -0
  291. /package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelMeshVertexStructCursor.d.ts +0 -0
  292. /package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelMeshVertexStructCursor.js +0 -0
  293. /package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelShaderData.d.ts +0 -0
  294. /package/Mesher/{Geomtry → Voxels/Geomtry}/VoxelShaderData.js +0 -0
  295. /package/Mesher/{Functions → Voxels}/MeshSection.d.ts +0 -0
  296. /package/Mesher/{Functions → Voxels}/MeshSection.js +0 -0
  297. /package/Mesher/{Functions → Voxels}/MeshSectionSnapShot.d.ts +0 -0
  298. /package/Mesher/{Functions → Voxels}/MeshSectionSnapShot.js +0 -0
  299. /package/Mesher/{Models → Voxels/Models}/Common/Faces/CullRulledFace.d.ts +0 -0
  300. /package/Mesher/{Models → Voxels/Models}/Common/Faces/ShadeRulelessFace.js +0 -0
  301. /package/Mesher/{Models → Voxels/Models}/Common/GetTexture.js +0 -0
  302. /package/Mesher/{Models → Voxels/Models}/Nodes/Custom/index.d.ts +0 -0
  303. /package/Mesher/{Models → Voxels/Models}/Nodes/Custom/index.js +0 -0
  304. /package/Mesher/{Models → Voxels/Models}/Nodes/GeometryNode.d.ts +0 -0
  305. /package/Mesher/{Models → Voxels/Models}/Nodes/GeometryNode.js +0 -0
  306. /package/Mesher/{Models → Voxels/Models}/Nodes/Types/GeomtryNode.types.d.ts +0 -0
  307. /package/Mesher/{Models → Voxels/Models}/Nodes/Types/GeomtryNode.types.js +0 -0
  308. /package/Mesher/{Models → Voxels/Models}/Nodes/Types/QuadVoxelGometryNodeTypes.js +0 -0
  309. /package/Mesher/{Models → Voxels/Models}/Nodes/Types/TriangleVoxelGometryNodeTypes.js +0 -0
  310. /package/Mesher/{Models → Voxels/Models}/Nodes/VoxelGeometryConstructor.js +0 -0
  311. /package/Mesher/{Models → Voxels/Models}/Procedures/TextureProcedure.js +0 -0
  312. /package/Mesher/{Models → Voxels/Models}/Procedures/TextureProcedureRegister.d.ts +0 -0
  313. /package/Mesher/{Models → Voxels/Models}/RenderedMaterials.d.ts +0 -0
  314. /package/Mesher/{Models → Voxels/Models}/RenderedMaterials.js +0 -0
  315. /package/Templates/Selection/{VoxelSelecton.js → VoxelSelection.js} +0 -0
@@ -1,91 +0,0 @@
1
- import { VoxelBoxSelection } from "../../../Templates/Selection/VoxelBoxSelection";
2
- import { Vector3Like } from "@amodx/math";
3
- import { BoxSelection } from "./BoxSelection";
4
- import { BoxToolTemplate } from "./BoxToolTemplate";
5
- import { BuilderToolBase } from "../BuilderToolBase";
6
- export var BoxToolModes;
7
- (function (BoxToolModes) {
8
- BoxToolModes["Fill"] = "Fill";
9
- BoxToolModes["Extrude"] = "Extrude";
10
- BoxToolModes["Template"] = "Template";
11
- BoxToolModes["Remove"] = "Remove";
12
- })(BoxToolModes || (BoxToolModes = {}));
13
- export class BoxTool extends BuilderToolBase {
14
- space;
15
- static ToolId = "Box";
16
- static ModeArray = [
17
- BoxToolModes.Fill,
18
- BoxToolModes.Extrude,
19
- BoxToolModes.Template,
20
- BoxToolModes.Remove,
21
- ];
22
- mode = BoxToolModes.Fill;
23
- selection = new VoxelBoxSelection();
24
- boxSelection;
25
- constructor(space) {
26
- super();
27
- this.space = space;
28
- console.warn("CREATE BOX TOOL", this.space, this.selection);
29
- this.boxSelection = new BoxSelection(this.space, this.selection);
30
- }
31
- _started = false;
32
- isSelectionStarted() {
33
- return this._started;
34
- }
35
- updateOffset(offset) {
36
- this.boxSelection.offset = offset;
37
- this.boxSelection.update();
38
- }
39
- updatePlacer(picked, placerMode = null) {
40
- if (!this._started && !placerMode && picked) {
41
- if (this.mode == BoxToolModes.Fill ||
42
- this.mode == BoxToolModes.Template ||
43
- this.mode == BoxToolModes.Extrude) {
44
- this.selection.reConstruct(picked.normalPosition, picked.normal, Vector3Like.Add(picked.normalPosition, Vector3Like.Create(1, 1, 1)), picked.normal);
45
- }
46
- if (this.mode == BoxToolModes.Remove) {
47
- this.selection.reConstruct(picked.position, picked.normal, Vector3Like.Add(picked.position, Vector3Like.Create(1, 1, 1)), picked.normal);
48
- }
49
- }
50
- if (!this._started && placerMode == "start" && picked) {
51
- this.boxSelection.offset = 0;
52
- Vector3Like.Copy(this.boxSelection.planeNormal, picked.normal);
53
- if (this.mode == BoxToolModes.Fill ||
54
- this.mode == BoxToolModes.Template ||
55
- this.mode == BoxToolModes.Extrude) {
56
- Vector3Like.Copy(this.boxSelection.planeOrigin, picked.normalPosition);
57
- }
58
- if (this.mode == BoxToolModes.Remove) {
59
- Vector3Like.Copy(this.boxSelection.planeOrigin, picked.position);
60
- }
61
- this.boxSelection.update();
62
- this._started = true;
63
- return;
64
- }
65
- if (this._started && !placerMode && !picked) {
66
- this.boxSelection.update();
67
- return;
68
- }
69
- if (this._started && placerMode == "end") {
70
- this.boxSelection.update();
71
- this._started = false;
72
- }
73
- }
74
- async use(voxelData, usePlacingStrategy = true) {
75
- if (this.mode == BoxToolModes.Fill) {
76
- await this.space.paintTemplate(Vector3Like.ToArray(this.selection.origin), this.selection
77
- .toTemplate({
78
- fillVoxel: voxelData,
79
- })
80
- .toJSON());
81
- }
82
- if (this.mode == BoxToolModes.Template) {
83
- const boxTemplate = new BoxToolTemplate(this.space, this.selection.clone());
84
- await boxTemplate.create();
85
- this.dispatch("template-created", boxTemplate);
86
- }
87
- if (this.mode == BoxToolModes.Remove) {
88
- await this.space.eraseTemplate(Vector3Like.ToArray(this.selection.origin), this.selection.toTemplate({}).toJSON());
89
- }
90
- }
91
- }
@@ -1,13 +0,0 @@
1
- import { FullVoxelTemplate } from "../../../Templates/Full/FullVoxelTemplate";
2
- import { VoxelBoxSelection } from "../../../Templates/Selection/VoxelBoxSelection";
3
- import { VoxelBuildSpace } from "../../VoxelBuildSpace";
4
- export declare class BoxToolTemplate {
5
- space: VoxelBuildSpace;
6
- selection: VoxelBoxSelection;
7
- template: FullVoxelTemplate;
8
- private _created;
9
- constructor(space: VoxelBuildSpace, selection: VoxelBoxSelection);
10
- create(): Promise<void>;
11
- place(): Promise<void>;
12
- clear(): Promise<void>;
13
- }
@@ -1,23 +0,0 @@
1
- export class BoxToolTemplate {
2
- space;
3
- selection;
4
- template;
5
- _created = false;
6
- constructor(space, selection) {
7
- this.space = space;
8
- this.selection = selection;
9
- }
10
- async create() {
11
- if (this._created)
12
- return;
13
- const bounds = this.selection.bounds.getMinMax();
14
- this.template = await this.space.createTemplate(bounds);
15
- this._created = true;
16
- }
17
- async place() {
18
- await this.space.paintTemplate(this.selection.origin, this.template.toJSON());
19
- }
20
- async clear() {
21
- await this.space.eraseTemplate(this.selection.origin, this.template.toJSON());
22
- }
23
- }
File without changes
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,3 +0,0 @@
1
- import { CompactMeshData } from "../Types/Mesher.types";
2
- import { VoxelModelBuilder } from "Mesher/Models/VoxelModelBuilder";
3
- export declare function CompactVoxelMesh(tools: VoxelModelBuilder[], transfers?: any[]): CompactMeshData;
@@ -1,278 +0,0 @@
1
- import { Quad } from "../Geomtry/Primitives/Quad";
2
- const Quads = {
3
- north: Quad.Create([
4
- [1, 1, 0],
5
- [0, 1, 0],
6
- [0, 0, 0],
7
- [1, 0, 0],
8
- ], Quad.FullUVs),
9
- south: Quad.Create([
10
- [1, 1, 0],
11
- [0, 1, 0],
12
- [0, 0, 0],
13
- [1, 0, 0],
14
- ], Quad.FullUVs),
15
- };
16
- //const tool = new MesherDataTool();
17
- //tool.startNewMesh();
18
- //tool.mesh!.attributes.set("uv", [[], 2, BinaryNumberTypes.Float32]);
19
- //tool.mesh!.attributes.set("textureIndex", [[], 3, BinaryNumberTypes.Float32]);
20
- export function MeshTexture(textureId, textureData) {
21
- /*
22
- const width = Math.sqrt(textureData.length / 4);
23
- const height = Math.sqrt(textureData.length / 4);
24
- const factor = 1 / width;
25
-
26
- const textureDataIndex = Flat2DIndex.GetXYOrder();
27
- textureDataIndex.setBounds(width, height);
28
-
29
- const origin = Vector3Like.Create(-0.5, -0.5, -0.5);
30
-
31
- const isSolid = (x: number, y: number) =>
32
- x >= 0 &&
33
- x < width &&
34
- y >= 0 &&
35
- y < height &&
36
- textureData[textureDataIndex.getIndexXY(x, y) * 4 + 3] > 0.01
37
- ? true
38
- : false;
39
-
40
- const uvs = tool.mesh!.getAttribute("uv");
41
- const textureIndex = tool.mesh!.getAttribute("textureIndex");
42
- const uvOffset = width > 16 ? -(2 / Math.max(width, height)) : 0;
43
-
44
- const addUvs = (sx: number, sy: number, ex: number, ey: number) => {
45
- uvs.push(
46
- (ex + uvOffset) * factor,
47
- (ey + uvOffset) * factor,
48
- (sx - uvOffset) * factor,
49
- (ey + uvOffset) * factor,
50
- (sx - uvOffset) * factor,
51
- (sy - uvOffset) * factor,
52
- (ex + uvOffset) * factor,
53
- (sy - uvOffset) * factor
54
- );
55
- textureIndex.push(
56
- textureId,
57
- 0,
58
- 0,
59
- textureId,
60
- 0,
61
- 0,
62
- textureId,
63
- 0,
64
- 0,
65
- textureId,
66
- 0,
67
- 0
68
- );
69
- };
70
-
71
- {
72
- GeometryBuilder.addQuad(tool, origin, Quads.south);
73
- uvs.push(
74
- Quads.south.uvs.vertices[QuadVerticies.TopRight].x,
75
- Quads.south.uvs.vertices[QuadVerticies.TopRight].y,
76
- Quads.south.uvs.vertices[QuadVerticies.TopLeft].x,
77
- Quads.south.uvs.vertices[QuadVerticies.TopLeft].y,
78
- Quads.south.uvs.vertices[QuadVerticies.BottomLeft].x,
79
- Quads.south.uvs.vertices[QuadVerticies.BottomLeft].y,
80
- Quads.south.uvs.vertices[QuadVerticies.BottomRight].x,
81
- Quads.south.uvs.vertices[QuadVerticies.BottomRight].y
82
- );
83
-
84
- textureIndex.push(
85
- textureId,
86
- 0,
87
- 0,
88
- textureId,
89
- 0,
90
- 0,
91
- textureId,
92
- 0,
93
- 0,
94
- textureId,
95
- 0,
96
- 0
97
- );
98
- }
99
-
100
- {
101
- const backPositionZ = factor;
102
- Quads.north.positions.vertices[QuadVerticies.TopRight].z = backPositionZ;
103
- Quads.north.positions.vertices[QuadVerticies.TopLeft].z = backPositionZ;
104
- Quads.north.positions.vertices[QuadVerticies.BottomLeft].z = backPositionZ;
105
- Quads.north.positions.vertices[QuadVerticies.BottomRight].z = backPositionZ;
106
- Quads.north.flip = true;
107
- uvs.push(
108
- Quads.north.uvs.vertices[QuadVerticies.TopLeft].x,
109
- Quads.north.uvs.vertices[QuadVerticies.TopLeft].y,
110
- Quads.north.uvs.vertices[QuadVerticies.TopRight].x,
111
- Quads.north.uvs.vertices[QuadVerticies.TopRight].y,
112
- Quads.north.uvs.vertices[QuadVerticies.BottomRight].x,
113
- Quads.north.uvs.vertices[QuadVerticies.BottomRight].y,
114
- Quads.north.uvs.vertices[QuadVerticies.BottomLeft].x,
115
- Quads.north.uvs.vertices[QuadVerticies.BottomLeft].y
116
- );
117
- GeometryBuilder.addQuad(tool, origin, Quads.north);
118
- textureIndex.push(
119
- textureId,
120
- 0,
121
- 0,
122
- textureId,
123
- 0,
124
- 0,
125
- textureId,
126
- 0,
127
- 0,
128
- textureId,
129
- 0,
130
- 0
131
- );
132
- }
133
-
134
- for (let x = 0; x < width; x++) {
135
- let eastFace: Vec2Array | null = null;
136
- let westFace: Vec2Array | null = null;
137
- for (let y = 0; y < height; y++) {
138
- let eastFaceExposed = true;
139
- let westFaceExposed = true;
140
-
141
- if (!isSolid(x, y)) {
142
- eastFaceExposed = false;
143
- westFaceExposed = false;
144
- }
145
- if (isSolid(x + 1, y)) {
146
- eastFaceExposed = false;
147
- }
148
- if (isSolid(x - 1, y)) {
149
- westFaceExposed = false;
150
- }
151
-
152
- if (eastFace && !eastFaceExposed) {
153
- const newQuad = Quad.Create(
154
- [
155
- [x * factor + factor, eastFace[1] * factor, 0],
156
- [x * factor + factor, y * factor, factor],
157
- ],
158
- Quad.FullUVs as any,
159
- false,
160
- 0
161
- );
162
- GeometryBuilder.addQuad(tool, origin, newQuad);
163
-
164
- let [sx, sy] = eastFace;
165
- let ex = x;
166
- let ey = y;
167
- ex += 1;
168
- addUvs(sx, sy, ex, ey);
169
- eastFace = null;
170
- }
171
-
172
- if (westFace && !westFaceExposed) {
173
- const newQuad = Quad.Create(
174
- [
175
- [x * factor, westFace[1] * factor, 0],
176
- [x * factor, y * factor, factor],
177
- ],
178
- Quad.FullUVs as any,
179
- false,
180
- 1
181
- );
182
- GeometryBuilder.addQuad(tool, origin, newQuad);
183
- let [sx, sy] = westFace;
184
- let ex = x;
185
- let ey = y;
186
- ex += 1;
187
- addUvs(sx, sy, ex, ey);
188
- westFace = null;
189
- }
190
- const isPixel = isSolid(x, y);
191
- if (!isSolid(x + 1, y) && !eastFace && isPixel) {
192
- eastFace = [x, y];
193
- }
194
- if (!isSolid(x - 1, y) && !westFace && isPixel) {
195
- westFace = [x, y];
196
- }
197
- }
198
- }
199
- for (let y = 0; y < height; y++) {
200
- let upFace: Vec2Array | null = null;
201
- let downFace: Vec2Array | null = null;
202
-
203
- for (let x = 0; x < width; x++) {
204
- let upFaceExposed = true;
205
- let downFaceExposed = true;
206
-
207
- if (!isSolid(x, y)) {
208
- upFaceExposed = false;
209
- downFaceExposed = false;
210
- }
211
- if (isSolid(x, y + 1)) {
212
- upFaceExposed = false;
213
- }
214
- if (isSolid(x, y - 1)) {
215
- downFaceExposed = false;
216
- }
217
-
218
- if (upFace && !upFaceExposed) {
219
- const newQuad = Quad.Create(
220
- [
221
- [upFace[0] * factor, y * factor + factor, 0],
222
- [x * factor, y * factor + factor, factor],
223
- ],
224
- Quad.FullUVs as any,
225
- false,
226
- 0
227
- );
228
- GeometryBuilder.addQuad(tool, origin, newQuad);
229
- let [sx, sy] = upFace;
230
- let [ex, ey] = [x, y];
231
-
232
- ey += 1;
233
- addUvs(sx, sy, ex, ey);
234
- upFace = null;
235
- }
236
-
237
- if (downFace && !downFaceExposed) {
238
- const newQuad = Quad.Create(
239
- [
240
- [downFace[0] * factor, y * factor, 0],
241
- [x * factor, y * factor, factor],
242
- ],
243
- Quad.FullUVs as any,
244
- false,
245
- 1
246
- );
247
- GeometryBuilder.addQuad(tool, origin, newQuad);
248
- let [sx, sy] = downFace;
249
- let [ex, ey] = [x, y];
250
- ey += 1;
251
- addUvs(sx, sy, ex, ey);
252
- downFace = null;
253
- }
254
-
255
- const isPixel = isSolid(x, y);
256
- if (!isSolid(x, y + 1) && !upFace && isPixel) {
257
- upFace = [x, y];
258
- }
259
- if (!isSolid(x, y - 1) && !downFace && isPixel) {
260
- downFace = [x, y];
261
- }
262
- }
263
- }
264
-
265
- for (const [key, [data]] of tool.mesh!.attributes) {
266
- if (key == "position") {
267
- for (let i = 0; i < data.length; i += 3) {
268
- (data as any as number[])[i] -= 0.5;
269
- (data as any as number[])[i + 1] -= 0.5;
270
- (data as any as number[])[i + 2];
271
- }
272
- }
273
- }
274
-
275
- const compacted = CompactMesh("dve_node", tool);
276
- */
277
- // return tool.mesh;
278
- }
@@ -1,12 +0,0 @@
1
- import { Vector3Like } from "@amodx/math";
2
- import { VoxelVertexBuffer, VoxelIndiceBuffer } from "./VoxelMeshBuffers";
3
- export declare class VoxelMesh {
4
- indicieCount: number;
5
- vertexCount: number;
6
- minBounds: Vector3Like;
7
- maxBounds: Vector3Like;
8
- readonly buffer: VoxelVertexBuffer;
9
- readonly indices: VoxelIndiceBuffer;
10
- addVerticies(vertexCount: number, indicesCount: number): void;
11
- clear(): void;
12
- }
@@ -1,25 +0,0 @@
1
- import { Vector3Like } from "@amodx/math";
2
- import { VoxelVertexBuffer, VoxelIndiceBuffer } from "./VoxelMeshBuffers";
3
- import { VoxelMeshVertexStructCursor } from "./VoxelMeshVertexStructCursor";
4
- export class VoxelMesh {
5
- indicieCount = 0;
6
- vertexCount = 0;
7
- minBounds = Vector3Like.Create(Infinity, Infinity, Infinity);
8
- maxBounds = Vector3Like.Create(-Infinity, -Infinity, -Infinity);
9
- buffer = new VoxelVertexBuffer(VoxelMeshVertexStructCursor.VertexFloatSize, 1024);
10
- indices = new VoxelIndiceBuffer(1024);
11
- addVerticies(vertexCount, indicesCount) {
12
- this.vertexCount += vertexCount;
13
- this.indicieCount += indicesCount;
14
- }
15
- clear() {
16
- this.indicieCount = 0;
17
- this.vertexCount = 0;
18
- this.minBounds.x = Infinity;
19
- this.minBounds.y = Infinity;
20
- this.minBounds.z = Infinity;
21
- this.maxBounds.x = -Infinity;
22
- this.maxBounds.y = -Infinity;
23
- this.maxBounds.z = -Infinity;
24
- }
25
- }
@@ -1,25 +0,0 @@
1
- import { Vec3Array, Vector4Like } from "@amodx/math";
2
- import type { Quad } from "../../../Geomtry";
3
- import { VoxelModelBuilder } from "Mesher/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
- interface VoxelGeometryConsistentRotationTextureProcedureData 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<VoxelGeometryConsistentRotationTextureProcedureData> {
21
- getTexture(builder: VoxelModelBuilder, data: VoxelGeometryConsistentRotationTextureProcedureData, closestFace: VoxelFaces, primitive: Quad): number;
22
- getOverlayTexture(builder: VoxelModelBuilder, data: VoxelGeometryConsistentRotationTextureProcedureData, closestFace: VoxelFaces, primitive: Quad, ref: Vector4Like): Vector4Like;
23
- transformUVs(builder: VoxelModelBuilder, data: VoxelGeometryConsistentRotationTextureProcedureData, closestFace: VoxelFaces, primitive: Quad): void;
24
- }
25
- export {};
@@ -1,162 +0,0 @@
1
- import { TextureProcedure } from "../TextureProcedure";
2
- import { 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 topAndDown = {
61
- north: [
62
- [0, 0, 1],
63
- [1, 0, 1],
64
- [-1, 0, 1],
65
- ],
66
- south: [
67
- [0, 0, -1],
68
- [1, 0, -1],
69
- [-1, 0, -1],
70
- ],
71
- east: [[1, 0, 0]],
72
- west: [[-1, 0, 0]],
73
- };
74
- const eastAndWest = {
75
- north: [
76
- [0, 1, 0],
77
- [0, 1, 1],
78
- [0, 1, -1],
79
- ],
80
- south: [
81
- [0, -1, 0],
82
- [0, -1, 1],
83
- [0, -1, -1],
84
- ],
85
- east: [[0, 0, 1]],
86
- west: [[0, 0, -1]],
87
- };
88
- const northAndSouth = {
89
- north: [
90
- [0, 1, 0],
91
- [1, 1, 0],
92
- [-1, 1, 0],
93
- ],
94
- south: [
95
- [0, -1, 0],
96
- [1, -1, 0],
97
- [-1, -1, 0],
98
- ],
99
- east: [[1, 0, 0]],
100
- west: [[-1, 0, 0]],
101
- };
102
- const CheckSets = {
103
- [VoxelFaces.Up]: topAndDown,
104
- [VoxelFaces.Down]: topAndDown,
105
- [VoxelFaces.North]: northAndSouth,
106
- [VoxelFaces.South]: northAndSouth,
107
- [VoxelFaces.East]: eastAndWest,
108
- [VoxelFaces.West]: eastAndWest,
109
- };
110
- const generateCheck = (direction, tool, normal, sets) => {
111
- const { x, y, z } = tool.position;
112
- let key = 0b0;
113
- for (let i = 0; i < sets.length; i++) {
114
- const set = sets[i];
115
- const cx = x + set[0];
116
- const cy = y + set[1];
117
- const cz = z + set[2];
118
- const sameLevelCheck = tool.nVoxel
119
- .getVoxel(cx, cy, cz)
120
- ?.isSameVoxel(tool.voxel);
121
- let normalCheck = true;
122
- const nVoxel = tool.nVoxel.getVoxel(cx + normal[0], cy + normal[1], cz + normal[2]);
123
- if (nVoxel && nVoxel.isRenderable() && nVoxel.isOpaque()) {
124
- normalCheck = false;
125
- }
126
- if (sameLevelCheck && normalCheck) {
127
- key |= 0b1 << i;
128
- }
129
- else {
130
- key |= 0b0 << i;
131
- if (i == 0)
132
- break;
133
- }
134
- }
135
- if (uvsSets[direction][key] == undefined)
136
- return 0;
137
- const index = uvsSets[direction][key];
138
- return textureMap[index];
139
- };
140
- const normal = [0, 0, 0];
141
- export class OutlinedTextureProcedure extends TextureProcedure {
142
- getTexture(builder, data, closestFace, primitive) {
143
- return data.texture;
144
- }
145
- getOverlayTexture(builder, data, closestFace, primitive, ref) {
146
- const set = CheckSets[closestFace];
147
- const x = generateCheck("north", builder, normal, set.north);
148
- if (x)
149
- ref.x = data.textureRecrod[x];
150
- const y = generateCheck("south", builder, normal, set.south);
151
- if (y)
152
- ref.y = data.textureRecrod[y];
153
- const z = generateCheck("east", builder, normal, set.east);
154
- if (z)
155
- ref.z = data.textureRecrod[z];
156
- const w = generateCheck("west", builder, normal, set.west);
157
- if (w)
158
- ref.w = data.textureRecrod[w];
159
- return ref;
160
- }
161
- transformUVs(builder, data, closestFace, primitive) { }
162
- }
@@ -1,9 +0,0 @@
1
- import { Vector3Like } from "@amodx/math";
2
- import { BoundingBox } from "@amodx/math/Geomtry/Bounds/BoundingBox";
3
- export interface IVoxelSelection {
4
- origin: Vector3Like;
5
- size: Vector3Like;
6
- bounds: BoundingBox;
7
- isSelected(x: number, y: number, z: number): boolean;
8
- clone(): IVoxelSelection;
9
- }
@@ -1,36 +0,0 @@
1
- import { Flat3DIndex, Vector3Like } from "@amodx/math";
2
- import { PaintVoxelData, RawVoxelData } from "../../Voxels";
3
- import { IVoxelShapeTemplate, IVoxelShapeTemplateData, VoxelShapeTemplateFillModes, IVoxelShapeTemplateEvents } from "./VoxelShapeTemplate.types";
4
- import { TypedEventTarget } from "../../Util/TypedEventTarget";
5
- import { BoundingBox } from "@amodx/math/Geomtry/Bounds/BoundingBox";
6
- export declare abstract class BasicVoxelShapeTemplate<Type extends string, Data extends IVoxelShapeTemplateData<any>, Events extends IVoxelShapeTemplateEvents = IVoxelShapeTemplateEvents> extends TypedEventTarget<Events> implements IVoxelShapeTemplate<Type, Data, Events> {
7
- static CreateBaseData<Type extends string>(type: Type, data: Partial<IVoxelShapeTemplateData<Type>>): IVoxelShapeTemplateData<Type>;
8
- position: Vector3Like;
9
- index: Flat3DIndex;
10
- bounds: BoundingBox;
11
- type: string;
12
- fillMode: VoxelShapeTemplateFillModes;
13
- fillVoxel: PaintVoxelData;
14
- faceVoxel: PaintVoxelData;
15
- edgeVoxel: PaintVoxelData;
16
- pointVoxel: PaintVoxelData;
17
- _fillVoxel: RawVoxelData;
18
- _faceVoxel: RawVoxelData;
19
- _edgeVoxel: RawVoxelData;
20
- _pointVoxel: RawVoxelData;
21
- constructor(data: Data);
22
- setVoxels(fill: PaintVoxelData, face?: PaintVoxelData, edge?: PaintVoxelData, point?: PaintVoxelData): void;
23
- getIndex(x: number, y: number, z: number): number;
24
- setPosition(x: number, y: number, z: number): void;
25
- abstract isIncluded(index: number): boolean;
26
- abstract clone(): BasicVoxelShapeTemplate<Type, Data, Events>;
27
- isAir(index: number): boolean;
28
- getId(index: number): number;
29
- getLight(index: number): number;
30
- getLevel(index: number): number;
31
- getSecondary(index: number): number;
32
- getRaw(index: number, rawRef?: RawVoxelData): RawVoxelData;
33
- protected _updateBounds(): void;
34
- abstract toJSON(): Data;
35
- protected getBaseJSON(): IVoxelShapeTemplateData<any>;
36
- }