@divinevoxel/vlox 0.0.72 → 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 (174) hide show
  1. package/Contexts/Render/DivineVoxelEngineRender.d.ts +1 -1
  2. package/Contexts/World/DivineVoxelEngineWorld.d.ts +1 -1
  3. package/Init/StartConstructor.js +6 -4
  4. package/Init/StartWorld.d.ts +1 -1
  5. package/Mesher/Functions/CompactVoxelMesh.d.ts +2 -2
  6. package/Mesher/Functions/CompactVoxelMesh.js +1 -1
  7. package/Mesher/Functions/MeshSection.js +20 -8
  8. package/Mesher/Functions/MeshTexture.d.ts +1 -1
  9. package/Mesher/Functions/MeshTexture.js +3 -4
  10. package/Mesher/Geomtry/Primitives/QuadVertexData.d.ts +12 -10
  11. package/Mesher/Geomtry/Primitives/QuadVertexData.js +49 -56
  12. package/Mesher/Geomtry/VoxelGeometryBuilder.d.ts +2 -2
  13. package/Mesher/Geomtry/VoxelGeometryBuilder.js +2 -2
  14. package/Mesher/Geomtry/VoxelMesh.d.ts +1 -1
  15. package/Mesher/Geomtry/VoxelMesh.js +2 -2
  16. package/Mesher/Geomtry/index.d.ts +0 -1
  17. package/Mesher/Geomtry/index.js +0 -1
  18. package/Mesher/InitMesher.js +1 -1
  19. package/Mesher/InitTask.js +4 -22
  20. package/Mesher/Models/Common/Calc/FaceDataCalc.d.ts +2 -2
  21. package/Mesher/Models/Common/Calc/FaceDataCalc.js +37 -30
  22. package/Mesher/Models/Nodes/Custom/Liquid/FlowGradient.d.ts +2 -2
  23. package/Mesher/Models/Nodes/Custom/Liquid/FlowGradient.js +1 -1
  24. package/Mesher/Models/Nodes/Custom/Liquid/LiquidGeomtryNode.js +11 -17
  25. package/Mesher/Models/Nodes/GeometryNode.d.ts +2 -2
  26. package/Mesher/Models/Nodes/Ruled/BoxVoxelGeometryNode.d.ts +1 -0
  27. package/Mesher/Models/Nodes/Ruled/BoxVoxelGeometryNode.js +24 -12
  28. package/Mesher/{Tools → Models/Protocols}/OutlinedVoxelTool.d.ts +1 -1
  29. package/Mesher/{Tools → Models/Protocols}/OutlinedVoxelTool.js +1 -1
  30. package/Mesher/Models/RenderedMaterials.d.ts +6 -0
  31. package/Mesher/{RenderedMaterials.js → Models/RenderedMaterials.js} +2 -2
  32. package/Mesher/Models/VoxelConstructor.d.ts +3 -3
  33. package/Mesher/Models/VoxelGeometryBuilderCacheSpace.d.ts +1 -3
  34. package/Mesher/Models/VoxelGeometryBuilderCacheSpace.js +0 -23
  35. package/Mesher/{Tools/VoxelMesherDataTool.d.ts → Models/VoxelModelBuilder.d.ts} +4 -5
  36. package/Mesher/{Tools/VoxelMesherDataTool.js → Models/VoxelModelBuilder.js} +11 -7
  37. package/Models/Defaults/CubeVoxelGeometry.js +4 -0
  38. package/Models/Defaults/CubeVoxelModels.js +344 -344
  39. package/Models/Defaults/LiquidVoxelModel.js +2 -2
  40. package/Models/Defaults/PanelVoxelModels.js +432 -432
  41. package/Models/Defaults/StairVoxelModel.js +576 -576
  42. package/Models/Examples.js +469 -456
  43. package/Models/Rules/Functions/BuildFinalInputs.js +9 -7
  44. package/Models/Rules/Functions/BuildGeomtryInputs.js +8 -5
  45. package/Models/Rules/Functions/BuildRules.js +2 -2
  46. package/Models/Rules/{VoxelModelManager.d.ts → VoxelModelRuleBuilderRegister.d.ts} +1 -1
  47. package/Models/Rules/VoxelModelRuleBuilderRegister.js +178 -0
  48. package/Models/VoxelModel.types.d.ts +14 -5
  49. package/Renderer/Classes/SectorMesh.d.ts +3 -4
  50. package/Renderer/Classes/SectorMesh.js +6 -11
  51. package/Renderer/InitTasks.js +6 -7
  52. package/Renderer/MeshManager.js +2 -2
  53. package/Renderer/MeshRegister.js +2 -1
  54. package/Settings/EngineSettings.d.ts +1 -1
  55. package/Settings/EngineSettings.js +3 -5
  56. package/Settings/EngineSettings.types.d.ts +17 -18
  57. package/Settings/EngineSettings.types.js +16 -15
  58. package/Tasks/IWG/IWG.d.ts +2 -1
  59. package/Tasks/IWG/IWG.js +9 -3
  60. package/Tasks/IWG/Internal/Classes/BuildQueue.d.ts +11 -0
  61. package/Tasks/IWG/Internal/Classes/BuildQueue.js +49 -0
  62. package/Tasks/IWG/Internal/Classes/Generator.d.ts +6 -1
  63. package/Tasks/IWG/Internal/Classes/Generator.js +13 -1
  64. package/Tasks/IWG/Internal/Classes/IWGTaskBase.js +2 -2
  65. package/Tasks/IWG/Internal/Functions/runBuildUpdate.js +21 -2
  66. package/Tasks/IWG/Internal/IWGTasks.d.ts +0 -4
  67. package/Tasks/IWG/Internal/IWGTasks.js +0 -10
  68. package/Tasks/IWG/Internal/IWGTools.d.ts +1 -1
  69. package/Tasks/IWG/Procedures/SaveAllSectors.js +2 -0
  70. package/Tasks/Update/UpdateTask.d.ts +3 -1
  71. package/Tasks/Update/UpdateTask.js +28 -2
  72. package/Tasks/Update/VoxelUpdate.js +6 -0
  73. package/Tasks/WorldGeneration/WorldGenBrush.js +1 -1
  74. package/Templates/Cursor/TemplateCursor.d.ts +2 -2
  75. package/Templates/Cursor/TemplateCursor.js +1 -2
  76. package/Templates/VoxelTemplates.types.d.ts +1 -1
  77. package/Textures/Classes/CompiledTexture.d.ts +18 -0
  78. package/Textures/Classes/CompiledTexture.js +50 -0
  79. package/Textures/Classes/CompiledTextureAnimation.d.ts +12 -0
  80. package/Textures/Classes/CompiledTextureAnimation.js +27 -0
  81. package/Textures/Classes/TextureAnimationTexture.d.ts +10 -0
  82. package/Textures/Classes/TextureAnimationTexture.js +32 -0
  83. package/Textures/Functions/BuildTextureData.d.ts +10 -0
  84. package/Textures/Functions/BuildTextureData.js +205 -0
  85. package/Textures/Texture.types.d.ts +50 -64
  86. package/Textures/TextureManager.d.ts +8 -19
  87. package/Textures/TextureManager.js +28 -166
  88. package/Tools/Brush/Brush.d.ts +1 -1
  89. package/Tools/Brush/Brush.js +39 -7
  90. package/Util/Binary/BinaryArrays.d.ts +6 -0
  91. package/Util/Binary/BinaryArrays.js +25 -0
  92. package/Util/Binary/BinaryBuffer.d.ts +29 -0
  93. package/Util/Binary/BinaryBuffer.js +130 -0
  94. package/Util/Binary/{BitArray.d.ts → BinaryFunctions.d.ts} +1 -2
  95. package/Util/Binary/BinaryFunctions.js +11 -0
  96. package/Voxels/Cursor/DataCursor.interface.d.ts +5 -0
  97. package/Voxels/Cursor/VoxelCursor.interface.d.ts +1 -1
  98. package/Voxels/Cursor/VoxelCursor.interface.js +8 -11
  99. package/Voxels/Data/VoxelPalettesRegister.d.ts +0 -5
  100. package/Voxels/Data/VoxelPalettesRegister.js +0 -9
  101. package/Voxels/Data/VoxelTagsRegister.js +7 -7
  102. package/Voxels/Functions/BuildStateData.js +9 -9
  103. package/Voxels/Functions/BuildTagAndPaletteData.js +2 -4
  104. package/Voxels/InitVoxelData.js +12 -13
  105. package/Voxels/State/Schema/StateSchema.d.ts +1 -1
  106. package/Voxels/Types/Voxel.types.d.ts +18 -0
  107. package/Voxels/Types/Voxel.types.js +6 -2
  108. package/World/Archive/Archive.types.d.ts +38 -34
  109. package/World/Archive/Functions/ArchiveArea.js +16 -24
  110. package/World/Archive/Functions/ArchiveSector.js +477 -192
  111. package/World/Archive/Functions/ImportSector.d.ts +3 -3
  112. package/World/Archive/Functions/ImportSector.js +202 -141
  113. package/World/Archive/Functions/Shared.d.ts +6 -0
  114. package/World/Archive/Functions/Shared.js +75 -0
  115. package/World/Archive/InitTasks.js +30 -13
  116. package/World/Cursor/SectionCursor.d.ts +2 -2
  117. package/World/Cursor/SectionCursor.js +2 -3
  118. package/World/Cursor/SectorCursor.d.ts +2 -2
  119. package/World/Cursor/SectorCursor.js +1 -2
  120. package/World/Cursor/WorldCursor.d.ts +2 -2
  121. package/World/Cursor/WorldCursor.js +1 -2
  122. package/World/Cursor/WorldVoxelCursor.js +1 -0
  123. package/World/InitTasks.d.ts +1 -1
  124. package/World/Lock/WorldLock.d.ts +1 -1
  125. package/World/Section/Section.d.ts +12 -16
  126. package/World/Section/Section.js +62 -20
  127. package/World/Section/SectionState.d.ts +10 -0
  128. package/World/Section/SectionState.js +11 -0
  129. package/World/Sector/Sector.d.ts +14 -6
  130. package/World/Sector/Sector.js +67 -17
  131. package/World/Sector/SectorHeightMap.js +2 -2
  132. package/World/Sector/SectorState.d.ts +14 -6
  133. package/World/Sector/SectorState.js +28 -15
  134. package/World/Types/WorldStorage.interface.js +1 -0
  135. package/World/WorldRegister.d.ts +4 -0
  136. package/World/WorldRegister.js +15 -3
  137. package/World/WorldSpaces.d.ts +4 -0
  138. package/World/WorldSpaces.js +19 -6
  139. package/package.json +1 -1
  140. package/Mesher/Functions/CompactMesh.d.ts +0 -2
  141. package/Mesher/Functions/CompactMesh.js +0 -42
  142. package/Mesher/Geomtry/GeometryNormals.d.ts +0 -10
  143. package/Mesher/Geomtry/GeometryNormals.js +0 -52
  144. package/Mesher/Geomtry/MeshData.types.d.ts +0 -13
  145. package/Mesher/Geomtry/MeshData.types.js +0 -6
  146. package/Mesher/Geomtry/Tools/MesherDataTools.d.ts +0 -7
  147. package/Mesher/Geomtry/Tools/MesherDataTools.js +0 -12
  148. package/Mesher/Geomtry/Tools/index.d.ts +0 -1
  149. package/Mesher/Geomtry/Tools/index.js +0 -1
  150. package/Mesher/RenderedMaterials.d.ts +0 -6
  151. package/Models/Rules/VoxelModelManager.js +0 -82
  152. package/Textures/TextureAnimations.d.ts +0 -4
  153. package/Textures/TextureAnimations.js +0 -35
  154. package/Textures/TextureArray.d.ts +0 -47
  155. package/Textures/TextureArray.js +0 -202
  156. package/Textures/TextureBuilder.d.ts +0 -13
  157. package/Textures/TextureBuilder.js +0 -120
  158. package/Textures/TextureRegister.d.ts +0 -9
  159. package/Textures/TextureRegister.js +0 -28
  160. package/Tools/DataCursor.interface.d.ts +0 -5
  161. package/Tools/DataCursor.interface.js +0 -2
  162. package/Util/Binary/BitArray.js +0 -16
  163. package/World/Structs/WorldDataStructProperties.d.ts +0 -8
  164. package/World/Structs/WorldDataStructProperties.js +0 -9
  165. /package/Mesher/{Tools → Geomtry}/VoxelMeshBVHBuilder.d.ts +0 -0
  166. /package/Mesher/{Tools → Geomtry}/VoxelMeshBVHBuilder.js +0 -0
  167. /package/Mesher/Geomtry/{Buffers.d.ts → VoxelMeshBuffers.d.ts} +0 -0
  168. /package/Mesher/Geomtry/{Buffers.js → VoxelMeshBuffers.js} +0 -0
  169. /package/Mesher/{Tools → Geomtry}/VoxelMeshVertexStructCursor.d.ts +0 -0
  170. /package/Mesher/{Tools → Geomtry}/VoxelMeshVertexStructCursor.js +0 -0
  171. /package/Mesher/{VoxelShaderData.d.ts → Geomtry/VoxelShaderData.d.ts} +0 -0
  172. /package/Mesher/{VoxelShaderData.js → Geomtry/VoxelShaderData.js} +0 -0
  173. /package/{World/Storage/WorldStorage.interface.js → Voxels/Cursor/DataCursor.interface.js} +0 -0
  174. /package/World/{Storage → Types}/WorldStorage.interface.d.ts +0 -0
@@ -1,45 +1,46 @@
1
1
  import { Vec3Array } from "@amodx/math";
2
2
  import { LocationData } from "../../Math";
3
+ import { BinaryBufferData } from "../../Util/Binary/BinaryBuffer";
4
+ export type ArchivedLightSegments = "sun" | "red" | "green" | "blue";
3
5
  /**
4
6
  * Interface for an archived sector.
5
7
  */
6
8
  export interface ArchivedSectorData {
7
- /** The version of vlox the data was stored in. */
9
+ /** A user provided version of the data. */
8
10
  version: string;
11
+ /** The version of vlox the data was stored in. */
12
+ vloxVersion: string;
9
13
  /** The location of the sector in the world. */
10
14
  location: LocationData;
11
- /** Record of the sector's state, storing dynamic or user-defined data. */
12
- sectorState: Record<string, any>;
15
+ /** Record of the sector's bit flags. */
16
+ flags: Record<string, boolean>;
17
+ /** Record of the sector's timestamps. */
18
+ timestamps: Record<string, number>;
13
19
  /** The palette data used within the sector. */
14
20
  palettes: ArchivedSectorPaletteData;
15
21
  /** Placeholder for future buffer data. */
16
22
  buffers: ArchivedSectorBuffersData;
17
- /** Keys associated with section states and other objects. */
18
- keys: ArchivedSectorKeysData;
23
+ duplicates: ArchivedSectorDuplicteData;
19
24
  /** Array of archived section data within the sector. */
20
- sections: ArchivedSectionData[];
25
+ sections: (ArchivedSectionData | string)[];
26
+ }
27
+ export interface ArchivedSectorDuplicteData {
28
+ sections?: Record<string, ArchivedSectionData>;
21
29
  }
22
30
  /**
23
31
  * Interface for the palettes of an archived sector.
24
32
  */
25
33
  export interface ArchivedSectorPaletteData {
26
34
  id: string[];
27
- secondaryId?: string[];
28
- level?: Uint8Array;
29
- stateMap: Record<number, any[]>;
30
- modMap: Record<number, any[]>;
35
+ secondaryId: string[];
31
36
  state: Uint16Array;
37
+ stateMap: Record<number, any[]>;
32
38
  mod: Uint16Array;
33
- light?: Uint16Array;
39
+ modMap: Record<number, any[]>;
40
+ level?: Uint8Array;
41
+ light: Partial<Record<ArchivedLightSegments, Uint8Array>>;
34
42
  secondaryState?: Uint16Array;
35
43
  }
36
- /**
37
- * Interface for the keys of an archived sector.
38
- */
39
- export interface ArchivedSectorKeysData {
40
- /** Array of strings that are the keys for the section state struct. */
41
- sectionState: string[];
42
- }
43
44
  /**
44
45
  * Placeholder interface for future buffer data in a sector.
45
46
  */
@@ -49,10 +50,10 @@ export interface ArchivedSectorBuffersData {
49
50
  * Interface for an archived section.
50
51
  */
51
52
  export interface ArchivedSectionData {
52
- /** Array representing the section's state, holding dynamic or user-defined data. */
53
- state: any[];
53
+ /** Record of the sections's bit flags. */
54
+ flags?: Record<string, boolean>;
54
55
  /** Palette data used within the section. */
55
- palettes: ArchivedSectionPaletteData;
56
+ palettes?: ArchivedSectionPaletteData;
56
57
  /** Buffer data for the section, holding voxel type identifiers, light data, state, and secondary state. */
57
58
  buffers: ArchivedSectionBuffers;
58
59
  }
@@ -61,7 +62,7 @@ export interface ArchivedSectionData {
61
62
  */
62
63
  export interface ArchivedSectionPaletteData {
63
64
  id?: Uint16Array;
64
- light?: Uint16Array;
65
+ light?: Partial<Record<ArchivedLightSegments, Uint8Array>>;
65
66
  level?: Uint8Array;
66
67
  secondaryId?: Uint16Array;
67
68
  state?: Uint16Array;
@@ -72,12 +73,15 @@ export interface ArchivedSectionPaletteData {
72
73
  * Interface representing the buffer data for a section.
73
74
  */
74
75
  export interface ArchivedSectionBuffers {
75
- id: Uint16Array | Uint8Array | number;
76
- light: Uint16Array | Uint8Array | number;
77
- level: Uint8Array | number;
78
- state: Uint16Array | Uint8Array | number;
79
- mod: Uint16Array | Uint8Array | number;
80
- secondary: Uint16Array | Uint8Array | number;
76
+ buried?: Uint8Array | number;
77
+ voxelMap?: Uint8Array | number;
78
+ dirtyMap?: Uint8Array | number;
79
+ id?: BinaryBufferData | number;
80
+ light?: Partial<Record<ArchivedLightSegments, BinaryBufferData | number>>;
81
+ level?: BinaryBufferData | number;
82
+ state?: BinaryBufferData | number;
83
+ mod?: BinaryBufferData | number;
84
+ secondary?: BinaryBufferData | number;
81
85
  }
82
86
  /**
83
87
  * Interface for an archived area.
@@ -133,14 +137,14 @@ export interface ArchivedAreaKeysData {
133
137
  */
134
138
  export interface ArchivedAreaSectorPaletteData {
135
139
  id: string[];
136
- light?: Uint16Array;
137
- level?: Uint8Array;
138
- state?: Uint16Array;
139
- mod?: Uint16Array;
140
+ light: Uint16Array;
141
+ level: Uint8Array;
142
+ state: Uint16Array;
143
+ mod: Uint16Array;
140
144
  stateMap: Record<number, any[]>;
141
145
  modMap: Record<number, any[]>;
142
- secondaryId?: string[];
143
- secondaryState?: Uint16Array;
146
+ secondaryId: string[];
147
+ secondaryState: Uint16Array;
144
148
  }
145
149
  /**
146
150
  * Interface representing the archived data for a sector within an area.
@@ -1,17 +1,5 @@
1
1
  import { BinaryObject } from "@amodx/binary";
2
- const charset = "0123456789ABCDEF";
3
- function uint16To4CharString(value) {
4
- if (value < 0 || value > 0xffff) {
5
- throw new RangeError("Value must be a 16-bit unsigned integer.");
6
- }
7
- const chars = [];
8
- for (let i = 0; i < 4; i++) {
9
- const charCode = (value >> (i * 4)) & 0x0f;
10
- chars.unshift(charset[charCode]);
11
- }
12
- const result = chars.join("").replace(/^0+(?!$)/, "");
13
- return result;
14
- }
2
+ import { uint16To4CharString } from "./Shared";
15
3
  const processPalettes = (archiveData) => {
16
4
  const allRegistered = new Set();
17
5
  for (const sector of archiveData.sectors) {
@@ -225,8 +213,7 @@ function SectorToArchivedAreaSector(sector) {
225
213
  palettes.id = sector.palettes.id;
226
214
  if (sector.palettes.secondaryId)
227
215
  palettes.secondaryId = sector.palettes.secondaryId;
228
- if (sector.palettes.light)
229
- palettes.light = sector.palettes.light;
216
+ // if (sector.palettes.light) palettes.light = sector.palettes.light;
230
217
  if (sector.palettes.secondaryState)
231
218
  palettes.secondaryState = sector.palettes.secondaryState;
232
219
  if (sector.palettes.state)
@@ -237,7 +224,7 @@ function SectorToArchivedAreaSector(sector) {
237
224
  sector.palettes.modMap = sector.palettes.modMap;
238
225
  return {
239
226
  position: [sector.location[1], sector.location[2], sector.location[3]],
240
- sectorState: sector.sectorState,
227
+ sectorState: sector.flags,
241
228
  buffers: sector.buffers,
242
229
  palettes,
243
230
  sections: sector.sections,
@@ -254,7 +241,8 @@ export default function CreateArchiveArea(archiveData) {
254
241
  version: "",
255
242
  keys: {
256
243
  sectorState: sectorStateKeys,
257
- sectionState: archiveData.sectors[0].keys.sectionState,
244
+ sectionState: []
245
+ // sectionState: archiveData.sectors[0].keys.sectionState,
258
246
  },
259
247
  maps: {
260
248
  sectorState: buildSectorState(archiveData),
@@ -285,10 +273,11 @@ export function CreateSectorFromArea(area, sector) {
285
273
  id[i] = area.maps.id[i];
286
274
  }
287
275
  palettes.id = id;
288
- palettes.light =
276
+ /* palettes.light =
289
277
  typeof sector.palettes.light == "string"
290
- ? area.maps.lightPalette[sector.palettes.light]
291
- : sector.palettes.light;
278
+ ? area.maps.lightPalette[sector.palettes.light]
279
+ : sector.palettes.light;
280
+ */
292
281
  palettes.level =
293
282
  typeof sector.palettes.level == "string"
294
283
  ? area.maps.levelPalette[sector.palettes.level]
@@ -329,11 +318,14 @@ export function CreateSectorFromArea(area, sector) {
329
318
  }
330
319
  return {
331
320
  version: area.version,
321
+ vloxVersion: area.version,
332
322
  location: [area.dimension, ...sector.position],
333
- sectorState,
334
- keys: {
335
- sectionState: area.keys.sectionState,
336
- },
323
+ flags: sectorState,
324
+ timestamps: {},
325
+ /* keys: {
326
+ sectionState: area.keys.sectionState,
327
+ }, */
328
+ duplicates: {},
337
329
  palettes,
338
330
  buffers: sector.buffers,
339
331
  sections,