@divinevoxel/vlox 0.0.71 → 0.0.73

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 (271) hide show
  1. package/Contexts/Base/Main/InitDataGenerator.js +0 -9
  2. package/Contexts/Base/Remote/DataSync.types.d.ts +0 -5
  3. package/Contexts/Base/Remote/InitDataSync.js +17 -31
  4. package/Contexts/Render/DivineVoxelEngineRender.d.ts +1 -1
  5. package/Contexts/World/DivineVoxelEngineWorld.d.ts +1 -1
  6. package/Init/StartConstructor.js +7 -7
  7. package/Init/StartWorld.d.ts +1 -1
  8. package/Init/StartWorld.js +0 -12
  9. package/Math/Indexing.d.ts +12 -3
  10. package/Math/Indexing.js +24 -15
  11. package/Mesher/Functions/CompactVoxelMesh.d.ts +2 -2
  12. package/Mesher/Functions/CompactVoxelMesh.js +4 -5
  13. package/Mesher/Functions/MeshSection.d.ts +1 -1
  14. package/Mesher/Functions/MeshSection.js +72 -66
  15. package/Mesher/Functions/MeshTexture.d.ts +1 -1
  16. package/Mesher/Functions/MeshTexture.js +3 -4
  17. package/Mesher/Functions/MeshVoxel.js +20 -26
  18. package/Mesher/Geomtry/Primitives/QuadVertexData.d.ts +12 -10
  19. package/Mesher/Geomtry/Primitives/QuadVertexData.js +49 -56
  20. package/Mesher/Geomtry/VoxelGeometryBuilder.d.ts +2 -2
  21. package/Mesher/Geomtry/VoxelGeometryBuilder.js +108 -125
  22. package/Mesher/Geomtry/VoxelMesh.d.ts +1 -1
  23. package/Mesher/Geomtry/VoxelMesh.js +2 -2
  24. package/Mesher/{Tools → Geomtry}/VoxelMeshBVHBuilder.d.ts +2 -9
  25. package/Mesher/{Tools → Geomtry}/VoxelMeshBVHBuilder.js +4 -16
  26. package/Mesher/Geomtry/{Buffers.d.ts → VoxelMeshBuffers.d.ts} +9 -8
  27. package/Mesher/Geomtry/VoxelMeshBuffers.js +49 -0
  28. package/Mesher/{Tools → Geomtry}/VoxelMeshVertexStructCursor.d.ts +10 -0
  29. package/Mesher/{Tools → Geomtry}/VoxelMeshVertexStructCursor.js +10 -0
  30. package/Mesher/Geomtry/index.d.ts +0 -1
  31. package/Mesher/Geomtry/index.js +0 -1
  32. package/Mesher/InitMesher.js +2 -11
  33. package/Mesher/InitTask.js +10 -22
  34. package/Mesher/Models/Common/BoundsFunctions.d.ts +1 -3
  35. package/Mesher/Models/Common/BoundsFunctions.js +0 -16
  36. package/Mesher/Models/Common/Calc/CalcConstants.js +14 -31
  37. package/Mesher/Models/Common/Calc/FaceDataCalc.d.ts +2 -8
  38. package/Mesher/Models/Common/Calc/FaceDataCalc.js +50 -52
  39. package/Mesher/Models/Nodes/Custom/Liquid/FlowGradient.d.ts +2 -2
  40. package/Mesher/Models/Nodes/Custom/Liquid/FlowGradient.js +1 -1
  41. package/Mesher/Models/Nodes/Custom/Liquid/LiquidGeomtryNode.d.ts +1 -5
  42. package/Mesher/Models/Nodes/Custom/Liquid/LiquidGeomtryNode.js +40 -42
  43. package/Mesher/Models/Nodes/GeometryNode.d.ts +3 -5
  44. package/Mesher/Models/Nodes/GeometryNode.js +1 -2
  45. package/Mesher/Models/Nodes/Ruled/BoxVoxelGeometryNode.d.ts +3 -6
  46. package/Mesher/Models/Nodes/Ruled/BoxVoxelGeometryNode.js +55 -40
  47. package/Mesher/Models/Nodes/Ruled/QuadVoxelGeometryNode.d.ts +2 -6
  48. package/Mesher/Models/Nodes/Ruled/QuadVoxelGeometryNode.js +52 -51
  49. package/Mesher/Models/Nodes/Ruleless/RulelessBoxVoxelGeometryNode.d.ts +2 -6
  50. package/Mesher/Models/Nodes/Ruleless/RulelessBoxVoxelGeometryNode.js +18 -19
  51. package/Mesher/Models/Nodes/Ruleless/RulelessQuadVoxelGeometryNode.d.ts +2 -6
  52. package/Mesher/Models/Nodes/Ruleless/RulelessQuadVoxelGeometryNode.js +37 -40
  53. package/Mesher/{Tools → Models/Protocols}/OutlinedVoxelTool.d.ts +1 -1
  54. package/Mesher/{Tools → Models/Protocols}/OutlinedVoxelTool.js +1 -1
  55. package/Mesher/Models/RenderedMaterials.d.ts +6 -0
  56. package/Mesher/{RenderedMaterials.js → Models/RenderedMaterials.js} +2 -2
  57. package/Mesher/Models/VoxelConstructor.d.ts +4 -5
  58. package/Mesher/Models/VoxelConstructor.js +23 -12
  59. package/Mesher/Models/{VoxelGeometryLookUp.d.ts → VoxelGeometryBuilderCacheSpace.d.ts} +6 -14
  60. package/Mesher/Models/{VoxelGeometryLookUp.js → VoxelGeometryBuilderCacheSpace.js} +26 -44
  61. package/Mesher/{Tools/VoxelMesherDataTool.d.ts → Models/VoxelModelBuilder.d.ts} +10 -8
  62. package/Mesher/{Tools/VoxelMesherDataTool.js → Models/VoxelModelBuilder.js} +44 -19
  63. package/Mesher/Models/VoxelModelConstructorRegister.js +3 -3
  64. package/Models/Defaults/CubeVoxelGeometry.js +4 -0
  65. package/Models/Defaults/CubeVoxelModels.js +344 -344
  66. package/Models/Defaults/LiquidVoxelModel.js +2 -2
  67. package/Models/Defaults/PanelVoxelModels.js +432 -432
  68. package/Models/Defaults/StairVoxelModel.js +576 -576
  69. package/Models/Examples.js +469 -456
  70. package/Models/Indexing/VoxelAOResultsIndex.d.ts +4 -4
  71. package/Models/Indexing/VoxelAOResultsIndex.js +15 -9
  72. package/Models/Indexing/VoxelFaceCullResultsIndex.d.ts +3 -3
  73. package/Models/Indexing/VoxelFaceCullResultsIndex.js +14 -9
  74. package/Models/Indexing/VoxelFaceTransparentResultsIndex.d.ts +1 -1
  75. package/Models/Indexing/VoxelFaceTransparentResultsIndex.js +1 -1
  76. package/Models/Rules/Functions/BuildFinalInputs.js +9 -7
  77. package/Models/Rules/Functions/BuildGeomtryInputs.js +8 -5
  78. package/Models/Rules/Functions/BuildRules.js +4 -4
  79. package/Models/Rules/{VoxelModelManager.d.ts → VoxelModelRuleBuilderRegister.d.ts} +1 -1
  80. package/Models/Rules/VoxelModelRuleBuilderRegister.js +178 -0
  81. package/Models/VoxelModel.types.d.ts +14 -5
  82. package/Renderer/Classes/SectorMesh.d.ts +3 -4
  83. package/Renderer/Classes/SectorMesh.js +6 -11
  84. package/Renderer/InitTasks.js +6 -7
  85. package/Renderer/MeshManager.js +2 -2
  86. package/Renderer/MeshRegister.js +2 -1
  87. package/Settings/EngineSettings.d.ts +1 -1
  88. package/Settings/EngineSettings.js +3 -5
  89. package/Settings/EngineSettings.types.d.ts +17 -18
  90. package/Settings/EngineSettings.types.js +16 -15
  91. package/Tasks/IWG/IWG.d.ts +2 -1
  92. package/Tasks/IWG/IWG.js +9 -3
  93. package/Tasks/IWG/Internal/Classes/BuildQueue.d.ts +11 -0
  94. package/Tasks/IWG/Internal/Classes/BuildQueue.js +49 -0
  95. package/Tasks/IWG/Internal/Classes/Generator.d.ts +6 -1
  96. package/Tasks/IWG/Internal/Classes/Generator.js +14 -2
  97. package/Tasks/IWG/Internal/Classes/IWGTaskBase.js +2 -2
  98. package/Tasks/IWG/Internal/Functions/getSectorState.js +4 -7
  99. package/Tasks/IWG/Internal/Functions/runBuildUpdate.js +21 -2
  100. package/Tasks/IWG/Internal/Functions/runWorldUpdate.js +5 -6
  101. package/Tasks/IWG/Internal/IWGTasks.d.ts +0 -4
  102. package/Tasks/IWG/Internal/IWGTasks.js +12 -31
  103. package/Tasks/IWG/Internal/IWGTools.d.ts +1 -1
  104. package/Tasks/IWG/Procedures/SaveAllSectors.js +2 -0
  105. package/Tasks/Propagation/Flow/FlowManager.d.ts +0 -2
  106. package/Tasks/Propagation/Flow/FlowManager.js +86 -87
  107. package/Tasks/Propagation/Flow/WorldFlow.js +2 -3
  108. package/Tasks/Propagation/Illumanation/WorldRGB.js +1 -2
  109. package/Tasks/Update/InitTasks.d.ts +2 -1
  110. package/Tasks/Update/InitTasks.js +6 -6
  111. package/Tasks/Update/UpdateTask.d.ts +3 -1
  112. package/Tasks/Update/UpdateTask.js +28 -2
  113. package/Tasks/Update/VoxelUpdate.js +21 -7
  114. package/Tasks/WorldGeneration/WorldGenBrush.js +2 -1
  115. package/Templates/Cursor/TemplateCursor.d.ts +2 -2
  116. package/Templates/Cursor/TemplateCursor.js +1 -2
  117. package/Templates/Functions/CreateTemplate.js +1 -1
  118. package/Templates/VoxelTemplate.js +6 -8
  119. package/Templates/VoxelTemplates.types.d.ts +1 -1
  120. package/Textures/Classes/CompiledTexture.d.ts +18 -0
  121. package/Textures/Classes/CompiledTexture.js +50 -0
  122. package/Textures/Classes/CompiledTextureAnimation.d.ts +12 -0
  123. package/Textures/Classes/CompiledTextureAnimation.js +27 -0
  124. package/Textures/Classes/TextureAnimationTexture.d.ts +10 -0
  125. package/Textures/Classes/TextureAnimationTexture.js +32 -0
  126. package/Textures/Functions/BuildTextureData.d.ts +10 -0
  127. package/Textures/Functions/BuildTextureData.js +205 -0
  128. package/Textures/Texture.types.d.ts +50 -64
  129. package/Textures/TextureManager.d.ts +8 -19
  130. package/Textures/TextureManager.js +28 -166
  131. package/Tools/Brush/Brush.d.ts +1 -3
  132. package/Tools/Brush/Brush.js +43 -12
  133. package/Util/Binary/BinaryArrays.d.ts +6 -0
  134. package/Util/Binary/BinaryArrays.js +25 -0
  135. package/Util/Binary/BinaryBuffer.d.ts +29 -0
  136. package/Util/Binary/BinaryBuffer.js +130 -0
  137. package/Util/Binary/BinaryFunctions.d.ts +3 -0
  138. package/Util/Binary/BinaryFunctions.js +11 -0
  139. package/Util/StringPalette.d.ts +1 -0
  140. package/Util/StringPalette.js +8 -0
  141. package/Voxels/Cursor/DataCursor.interface.d.ts +5 -0
  142. package/Voxels/Cursor/VoxelCursor.d.ts +6 -6
  143. package/Voxels/Cursor/VoxelCursor.interface.d.ts +11 -16
  144. package/Voxels/Cursor/VoxelCursor.interface.js +35 -58
  145. package/Voxels/Cursor/VoxelCursor.js +13 -12
  146. package/Voxels/Cursor/VoxelLightData.d.ts +3 -4
  147. package/Voxels/Cursor/VoxelLightData.js +8 -7
  148. package/Voxels/Data/VoxelPalettesRegister.d.ts +8 -0
  149. package/Voxels/Data/VoxelPalettesRegister.js +8 -0
  150. package/Voxels/Data/VoxelTag.types.d.ts +56 -0
  151. package/Voxels/Data/VoxelTag.types.js +23 -0
  152. package/Voxels/{State → Data}/VoxelTagStates.d.ts +2 -2
  153. package/Voxels/{State → Data}/VoxelTagStates.js +5 -5
  154. package/Voxels/Data/VoxelTagsRegister.d.ts +9 -0
  155. package/Voxels/Data/VoxelTagsRegister.js +32 -0
  156. package/Voxels/Functions/BuildStateData.js +12 -12
  157. package/Voxels/Functions/BuildTagAndPaletteData.d.ts +13 -0
  158. package/Voxels/Functions/BuildTagAndPaletteData.js +55 -0
  159. package/Voxels/Indexes/VoxelIndex.js +3 -3
  160. package/Voxels/InitVoxelData.js +31 -73
  161. package/Voxels/State/Schema/StateSchema.d.ts +1 -1
  162. package/Voxels/Types/Voxel.types.d.ts +20 -42
  163. package/Voxels/Types/Voxel.types.js +6 -17
  164. package/Voxels/Types/VoxelModelCompiledData.types.d.ts +11 -13
  165. package/Voxels/Types/VoxelSubstances.types.d.ts +2 -15
  166. package/Voxels/Types/VoxelSubstances.types.js +1 -9
  167. package/World/Archive/Archive.types.d.ts +38 -34
  168. package/World/Archive/Functions/ArchiveArea.js +18 -30
  169. package/World/Archive/Functions/ArchiveSector.js +484 -213
  170. package/World/Archive/Functions/ImportSector.d.ts +3 -3
  171. package/World/Archive/Functions/ImportSector.js +205 -151
  172. package/World/Archive/Functions/Shared.d.ts +6 -0
  173. package/World/Archive/Functions/Shared.js +75 -0
  174. package/World/Archive/InitTasks.js +30 -13
  175. package/World/Cursor/SectionCursor.d.ts +3 -2
  176. package/World/Cursor/SectionCursor.js +9 -4
  177. package/World/Cursor/SectorCursor.d.ts +3 -2
  178. package/World/Cursor/SectorCursor.js +5 -3
  179. package/World/Cursor/WorldCursor.d.ts +2 -2
  180. package/World/Cursor/WorldCursor.js +6 -3
  181. package/World/Cursor/WorldVoxelCursor.d.ts +7 -7
  182. package/World/Cursor/WorldVoxelCursor.js +21 -24
  183. package/World/InitTasks.d.ts +1 -1
  184. package/World/Lock/WorldLock.d.ts +1 -1
  185. package/World/Section/Section.d.ts +31 -23
  186. package/World/Section/Section.js +116 -18
  187. package/World/Section/SectionState.d.ts +10 -0
  188. package/World/Section/SectionState.js +11 -0
  189. package/World/Sector/Sector.d.ts +24 -9
  190. package/World/Sector/Sector.js +92 -21
  191. package/World/Sector/SectorHeightMap.js +3 -5
  192. package/World/Sector/SectorState.d.ts +21 -0
  193. package/World/Sector/SectorState.js +28 -0
  194. package/World/WorldRegister.d.ts +4 -0
  195. package/World/WorldRegister.js +15 -3
  196. package/World/WorldSpaces.d.ts +6 -0
  197. package/World/WorldSpaces.js +25 -6
  198. package/package.json +1 -1
  199. package/Data/Cursor/DataCursor.interface.d.ts +0 -5
  200. package/Data/Cursor/DataCursor.interface.js +0 -2
  201. package/Data/Register/MappedDataRegister.d.ts +0 -5
  202. package/Data/Register/MappedDataRegister.js +0 -9
  203. package/Data/Register/MappedRegisterBase.d.ts +0 -14
  204. package/Data/Register/MappedRegisterBase.js +0 -50
  205. package/Data/Structs/StructBuilder.d.ts +0 -34
  206. package/Data/Structs/StructBuilder.js +0 -157
  207. package/Data/Structs/StructBuilder.types.d.ts +0 -30
  208. package/Mesher/Functions/CompactMesh.d.ts +0 -2
  209. package/Mesher/Functions/CompactMesh.js +0 -42
  210. package/Mesher/Geomtry/Buffers.js +0 -81
  211. package/Mesher/Geomtry/GeometryNormals.d.ts +0 -10
  212. package/Mesher/Geomtry/GeometryNormals.js +0 -52
  213. package/Mesher/Geomtry/MeshData.types.d.ts +0 -13
  214. package/Mesher/Geomtry/MeshData.types.js +0 -6
  215. package/Mesher/Geomtry/Tools/MesherDataTools.d.ts +0 -7
  216. package/Mesher/Geomtry/Tools/MesherDataTools.js +0 -12
  217. package/Mesher/Geomtry/Tools/index.d.ts +0 -1
  218. package/Mesher/Geomtry/Tools/index.js +0 -1
  219. package/Mesher/RenderedMaterials.d.ts +0 -6
  220. package/Models/Rules/VoxelModelManager.js +0 -82
  221. package/Textures/TextureAnimations.d.ts +0 -4
  222. package/Textures/TextureAnimations.js +0 -35
  223. package/Textures/TextureArray.d.ts +0 -47
  224. package/Textures/TextureArray.js +0 -202
  225. package/Textures/TextureBuilder.d.ts +0 -13
  226. package/Textures/TextureBuilder.js +0 -120
  227. package/Textures/TextureRegister.d.ts +0 -9
  228. package/Textures/TextureRegister.js +0 -28
  229. package/Tools/Data/SubstanceDataTool.d.ts +0 -13
  230. package/Tools/Data/SubstanceDataTool.js +0 -51
  231. package/Voxels/Palettes/MaterialPalette.d.ts +0 -9
  232. package/Voxels/Palettes/MaterialPalette.js +0 -11
  233. package/Voxels/Palettes/SubstancePalette.d.ts +0 -9
  234. package/Voxels/Palettes/SubstancePalette.js +0 -11
  235. package/Voxels/Palettes/VoxelPalette.d.ts +0 -11
  236. package/Voxels/Palettes/VoxelPalette.js +0 -15
  237. package/Voxels/Segments/MaterialDataGenerator.d.ts +0 -6
  238. package/Voxels/Segments/MaterialDataGenerator.js +0 -12
  239. package/Voxels/Segments/SubstanceDataGenerator.d.ts +0 -6
  240. package/Voxels/Segments/SubstanceDataGenerator.js +0 -35
  241. package/Voxels/Segments/VoxelDataGenerator.d.ts +0 -10
  242. package/Voxels/Segments/VoxelDataGenerator.js +0 -56
  243. package/Voxels/Structs/Builder/SubstanceStructBuilder.d.ts +0 -2
  244. package/Voxels/Structs/Builder/SubstanceStructBuilder.js +0 -42
  245. package/Voxels/Structs/Builder/VoxelStructBuilder.d.ts +0 -2
  246. package/Voxels/Structs/Builder/VoxelStructBuilder.js +0 -68
  247. package/Voxels/Structs/SubstanceStruct.d.ts +0 -17
  248. package/Voxels/Structs/SubstanceStruct.js +0 -17
  249. package/Voxels/Structs/VoxelStruct.d.ts +0 -27
  250. package/Voxels/Structs/VoxelStruct.js +0 -29
  251. package/World/Section/SectionHeightMap.d.ts +0 -10
  252. package/World/Section/SectionHeightMap.js +0 -39
  253. package/World/Section/SectionStruct.d.ts +0 -8
  254. package/World/Section/SectionStruct.js +0 -29
  255. package/World/Section/SectionStructProperties.d.ts +0 -10
  256. package/World/Section/SectionStructProperties.js +0 -11
  257. package/World/Sector/SectorStruct.d.ts +0 -1
  258. package/World/Sector/SectorStruct.js +0 -46
  259. package/World/Sector/SectorStructIds.d.ts +0 -13
  260. package/World/Sector/SectorStructIds.js +0 -14
  261. package/World/Structs/WorldDataStructProperties.d.ts +0 -8
  262. package/World/Structs/WorldDataStructProperties.js +0 -9
  263. /package/Mesher/{VoxelShaderData.d.ts → Geomtry/VoxelShaderData.d.ts} +0 -0
  264. /package/Mesher/{VoxelShaderData.js → Geomtry/VoxelShaderData.js} +0 -0
  265. /package/{Data/Functions → Util/Binary}/Palettes.d.ts +0 -0
  266. /package/{Data/Functions → Util/Binary}/Palettes.js +0 -0
  267. /package/{Data/Structs/StructBuilder.types.js → Voxels/Cursor/DataCursor.interface.js} +0 -0
  268. /package/Voxels/{VoxelLevelReader.d.ts → Cursor/VoxelLevelReader.d.ts} +0 -0
  269. /package/Voxels/{VoxelLevelReader.js → Cursor/VoxelLevelReader.js} +0 -0
  270. /package/World/{Storage → Types}/WorldStorage.interface.d.ts +0 -0
  271. /package/World/{Storage → Types}/WorldStorage.interface.js +0 -0
@@ -1,19 +1,10 @@
1
- import { InitalizeSectionTags } from "../../../World/Section/SectionStruct.js";
2
- import { InitalizeSectorTags } from "../../../World/Sector/SectorStruct.js";
3
1
  import { EngineSettings } from "../../../Settings/EngineSettings";
4
- import { Section, Sector } from "../../../World";
5
2
  import { InitVoxelData } from "../../../Voxels/InitVoxelData";
6
3
  export default function InitDataGenerator(data) {
7
- InitalizeSectionTags();
8
- InitalizeSectorTags();
9
4
  const voxels = InitVoxelData(data);
10
5
  return {
11
6
  settings: EngineSettings.settings,
12
7
  threads: data.threads,
13
8
  voxels,
14
- worldData: {
15
- sectionStruct: Section.StateStruct.structData,
16
- sectorStruct: Sector.StateStruct.structData,
17
- },
18
9
  };
19
10
  }
@@ -1,5 +1,4 @@
1
1
  import { LocationData } from "Math/index.js";
2
- import { BinaryStructData } from "@amodx/binary";
3
2
  import { EngineSettingsData } from "../../../Settings/EngineSettings.types";
4
3
  import { CachedVoxelModelData } from "../../../Cache/Cache.types";
5
4
  import { CompiledVoxelData } from "../../../Voxels/Types/VoxelModelCompiledData.types";
@@ -10,9 +9,5 @@ export type DataSyncData = {
10
9
  threads: {
11
10
  nexus: boolean;
12
11
  };
13
- worldData: {
14
- sectionStruct: BinaryStructData;
15
- sectorStruct: BinaryStructData;
16
- };
17
12
  };
18
13
  export type WorldDataSync = [location: LocationData, buffer: SharedArrayBuffer];
@@ -1,42 +1,28 @@
1
1
  import { Threads } from "@amodx/threads/";
2
- import { VoxelPalette } from "../../../Voxels/Palettes/VoxelPalette";
3
- import { SubstancePalette } from "../../../Voxels/Palettes/SubstancePalette";
4
- import { MappedDataRegister } from "../../../Data/Register/MappedDataRegister";
5
- import { VoxelStruct } from "../../../Voxels/Structs/VoxelStruct";
6
2
  import { EngineSettings } from "../../../Settings/EngineSettings";
7
3
  //objects
8
- import { MaterialPalette } from "../../../Voxels/Palettes/MaterialPalette";
9
- import { Section, Sector } from "../../../World";
10
- import { SubstanceStruct } from "../../../Voxels/Structs/SubstanceStruct";
4
+ import { SchemaRegister } from "../../../Voxels/State/SchemaRegister";
5
+ import { VoxelTagStates } from "../../../Voxels/Data/VoxelTagStates";
6
+ import { VoxelPalettesRegister } from "../../../Voxels/Data/VoxelPalettesRegister";
7
+ import { VoxelTagsRegister } from "../../../Voxels/Data/VoxelTagsRegister";
11
8
  export default function InitDataSync(props) {
12
9
  Threads.registerTask("sync-data", (data) => {
13
10
  EngineSettings.syncSettings(data.settings);
14
- MaterialPalette.setPalette(data.voxels.materials.palette);
15
- //voxels
16
- VoxelPalette.loadIn(data.voxels.data.palette, data.voxels.data.nameToIdMap, data.voxels.data.idToNameMap);
17
- const voxelStringMaps = MappedDataRegister.stringMaps.getSegment("voxel");
18
- for (const key in data.voxels.data.stringMaps) {
19
- voxelStringMaps.add(key, data.voxels.data.stringMaps[key]);
11
+ VoxelPalettesRegister.voxels.load(data.voxels.data.palette);
12
+ VoxelTagsRegister.VoxelTags = data.voxels.data.tags;
13
+ VoxelPalettesRegister.voxelIdToNameMap = new Map(data.voxels.data.idToNameMap);
14
+ VoxelPalettesRegister.voxelNametoIdMap = new Map(data.voxels.data.nameToIdMap);
15
+ VoxelPalettesRegister.substance.load(data.voxels.substances.palette);
16
+ VoxelTagsRegister.SubstanceStags = data.voxels.substances.tags;
17
+ VoxelPalettesRegister.material.load(data.voxels.materials.palette);
18
+ const modelData = data.voxels.models;
19
+ for (const model of modelData.models) {
20
+ SchemaRegister.registerModel(model.id, model.schema);
20
21
  }
21
- const voxelObjectMaps = MappedDataRegister.objectMaps.getSegment("voxel");
22
- for (const key in data.voxels.data.objectMaps) {
23
- voxelObjectMaps.add(key, data.voxels.data.objectMaps[key]);
22
+ for (const voxel of modelData.voxels) {
23
+ SchemaRegister.registerVoxel(voxel.id, voxel.modelId, voxel.modSchema);
24
24
  }
25
- VoxelStruct.init(data.voxels.data.struct);
26
- VoxelStruct.sync(data.voxels.data.index);
27
- //substances
28
- SubstancePalette.setPalette(data.voxels.substances.palette);
29
- const substanceStringMaps = MappedDataRegister.stringMaps.getSegment("substance");
30
- for (const key in data.voxels.substances.stringMaps) {
31
- substanceStringMaps.add(key, data.voxels.substances.stringMaps[key]);
32
- }
33
- const substanceObjectMaps = MappedDataRegister.objectMaps.getSegment("substance");
34
- for (const key in data.voxels.substances.objectMaps) {
35
- substanceObjectMaps.add(key, data.voxels.substances.objectMaps[key]);
36
- }
37
- SubstanceStruct.init(data.voxels.substances.struct);
38
- Section.StateStruct.init(data.worldData.sectionStruct);
39
- Sector.StateStruct.init(data.worldData.sectorStruct);
25
+ VoxelTagStates.load(modelData.tagState);
40
26
  props.onSync(data);
41
27
  });
42
28
  }
@@ -19,11 +19,11 @@ export declare class DivineVoxelEngineRender {
19
19
  settings: {
20
20
  enviorment: "node" | "browser";
21
21
  settings: EngineSettingsData;
22
+ version: string;
22
23
  readonly doSunPropagation: boolean;
23
24
  readonly doRGBPropagation: boolean;
24
25
  readonly doLight: boolean;
25
26
  readonly doFlow: boolean;
26
- readonly isClient: boolean;
27
27
  getSettings(): EngineSettingsData;
28
28
  syncSettings(data: EngineSettingsData): void;
29
29
  getSettingsCopy(): any;
@@ -11,11 +11,11 @@ export declare class DivineVoxelEngineWorld {
11
11
  settings: {
12
12
  enviorment: "node" | "browser";
13
13
  settings: import("../../Settings/EngineSettings.types.js").EngineSettingsData;
14
+ version: string;
14
15
  readonly doSunPropagation: boolean;
15
16
  readonly doRGBPropagation: boolean;
16
17
  readonly doLight: boolean;
17
18
  readonly doFlow: boolean;
18
- readonly isClient: boolean;
19
19
  getSettings(): import("../../Settings/EngineSettings.types.js").EngineSettingsData;
20
20
  syncSettings(data: import("../../Settings/EngineSettings.types.js").EngineSettingsData): void;
21
21
  getSettingsCopy(): any;
@@ -1,7 +1,6 @@
1
1
  import InitDataSync from "../Contexts/Base/Remote/InitDataSync";
2
2
  import { DivineVoxelEngineConstructor } from "../Contexts/Constructor/DivineVoxelEngineConstructor";
3
3
  import { Threads } from "@amodx/threads";
4
- import { VoxelGeometryLookUp } from "../Mesher/Models/VoxelGeometryLookUp";
5
4
  import { Environment } from "../Util/Environment";
6
5
  import { WorldRegister } from "../World/WorldRegister";
7
6
  import InitUpdateTasks from "../Tasks/Update/InitTasks";
@@ -22,7 +21,6 @@ export async function StartContrusctor(data = {}) {
22
21
  }
23
22
  await Threads.init("constructor", self, parent);
24
23
  let ready = false;
25
- VoxelGeometryLookUp.init();
26
24
  InitDataSync({
27
25
  onSync(data) {
28
26
  InitMesher(data.voxels.materials.palette, data.voxels.models);
@@ -45,11 +43,13 @@ export async function StartContrusctor(data = {}) {
45
43
  InitPropagationTasks();
46
44
  InitMesherTasks(DVEC.threads.parent);
47
45
  InitUpdateTasks({
48
- onDone(tasks) {
49
- DVEC.threads.world.runTask("build-queue", [
50
- tasks.origin[0],
51
- tasks.bounds.getSections(),
52
- ]);
46
+ onDone(tasks, origin) {
47
+ tasks.bounds.markSectionsAsDirty();
48
+ /*
49
+ origin.runTask("build-queue", [
50
+ tasks.origin[0],
51
+ tasks.bounds.getSections(),
52
+ ]); */
53
53
  },
54
54
  });
55
55
  InitWorldGenerationTasks();
@@ -1,5 +1,5 @@
1
1
  import { DivineVoxelEngineWorld } from "../Contexts/World/DivineVoxelEngineWorld";
2
- import { WorldStorageInterface } from "World/Storage/WorldStorage.interface";
2
+ import { WorldStorageInterface } from "World/Types/WorldStorage.interface";
3
3
  type StartWorldProps = {
4
4
  worldStorage?: WorldStorageInterface;
5
5
  };
@@ -3,8 +3,6 @@ import { DivineVoxelEngineWorld } from "../Contexts/World/DivineVoxelEngineWorld
3
3
  import { Threads } from "@amodx/threads/";
4
4
  import InitWorldTasks from "../World/InitTasks";
5
5
  import { Environment } from "../Util/Environment";
6
- import { VoxelTagStates } from "../Voxels/State/VoxelTagStates";
7
- import { SchemaRegister } from "../Voxels/State/SchemaRegister";
8
6
  export async function StartWorld(props = {}) {
9
7
  const DVEW = new DivineVoxelEngineWorld();
10
8
  DivineVoxelEngineWorld.environment = Environment.isNode()
@@ -22,16 +20,6 @@ export async function StartWorld(props = {}) {
22
20
  if (data.threads.nexus) {
23
21
  DVEW.threads.addThread(DVEW.threads.nexus);
24
22
  }
25
- if (data.modelData) {
26
- const modelData = data.modelData;
27
- for (const model of modelData.models) {
28
- SchemaRegister.registerModel(model.id, model.schema);
29
- }
30
- for (const voxel of modelData.voxels) {
31
- SchemaRegister.registerVoxel(voxel.id, voxel.modelId, voxel.modSchema);
32
- }
33
- VoxelTagStates.load(modelData.tagState);
34
- }
35
23
  ready = true;
36
24
  },
37
25
  });
@@ -1,12 +1,21 @@
1
1
  import { Vec3Array, Vector3Like } from "@amodx/math";
2
2
  export declare function CubeHashVec3Array(positionX: number, positionY: number, positionZ: number, xPower2: number, yPower2: number, zPower2: number, positionRef?: Vec3Array): Vec3Array;
3
3
  export declare function CubeHashVec3(positionX: number, positionY: number, positionZ: number, xPower2: number, yPower2: number, zPower2: number, positionRef?: Vector3Like): Vector3Like;
4
+ /**
5
+ * YXZ order
6
+ */
7
+ export declare function GetYXZOrderArrayPositionVec3Array(index: number, boundsX: number, boundsY: number, boundsZ: number, positionRef?: Vec3Array): Vec3Array;
8
+ export declare function GetYXZOrderArrayPositionVec3(index: number, boundsX: number, boundsY: number, boundsZ: number, positionRef?: Vector3Like): Vector3Like;
9
+ export declare function GetYXZOrderArrayIndex(positionX: number, positionY: number, positionZ: number, boundsX: number, boundsY: number, boundsZ: number): number;
10
+ /**
11
+ * XYZ order
12
+ */
4
13
  export declare function GetXYZOrderArrayPositionVec3Array(index: number, boundsX: number, boundsY: number, boundsZ: number, positionRef?: Vec3Array): Vec3Array;
5
14
  export declare function GetXYZOrderArrayPositionVec3(index: number, boundsX: number, boundsY: number, boundsZ: number, positionRef?: Vector3Like): Vector3Like;
6
15
  export declare function GetXYZOrderArrayIndex(positionX: number, positionY: number, positionZ: number, boundsX: number, boundsY: number, boundsZ: number): number;
7
16
  export declare function GetXZYOrderArrayPositionVec3Array(index: number, boundsX: number, boundsY: number, boundsZ: number, positionRef?: Vec3Array): Vec3Array;
17
+ /**
18
+ * XZY order
19
+ */
8
20
  export declare function GetXZYOrderArrayPositionVec3(index: number, boundsX: number, boundsY: number, boundsZ: number, positionRef?: Vector3Like): Vector3Like;
9
21
  export declare function GetXZYOrderArrayIndex(positionX: number, positionY: number, positionZ: number, boundsX: number, boundsY: number, boundsZ: number): number;
10
- export declare function GetYXZOrderArrayPositionVec3Array(index: number, boundsX: number, boundsY: number, boundsZ: number, positionRef?: Vec3Array): Vec3Array;
11
- export declare function GetYXZOrderArrayPositionVec3(index: number, boundsX: number, boundsY: number, boundsZ: number, positionRef?: Vector3Like): Vector3Like;
12
- export declare function GetYXZOrderArrayIndex(positionX: number, positionY: number, positionZ: number, boundsX: number, boundsY: number, boundsZ: number): number;
package/Math/Indexing.js CHANGED
@@ -11,6 +11,27 @@ export function CubeHashVec3(positionX, positionY, positionZ, xPower2, yPower2,
11
11
  positionRef.z = (positionZ >> zPower2) << zPower2;
12
12
  return positionRef;
13
13
  }
14
+ /**
15
+ * YXZ order
16
+ */
17
+ export function GetYXZOrderArrayPositionVec3Array(index, boundsX, boundsY, boundsZ, positionRef = [0, 0, 0]) {
18
+ positionRef[1] = Math.floor(index / (boundsX * boundsZ));
19
+ positionRef[0] = Math.floor((index % (boundsX * boundsZ)) / boundsZ);
20
+ positionRef[2] = index % boundsZ;
21
+ return positionRef;
22
+ }
23
+ export function GetYXZOrderArrayPositionVec3(index, boundsX, boundsY, boundsZ, positionRef = Vector3Like.Create()) {
24
+ positionRef.y = Math.floor(index / (boundsX * boundsZ));
25
+ positionRef.x = Math.floor((index % (boundsX * boundsZ)) / boundsZ);
26
+ positionRef.z = index % boundsZ;
27
+ return positionRef;
28
+ }
29
+ export function GetYXZOrderArrayIndex(positionX, positionY, positionZ, boundsX, boundsY, boundsZ) {
30
+ return Math.floor(positionZ + boundsZ * (positionX + boundsX * positionY));
31
+ }
32
+ /**
33
+ * XYZ order
34
+ */
14
35
  export function GetXYZOrderArrayPositionVec3Array(index, boundsX, boundsY, boundsZ, positionRef = [0, 0, 0]) {
15
36
  positionRef[2] = index / (boundsX * boundsY);
16
37
  positionRef[1] = (index % (boundsX * boundsY)) / boundsX;
@@ -32,6 +53,9 @@ export function GetXZYOrderArrayPositionVec3Array(index, boundsX, boundsY, bound
32
53
  positionRef[0] = index % boundsX;
33
54
  return positionRef;
34
55
  }
56
+ /**
57
+ * XZY order
58
+ */
35
59
  export function GetXZYOrderArrayPositionVec3(index, boundsX, boundsY, boundsZ, positionRef = Vector3Like.Create()) {
36
60
  positionRef.y = index / (boundsX * boundsY);
37
61
  positionRef.z = (index % (boundsX * boundsY)) / boundsX;
@@ -41,18 +65,3 @@ export function GetXZYOrderArrayPositionVec3(index, boundsX, boundsY, boundsZ, p
41
65
  export function GetXZYOrderArrayIndex(positionX, positionY, positionZ, boundsX, boundsY, boundsZ) {
42
66
  return positionX + positionY * boundsX + positionZ * boundsX * boundsZ;
43
67
  }
44
- export function GetYXZOrderArrayPositionVec3Array(index, boundsX, boundsY, boundsZ, positionRef = [0, 0, 0]) {
45
- positionRef[1] = index / (boundsX * boundsZ);
46
- positionRef[0] = (index % (boundsX * boundsZ)) / boundsZ;
47
- positionRef[2] = index % boundsZ;
48
- return positionRef;
49
- }
50
- export function GetYXZOrderArrayPositionVec3(index, boundsX, boundsY, boundsZ, positionRef = Vector3Like.Create()) {
51
- positionRef.y = index / (boundsX * boundsZ);
52
- positionRef.x = (index % (boundsX * boundsZ)) / boundsZ;
53
- positionRef.z = index % boundsZ;
54
- return positionRef;
55
- }
56
- export function GetYXZOrderArrayIndex(positionX, positionY, positionZ, boundsX, boundsY, boundsZ) {
57
- return positionZ + boundsZ * (positionX + boundsX * positionY);
58
- }
@@ -1,3 +1,3 @@
1
1
  import { CompactMeshData } from "../Types/Mesher.types";
2
- import { VoxelMesherDataTool } from "Mesher/Tools/VoxelMesherDataTool";
3
- export declare function CompactVoxelMesh(tools: VoxelMesherDataTool[]): [data: CompactMeshData, tranfers: ArrayBuffer[]];
2
+ import { VoxelModelBuilder } from "Mesher/Models/VoxelModelBuilder";
3
+ export declare function CompactVoxelMesh(tools: VoxelModelBuilder[], transfers?: any[]): CompactMeshData;
@@ -1,4 +1,4 @@
1
- import { VoxelMeshVertexStructCursor } from "../Tools/VoxelMeshVertexStructCursor";
1
+ import { VoxelMeshVertexStructCursor } from "../Geomtry/VoxelMeshVertexStructCursor";
2
2
  const structCursor = new VoxelMeshVertexStructCursor();
3
3
  /*
4
4
  function MakeWebGPUMesh(tool: VoxelMesherDataTool): CompactMeshData {
@@ -60,12 +60,11 @@ function MakeWebGPUMesh(tool: VoxelMesherDataTool): CompactMeshData {
60
60
  Vector3Like.ToArray(mesh.maxBounds),
61
61
  ];
62
62
  } */
63
- export function CompactVoxelMesh(tools) {
63
+ export function CompactVoxelMesh(tools, transfers = []) {
64
64
  const data = [0, []];
65
- const transfers = [];
66
65
  for (let i = 0; i < tools.length; i++) {
67
66
  const tool = tools[i];
68
- if (!tool.mesh.buffer.length)
67
+ if (!tool.mesh.vertexCount)
69
68
  continue;
70
69
  const totalVerticies = tool.mesh.vertexCount * VoxelMeshVertexStructCursor.VertexFloatSize;
71
70
  const vertexArray = new Float32Array(totalVerticies);
@@ -115,5 +114,5 @@ export function CompactVoxelMesh(tools) {
115
114
  ]);
116
115
  transfers.push(vertexArray.buffer, indiciesArray.buffer);
117
116
  }
118
- return [data, transfers];
117
+ return data;
119
118
  }
@@ -1,3 +1,3 @@
1
1
  import { LocationData } from "../../Math";
2
2
  import type { SetSectionMeshTask } from "../../Renderer/Renderer.types.js";
3
- export declare function MeshSection(location: LocationData): [task: SetSectionMeshTask, transfers: any[]] | null;
3
+ export declare function MeshSection(location: LocationData, transfers?: any[]): SetSectionMeshTask | null;
@@ -1,100 +1,104 @@
1
1
  //data
2
2
  import { WorldSpaces } from "../../World/WorldSpaces.js";
3
3
  //tools
4
- import { VoxelGeometryLookUp, } from "../Models/VoxelGeometryLookUp.js";
4
+ import { VoxelGeometryBuilderCacheSpace } from "../Models/VoxelGeometryBuilderCacheSpace.js";
5
5
  import { CompactVoxelMesh } from "./CompactVoxelMesh.js";
6
6
  import { WorldCursor } from "../../World/Cursor/WorldCursor.js";
7
7
  import { SectionCursor } from "../../World/Cursor/SectionCursor.js";
8
- import { RenderedMaterials } from "../RenderedMaterials";
9
8
  import { VoxelModelConstructorRegister } from "../Models/VoxelModelConstructorRegister.js";
10
- import { SectionHeightMap } from "../../World/Section/SectionHeightMap.js";
11
9
  import { WorldRegister } from "../../World/WorldRegister.js";
12
- import { VoxelMeshBVHBuilder } from "../Tools/VoxelMeshBVHBuilder";
10
+ import { VoxelMeshBVHBuilder } from "../Geomtry/VoxelMeshBVHBuilder";
13
11
  import { Vector3Like } from "@amodx/math";
12
+ import { RenderedMaterials } from "../Models/RenderedMaterials";
14
13
  const sectionCursor = new SectionCursor();
15
14
  const worldCursor = new WorldCursor();
16
15
  let space;
17
16
  const bvhTool = new VoxelMeshBVHBuilder();
18
- function process(x, y, z) {
19
- const voxel = sectionCursor.getVoxel(x, y, z);
20
- if (!voxel)
21
- return false;
22
- if (!voxel.isRenderable())
23
- return false;
24
- if (voxel.hasSecondaryVoxel()) {
25
- voxel.setSecondary(true);
26
- meshVoxel(x, y, z, voxel);
27
- voxel.setSecondary(false);
28
- }
29
- meshVoxel(x, y, z, voxel);
30
- return true;
31
- }
32
17
  function meshVoxel(x, y, z, voxel) {
18
+ let added = false;
33
19
  const constructor = VoxelModelConstructorRegister.constructorsPaltte[voxel.getId()];
34
- if (!constructor) {
35
- throw new Error(`Could not find constructor ${voxel.getId()} | ${voxel.getName()} `);
36
- }
37
- const mesher = RenderedMaterials.meshers[voxel.getRenderedMaterial()];
38
- if (!mesher) {
39
- throw new Error(`Could not find material for ${voxel.getId()} | ${voxel.getName()} | ${constructor?.id} | ${voxel.getMaterial()} | ${voxel.getRenderedMaterialStringId()}`);
40
- }
41
- mesher.origin.x = sectionCursor._voxelPosition.x;
42
- mesher.origin.y = sectionCursor._voxelPosition.y;
43
- mesher.origin.z = sectionCursor._voxelPosition.z;
44
- mesher.position.x = x;
45
- mesher.position.y = y;
46
- mesher.position.z = z;
47
- mesher.voxel = voxel;
48
- mesher.nVoxel = worldCursor;
49
- mesher.startConstruction();
50
- constructor.process(mesher);
51
- mesher.endConstruction();
52
- mesher.reset();
20
+ const builder = constructor.builder;
21
+ builder.origin.x = sectionCursor._voxelPosition.x;
22
+ builder.origin.y = sectionCursor._voxelPosition.y;
23
+ builder.origin.z = sectionCursor._voxelPosition.z;
24
+ builder.position.x = x;
25
+ builder.position.y = y;
26
+ builder.position.z = z;
27
+ builder.voxel = voxel;
28
+ builder.nVoxel = worldCursor;
29
+ builder.startConstruction();
30
+ added = constructor.process();
31
+ builder.endConstruction();
32
+ return added;
53
33
  }
54
34
  const padding = Vector3Like.Create(5, 5, 5);
55
- export function MeshSection(location) {
35
+ export function MeshSection(location, transfers = []) {
56
36
  if (!space)
57
- space = VoxelGeometryLookUp.createSpace(WorldSpaces.section.bounds.x + padding.x, WorldSpaces.section.bounds.y + padding.y, WorldSpaces.section.bounds.z + padding.z);
58
- const [dimension, cx, cy, cz] = location;
59
- const sector = WorldRegister.sectors.get(dimension, cx, cy, cz);
37
+ space = new VoxelGeometryBuilderCacheSpace({
38
+ x: WorldSpaces.section.bounds.x + padding.x,
39
+ y: WorldSpaces.section.bounds.y + padding.y,
40
+ z: WorldSpaces.section.bounds.z + padding.z,
41
+ });
42
+ const sector = WorldRegister.sectors.getAt(location);
60
43
  if (!sector)
61
44
  return null;
62
- const section = sector.getSection(cy);
63
- SectionHeightMap.setSection(section);
45
+ const section = sector.getSection(location[1], location[2], location[3]);
46
+ const [cx, cy, cz] = section.getPosition();
64
47
  worldCursor.setFocalPoint(...location);
65
48
  sectionCursor.setSection(...location);
66
- let [minY, maxY] = SectionHeightMap.getMinMax();
67
- const maxX = WorldSpaces.section.bounds.x;
68
- const maxZ = WorldSpaces.section.bounds.z;
69
- if (Math.abs(minY) == Infinity && Math.abs(maxY) == Infinity)
49
+ let [minY, maxY] = section.getMinMax();
50
+ if (minY == Infinity && maxY == -Infinity) {
51
+ section.setDirty(false);
52
+ section.setInProgress(false);
70
53
  return null;
54
+ }
71
55
  space.start(cx - (padding.x - 1), cy - (padding.y - 1), cz - (padding.z - 1));
72
- VoxelGeometryLookUp.start(space);
73
56
  bvhTool.reset();
74
57
  const effects = {};
75
58
  for (let i = 0; i < RenderedMaterials.meshers.length; i++) {
76
59
  const mesher = RenderedMaterials.meshers[i];
60
+ mesher.space = space;
77
61
  mesher.bvhTool = bvhTool;
78
62
  mesher.effects = effects;
79
63
  }
80
- for (let y = minY; y <= maxY; y++) {
81
- let foundVoxels = false;
82
- if (!SectionHeightMap.getVoxel(y) && !SectionHeightMap.getDirty(y))
83
- continue;
84
- for (let x = 0; x < maxX; x++) {
85
- for (let z = 0; z < maxZ; z++) {
86
- let found = process(x + cx, y + cy, z + cz);
87
- if (found)
88
- foundVoxels = true;
64
+ const volume = WorldSpaces.section.volumne;
65
+ const slice = WorldSpaces.section.bounds.x * WorldSpaces.section.bounds.z;
66
+ //const t = performance.now();
67
+ for (let i = 0; i < volume; i++) {
68
+ if (!(i % slice)) {
69
+ const y = i / slice;
70
+ if (!section.getHasVoxel(y) && !section.getHasVoxelDirty(y)) {
71
+ i += slice - 1;
72
+ continue;
89
73
  }
90
74
  }
91
- SectionHeightMap.setVoxel(y, foundVoxels);
92
- SectionHeightMap.setDirty(y, false);
75
+ if (!section.ids[i])
76
+ continue;
77
+ if (!section.ids[i] || section.getBuried(i))
78
+ continue;
79
+ const voxel = sectionCursor.getVoxelAtIndex(i);
80
+ const x = cx + sectionCursor._voxelPosition.x;
81
+ const y = cy + sectionCursor._voxelPosition.y;
82
+ const z = cz + sectionCursor._voxelPosition.z;
83
+ let addedVoxel = false;
84
+ if (meshVoxel(x, y, z, voxel))
85
+ addedVoxel = true;
86
+ if (voxel.hasSecondaryVoxel()) {
87
+ voxel.setSecondary(true);
88
+ if (meshVoxel(x, y, z, voxel))
89
+ addedVoxel = true;
90
+ voxel.setSecondary(false);
91
+ }
92
+ section.setBuried(i, !addedVoxel);
93
93
  }
94
- VoxelGeometryLookUp.stop();
95
- const transfers = [];
94
+ // console.log(performance.now() - t);
96
95
  const sectionEffects = [];
97
- const sections = [location, [], sectionEffects, 0];
96
+ const sections = [
97
+ [location[0], ...section.getPosition()],
98
+ [],
99
+ sectionEffects,
100
+ 0,
101
+ ];
98
102
  const meshed = [];
99
103
  for (let i = 0; i < RenderedMaterials.meshers.length; i++) {
100
104
  const mesher = RenderedMaterials.meshers[i];
@@ -104,17 +108,19 @@ export function MeshSection(location) {
104
108
  sectionEffects.push([e, float]);
105
109
  }
106
110
  if (!mesher.mesh.vertexCount) {
107
- mesher.resetAll();
111
+ mesher.clear();
108
112
  mesher.bvhTool = null;
109
113
  continue;
110
114
  }
111
115
  meshed.push(mesher);
112
116
  }
113
- const [compactMesh, buffers] = CompactVoxelMesh(meshed);
117
+ const compactMesh = CompactVoxelMesh(meshed, transfers);
114
118
  sections[1] = compactMesh;
115
119
  for (let i = 0; i < meshed.length; i++) {
116
- meshed[i].resetAll();
120
+ meshed[i].clear();
117
121
  meshed[i].bvhTool = null;
118
122
  }
119
- return [sections, [...transfers, ...buffers]];
123
+ section.setDirty(false);
124
+ section.setInProgress(false);
125
+ return sections;
120
126
  }
@@ -1 +1 @@
1
- export declare function MeshTexture(textureId: number, textureData: number[]): import("../Geomtry/VoxelMesh").VoxelMesh | null;
1
+ export declare function MeshTexture(textureId: number, textureData: number[]): void;
@@ -1,4 +1,3 @@
1
- import { MesherDataTool } from "../Geomtry/Tools/MesherDataTools";
2
1
  import { Quad } from "../Geomtry/Primitives/Quad";
3
2
  const Quads = {
4
3
  north: Quad.Create([
@@ -10,8 +9,8 @@ const Quads = {
10
9
  [1, 1, 0],
11
10
  ], Quad.FullUVs, false, 0),
12
11
  };
13
- const tool = new MesherDataTool();
14
- tool.startNewMesh();
12
+ //const tool = new MesherDataTool();
13
+ //tool.startNewMesh();
15
14
  //tool.mesh!.attributes.set("uv", [[], 2, BinaryNumberTypes.Float32]);
16
15
  //tool.mesh!.attributes.set("textureIndex", [[], 3, BinaryNumberTypes.Float32]);
17
16
  export function MeshTexture(textureId, textureData) {
@@ -271,5 +270,5 @@ export function MeshTexture(textureId, textureData) {
271
270
 
272
271
  const compacted = CompactMesh("dve_node", tool);
273
272
  */
274
- return tool.mesh;
273
+ // return tool.mesh;
275
274
  }
@@ -1,12 +1,11 @@
1
- import { RenderedMaterials } from "../RenderedMaterials";
2
- import { VoxelGeometryLookUp } from "../Models/VoxelGeometryLookUp.js";
1
+ import { VoxelGeometryBuilderCacheSpace } from "../Models/VoxelGeometryBuilderCacheSpace.js";
3
2
  import { TemplateCursor } from "../../Templates/Cursor/TemplateCursor.js";
4
3
  import { FullVoxelTemplate } from "../../Templates/FullVoxelTemplate.js";
5
4
  import { CompactVoxelMesh } from "../Functions/CompactVoxelMesh.js";
6
5
  import { VoxelModelConstructorRegister } from "../Models/VoxelModelConstructorRegister.js";
7
6
  const templateCursor = new TemplateCursor();
8
7
  templateCursor.setTemplate(new FullVoxelTemplate(FullVoxelTemplate.CreateNew([3, 3, 3], 0xf)));
9
- const space = VoxelGeometryLookUp.createSpace(3, 3, 3);
8
+ const space = new VoxelGeometryBuilderCacheSpace({ x: 3, y: 3, z: 3 });
10
9
  export function MeshVoxel(rawVoxelData) {
11
10
  const voxel = templateCursor.getVoxel(1, 1, 1);
12
11
  voxel.copyRaw(rawVoxelData);
@@ -17,28 +16,23 @@ export function MeshVoxel(rawVoxelData) {
17
16
  if (!constructor) {
18
17
  throw new Error(`Could not find constructor for voxel [id:${voxel.getStringId()} name:${voxel.getName()}] `);
19
18
  }
20
- const mesher = RenderedMaterials.meshersMap.get(voxel.getRenderedMaterialStringId());
21
- if (!mesher) {
22
- throw new Error(`Could not find material mesh for voxel [id:${voxel.getStringId()} name:${voxel.getName()}] `);
23
- }
24
- mesher.bvhTool = null;
25
- mesher.resetAll();
19
+ const builder = constructor.builder;
20
+ builder.space = space;
21
+ builder.bvhTool = null;
22
+ builder.clear();
26
23
  space.start(0, 0, 0);
27
- VoxelGeometryLookUp.start(space);
28
- mesher.effects = {};
29
- mesher.origin.x = -0.5;
30
- mesher.origin.y = -0.5;
31
- mesher.origin.z = -0.5;
32
- mesher.position.x = 1;
33
- mesher.position.y = 1;
34
- mesher.position.z = 1;
35
- mesher.voxel = voxel;
36
- mesher.nVoxel = templateCursor;
37
- constructor.process(mesher);
38
- mesher.reset();
39
- VoxelGeometryLookUp.stop();
40
- const compacted = CompactVoxelMesh([mesher]);
41
- mesher.reset();
42
- mesher.mesh.clear();
43
- return compacted;
24
+ builder.effects = {};
25
+ builder.origin.x = -0.5;
26
+ builder.origin.y = -0.5;
27
+ builder.origin.z = -0.5;
28
+ builder.position.x = 1;
29
+ builder.position.y = 1;
30
+ builder.position.z = 1;
31
+ builder.voxel = voxel;
32
+ builder.nVoxel = templateCursor;
33
+ constructor.process();
34
+ const transfers = [];
35
+ const compacted = CompactVoxelMesh([builder], transfers);
36
+ builder.clear();
37
+ return [compacted, transfers];
44
38
  }