@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.
- package/Contexts/Render/DivineVoxelEngineRender.d.ts +1 -1
- package/Contexts/World/DivineVoxelEngineWorld.d.ts +1 -1
- package/Init/StartConstructor.js +6 -4
- package/Init/StartWorld.d.ts +1 -1
- package/Mesher/Functions/CompactVoxelMesh.d.ts +2 -2
- package/Mesher/Functions/CompactVoxelMesh.js +1 -1
- package/Mesher/Functions/MeshSection.js +20 -8
- package/Mesher/Functions/MeshTexture.d.ts +1 -1
- package/Mesher/Functions/MeshTexture.js +3 -4
- package/Mesher/Geomtry/Primitives/QuadVertexData.d.ts +12 -10
- package/Mesher/Geomtry/Primitives/QuadVertexData.js +49 -56
- package/Mesher/Geomtry/VoxelGeometryBuilder.d.ts +2 -2
- package/Mesher/Geomtry/VoxelGeometryBuilder.js +2 -2
- package/Mesher/Geomtry/VoxelMesh.d.ts +1 -1
- package/Mesher/Geomtry/VoxelMesh.js +2 -2
- package/Mesher/Geomtry/index.d.ts +0 -1
- package/Mesher/Geomtry/index.js +0 -1
- package/Mesher/InitMesher.js +1 -1
- package/Mesher/InitTask.js +4 -22
- package/Mesher/Models/Common/Calc/FaceDataCalc.d.ts +2 -2
- package/Mesher/Models/Common/Calc/FaceDataCalc.js +37 -30
- package/Mesher/Models/Nodes/Custom/Liquid/FlowGradient.d.ts +2 -2
- package/Mesher/Models/Nodes/Custom/Liquid/FlowGradient.js +1 -1
- package/Mesher/Models/Nodes/Custom/Liquid/LiquidGeomtryNode.js +11 -17
- package/Mesher/Models/Nodes/GeometryNode.d.ts +2 -2
- package/Mesher/Models/Nodes/Ruled/BoxVoxelGeometryNode.d.ts +1 -0
- package/Mesher/Models/Nodes/Ruled/BoxVoxelGeometryNode.js +24 -12
- package/Mesher/{Tools → Models/Protocols}/OutlinedVoxelTool.d.ts +1 -1
- package/Mesher/{Tools → Models/Protocols}/OutlinedVoxelTool.js +1 -1
- package/Mesher/Models/RenderedMaterials.d.ts +6 -0
- package/Mesher/{RenderedMaterials.js → Models/RenderedMaterials.js} +2 -2
- package/Mesher/Models/VoxelConstructor.d.ts +3 -3
- package/Mesher/Models/VoxelGeometryBuilderCacheSpace.d.ts +1 -3
- package/Mesher/Models/VoxelGeometryBuilderCacheSpace.js +0 -23
- package/Mesher/{Tools/VoxelMesherDataTool.d.ts → Models/VoxelModelBuilder.d.ts} +4 -5
- package/Mesher/{Tools/VoxelMesherDataTool.js → Models/VoxelModelBuilder.js} +11 -7
- package/Models/Defaults/CubeVoxelGeometry.js +4 -0
- package/Models/Defaults/CubeVoxelModels.js +344 -344
- package/Models/Defaults/LiquidVoxelModel.js +2 -2
- package/Models/Defaults/PanelVoxelModels.js +432 -432
- package/Models/Defaults/StairVoxelModel.js +576 -576
- package/Models/Examples.js +469 -456
- package/Models/Rules/Functions/BuildFinalInputs.js +9 -7
- package/Models/Rules/Functions/BuildGeomtryInputs.js +8 -5
- package/Models/Rules/Functions/BuildRules.js +2 -2
- package/Models/Rules/{VoxelModelManager.d.ts → VoxelModelRuleBuilderRegister.d.ts} +1 -1
- package/Models/Rules/VoxelModelRuleBuilderRegister.js +178 -0
- package/Models/VoxelModel.types.d.ts +14 -5
- package/Renderer/Classes/SectorMesh.d.ts +3 -4
- package/Renderer/Classes/SectorMesh.js +6 -11
- package/Renderer/InitTasks.js +6 -7
- package/Renderer/MeshManager.js +2 -2
- package/Renderer/MeshRegister.js +2 -1
- package/Settings/EngineSettings.d.ts +1 -1
- package/Settings/EngineSettings.js +3 -5
- package/Settings/EngineSettings.types.d.ts +17 -18
- package/Settings/EngineSettings.types.js +16 -15
- package/Tasks/IWG/IWG.d.ts +2 -1
- package/Tasks/IWG/IWG.js +9 -3
- package/Tasks/IWG/Internal/Classes/BuildQueue.d.ts +11 -0
- package/Tasks/IWG/Internal/Classes/BuildQueue.js +49 -0
- package/Tasks/IWG/Internal/Classes/Generator.d.ts +6 -1
- package/Tasks/IWG/Internal/Classes/Generator.js +13 -1
- package/Tasks/IWG/Internal/Classes/IWGTaskBase.js +2 -2
- package/Tasks/IWG/Internal/Functions/runBuildUpdate.js +21 -2
- package/Tasks/IWG/Internal/IWGTasks.d.ts +0 -4
- package/Tasks/IWG/Internal/IWGTasks.js +0 -10
- package/Tasks/IWG/Internal/IWGTools.d.ts +1 -1
- package/Tasks/IWG/Procedures/SaveAllSectors.js +2 -0
- package/Tasks/Update/UpdateTask.d.ts +3 -1
- package/Tasks/Update/UpdateTask.js +28 -2
- package/Tasks/Update/VoxelUpdate.js +6 -0
- package/Tasks/WorldGeneration/WorldGenBrush.js +1 -1
- package/Templates/Cursor/TemplateCursor.d.ts +2 -2
- package/Templates/Cursor/TemplateCursor.js +1 -2
- package/Templates/VoxelTemplates.types.d.ts +1 -1
- package/Textures/Classes/CompiledTexture.d.ts +18 -0
- package/Textures/Classes/CompiledTexture.js +50 -0
- package/Textures/Classes/CompiledTextureAnimation.d.ts +12 -0
- package/Textures/Classes/CompiledTextureAnimation.js +27 -0
- package/Textures/Classes/TextureAnimationTexture.d.ts +10 -0
- package/Textures/Classes/TextureAnimationTexture.js +32 -0
- package/Textures/Functions/BuildTextureData.d.ts +10 -0
- package/Textures/Functions/BuildTextureData.js +205 -0
- package/Textures/Texture.types.d.ts +50 -64
- package/Textures/TextureManager.d.ts +8 -19
- package/Textures/TextureManager.js +28 -166
- package/Tools/Brush/Brush.d.ts +1 -1
- package/Tools/Brush/Brush.js +39 -7
- package/Util/Binary/BinaryArrays.d.ts +6 -0
- package/Util/Binary/BinaryArrays.js +25 -0
- package/Util/Binary/BinaryBuffer.d.ts +29 -0
- package/Util/Binary/BinaryBuffer.js +130 -0
- package/Util/Binary/{BitArray.d.ts → BinaryFunctions.d.ts} +1 -2
- package/Util/Binary/BinaryFunctions.js +11 -0
- package/Voxels/Cursor/DataCursor.interface.d.ts +5 -0
- package/Voxels/Cursor/VoxelCursor.interface.d.ts +1 -1
- package/Voxels/Cursor/VoxelCursor.interface.js +8 -11
- package/Voxels/Data/VoxelPalettesRegister.d.ts +0 -5
- package/Voxels/Data/VoxelPalettesRegister.js +0 -9
- package/Voxels/Data/VoxelTagsRegister.js +7 -7
- package/Voxels/Functions/BuildStateData.js +9 -9
- package/Voxels/Functions/BuildTagAndPaletteData.js +2 -4
- package/Voxels/InitVoxelData.js +12 -13
- package/Voxels/State/Schema/StateSchema.d.ts +1 -1
- package/Voxels/Types/Voxel.types.d.ts +18 -0
- package/Voxels/Types/Voxel.types.js +6 -2
- package/World/Archive/Archive.types.d.ts +38 -34
- package/World/Archive/Functions/ArchiveArea.js +16 -24
- package/World/Archive/Functions/ArchiveSector.js +477 -192
- package/World/Archive/Functions/ImportSector.d.ts +3 -3
- package/World/Archive/Functions/ImportSector.js +202 -141
- package/World/Archive/Functions/Shared.d.ts +6 -0
- package/World/Archive/Functions/Shared.js +75 -0
- package/World/Archive/InitTasks.js +30 -13
- package/World/Cursor/SectionCursor.d.ts +2 -2
- package/World/Cursor/SectionCursor.js +2 -3
- package/World/Cursor/SectorCursor.d.ts +2 -2
- package/World/Cursor/SectorCursor.js +1 -2
- package/World/Cursor/WorldCursor.d.ts +2 -2
- package/World/Cursor/WorldCursor.js +1 -2
- package/World/Cursor/WorldVoxelCursor.js +1 -0
- package/World/InitTasks.d.ts +1 -1
- package/World/Lock/WorldLock.d.ts +1 -1
- package/World/Section/Section.d.ts +12 -16
- package/World/Section/Section.js +62 -20
- package/World/Section/SectionState.d.ts +10 -0
- package/World/Section/SectionState.js +11 -0
- package/World/Sector/Sector.d.ts +14 -6
- package/World/Sector/Sector.js +67 -17
- package/World/Sector/SectorHeightMap.js +2 -2
- package/World/Sector/SectorState.d.ts +14 -6
- package/World/Sector/SectorState.js +28 -15
- package/World/Types/WorldStorage.interface.js +1 -0
- package/World/WorldRegister.d.ts +4 -0
- package/World/WorldRegister.js +15 -3
- package/World/WorldSpaces.d.ts +4 -0
- package/World/WorldSpaces.js +19 -6
- package/package.json +1 -1
- package/Mesher/Functions/CompactMesh.d.ts +0 -2
- package/Mesher/Functions/CompactMesh.js +0 -42
- package/Mesher/Geomtry/GeometryNormals.d.ts +0 -10
- package/Mesher/Geomtry/GeometryNormals.js +0 -52
- package/Mesher/Geomtry/MeshData.types.d.ts +0 -13
- package/Mesher/Geomtry/MeshData.types.js +0 -6
- package/Mesher/Geomtry/Tools/MesherDataTools.d.ts +0 -7
- package/Mesher/Geomtry/Tools/MesherDataTools.js +0 -12
- package/Mesher/Geomtry/Tools/index.d.ts +0 -1
- package/Mesher/Geomtry/Tools/index.js +0 -1
- package/Mesher/RenderedMaterials.d.ts +0 -6
- package/Models/Rules/VoxelModelManager.js +0 -82
- package/Textures/TextureAnimations.d.ts +0 -4
- package/Textures/TextureAnimations.js +0 -35
- package/Textures/TextureArray.d.ts +0 -47
- package/Textures/TextureArray.js +0 -202
- package/Textures/TextureBuilder.d.ts +0 -13
- package/Textures/TextureBuilder.js +0 -120
- package/Textures/TextureRegister.d.ts +0 -9
- package/Textures/TextureRegister.js +0 -28
- package/Tools/DataCursor.interface.d.ts +0 -5
- package/Tools/DataCursor.interface.js +0 -2
- package/Util/Binary/BitArray.js +0 -16
- package/World/Structs/WorldDataStructProperties.d.ts +0 -8
- package/World/Structs/WorldDataStructProperties.js +0 -9
- /package/Mesher/{Tools → Geomtry}/VoxelMeshBVHBuilder.d.ts +0 -0
- /package/Mesher/{Tools → Geomtry}/VoxelMeshBVHBuilder.js +0 -0
- /package/Mesher/Geomtry/{Buffers.d.ts → VoxelMeshBuffers.d.ts} +0 -0
- /package/Mesher/Geomtry/{Buffers.js → VoxelMeshBuffers.js} +0 -0
- /package/Mesher/{Tools → Geomtry}/VoxelMeshVertexStructCursor.d.ts +0 -0
- /package/Mesher/{Tools → Geomtry}/VoxelMeshVertexStructCursor.js +0 -0
- /package/Mesher/{VoxelShaderData.d.ts → Geomtry/VoxelShaderData.d.ts} +0 -0
- /package/Mesher/{VoxelShaderData.js → Geomtry/VoxelShaderData.js} +0 -0
- /package/{World/Storage/WorldStorage.interface.js → Voxels/Cursor/DataCursor.interface.js} +0 -0
- /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
|
-
/**
|
|
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
|
|
12
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
/**
|
|
53
|
-
|
|
53
|
+
/** Record of the sections's bit flags. */
|
|
54
|
+
flags?: Record<string, boolean>;
|
|
54
55
|
/** Palette data used within the section. */
|
|
55
|
-
palettes
|
|
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?:
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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
|
|
137
|
-
level
|
|
138
|
-
state
|
|
139
|
-
mod
|
|
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
|
|
143
|
-
secondaryState
|
|
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
|
-
|
|
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.
|
|
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:
|
|
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
|
-
|
|
291
|
-
|
|
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
|
-
|
|
335
|
-
|
|
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,
|