@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,157 +0,0 @@
1
- import { BinaryNumberTypes, } from "@amodx/binary/";
2
- import { BinaryStruct } from "@amodx/binary/";
3
- export class StructBuilder {
4
- id;
5
- dataSegment;
6
- _built = false;
7
- _nodeMap = new Map();
8
- _stringMaps = new Map();
9
- _objectMaps = new Map();
10
- _defaults = new Map();
11
- _initData;
12
- constructor(id, dataSegment) {
13
- this.id = id;
14
- this.dataSegment = dataSegment;
15
- }
16
- addNode(node) {
17
- if (Array.isArray(node)) {
18
- for (const n of node) {
19
- this._nodeMap.set(n.id, n);
20
- }
21
- return;
22
- }
23
- this._nodeMap.set(node.id, node);
24
- }
25
- getNode(id) {
26
- return this._nodeMap.get(id);
27
- }
28
- setDefaults(tagManager) {
29
- for (const [key, node] of this._nodeMap) {
30
- const defaultValue = this._defaults.get(key);
31
- if (!defaultValue)
32
- continue;
33
- tagManager.setProperty(key, Number(defaultValue));
34
- }
35
- }
36
- hasNode(id) {
37
- return this._nodeMap.has(id);
38
- }
39
- setNode(id, value, tagManager) {
40
- const node = this.getNode(id);
41
- if (!node)
42
- return;
43
- if (node.type == "number") {
44
- tagManager.setProperty(node.id, Number(value));
45
- }
46
- if (node.type == "boolean") {
47
- tagManager.setProperty(node.id, Number(value));
48
- }
49
- if (node.type == "number-array") {
50
- if (!Array.isArray(value))
51
- return false;
52
- let i = value.length;
53
- while (i--) {
54
- tagManager.setArrayPropertyValue(node.id, i, value[i]);
55
- }
56
- }
57
- if (node.type == "string-map") {
58
- const data = this._stringMaps.get(node.id);
59
- if (!data)
60
- return false;
61
- const v = String(value).trim();
62
- if (data.found[v] === undefined) {
63
- data.map.push(v);
64
- data.found[v] = data.count;
65
- data.count++;
66
- }
67
- tagManager.setProperty(node.id, data.found[v]);
68
- }
69
- if (node.type == "object-map") {
70
- const data = this._objectMaps.get(node.id);
71
- if (!data)
72
- return false;
73
- const v = JSON.stringify(value);
74
- if (data.found[v] === undefined) {
75
- data.map[data.count] = value;
76
- data.found[v] = data.count;
77
- data.count++;
78
- }
79
- tagManager.setProperty(node.id, data.found[v]);
80
- }
81
- }
82
- build(totalTagIndexes = 0) {
83
- const tags = new BinaryStruct(this.id);
84
- for (const [key, node] of this._nodeMap) {
85
- if (node.type == "number") {
86
- tags.registerProperty({
87
- id: node.id,
88
- type: "typed-number",
89
- numberType: node.numberType,
90
- });
91
- this._defaults.set(node.id, node.default);
92
- continue;
93
- }
94
- if (node.type == "number-array") {
95
- tags.registerProperty({
96
- id: node.id,
97
- type: "typed-number-array",
98
- numberType: node.numberType,
99
- length: node.length,
100
- });
101
- continue;
102
- }
103
- if (node.type == "boolean") {
104
- tags.registerProperty({
105
- id: node.id,
106
- type: "boolean",
107
- });
108
- this._defaults.set(node.id, node.default ? 1 : 0);
109
- }
110
- if (node.type == "string-map") {
111
- tags.registerProperty({
112
- id: node.id,
113
- type: "typed-number",
114
- numberType: BinaryNumberTypes.Uint16,
115
- });
116
- this._stringMaps.set(node.id, {
117
- count: 0,
118
- found: {},
119
- map: [],
120
- allowedComms: node.allowedComms,
121
- });
122
- }
123
- if (node.type == "object-map") {
124
- tags.registerProperty({
125
- id: node.id,
126
- type: "typed-number",
127
- numberType: BinaryNumberTypes.Uint16,
128
- });
129
- this._objectMaps.set(node.id, {
130
- count: 0,
131
- found: {},
132
- map: [],
133
- allowedComms: node.allowedComms,
134
- });
135
- }
136
- }
137
- tags.init({
138
- indexBufferMode: "shared",
139
- numberOfIndexes: totalTagIndexes,
140
- });
141
- return tags;
142
- }
143
- getMaps() {
144
- const objectMaps = {};
145
- const stringMaps = {};
146
- for (const [key, value] of this._stringMaps) {
147
- stringMaps[key] = value.map;
148
- }
149
- for (const [key, value] of this._objectMaps) {
150
- objectMaps[key] = value.map;
151
- }
152
- return {
153
- objectMaps,
154
- stringMaps,
155
- };
156
- }
157
- }
@@ -1,30 +0,0 @@
1
- import type { BinaryNumberTypes } from "@amodx/binary/";
2
- type TagBuilderNodeBase = {
3
- id: string;
4
- };
5
- type TagBuilderNumberNode = {
6
- type: "number";
7
- numberType: BinaryNumberTypes;
8
- default: number;
9
- } & TagBuilderNodeBase;
10
- type TagBuilderNumberArrayNode = {
11
- type: "number-array";
12
- numberType: BinaryNumberTypes;
13
- length: number;
14
- } & TagBuilderNodeBase;
15
- type TagBuilderStringMapNode = {
16
- type: "string-map";
17
- allowedComms: string[];
18
- default?: string;
19
- } & TagBuilderNodeBase;
20
- type TagBuilderObjectMapNode = {
21
- type: "object-map";
22
- allowedComms: string[];
23
- default?: any;
24
- } & TagBuilderNodeBase;
25
- type TagBuilderBooleanNode = {
26
- type: "boolean";
27
- default: boolean;
28
- } & TagBuilderNodeBase;
29
- export type TagBuilderNodes = TagBuilderNumberNode | TagBuilderNumberArrayNode | TagBuilderStringMapNode | TagBuilderBooleanNode | TagBuilderObjectMapNode;
30
- export {};
@@ -1,2 +0,0 @@
1
- import { MesherDataTool } from "../Geomtry/Tools/MesherDataTools";
2
- export declare function CompactMesh(materialId: string, tool: MesherDataTool): void;
@@ -1,42 +0,0 @@
1
- export function CompactMesh(materialId, tool) {
2
- /* let webGPU = EngineSettings.settings.rendererSettings.mode == "webgpu";
3
-
4
- const mesh = tool.mesh!;
5
- const byteRanges: [
6
- byteStart: number,
7
- length: number,
8
- type: BinaryNumberTypes,
9
- ][] = [];
10
- const dataMap: CompactSubMesh = [materialId, []];
11
- let totalSize = 0;
12
- for (let [key, [array, stride, type]] of mesh.attributes) {
13
- if (key == MeshDefaultAttributes.Indices) {
14
- if (array.length > 60_000) {
15
- type = BinaryNumberTypes.Uint32;
16
- }
17
- }
18
- let current = totalSize;
19
-
20
- totalSize += MappedByteCounts[type] * array.length;
21
- byteRanges.push([current, array.length, type]);
22
- dataMap[1].push([key, array as any, stride]);
23
- }
24
-
25
- const finalBuffer = new ArrayBuffer(totalSize);
26
-
27
- for (let i = 0; i < dataMap[1].length; i++) {
28
- const startByte = byteRanges[i][0];
29
- const length = byteRanges[i][1];
30
- const type = byteRanges[i][2];
31
- const newArray = new TypedArrayClassMap[type](
32
- finalBuffer,
33
- //@ts-ignore
34
- startByte,
35
- length
36
- ) as Float32Array;
37
- newArray.set(dataMap[1][i][0] as any as number[]);
38
- dataMap[1][i][1] = newArray;
39
- }
40
-
41
- return [0, finalBuffer, [dataMap]]; */
42
- }
@@ -1,81 +0,0 @@
1
- export class VoxelVertexBuffer {
2
- vertexFloatSize;
3
- sectorVertexSize;
4
- _buffers = [];
5
- constructor(vertexFloatSize, sectorVertexSize, startingSectorSize = 4) {
6
- this.vertexFloatSize = vertexFloatSize;
7
- this.sectorVertexSize = sectorVertexSize;
8
- const sectorSize = vertexFloatSize * sectorVertexSize;
9
- for (let i = 0; i < startingSectorSize; i++) {
10
- this._buffers.push(new Float32Array(sectorSize));
11
- }
12
- const array = this;
13
- return new Proxy([], {
14
- get: (target, property) => {
15
- if (property == "length")
16
- return array.length;
17
- if (property == "_buffers")
18
- return array._buffers;
19
- const index = +property;
20
- const bufferIndex = Math.floor(index / sectorSize);
21
- if (!array._buffers[bufferIndex])
22
- this._buffers[bufferIndex] = new Float32Array(sectorSize);
23
- const arrayIndex = index - bufferIndex * sectorSize;
24
- return array._buffers[bufferIndex][arrayIndex];
25
- },
26
- set: (target, property, value) => {
27
- if (property == "length")
28
- return false;
29
- const index = +property;
30
- const bufferIndex = Math.floor(index / sectorSize);
31
- if (!array._buffers[bufferIndex])
32
- array._buffers[bufferIndex] = new Float32Array(sectorSize);
33
- const arrayIndex = index - bufferIndex * sectorSize;
34
- array._buffers[bufferIndex][arrayIndex] = value;
35
- return true;
36
- },
37
- });
38
- }
39
- get length() {
40
- return this._buffers.length * this.vertexFloatSize;
41
- }
42
- }
43
- export class VoxelIndiceBuffer {
44
- sectorSize;
45
- _buffers = [];
46
- constructor(sectorSize, startingSectorSize = 4) {
47
- this.sectorSize = sectorSize;
48
- for (let i = 0; i < startingSectorSize; i++) {
49
- this._buffers.push(new Uint32Array(sectorSize));
50
- }
51
- const array = this;
52
- return new Proxy([], {
53
- get: (target, property) => {
54
- if (property == "length")
55
- return array.length;
56
- if (property == "_buffers")
57
- return array._buffers;
58
- const index = +property;
59
- const bufferIndex = Math.floor(index / sectorSize);
60
- if (!array._buffers[bufferIndex])
61
- this._buffers[bufferIndex] = new Uint32Array(sectorSize);
62
- const arrayIndex = index - bufferIndex * sectorSize;
63
- return array._buffers[bufferIndex][arrayIndex];
64
- },
65
- set: (target, property, value) => {
66
- if (property == "length")
67
- return false;
68
- const index = +property;
69
- const bufferIndex = Math.floor(index / sectorSize);
70
- if (!array._buffers[bufferIndex])
71
- array._buffers[bufferIndex] = new Uint32Array(sectorSize);
72
- const arrayIndex = index - bufferIndex * sectorSize;
73
- array._buffers[bufferIndex][arrayIndex] = value;
74
- return true;
75
- },
76
- });
77
- }
78
- get length() {
79
- return this._buffers.length * this.sectorSize;
80
- }
81
- }
@@ -1,10 +0,0 @@
1
- import type { Vec3Array } from "@amodx/math";
2
- export declare class GeometryNormals {
3
- static subtract(v1: Vec3Array, v2: Vec3Array): Vec3Array;
4
- static cross(v1: Vec3Array, v2: Vec3Array): Vec3Array;
5
- static scale(v: Vec3Array, scaleFactor: number): Vec3Array;
6
- static add(v1: Vec3Array, v2: Vec3Array): Vec3Array;
7
- static normalize(v: Vec3Array): Vec3Array;
8
- static getTriangleNormals(p1: Vec3Array, p2: Vec3Array, p3: Vec3Array): Vec3Array;
9
- static getQuadNormal(p1: Vec3Array, p2: Vec3Array, p3: Vec3Array, p4: Vec3Array): [n1: Vec3Array, n2: Vec3Array, n3: Vec3Array, n4: Vec3Array];
10
- }
@@ -1,52 +0,0 @@
1
- export class GeometryNormals {
2
- static subtract(v1, v2) {
3
- return [v1[0] - v2[0], v1[1] - v2[1], v1[2] - v2[2]];
4
- }
5
- static cross(v1, v2) {
6
- return [
7
- v1[1] * v2[2] - v1[2] * v2[1],
8
- v1[2] * v2[0] - v1[0] * v2[2],
9
- v1[0] * v2[1] - v1[1] * v2[0],
10
- ];
11
- }
12
- static scale(v, scaleFactor) {
13
- return [v[0] * scaleFactor, v[1] * scaleFactor, v[2] * scaleFactor];
14
- }
15
- static add(v1, v2) {
16
- return [v1[0] + v2[0], v1[1] + v2[1], v1[2] + v2[2]];
17
- }
18
- static normalize(v) {
19
- const length = Math.sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
20
- return length > 0
21
- ? [v[0] / length, v[1] / length, v[2] / length]
22
- : [0, 0, 0];
23
- }
24
- static getTriangleNormals(p1, p2, p3) {
25
- const a = this.subtract(p2, p1);
26
- const b = this.subtract(p3, p1);
27
- const substract = this.cross(a, b);
28
- const normal = this.scale(substract, -1);
29
- return this.normalize(normal);
30
- }
31
- static getQuadNormal(p1, p2, p3, p4) {
32
- const vectorA1 = [p2[0] - p1[0], p2[1] - p1[1], p2[2] - p1[2]];
33
- const vectorA2 = [p3[0] - p1[0], p3[1] - p1[1], p3[2] - p1[2]];
34
- const normalA = this.normalize(this.cross(vectorA1, vectorA2));
35
- const vectorB1 = [p3[0] - p1[0], p3[1] - p1[1], p3[2] - p1[2]];
36
- const vectorB2 = [p4[0] - p1[0], p4[1] - p1[1], p4[2] - p1[2]];
37
- const normalB = this.normalize(this.cross(vectorB1, vectorB2));
38
- const n1 = this.normalize([
39
- (normalA[0] + normalB[0]) / 2,
40
- (normalA[1] + normalB[1]) / 2,
41
- (normalA[2] + normalB[2]) / 2,
42
- ]);
43
- const n2 = normalA;
44
- const n3 = this.normalize([
45
- (normalA[0] + normalB[0]) / 2,
46
- (normalA[1] + normalB[1]) / 2,
47
- (normalA[2] + normalB[2]) / 2,
48
- ]);
49
- const n4 = normalB;
50
- return [n1, n2, n3, n4];
51
- }
52
- }
@@ -1,13 +0,0 @@
1
- import type { TypedArrays } from "@amodx/binary";
2
- export declare enum MeshDefaultAttributes {
3
- Position = "position",
4
- Normal = "normal",
5
- Indices = "indices"
6
- }
7
- export type MeshAttributes = [
8
- id: string,
9
- data: TypedArrays,
10
- stride: number,
11
- componentTypes?: number,
12
- noramlizer?: number
13
- ][];
@@ -1,6 +0,0 @@
1
- export var MeshDefaultAttributes;
2
- (function (MeshDefaultAttributes) {
3
- MeshDefaultAttributes["Position"] = "position";
4
- MeshDefaultAttributes["Normal"] = "normal";
5
- MeshDefaultAttributes["Indices"] = "indices";
6
- })(MeshDefaultAttributes || (MeshDefaultAttributes = {}));
@@ -1,7 +0,0 @@
1
- import { VoxelMesh } from "../VoxelMesh.js";
2
- export declare class MesherDataTool {
3
- segments: Map<string, number[]>;
4
- mesh: VoxelMesh | null;
5
- startNewMesh(mesh?: VoxelMesh): void;
6
- resetAll(): this;
7
- }
@@ -1,12 +0,0 @@
1
- import { VoxelMesh } from "../VoxelMesh.js";
2
- export class MesherDataTool {
3
- segments = new Map();
4
- mesh = null;
5
- startNewMesh(mesh) {
6
- this.mesh = mesh ? mesh : new VoxelMesh();
7
- }
8
- resetAll() {
9
- this.mesh?.clear();
10
- return this;
11
- }
12
- }
@@ -1 +0,0 @@
1
- export * from "./MesherDataTools.js";
@@ -1 +0,0 @@
1
- export * from "./MesherDataTools.js";
@@ -1,6 +0,0 @@
1
- import { VoxelMesherDataTool } from "./Tools/VoxelMesherDataTool";
2
- export declare class RenderedMaterials {
3
- static meshersMap: Map<string, VoxelMesherDataTool>;
4
- static meshers: VoxelMesherDataTool[];
5
- static register(materials: string[]): void;
6
- }
@@ -1,82 +0,0 @@
1
- import { StringPalette } from "../../Util/StringPalette";
2
- import { VoxelRuleGeometry } from "./Classes/VoxelRulesGeometry";
3
- import { VoxelRulesModoel } from "./Classes/VoxelRulesModel";
4
- const addGeo = (modelId, stateId, nodes) => {
5
- const registred = [];
6
- for (const geoLinkNode of nodes) {
7
- const geo = VoxelModelManager.geometry.get(geoLinkNode.geometryId);
8
- if (!geo)
9
- throw new Error(`Geometry ${geoLinkNode.geometryId} is not registered.`);
10
- const newId = getGeometryLinkId(geoLinkNode);
11
- if (VoxelModelManager.geometry.has(newId))
12
- continue;
13
- registred.push([stateId, newId]);
14
- if (!VoxelModelManager.geometryPalette.isRegistered(newId))
15
- VoxelModelManager.geometryPalette.register(newId);
16
- const newData = structuredClone(geo.data);
17
- newData.nodes = newData.nodes.map((_) => ({
18
- ..._,
19
- 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
- VoxelModelManager.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 VoxelModelManager {
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
- this.geometry.set(geo.id, new VoxelRuleGeometry(geo.id, {
48
- ogData: geo,
49
- id: geo.id,
50
- nodes: geo.nodes.map((node) => ({
51
- node,
52
- tranform: {},
53
- })),
54
- }));
55
- }
56
- }
57
- static getGeomtryFromLink(link) {
58
- return this.geometry.get(getGeometryLinkId(link));
59
- }
60
- static registerModels(...models) {
61
- for (const model of models) {
62
- const rulesModel = new VoxelRulesModoel(model);
63
- this.models.set(model.id, rulesModel);
64
- for (const stateId in model.shapeStatesNodes) {
65
- const nodes = model.shapeStatesNodes[stateId];
66
- addGeo(model.id, stateId, nodes).forEach((_) => rulesModel.registerShapeState(..._));
67
- }
68
- for (const stateId in model.shapeStatesConditonalNodes) {
69
- const nodes = model.shapeStatesConditonalNodes[stateId];
70
- addGeo(model.id, stateId, nodes).forEach((_) => rulesModel.registerCondiotnalNode(..._));
71
- }
72
- }
73
- }
74
- static registerVoxel(id, data) {
75
- let voxelModels = this.voxels.get(data.id);
76
- if (!voxelModels) {
77
- voxelModels = [];
78
- this.voxels.set(data.id, voxelModels);
79
- }
80
- voxelModels.push({ id, data });
81
- }
82
- }
@@ -1,4 +0,0 @@
1
- import type { TextureArray } from "./TextureArray";
2
- export declare const TextureAnimationCreator: {
3
- createAnimations(texture: TextureArray): void;
4
- };
@@ -1,35 +0,0 @@
1
- export const TextureAnimationCreator = {
2
- createAnimations(texture) {
3
- if (!texture.paths.size)
4
- return;
5
- const animaitonUniform = [];
6
- let i = 0;
7
- for (const anim of texture.animationsMap) {
8
- animaitonUniform[anim[0]] = anim[0];
9
- let keyCounts = [];
10
- const animTime = texture.animationTimes[i];
11
- if (animTime.length == 1) {
12
- for (let k = 0; k < anim.length; k++) {
13
- keyCounts.push(animTime[0]);
14
- }
15
- }
16
- else {
17
- keyCounts = texture.animationTimes[i];
18
- }
19
- texture.animations.push({
20
- uniformIndex: anim[0],
21
- keys: anim,
22
- currentFrame: 0,
23
- currentCount: 0,
24
- keyCounts: keyCounts,
25
- });
26
- i++;
27
- }
28
- for (let i = 0; i < texture.totalTextures; i++) {
29
- if (!animaitonUniform[i]) {
30
- animaitonUniform[i] = 0;
31
- }
32
- }
33
- texture.animationUniform = new Float32Array(animaitonUniform);
34
- },
35
- };
@@ -1,47 +0,0 @@
1
- import type { TextureData } from "./Texture.types";
2
- export declare class TextureArray {
3
- id: string;
4
- extension: string;
5
- totalTextures: number;
6
- textureMap: Map<string, TextureData>;
7
- textures: TextureData[];
8
- textureIndex: Record<string, number>;
9
- animationsMap: number[][];
10
- animationTimes: number[][];
11
- animations: {
12
- uniformIndex: number;
13
- overlay?: boolean;
14
- keys: number[];
15
- currentFrame: number;
16
- currentCount: number;
17
- keyCounts: number[];
18
- }[];
19
- varyingID: string;
20
- animationUniforID: string;
21
- animationUniform: Float32Array;
22
- paths: Map<string, HTMLImageElement | string | false>;
23
- images: HTMLImageElement[];
24
- shaderTexture: any | null;
25
- textureID: string;
26
- attributeID: string;
27
- constructor(id: string);
28
- /**# clearData
29
- * ---
30
- * Clear all un-needed data.
31
- */
32
- clearData(): void;
33
- /**# flush
34
- * ---
35
- * Clear all data.
36
- */
37
- flush(): void;
38
- flushAll(): void;
39
- build(): Promise<void>;
40
- getTextureIndex(textureId: string, varation?: string): number;
41
- addTexture(data: TextureData): void;
42
- runAnimations(): void;
43
- getTextureIndexMap(): Record<string, number>;
44
- _processVariations(textureData: TextureData, paths: Map<string, HTMLImageElement | string | false>, map: Record<string, number>, animations: number[][], textureAnimatioTimes: number[][], extension: string, count: number): number;
45
- _getPath(textureData: TextureData, varation: string | undefined, extension: string): string;
46
- buildTextureIndex(): false | undefined;
47
- }