@divinevoxel/vlox 0.0.72 → 0.0.74

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 (307) hide show
  1. package/Contexts/Base/Remote/InitDataSync.js +4 -0
  2. package/Contexts/Base/Remote/InitWorldDataSync.js +1 -1
  3. package/Contexts/Render/DivineVoxelEngineRender.d.ts +2 -1
  4. package/Contexts/World/DivineVoxelEngineWorld.d.ts +2 -1
  5. package/Init/StartConstructor.js +8 -4
  6. package/Init/StartWorld.d.ts +1 -1
  7. package/Math/index.d.ts +5 -1
  8. package/Mesher/Functions/CompactVoxelMesh.d.ts +2 -2
  9. package/Mesher/Functions/CompactVoxelMesh.js +1 -1
  10. package/Mesher/Functions/CompactVoxelSectionMesh.d.ts +4 -0
  11. package/Mesher/Functions/CompactVoxelSectionMesh.js +112 -0
  12. package/Mesher/Functions/MeshSection.d.ts +1 -1
  13. package/Mesher/Functions/MeshSection.js +27 -22
  14. package/Mesher/Functions/MeshTexture.d.ts +1 -1
  15. package/Mesher/Functions/MeshTexture.js +3 -4
  16. package/Mesher/Geomtry/CompactedSectionVoxelMesh.d.ts +23 -0
  17. package/Mesher/Geomtry/CompactedSectionVoxelMesh.js +144 -0
  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 +120 -199
  22. package/Mesher/Geomtry/VoxelMesh.d.ts +1 -1
  23. package/Mesher/Geomtry/VoxelMesh.js +4 -4
  24. package/Mesher/Geomtry/VoxelMeshBVHBuilder.d.ts +16 -0
  25. package/Mesher/Geomtry/VoxelMeshBVHBuilder.js +51 -0
  26. package/Mesher/Geomtry/VoxelMeshBVHStructCursor.d.ts +22 -0
  27. package/Mesher/Geomtry/VoxelMeshBVHStructCursor.js +78 -0
  28. package/Mesher/Geomtry/{Buffers.js → VoxelMeshBuffers.js} +2 -2
  29. package/Mesher/Geomtry/index.d.ts +0 -1
  30. package/Mesher/Geomtry/index.js +0 -1
  31. package/Mesher/InitMesher.js +1 -1
  32. package/Mesher/InitTask.js +9 -23
  33. package/Mesher/Models/Common/BoxGeometryNode.js +7 -7
  34. package/Mesher/Models/Common/Calc/CalcConstants.d.ts +1 -1
  35. package/Mesher/Models/Common/Calc/CalcConstants.js +1 -1
  36. package/Mesher/Models/Common/Calc/FaceDataCalc.d.ts +2 -2
  37. package/Mesher/Models/Common/Calc/FaceDataCalc.js +37 -30
  38. package/Mesher/Models/Common/QuadGeometryNode.js +2 -2
  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.js +18 -24
  42. package/Mesher/Models/Nodes/GeometryNode.d.ts +2 -2
  43. package/Mesher/Models/Nodes/Ruled/BoxVoxelGeometryNode.d.ts +1 -0
  44. package/Mesher/Models/Nodes/Ruled/BoxVoxelGeometryNode.js +40 -31
  45. package/Mesher/Models/Nodes/Ruled/QuadVoxelGeometryNode.js +2 -2
  46. package/Mesher/Models/Nodes/Ruleless/RulelessBoxVoxelGeometryNode.js +2 -2
  47. package/Mesher/Models/Nodes/Ruleless/RulelessQuadVoxelGeometryNode.js +2 -2
  48. package/Mesher/{Tools → Models/Protocols}/OutlinedVoxelTool.d.ts +1 -1
  49. package/Mesher/{Tools → Models/Protocols}/OutlinedVoxelTool.js +1 -1
  50. package/Mesher/Models/RenderedMaterials.d.ts +6 -0
  51. package/Mesher/{RenderedMaterials.js → Models/RenderedMaterials.js} +2 -2
  52. package/Mesher/Models/VoxelConstructor.d.ts +6 -6
  53. package/Mesher/Models/VoxelConstructor.js +8 -8
  54. package/Mesher/Models/VoxelGeometryBuilderCacheSpace.d.ts +3 -5
  55. package/Mesher/Models/VoxelGeometryBuilderCacheSpace.js +8 -32
  56. package/Mesher/{Tools/VoxelMesherDataTool.d.ts → Models/VoxelModelBuilder.d.ts} +4 -5
  57. package/Mesher/{Tools/VoxelMesherDataTool.js → Models/VoxelModelBuilder.js} +5 -8
  58. package/Mesher/Types/Mesher.types.d.ts +1 -0
  59. package/Models/Defaults/CubeVoxelGeometry.js +4 -0
  60. package/Models/Defaults/CubeVoxelModels.js +360 -383
  61. package/Models/Defaults/LiquidVoxelModel.js +5 -5
  62. package/Models/Defaults/PanelVoxelModels.js +442 -468
  63. package/Models/Defaults/StairVoxelModel.js +582 -597
  64. package/Models/Examples.js +490 -498
  65. package/Models/Rules/Classes/VoxelRulesModel.d.ts +1 -1
  66. package/Models/Rules/Classes/VoxelRulesModel.js +3 -3
  67. package/Models/Rules/Functions/BuildFinalInputs.d.ts +1 -1
  68. package/Models/Rules/Functions/BuildFinalInputs.js +21 -19
  69. package/Models/Rules/Functions/BuildGeomtryInputs.js +8 -5
  70. package/Models/Rules/Functions/BuildRules.js +2 -2
  71. package/Models/Rules/{VoxelModelManager.d.ts → VoxelModelRuleBuilderRegister.d.ts} +1 -1
  72. package/Models/Rules/VoxelModelRuleBuilderRegister.js +178 -0
  73. package/Models/VoxelModel.types.d.ts +17 -8
  74. package/Renderer/Classes/DVESectionMeshes.d.ts +2 -3
  75. package/Renderer/Classes/SectorMesh.d.ts +3 -4
  76. package/Renderer/Classes/SectorMesh.js +6 -11
  77. package/Renderer/InitTasks.js +1 -10
  78. package/Renderer/MeshManager.d.ts +1 -1
  79. package/Renderer/MeshManager.js +26 -25
  80. package/Renderer/MeshRegister.d.ts +5 -5
  81. package/Renderer/MeshRegister.js +4 -3
  82. package/Settings/EngineSettings.d.ts +2 -1
  83. package/Settings/EngineSettings.js +6 -5
  84. package/Settings/EngineSettings.types.d.ts +24 -39
  85. package/Settings/EngineSettings.types.js +22 -29
  86. package/Tasks/Logic/InitTasks.d.ts +1 -0
  87. package/Tasks/Logic/InitTasks.js +10 -0
  88. package/Tasks/Logic/VoxelLogicUpdate.d.ts +3 -0
  89. package/Tasks/Logic/VoxelLogicUpdate.js +71 -0
  90. package/Tasks/Propagation/Explosion/ExplosionManager.d.ts +2 -2
  91. package/Tasks/Propagation/Explosion/ExplosionManager.js +1 -2
  92. package/Tasks/Propagation/Flow/FlowManager.d.ts +4 -4
  93. package/Tasks/Propagation/Flow/FlowRemove.d.ts +2 -2
  94. package/Tasks/Propagation/Flow/FlowUpdate.d.ts +2 -2
  95. package/Tasks/Propagation/Flow/WorldFlow.d.ts +2 -2
  96. package/Tasks/Propagation/Illumanation/RGBUpdate.d.ts +3 -3
  97. package/Tasks/Propagation/Illumanation/SunUpdate.d.ts +3 -3
  98. package/Tasks/Propagation/Illumanation/WorldRGB.d.ts +2 -2
  99. package/Tasks/Propagation/Illumanation/WorldSun.d.ts +2 -2
  100. package/Tasks/Propagation/Illumanation/WorldSun.js +8 -15
  101. package/Tasks/Propagation/InitTasks.js +4 -4
  102. package/Tasks/Propagation/Power/PowerUpdate.d.ts +3 -0
  103. package/Tasks/Propagation/Power/PowerUpdate.js +80 -0
  104. package/Tasks/Tasks.types.d.ts +2 -2
  105. package/Tasks/TasksIds.d.ts +2 -1
  106. package/Tasks/TasksIds.js +1 -0
  107. package/Tasks/Update/Common.d.ts +3 -0
  108. package/Tasks/Update/Common.js +41 -0
  109. package/Tasks/Update/EreaseUpdate.d.ts +3 -0
  110. package/Tasks/Update/EreaseUpdate.js +66 -0
  111. package/Tasks/Update/InitTasks.d.ts +2 -2
  112. package/Tasks/Update/InitTasks.js +3 -1
  113. package/Tasks/Update/PaintUpdate.d.ts +3 -0
  114. package/Tasks/Update/PaintUpdate.js +89 -0
  115. package/Tasks/Update/VoxelUpdate.d.ts +2 -5
  116. package/Tasks/Update/VoxelUpdate.js +7 -143
  117. package/Tasks/{Update/UpdateTask.d.ts → VoxelUpdateTask.d.ts} +16 -6
  118. package/Tasks/{Update/UpdateTask.js → VoxelUpdateTask.js} +44 -5
  119. package/Tasks/WorldGeneration/WorldGenBrush.d.ts +3 -3
  120. package/Tasks/WorldGeneration/WorldGenBrush.js +3 -3
  121. package/Tasks/WorldGeneration/WorldGenRegister.d.ts +1 -1
  122. package/Templates/Cursor/TemplateCursor.d.ts +2 -2
  123. package/Templates/Cursor/TemplateCursor.js +1 -2
  124. package/Templates/Functions/CreateTemplate.d.ts +1 -1
  125. package/Templates/VoxelTemplates.types.d.ts +1 -1
  126. package/Textures/Classes/CompiledTexture.d.ts +18 -0
  127. package/Textures/Classes/CompiledTexture.js +50 -0
  128. package/Textures/Classes/CompiledTextureAnimation.d.ts +12 -0
  129. package/Textures/Classes/CompiledTextureAnimation.js +27 -0
  130. package/Textures/Classes/TextureAnimationTexture.d.ts +10 -0
  131. package/Textures/Classes/TextureAnimationTexture.js +32 -0
  132. package/Textures/Functions/BuildTextureData.d.ts +10 -0
  133. package/Textures/Functions/BuildTextureData.js +205 -0
  134. package/Textures/Texture.types.d.ts +50 -64
  135. package/Textures/TextureManager.d.ts +8 -19
  136. package/Textures/TextureManager.js +28 -166
  137. package/Tools/Brush/AdvancedBrushTool.js +1 -1
  138. package/Tools/Brush/Brush.d.ts +3 -3
  139. package/Tools/Brush/Brush.js +40 -8
  140. package/Tools/Tasks/TasksTool.d.ts +1 -0
  141. package/Tools/Tasks/TasksTool.js +2 -0
  142. package/Util/Binary/BinaryArrays.d.ts +6 -0
  143. package/Util/Binary/BinaryArrays.js +25 -0
  144. package/Util/Binary/BinaryBuffer.d.ts +35 -0
  145. package/Util/Binary/BinaryBuffer.js +136 -0
  146. package/Util/Binary/{BitArray.d.ts → BinaryFunctions.d.ts} +1 -2
  147. package/Util/Binary/BinaryFunctions.js +11 -0
  148. package/{Mesher/Tools/VoxelMeshBVHBuilder.d.ts → Util/Binary/BinaryTree.d.ts} +1 -33
  149. package/Util/Binary/BinaryTree.js +104 -0
  150. package/Voxels/Cursor/DataCursor.interface.d.ts +5 -0
  151. package/Voxels/Cursor/VoxelCursor.interface.d.ts +8 -3
  152. package/Voxels/Cursor/VoxelCursor.interface.js +54 -13
  153. package/Voxels/Cursor/VoxelLightData.js +1 -1
  154. package/Voxels/Data/VoxelPalettesRegister.d.ts +0 -5
  155. package/Voxels/Data/VoxelPalettesRegister.js +0 -9
  156. package/Voxels/Data/VoxelTag.types.d.ts +17 -2
  157. package/Voxels/Data/VoxelTag.types.js +6 -1
  158. package/Voxels/Data/VoxelTagsRegister.js +12 -7
  159. package/Voxels/Functions/BuildStateData.d.ts +6 -6
  160. package/Voxels/Functions/BuildStateData.js +37 -37
  161. package/Voxels/Functions/BuildTagAndPaletteData.js +6 -3
  162. package/Voxels/Indexes/VoxelIndex.d.ts +2 -2
  163. package/Voxels/Indexes/VoxelIndex.js +16 -18
  164. package/Voxels/InitVoxelData.js +24 -21
  165. package/Voxels/Logic/Classes/Default/Types/VoxelPoweredLogicType.d.ts +5 -0
  166. package/Voxels/Logic/Classes/Default/Types/VoxelPoweredLogicType.js +6 -0
  167. package/Voxels/Logic/Classes/VoxelLogic.d.ts +11 -0
  168. package/Voxels/Logic/Classes/VoxelLogic.js +49 -0
  169. package/Voxels/Logic/Classes/VoxelLogicType.d.ts +4 -0
  170. package/Voxels/Logic/Classes/VoxelLogicType.js +2 -0
  171. package/Voxels/Logic/VoxelLogic.types.d.ts +23 -0
  172. package/Voxels/Logic/VoxelLogic.types.js +1 -0
  173. package/Voxels/Logic/VoxelLogicRegister.d.ts +9 -0
  174. package/Voxels/Logic/VoxelLogicRegister.js +15 -0
  175. package/Voxels/State/Schema/StateSchema.d.ts +1 -1
  176. package/Voxels/State/SchemaRegister.js +10 -5
  177. package/Voxels/State/State.types.d.ts +1 -1
  178. package/Voxels/State/StateTreeReader.d.ts +1 -1
  179. package/Voxels/State/StateTreeReader.js +2 -3
  180. package/Voxels/Types/Voxel.types.d.ts +21 -0
  181. package/Voxels/Types/Voxel.types.js +6 -2
  182. package/Voxels/Types/VoxelModelCompiledData.types.d.ts +6 -4
  183. package/World/Archive/Archive.types.d.ts +65 -42
  184. package/World/Archive/Classes/ArchiveClasses.d.ts +66 -0
  185. package/World/Archive/Classes/ArchiveClasses.js +78 -0
  186. package/World/Archive/Classes/ImportedSection.d.ts +40 -0
  187. package/World/Archive/Classes/ImportedSection.js +307 -0
  188. package/World/Archive/Classes/ImportedSector.d.ts +23 -0
  189. package/World/Archive/Classes/ImportedSector.js +97 -0
  190. package/World/Archive/Functions/ArchiveArea.d.ts +1 -1
  191. package/World/Archive/Functions/ArchiveArea.js +49 -54
  192. package/World/Archive/Functions/ArchiveSector.js +373 -282
  193. package/World/Archive/Functions/CreateArchivedSection.d.ts +3 -0
  194. package/World/Archive/Functions/CreateArchivedSection.js +207 -0
  195. package/World/Archive/Functions/ImportSector.d.ts +2 -4
  196. package/World/Archive/Functions/ImportSector.js +50 -220
  197. package/World/Archive/Functions/RemoveDuplicates.d.ts +3 -0
  198. package/World/Archive/Functions/RemoveDuplicates.js +92 -0
  199. package/World/Archive/Functions/Shared.d.ts +6 -0
  200. package/World/Archive/Functions/Shared.js +50 -0
  201. package/World/Archive/InitTasks.js +37 -23
  202. package/World/Cursor/SectionCursor.d.ts +3 -3
  203. package/World/Cursor/SectionCursor.js +2 -3
  204. package/World/Cursor/SectorCursor.d.ts +3 -3
  205. package/World/Cursor/SectorCursor.js +1 -2
  206. package/World/Cursor/WorldCursor.d.ts +6 -5
  207. package/World/Cursor/WorldCursor.js +17 -15
  208. package/World/Cursor/WorldVoxelCursor.d.ts +0 -4
  209. package/World/Cursor/WorldVoxelCursor.js +24 -14
  210. package/World/Dimension/Dimension.d.ts +4 -1
  211. package/World/Dimension/Dimension.js +8 -1
  212. package/World/InitTasks.d.ts +1 -1
  213. package/World/Lock/WorldLock.d.ts +1 -1
  214. package/World/Section/Section.d.ts +27 -18
  215. package/World/Section/Section.js +125 -21
  216. package/World/Section/SectionState.d.ts +12 -0
  217. package/World/Section/SectionState.js +13 -0
  218. package/World/Sector/Sector.d.ts +20 -6
  219. package/World/Sector/Sector.js +100 -17
  220. package/World/Sector/SectorHeightMap.js +2 -2
  221. package/World/Sector/SectorState.d.ts +16 -7
  222. package/World/Sector/SectorState.js +29 -15
  223. package/World/Types/WorldData.types.d.ts +2 -7
  224. package/World/Types/WorldStorage.interface.js +1 -0
  225. package/World/WorldRegister.d.ts +13 -9
  226. package/World/WorldRegister.js +24 -9
  227. package/World/WorldSpaces.d.ts +4 -0
  228. package/World/WorldSpaces.js +25 -12
  229. package/{Tasks/IWG → WorldSimulation}/Internal/Classes/DimensionSegment.d.ts +2 -2
  230. package/{Tasks/IWG → WorldSimulation}/Internal/Classes/Generator.d.ts +10 -3
  231. package/{Tasks/IWG → WorldSimulation}/Internal/Classes/Generator.js +19 -3
  232. package/WorldSimulation/Internal/Classes/Queues/BuildQueue.d.ts +5 -0
  233. package/WorldSimulation/Internal/Classes/Queues/BuildQueue.js +6 -0
  234. package/WorldSimulation/Internal/Classes/Queues/LogiccQueue.d.ts +5 -0
  235. package/WorldSimulation/Internal/Classes/Queues/LogiccQueue.js +6 -0
  236. package/{Tasks/IWG → WorldSimulation}/Internal/Classes/SectorVisistedMap.js +1 -1
  237. package/WorldSimulation/Internal/Classes/TickQueue.d.ts +12 -0
  238. package/WorldSimulation/Internal/Classes/TickQueue.js +58 -0
  239. package/WorldSimulation/Internal/Classes/WorldSimulationTaskBase.d.ts +15 -0
  240. package/{Tasks/IWG/Internal/Classes/IWGTaskBase.js → WorldSimulation/Internal/Classes/WorldSimulationTaskBase.js} +8 -8
  241. package/{Tasks/IWG → WorldSimulation}/Internal/Functions/cullSectors.js +9 -9
  242. package/{Tasks/IWG → WorldSimulation}/Internal/Functions/getSectorState.d.ts +1 -1
  243. package/{Tasks/IWG → WorldSimulation}/Internal/Functions/getSectorState.js +4 -4
  244. package/WorldSimulation/Internal/Functions/runTickUpdate.d.ts +2 -0
  245. package/{Tasks/IWG/Internal/Functions/runBuildUpdate.js → WorldSimulation/Internal/Functions/runTickUpdate.js} +38 -9
  246. package/{Tasks/IWG → WorldSimulation}/Internal/Functions/runWorldUpdate.js +13 -13
  247. package/{Tasks/IWG → WorldSimulation}/Internal/TaskRegister.d.ts +2 -2
  248. package/{Tasks/IWG → WorldSimulation}/Internal/TaskRegister.js +1 -1
  249. package/WorldSimulation/Internal/WorldSimulationDimensions.d.ts +6 -0
  250. package/{Tasks/IWG/Internal/IWGDimensions.js → WorldSimulation/Internal/WorldSimulationDimensions.js} +1 -1
  251. package/WorldSimulation/Internal/WorldSimulationTasks.d.ts +30 -0
  252. package/{Tasks/IWG/Internal/IWGTasks.js → WorldSimulation/Internal/WorldSimulationTasks.js} +14 -24
  253. package/WorldSimulation/Internal/WorldSimulationTools.d.ts +8 -0
  254. package/{Tasks/IWG/Internal/IWGTools.js → WorldSimulation/Internal/WorldSimulationTools.js} +1 -1
  255. package/{Tasks/IWG → WorldSimulation}/Procedures/InitalLoad.d.ts +1 -1
  256. package/{Tasks/IWG → WorldSimulation}/Procedures/InitalLoad.js +11 -11
  257. package/{Tasks/IWG → WorldSimulation}/Procedures/SaveAllSectors.js +7 -5
  258. package/{Tasks/IWG/IWG.d.ts → WorldSimulation/WorldSimulation.d.ts} +6 -5
  259. package/{Tasks/IWG/IWG.js → WorldSimulation/WorldSimulation.js} +29 -23
  260. package/{Tasks/IWG → WorldSimulation}/index.d.ts +1 -1
  261. package/{Tasks/IWG → WorldSimulation}/index.js +1 -1
  262. package/package.json +1 -1
  263. package/Mesher/Functions/CompactMesh.d.ts +0 -2
  264. package/Mesher/Functions/CompactMesh.js +0 -42
  265. package/Mesher/Geomtry/GeometryNormals.d.ts +0 -10
  266. package/Mesher/Geomtry/GeometryNormals.js +0 -52
  267. package/Mesher/Geomtry/MeshData.types.d.ts +0 -13
  268. package/Mesher/Geomtry/MeshData.types.js +0 -6
  269. package/Mesher/Geomtry/Tools/MesherDataTools.d.ts +0 -7
  270. package/Mesher/Geomtry/Tools/MesherDataTools.js +0 -12
  271. package/Mesher/Geomtry/Tools/index.d.ts +0 -1
  272. package/Mesher/Geomtry/Tools/index.js +0 -1
  273. package/Mesher/RenderedMaterials.d.ts +0 -6
  274. package/Mesher/Tools/VoxelMeshBVHBuilder.js +0 -216
  275. package/Models/Rules/VoxelModelManager.js +0 -82
  276. package/Tasks/IWG/Internal/Classes/IWGTaskBase.d.ts +0 -15
  277. package/Tasks/IWG/Internal/Functions/runBuildUpdate.d.ts +0 -2
  278. package/Tasks/IWG/Internal/IWGDimensions.d.ts +0 -6
  279. package/Tasks/IWG/Internal/IWGTasks.d.ts +0 -34
  280. package/Tasks/IWG/Internal/IWGTools.d.ts +0 -8
  281. package/Textures/TextureAnimations.d.ts +0 -4
  282. package/Textures/TextureAnimations.js +0 -35
  283. package/Textures/TextureArray.d.ts +0 -47
  284. package/Textures/TextureArray.js +0 -202
  285. package/Textures/TextureBuilder.d.ts +0 -13
  286. package/Textures/TextureBuilder.js +0 -120
  287. package/Textures/TextureRegister.d.ts +0 -9
  288. package/Textures/TextureRegister.js +0 -28
  289. package/Tools/DataCursor.interface.d.ts +0 -5
  290. package/Tools/DataCursor.interface.js +0 -2
  291. package/Util/Binary/BitArray.js +0 -16
  292. package/World/Structs/WorldDataStructProperties.d.ts +0 -8
  293. package/World/Structs/WorldDataStructProperties.js +0 -9
  294. /package/Mesher/Geomtry/{Buffers.d.ts → VoxelMeshBuffers.d.ts} +0 -0
  295. /package/Mesher/{Tools → Geomtry}/VoxelMeshVertexStructCursor.d.ts +0 -0
  296. /package/Mesher/{Tools → Geomtry}/VoxelMeshVertexStructCursor.js +0 -0
  297. /package/Mesher/{VoxelShaderData.d.ts → Geomtry/VoxelShaderData.d.ts} +0 -0
  298. /package/Mesher/{VoxelShaderData.js → Geomtry/VoxelShaderData.js} +0 -0
  299. /package/{World/Storage/WorldStorage.interface.js → Voxels/Cursor/DataCursor.interface.js} +0 -0
  300. /package/World/{Storage → Types}/WorldStorage.interface.d.ts +0 -0
  301. /package/{Tasks/IWG → WorldSimulation}/Internal/Classes/DimensionSegment.js +0 -0
  302. /package/{Tasks/IWG → WorldSimulation}/Internal/Classes/SectorState.d.ts +0 -0
  303. /package/{Tasks/IWG → WorldSimulation}/Internal/Classes/SectorState.js +0 -0
  304. /package/{Tasks/IWG → WorldSimulation}/Internal/Classes/SectorVisistedMap.d.ts +0 -0
  305. /package/{Tasks/IWG → WorldSimulation}/Internal/Functions/cullSectors.d.ts +0 -0
  306. /package/{Tasks/IWG → WorldSimulation}/Internal/Functions/runWorldUpdate.d.ts +0 -0
  307. /package/{Tasks/IWG → WorldSimulation}/Procedures/SaveAllSectors.d.ts +0 -0
@@ -2,7 +2,7 @@ import { VoxelModelConstructorData, VoxelModelData } from "../../VoxelModel.type
2
2
  import { BuildStateData } from "../../../Voxels/Functions/BuildStateData";
3
3
  export declare class VoxelRulesModoel {
4
4
  data: VoxelModelData;
5
- shapeStates: Map<string, string[]>;
5
+ states: Map<string, string[]>;
6
6
  conditionalNodes: Map<string, string[]>;
7
7
  stateData: ReturnType<typeof BuildStateData>;
8
8
  voxels: Map<string, VoxelModelConstructorData>;
@@ -1,6 +1,6 @@
1
1
  export class VoxelRulesModoel {
2
2
  data;
3
- shapeStates = new Map();
3
+ states = new Map();
4
4
  conditionalNodes = new Map();
5
5
  stateData;
6
6
  voxels = new Map();
@@ -9,10 +9,10 @@ export class VoxelRulesModoel {
9
9
  this.data = data;
10
10
  }
11
11
  registerShapeState(id, geomtryId) {
12
- let stateArray = this.shapeStates.get(id);
12
+ let stateArray = this.states.get(id);
13
13
  if (!stateArray) {
14
14
  stateArray = [];
15
- this.shapeStates.set(id, stateArray);
15
+ this.states.set(id, stateArray);
16
16
  }
17
17
  if (!stateArray.find((_) => _ == geomtryId))
18
18
  stateArray.push(geomtryId);
@@ -1,7 +1,7 @@
1
1
  import { VoxelFaceTransparentResultsIndex } from "../../Indexing/VoxelFaceTransparentResultsIndex";
2
2
  import { VoxelRulesModoel } from "../Classes/VoxelRulesModel";
3
3
  export declare function BuildFinalInputs(model: VoxelRulesModoel): {
4
- shapeStateVoxelInputs: Record<string, any[]>;
4
+ stateVoxelInputs: Record<string, any[]>;
5
5
  transparentVoxelFaceIndexes: Record<string, VoxelFaceTransparentResultsIndex>;
6
6
  conditionalShapeStateVoxelInputs: Record<string, any[]>;
7
7
  };
@@ -1,12 +1,12 @@
1
1
  import { VoxelFaceTransparentResultsIndex } from "../../Indexing/VoxelFaceTransparentResultsIndex";
2
- import { VoxelModelManager } from "../VoxelModelManager";
2
+ import { VoxelModelRuleBuilderRegister } from "../VoxelModelRuleBuilderRegister";
3
3
  const isArgString = (data) => {
4
4
  if (typeof data !== "string")
5
5
  return;
6
6
  return data[0] == "@";
7
7
  };
8
8
  export function BuildFinalInputs(model) {
9
- const shapeStateVoxelInputs = {};
9
+ const stateVoxelInputs = {};
10
10
  const transparentVoxelFaceIndexes = {};
11
11
  const conditionalShapeStateVoxelInputs = {};
12
12
  for (const [voxelId, voxel] of model.voxels) {
@@ -20,56 +20,58 @@ export function BuildFinalInputs(model) {
20
20
  const modVoxelInput = voxel.inputs[modVoxelInputKey];
21
21
  const modIndex = voxelModData.modRecord[modVoxelInputKey];
22
22
  const baseStates = [];
23
- for (const state in model.data.shapeStatesNodes) {
23
+ for (const state in model.data.stateNodes) {
24
24
  const geoNodes = [];
25
- const shapeStateNodes = model.data.shapeStatesNodes[state];
26
- for (const node of shapeStateNodes) {
27
- const geo = VoxelModelManager.getGeomtryFromLink(node);
25
+ const stateNodes = model.data.stateNodes[state];
26
+ for (const node of stateNodes) {
27
+ const geo = VoxelModelRuleBuilderRegister.getGeomtryFromLink(node);
28
28
  if (!geo)
29
29
  throw new Error(`Geometry does not exist`);
30
30
  geo.inputs.resetDefaults();
31
31
  for (const geoArg in node.inputs) {
32
32
  const constructorArg = node.inputs[geoArg];
33
33
  if (isArgString(constructorArg)) {
34
- geo.inputs[geoArg] = modVoxelInput[constructorArg];
34
+ geo.inputs[geoArg] =
35
+ modVoxelInput[constructorArg.replace("@", "")];
35
36
  continue;
36
37
  }
37
38
  geo.inputs[geoArg] = constructorArg;
38
39
  }
39
40
  geoNodes[model.stateData.geometryLinkPalette[node.id]] =
40
41
  geo.inputs.cloneArgs();
41
- const byteIndex = model.stateData.relativeGeometryByteIndexMap[model.stateData.shapeStateRelativeGeometryMap[model.stateData.shapeStateRecord[state]][VoxelModelManager.geometryPalette.getNumberId(VoxelModelManager.getGeometryLinkId(node))]];
42
+ const byteIndex = model.stateData.relativeGeometryByteIndexMap[model.stateData.stateRelativeGeometryMap[model.stateData.stateRecord[state]][VoxelModelRuleBuilderRegister.geometryPalette.getNumberId(VoxelModelRuleBuilderRegister.getGeometryLinkId(node))]];
42
43
  if (geo.data.ogData.doNotBuildRules !== true) {
43
44
  for (let i = 0; i < geo.inputs.faceTransparentIndex.length; i++) {
44
45
  transparentIndex.setValue(modIndex, byteIndex, i, geo.inputs.faceTransparentIndex[i] ? 1 : 0);
45
46
  }
46
47
  }
47
48
  }
48
- baseStates[model.stateData.shapeStateRecord[state]] = geoNodes;
49
+ baseStates[model.stateData.stateRecord[state]] = geoNodes;
49
50
  }
50
- shapeStateVoxelInputs[voxelId] ??= [];
51
- shapeStateVoxelInputs[voxelId][voxelModData.modRecord[modVoxelInputKey]] =
51
+ stateVoxelInputs[voxelId] ??= [];
52
+ stateVoxelInputs[voxelId][voxelModData.modRecord[modVoxelInputKey]] =
52
53
  baseStates;
53
54
  const condiotnalStates = [];
54
- for (const state in model.data.shapeStatesConditonalNodes) {
55
+ for (const state in model.data.conditonalNodes) {
55
56
  const geoNodes = [];
56
- const shapeStateNodes = model.data.shapeStatesConditonalNodes[state];
57
- for (let i = 0; i < shapeStateNodes.length; i++) {
58
- const node = shapeStateNodes[i];
59
- const geo = VoxelModelManager.getGeomtryFromLink(node);
57
+ const stateNodes = model.data.conditonalNodes[state];
58
+ for (let i = 0; i < stateNodes.length; i++) {
59
+ const node = stateNodes[i];
60
+ const geo = VoxelModelRuleBuilderRegister.getGeomtryFromLink(node);
60
61
  if (!geo)
61
62
  throw new Error(`Geometry does not exist`);
62
63
  // geo.inputs.resetDefaults();
63
64
  for (const geoArg in node.inputs) {
64
65
  const constructorArg = node.inputs[geoArg];
65
66
  if (isArgString(constructorArg)) {
66
- geo.inputs[geoArg] = modVoxelInput[constructorArg];
67
+ geo.inputs[geoArg] =
68
+ modVoxelInput[constructorArg.replace("@", "")];
67
69
  continue;
68
70
  }
69
71
  geo.inputs[geoArg] = constructorArg;
70
72
  }
71
73
  geoNodes[i] = geo.inputs.cloneArgs();
72
- const byteIndex = model.stateData.relativeGeometryByteIndexMap[model.stateData.condiotnalShapeStateRelativeGeometryMap[model.stateData.condiotnalShapeStateRecord[state]][VoxelModelManager.geometryPalette.getNumberId(VoxelModelManager.getGeometryLinkId(node))]];
74
+ const byteIndex = model.stateData.relativeGeometryByteIndexMap[model.stateData.condiotnalShapeStateRelativeGeometryMap[model.stateData.condiotnalShapeStateRecord[state]][VoxelModelRuleBuilderRegister.geometryPalette.getNumberId(VoxelModelRuleBuilderRegister.getGeometryLinkId(node))]];
73
75
  if (geo.data.ogData.doNotBuildRules !== true) {
74
76
  for (let i = 0; i < geo.inputs.faceTransparentIndex.length; i++) {
75
77
  transparentIndex.setValue(modIndex, byteIndex, i, geo.inputs.faceTransparentIndex[i] ? 1 : 0);
@@ -84,7 +86,7 @@ export function BuildFinalInputs(model) {
84
86
  }
85
87
  }
86
88
  return {
87
- shapeStateVoxelInputs,
89
+ stateVoxelInputs,
88
90
  transparentVoxelFaceIndexes,
89
91
  conditionalShapeStateVoxelInputs,
90
92
  };
@@ -63,6 +63,7 @@ const mapQuadUvs = (uvs, rotation = 0, transform) => {
63
63
  export function BuildGeomtryInputs(geomtry) {
64
64
  const inputObservers = new Map();
65
65
  const onInput = (id, subscribe) => {
66
+ id = id.replace("@", "");
66
67
  let obs = inputObservers.get(id);
67
68
  if (!obs) {
68
69
  obs = [];
@@ -109,6 +110,7 @@ export function BuildGeomtryInputs(geomtry) {
109
110
  value));
110
111
  }
111
112
  if (isArgString(faceData.transparent)) {
113
+ faceTransparentIndex[relativeFaceCount + face] = false;
112
114
  onInput(String(faceData.transparent), (value) => {
113
115
  args[argsIndex][face][BoxVoxelGometryInputs.ArgIndexes.Transparent] = value;
114
116
  faceTransparentIndex[relativeFaceCount + face] = Boolean(value);
@@ -228,15 +230,16 @@ export function BuildGeomtryInputs(geomtry) {
228
230
  },
229
231
  };
230
232
  for (const arg in geomtry.data.ogData.arguments) {
231
- const argKey = `@${arg}`;
232
- if (!inputObservers.has(argKey))
233
+ if (!inputObservers.has(arg))
233
234
  continue;
234
- const obs = inputObservers.get(argKey);
235
+ const obs = inputObservers.get(arg);
235
236
  const data = geomtry.data.ogData.arguments[arg];
236
- Object.defineProperty(finalGeoInputs, argKey, {
237
+ Object.defineProperty(finalGeoInputs, arg, {
237
238
  set(value) {
238
239
  if (data.type == "texture") {
239
- value = TextureManager.getTextureIndex(value);
240
+ const textureId = value;
241
+ value =
242
+ TextureManager.getTexture("dve_voxel")?.getTextureIndex(textureId);
240
243
  }
241
244
  for (const func of obs) {
242
245
  func(value);
@@ -1,7 +1,7 @@
1
1
  import { VoxelRelativeCubeIndex } from "../../Indexing/VoxelRelativeCubeIndex";
2
2
  import { Vector3Like } from "@amodx/math";
3
3
  import { VoxelAOResultsIndex } from "../../Indexing/VoxelAOResultsIndex";
4
- import { VoxelModelManager } from "../VoxelModelManager";
4
+ import { VoxelModelRuleBuilderRegister } from "../VoxelModelRuleBuilderRegister";
5
5
  import { VoxelFaceCullResultsIndex } from "../../Indexing/VoxelFaceCullResultsIndex";
6
6
  class OcculsionBox {
7
7
  p1;
@@ -132,7 +132,7 @@ export function BuildRules(main, geoPalette) {
132
132
  faceByteCount: main.faceCount,
133
133
  });
134
134
  for (let otherNumberId = 0; otherNumberId < geoPalette.size; otherNumberId++) {
135
- let other = VoxelModelManager.geometry.get(geoPalette._palette[otherNumberId]);
135
+ let other = VoxelModelRuleBuilderRegister.geometry.get(geoPalette._palette[otherNumberId]);
136
136
  if (other.data.ogData.doNotBuildRules !== undefined)
137
137
  continue;
138
138
  if (other.id == main.id)
@@ -2,7 +2,7 @@ import { StringPalette } from "../../Util/StringPalette";
2
2
  import { VoxelGeometryData, VoxelGeometryLinkData, VoxelModelConstructorData, VoxelModelData } from "../VoxelModel.types";
3
3
  import { VoxelRuleGeometry } from "./Classes/VoxelRulesGeometry";
4
4
  import { VoxelRulesModoel } from "./Classes/VoxelRulesModel";
5
- export declare class VoxelModelManager {
5
+ export declare class VoxelModelRuleBuilderRegister {
6
6
  static geometryPalette: StringPalette;
7
7
  static getGeometryLinkId: (node: VoxelGeometryLinkData) => string;
8
8
  static voxels: Map<string, {
@@ -0,0 +1,178 @@
1
+ import { VoxelFaceNameArray } from "../../Math";
2
+ import { StringPalette } from "../../Util/StringPalette";
3
+ import { VoxelRuleGeometry } from "./Classes/VoxelRulesGeometry";
4
+ import { VoxelRulesModoel } from "./Classes/VoxelRulesModel";
5
+ const addGeo = (model, stateId, nodes) => {
6
+ const registred = [];
7
+ for (const geoLinkNode of nodes) {
8
+ const geo = VoxelModelRuleBuilderRegister.geometry.get(geoLinkNode.geometryId);
9
+ if (!geo)
10
+ throw new Error(`Geometry ${geoLinkNode.geometryId} is not registered.`);
11
+ const newId = getGeometryLinkId(geoLinkNode);
12
+ if (VoxelModelRuleBuilderRegister.geometry.has(newId))
13
+ continue;
14
+ registred.push([stateId, newId]);
15
+ if (!VoxelModelRuleBuilderRegister.geometryPalette.isRegistered(newId))
16
+ VoxelModelRuleBuilderRegister.geometryPalette.register(newId);
17
+ const newData = structuredClone(geo.data);
18
+ for (const node of newData.nodes) {
19
+ node.tranform = {
20
+ ...(geoLinkNode.position ? { position: geoLinkNode.position } : {}),
21
+ ...(geoLinkNode.scale ? { scale: geoLinkNode.scale } : {}),
22
+ ...(geoLinkNode.rotation ? { rotation: geoLinkNode.rotation } : {}),
23
+ ...(geoLinkNode.rotationPivot
24
+ ? { rotationPivot: geoLinkNode.rotationPivot }
25
+ : {}),
26
+ ...(geoLinkNode.flip ? { flip: geoLinkNode.flip } : {}),
27
+ };
28
+ }
29
+ VoxelModelRuleBuilderRegister.geometry.set(newId, new VoxelRuleGeometry(newId, newData));
30
+ continue;
31
+ }
32
+ return registred;
33
+ };
34
+ const getGeometryLinkId = (node) => {
35
+ return `${node.geometryId}${node.position ? `-p${node.position.toString()}` : ""}${node.rotation ? `-r${node.rotation.toString()}` : ""}${node.scale ? `-s${node.scale.toString()}` : ""}`.trim();
36
+ };
37
+ export class VoxelModelRuleBuilderRegister {
38
+ static geometryPalette = new StringPalette();
39
+ static getGeometryLinkId = getGeometryLinkId;
40
+ static voxels = new Map();
41
+ static geometry = new Map();
42
+ static models = new Map();
43
+ static registerGeometry(...geometry) {
44
+ for (const geo of geometry) {
45
+ if (!this.geometryPalette.isRegistered(geo.id))
46
+ this.geometryPalette.register(geo.id);
47
+ const divisor = geo.divisor ? geo.divisor : false;
48
+ if (divisor) {
49
+ for (const node of geo.nodes) {
50
+ if (node.type == "box") {
51
+ let d = node.divisor ? node.divisor : divisor;
52
+ node.points[0][0] /= d[0];
53
+ node.points[0][1] /= d[1];
54
+ node.points[0][2] /= d[2];
55
+ node.points[1][0] /= d[0];
56
+ node.points[1][1] /= d[1];
57
+ node.points[1][2] /= d[2];
58
+ for (const faceName of VoxelFaceNameArray) {
59
+ const data = node.faces[faceName];
60
+ if (Array.isArray(data.uv)) {
61
+ data.uv[0] /= d[0];
62
+ data.uv[1] /= d[1];
63
+ data.uv[2] /= d[0];
64
+ data.uv[3] /= d[1];
65
+ }
66
+ }
67
+ }
68
+ if (node.type == "quad") {
69
+ let d = node.divisor ? node.divisor : divisor;
70
+ for (let i = 0; i < 4; i++) {
71
+ const point = node.points[i];
72
+ point[0] /= d[0];
73
+ point[1] /= d[1];
74
+ point[2] /= d[2];
75
+ }
76
+ if (Array.isArray(node.uv)) {
77
+ if (Array.isArray(node.uv[0])) {
78
+ let uvs = node.uv;
79
+ for (let i = 0; i < node.uv.length; i++) {
80
+ uvs[i][0] /= d[0];
81
+ uvs[i][1] /= d[1];
82
+ }
83
+ }
84
+ else {
85
+ let uvs = node.uv;
86
+ uvs[0] /= d[0];
87
+ uvs[1] /= d[1];
88
+ uvs[2] /= d[0];
89
+ uvs[3] /= d[1];
90
+ }
91
+ }
92
+ }
93
+ }
94
+ }
95
+ this.geometry.set(geo.id, new VoxelRuleGeometry(geo.id, {
96
+ ogData: geo,
97
+ id: geo.id,
98
+ nodes: geo.nodes.map((node) => ({
99
+ node,
100
+ tranform: {},
101
+ })),
102
+ }));
103
+ }
104
+ }
105
+ static getGeomtryFromLink(link) {
106
+ return this.geometry.get(getGeometryLinkId(link));
107
+ }
108
+ static registerModels(...models) {
109
+ for (const model of models) {
110
+ const rulesModel = new VoxelRulesModoel(model);
111
+ this.models.set(model.id, rulesModel);
112
+ const divisor = model.divisor ? model.divisor : null;
113
+ if (divisor) {
114
+ for (const stateId in model.stateNodes) {
115
+ const nodes = model.stateNodes[stateId];
116
+ for (const node of nodes) {
117
+ const d = "divisor" in node ? node.divisor : divisor;
118
+ if (node.position) {
119
+ node.position[0] /= d[0];
120
+ node.position[1] /= d[1];
121
+ node.position[2] /= d[2];
122
+ }
123
+ if (node.rotationPivot) {
124
+ node.rotationPivot[0] /= d[0];
125
+ node.rotationPivot[1] /= d[1];
126
+ node.rotationPivot[2] /= d[2];
127
+ }
128
+ }
129
+ }
130
+ for (const stateId in model.conditonalNodes) {
131
+ const nodes = model.conditonalNodes[stateId];
132
+ for (const node of nodes) {
133
+ const d = "divisor" in node ? node.divisor : divisor;
134
+ if (node.position) {
135
+ node.position[0] /= d[0];
136
+ node.position[1] /= d[1];
137
+ node.position[2] /= d[2];
138
+ }
139
+ if (node.rotationPivot) {
140
+ node.rotationPivot[0] /= d[0];
141
+ node.rotationPivot[1] /= d[1];
142
+ node.rotationPivot[2] /= d[2];
143
+ }
144
+ }
145
+ }
146
+ if (model.effects) {
147
+ for (const effect of model.effects) {
148
+ if (effect.type == "fx-points") {
149
+ for (const state in effect.values) {
150
+ for (const point of effect.values[state]) {
151
+ point[0] /= divisor[0];
152
+ point[1] /= divisor[1];
153
+ point[2] /= divisor[2];
154
+ }
155
+ }
156
+ }
157
+ }
158
+ }
159
+ }
160
+ for (const stateId in model.stateNodes) {
161
+ const nodes = model.stateNodes[stateId];
162
+ addGeo(model, stateId, nodes).forEach((_) => rulesModel.registerShapeState(..._));
163
+ }
164
+ for (const stateId in model.conditonalNodes) {
165
+ const nodes = model.conditonalNodes[stateId];
166
+ addGeo(model, stateId, nodes).forEach((_) => rulesModel.registerCondiotnalNode(..._));
167
+ }
168
+ }
169
+ }
170
+ static registerVoxel(id, data) {
171
+ let voxelModels = this.voxels.get(data.id);
172
+ if (!voxelModels) {
173
+ voxelModels = [];
174
+ this.voxels.set(data.id, voxelModels);
175
+ }
176
+ voxelModels.push({ id, data });
177
+ }
178
+ }
@@ -22,6 +22,8 @@ export interface VoxelCustomGeomtryNode {
22
22
  }
23
23
  export interface VoxelBoxGeometryNode {
24
24
  type: "box";
25
+ /**Divisor used for transform of this specific node.*/
26
+ divisor?: Vec3Array;
25
27
  noShade?: boolean;
26
28
  points: [start: Vec3Array, end: Vec3Array];
27
29
  rotation?: Vec3Array;
@@ -37,6 +39,8 @@ export interface VoxelBoxFaceData {
37
39
  }
38
40
  export interface VoxelQuadGeometryNode {
39
41
  type: "quad";
42
+ /**Divisor used for transform of this specific node.*/
43
+ divisor?: Vec3Array;
40
44
  doubleSided?: boolean | string;
41
45
  points: [p1: Vec3Array, p2: Vec3Array, p3: Vec3Array, p4: Vec3Array];
42
46
  transparent?: boolean | string;
@@ -46,6 +50,8 @@ export interface VoxelQuadGeometryNode {
46
50
  }
47
51
  export interface VoxelTriangleGeometryNode {
48
52
  type: "triangle";
53
+ /**Divisor used for transform of this specific node.*/
54
+ divisor?: Vec3Array;
49
55
  orientation?: 0 | 1;
50
56
  doubleSided?: boolean;
51
57
  points: [p1: Vec3Array, p2: Vec3Array, p3: Vec3Array];
@@ -91,6 +97,7 @@ export type VoxelGeometryNodes = VoxelCustomGeomtryNode | VoxelBoxGeometryNode |
91
97
  export interface VoxelGeometryData {
92
98
  id: string;
93
99
  nodes: VoxelGeometryNodes[];
100
+ divisor?: Vec3Array;
94
101
  /**
95
102
  * If this is set the voxel geometry will not be included in the
96
103
  * geometry rules and will be fall back to custom inputs.
@@ -99,7 +106,11 @@ export interface VoxelGeometryData {
99
106
  doNotBuildRules?: true;
100
107
  arguments: Record<string, VoxelGeometryTextureArgument | VoxelGeometryBoxUVArgument | VoxelGeometryVector3Argument | VoxelGeometryIntArgument | VoxelGeometryBooleanArgument | VoxelGeometryFloatArgument>;
101
108
  }
102
- export interface VoxelGeometryBaseLinkData {
109
+ export interface VoxelGeometryLinkData {
110
+ id: string;
111
+ geometryId: string;
112
+ /**Divisor used for transform of this specific node.*/
113
+ divisor?: Vec3Array;
103
114
  inputs: Record<string, any>;
104
115
  scale?: Vec3Array;
105
116
  position?: Vec3Array;
@@ -107,16 +118,14 @@ export interface VoxelGeometryBaseLinkData {
107
118
  rotationPivot?: Vec3Array;
108
119
  flip?: [flipX: 0 | 1, flipY: 0 | 1, flipZ: 0 | 1];
109
120
  }
110
- export interface VoxelGeometryLinkData extends VoxelGeometryBaseLinkData {
111
- id: string;
112
- geometryId: string;
113
- }
114
121
  export interface VoxelModelData {
115
122
  id: string;
123
+ /**Divisor used all transforms of geometry nodes. */
124
+ divisor?: Vec3Array;
116
125
  arguments: Record<string, VoxelGeometryTextureArgument | VoxelGeometryBoxUVArgument | VoxelGeometryVector3Argument | VoxelGeometryIntArgument | VoxelGeometryBooleanArgument | VoxelGeometryFloatArgument>;
117
- shapeStateSchema: (VoxelStateStringSchemaData | VoxelStateNumberSchemaData)[];
126
+ stateSchema: (VoxelStateStringSchemaData | VoxelStateNumberSchemaData)[];
118
127
  effects?: VoxelEffectData[];
119
128
  relationsSchema: VoxelModelRelationsSchemaData[];
120
- shapeStatesNodes: Record<string, VoxelGeometryLinkData[]>;
121
- shapeStatesConditonalNodes: Record<string, VoxelGeometryLinkData[]>;
129
+ stateNodes: Record<string, VoxelGeometryLinkData[]>;
130
+ conditonalNodes: Record<string, VoxelGeometryLinkData[]>;
122
131
  }
@@ -1,7 +1,6 @@
1
- import { Vec3Array } from "@amodx/math";
2
- import { CompactMeshData } from "../../Mesher/Types/Mesher.types";
3
1
  import { SectionMesh } from "./SectionMesh";
2
+ import { CompactedSectionVoxelMesh } from "../../Mesher/Geomtry/CompactedSectionVoxelMesh";
4
3
  export declare abstract class DVESectionMeshes {
5
- abstract updateVertexData(section: SectionMesh, position: Vec3Array, data: CompactMeshData): SectionMesh;
4
+ abstract updateVertexData(section: SectionMesh, data: CompactedSectionVoxelMesh): SectionMesh;
6
5
  abstract returnMesh(mesh: any): void;
7
6
  }
@@ -4,8 +4,7 @@ export declare class SectorMesh {
4
4
  location: LocationData;
5
5
  sections: SectionMesh[];
6
6
  constructor(location: LocationData);
7
- getIndex(y: number): number;
8
- getSection(y: number): SectionMesh;
9
- addSection(y: number): SectionMesh;
10
- removeSection(y: number): false | SectionMesh;
7
+ getSection(x: number, y: number, z: number): SectionMesh;
8
+ addSection(x: number, y: number, z: number): SectionMesh;
9
+ removeSection(x: number, y: number, z: number): false | SectionMesh;
11
10
  }
@@ -6,24 +6,19 @@ export class SectorMesh {
6
6
  constructor(location) {
7
7
  this.location = location;
8
8
  }
9
- getIndex(y) {
10
- const ry = y - this.location[2];
11
- const index = ry / WorldSpaces.section.bounds.y;
12
- return index;
9
+ getSection(x, y, z) {
10
+ return this.sections[WorldSpaces.section.getIndex(x, y, z)];
13
11
  }
14
- getSection(y) {
15
- return this.sections[this.getIndex(y)];
16
- }
17
- addSection(y) {
18
- const index = this.getIndex(y);
12
+ addSection(x, y, z) {
13
+ const index = WorldSpaces.section.getIndex(x, y, z);
19
14
  if (this.sections[index])
20
15
  return this.sections[index];
21
16
  const section = new SectionMesh(this, index);
22
17
  this.sections[index] = section;
23
18
  return section;
24
19
  }
25
- removeSection(y) {
26
- const index = this.getIndex(y);
20
+ removeSection(x, y, z) {
21
+ const index = WorldSpaces.section.getIndex(x, y, z);
27
22
  if (!this.sections[index])
28
23
  return false;
29
24
  const section = this.sections[index];
@@ -7,17 +7,8 @@ export default function RendererTasks(threads) {
7
7
  const tasks = new TaskTool(threads);
8
8
  Threads.registerTask("set-section", (data, origin) => {
9
9
  MeshManager.updateSection(data);
10
- const tranfers = [];
11
- for (const comp of data[1]) {
12
- if (comp[0] !== 0)
13
- continue;
14
- for (const mesh of comp[1]) {
15
- tranfers.push(mesh[1]);
16
- tranfers.push(mesh[2]);
17
- }
18
- }
19
10
  if (!EngineSettings.settings.rendererSettings.cpuBound) {
20
- origin.sendMessage(data, tranfers);
11
+ origin.sendMessage([], [data]);
21
12
  }
22
13
  });
23
14
  Threads.registerTask("remove-sector", (data) => {
@@ -1,4 +1,4 @@
1
- import { SetSectionMeshTask } from "../Renderer/Renderer.types";
1
+ import type { SetSectionMeshTask } from "../Mesher/Types/Mesher.types";
2
2
  import { LocationData } from "../Math/index.js";
3
3
  import { DVESectionMeshes } from "./Classes/DVESectionMeshes";
4
4
  export declare class MeshManager {
@@ -1,45 +1,46 @@
1
1
  import { MeshRegister } from "./MeshRegister.js";
2
- import { VoxelEffectRegister } from "../Voxels/Effects/VoxelEffectRegister.js";
2
+ import { CompactedSectionVoxelMesh, } from "../Mesher/Geomtry/CompactedSectionVoxelMesh";
3
3
  const added = new Set();
4
+ const compacted = new CompactedSectionVoxelMesh();
5
+ const location = [0, 0, 0, 0];
4
6
  export class MeshManager {
5
7
  static sectorMeshes;
6
8
  static runningUpdate = false;
7
9
  static updateSection(data) {
8
- const location = data[0];
9
- const sections = data[1];
10
- const effects = data[2];
10
+ compacted.setData(data);
11
+ compacted.getLocation(location);
11
12
  let sector = MeshRegister.sectors.get(location);
12
13
  if (!sector) {
13
14
  sector = MeshRegister.sectors.add(location);
14
15
  }
15
- let section = sector.getSection(location[2]);
16
+ let section = sector.getSection(location[1], location[2], location[3]);
16
17
  if (!section) {
17
- section = sector.addSection(location[2]);
18
+ section = sector.addSection(location[1], location[2], location[3]);
18
19
  }
20
+ /*
19
21
  added.clear();
20
22
  for (const [id, points] of effects) {
21
- added.add(id);
22
- if (!section.effects.has(id)) {
23
- const EffectClass = VoxelEffectRegister.get(id);
24
- const newEffect = new EffectClass(section);
25
- newEffect.init();
26
- newEffect.setPoints(points);
27
- section.effects.set(id, newEffect);
28
- }
29
- else {
30
- const effect = section.effects.get(id);
31
- effect.setPoints(points);
32
- }
23
+ added.add(id);
24
+ if (!section.effects.has(id)) {
25
+ const EffectClass = VoxelEffectRegister.get(id);
26
+ const newEffect = new EffectClass(section);
27
+ newEffect.init();
28
+ newEffect.setPoints(points);
29
+ section.effects.set(id, newEffect);
30
+ } else {
31
+ const effect = section.effects.get(id)!;
32
+ effect.setPoints(points);
33
+ }
33
34
  }
34
35
  for (const [key, effect] of section.effects) {
35
- if (!added.has(key)) {
36
- effect.dispose();
37
- section.effects.delete(key);
38
- }
39
- }
40
- if (sections[0] == 0) {
41
- this.sectorMeshes.updateVertexData(section, [location[1], location[2], location[3]], sections);
36
+ if (!added.has(key)) {
37
+ effect.dispose();
38
+ section.effects.delete(key);
39
+ }
42
40
  }
41
+
42
+ */
43
+ this.sectorMeshes.updateVertexData(section, compacted);
43
44
  }
44
45
  static removeSector(data) {
45
46
  const sector = MeshRegister.sectors.remove(data);
@@ -1,16 +1,16 @@
1
1
  import { type LocationData } from "../Math/index.js";
2
2
  import { SectorMesh } from "./Classes/SectorMesh.js";
3
- export type MeshRegisterDimensions = Map<string, Map<string, SectorMesh>>;
3
+ export type MeshRegisterDimensions = Map<number, Map<string, SectorMesh>>;
4
4
  declare class Sectors {
5
5
  static add(location: LocationData): SectorMesh;
6
6
  static remove(location: LocationData): false | SectorMesh;
7
7
  static get(location: LocationData): false | SectorMesh | undefined;
8
8
  }
9
9
  declare class Dimensions {
10
- static add(id: string): Map<any, any>;
11
- static get(id: string): Map<string, SectorMesh> | undefined;
12
- static getAllMeshes(id: string): Generator<[location: LocationData, substance: string, mesh: any]>;
13
- static remove(id: string): boolean;
10
+ static add(id: number): Map<any, any>;
11
+ static get(id: number): Map<string, SectorMesh> | undefined;
12
+ static getAllMeshes(id: number): Generator<[location: LocationData, substance: string, mesh: any]>;
13
+ static remove(id: number): boolean;
14
14
  }
15
15
  export declare class MeshRegister {
16
16
  static _dimensions: MeshRegisterDimensions;