@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.
- package/Contexts/Base/Main/InitDataGenerator.js +0 -9
- package/Contexts/Base/Remote/DataSync.types.d.ts +0 -5
- package/Contexts/Base/Remote/InitDataSync.js +17 -31
- package/Contexts/Render/DivineVoxelEngineRender.d.ts +1 -1
- package/Contexts/World/DivineVoxelEngineWorld.d.ts +1 -1
- package/Init/StartConstructor.js +7 -7
- package/Init/StartWorld.d.ts +1 -1
- package/Init/StartWorld.js +0 -12
- package/Math/Indexing.d.ts +12 -3
- package/Math/Indexing.js +24 -15
- package/Mesher/Functions/CompactVoxelMesh.d.ts +2 -2
- package/Mesher/Functions/CompactVoxelMesh.js +4 -5
- package/Mesher/Functions/MeshSection.d.ts +1 -1
- package/Mesher/Functions/MeshSection.js +72 -66
- package/Mesher/Functions/MeshTexture.d.ts +1 -1
- package/Mesher/Functions/MeshTexture.js +3 -4
- package/Mesher/Functions/MeshVoxel.js +20 -26
- 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 +108 -125
- package/Mesher/Geomtry/VoxelMesh.d.ts +1 -1
- package/Mesher/Geomtry/VoxelMesh.js +2 -2
- package/Mesher/{Tools → Geomtry}/VoxelMeshBVHBuilder.d.ts +2 -9
- package/Mesher/{Tools → Geomtry}/VoxelMeshBVHBuilder.js +4 -16
- package/Mesher/Geomtry/{Buffers.d.ts → VoxelMeshBuffers.d.ts} +9 -8
- package/Mesher/Geomtry/VoxelMeshBuffers.js +49 -0
- package/Mesher/{Tools → Geomtry}/VoxelMeshVertexStructCursor.d.ts +10 -0
- package/Mesher/{Tools → Geomtry}/VoxelMeshVertexStructCursor.js +10 -0
- package/Mesher/Geomtry/index.d.ts +0 -1
- package/Mesher/Geomtry/index.js +0 -1
- package/Mesher/InitMesher.js +2 -11
- package/Mesher/InitTask.js +10 -22
- package/Mesher/Models/Common/BoundsFunctions.d.ts +1 -3
- package/Mesher/Models/Common/BoundsFunctions.js +0 -16
- package/Mesher/Models/Common/Calc/CalcConstants.js +14 -31
- package/Mesher/Models/Common/Calc/FaceDataCalc.d.ts +2 -8
- package/Mesher/Models/Common/Calc/FaceDataCalc.js +50 -52
- 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.d.ts +1 -5
- package/Mesher/Models/Nodes/Custom/Liquid/LiquidGeomtryNode.js +40 -42
- package/Mesher/Models/Nodes/GeometryNode.d.ts +3 -5
- package/Mesher/Models/Nodes/GeometryNode.js +1 -2
- package/Mesher/Models/Nodes/Ruled/BoxVoxelGeometryNode.d.ts +3 -6
- package/Mesher/Models/Nodes/Ruled/BoxVoxelGeometryNode.js +55 -40
- package/Mesher/Models/Nodes/Ruled/QuadVoxelGeometryNode.d.ts +2 -6
- package/Mesher/Models/Nodes/Ruled/QuadVoxelGeometryNode.js +52 -51
- package/Mesher/Models/Nodes/Ruleless/RulelessBoxVoxelGeometryNode.d.ts +2 -6
- package/Mesher/Models/Nodes/Ruleless/RulelessBoxVoxelGeometryNode.js +18 -19
- package/Mesher/Models/Nodes/Ruleless/RulelessQuadVoxelGeometryNode.d.ts +2 -6
- package/Mesher/Models/Nodes/Ruleless/RulelessQuadVoxelGeometryNode.js +37 -40
- 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 +4 -5
- package/Mesher/Models/VoxelConstructor.js +23 -12
- package/Mesher/Models/{VoxelGeometryLookUp.d.ts → VoxelGeometryBuilderCacheSpace.d.ts} +6 -14
- package/Mesher/Models/{VoxelGeometryLookUp.js → VoxelGeometryBuilderCacheSpace.js} +26 -44
- package/Mesher/{Tools/VoxelMesherDataTool.d.ts → Models/VoxelModelBuilder.d.ts} +10 -8
- package/Mesher/{Tools/VoxelMesherDataTool.js → Models/VoxelModelBuilder.js} +44 -19
- package/Mesher/Models/VoxelModelConstructorRegister.js +3 -3
- 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/Indexing/VoxelAOResultsIndex.d.ts +4 -4
- package/Models/Indexing/VoxelAOResultsIndex.js +15 -9
- package/Models/Indexing/VoxelFaceCullResultsIndex.d.ts +3 -3
- package/Models/Indexing/VoxelFaceCullResultsIndex.js +14 -9
- package/Models/Indexing/VoxelFaceTransparentResultsIndex.d.ts +1 -1
- package/Models/Indexing/VoxelFaceTransparentResultsIndex.js +1 -1
- package/Models/Rules/Functions/BuildFinalInputs.js +9 -7
- package/Models/Rules/Functions/BuildGeomtryInputs.js +8 -5
- package/Models/Rules/Functions/BuildRules.js +4 -4
- 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 +14 -2
- package/Tasks/IWG/Internal/Classes/IWGTaskBase.js +2 -2
- package/Tasks/IWG/Internal/Functions/getSectorState.js +4 -7
- package/Tasks/IWG/Internal/Functions/runBuildUpdate.js +21 -2
- package/Tasks/IWG/Internal/Functions/runWorldUpdate.js +5 -6
- package/Tasks/IWG/Internal/IWGTasks.d.ts +0 -4
- package/Tasks/IWG/Internal/IWGTasks.js +12 -31
- package/Tasks/IWG/Internal/IWGTools.d.ts +1 -1
- package/Tasks/IWG/Procedures/SaveAllSectors.js +2 -0
- package/Tasks/Propagation/Flow/FlowManager.d.ts +0 -2
- package/Tasks/Propagation/Flow/FlowManager.js +86 -87
- package/Tasks/Propagation/Flow/WorldFlow.js +2 -3
- package/Tasks/Propagation/Illumanation/WorldRGB.js +1 -2
- package/Tasks/Update/InitTasks.d.ts +2 -1
- package/Tasks/Update/InitTasks.js +6 -6
- package/Tasks/Update/UpdateTask.d.ts +3 -1
- package/Tasks/Update/UpdateTask.js +28 -2
- package/Tasks/Update/VoxelUpdate.js +21 -7
- package/Tasks/WorldGeneration/WorldGenBrush.js +2 -1
- package/Templates/Cursor/TemplateCursor.d.ts +2 -2
- package/Templates/Cursor/TemplateCursor.js +1 -2
- package/Templates/Functions/CreateTemplate.js +1 -1
- package/Templates/VoxelTemplate.js +6 -8
- 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 -3
- package/Tools/Brush/Brush.js +43 -12
- 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/BinaryFunctions.d.ts +3 -0
- package/Util/Binary/BinaryFunctions.js +11 -0
- package/Util/StringPalette.d.ts +1 -0
- package/Util/StringPalette.js +8 -0
- package/Voxels/Cursor/DataCursor.interface.d.ts +5 -0
- package/Voxels/Cursor/VoxelCursor.d.ts +6 -6
- package/Voxels/Cursor/VoxelCursor.interface.d.ts +11 -16
- package/Voxels/Cursor/VoxelCursor.interface.js +35 -58
- package/Voxels/Cursor/VoxelCursor.js +13 -12
- package/Voxels/Cursor/VoxelLightData.d.ts +3 -4
- package/Voxels/Cursor/VoxelLightData.js +8 -7
- package/Voxels/Data/VoxelPalettesRegister.d.ts +8 -0
- package/Voxels/Data/VoxelPalettesRegister.js +8 -0
- package/Voxels/Data/VoxelTag.types.d.ts +56 -0
- package/Voxels/Data/VoxelTag.types.js +23 -0
- package/Voxels/{State → Data}/VoxelTagStates.d.ts +2 -2
- package/Voxels/{State → Data}/VoxelTagStates.js +5 -5
- package/Voxels/Data/VoxelTagsRegister.d.ts +9 -0
- package/Voxels/Data/VoxelTagsRegister.js +32 -0
- package/Voxels/Functions/BuildStateData.js +12 -12
- package/Voxels/Functions/BuildTagAndPaletteData.d.ts +13 -0
- package/Voxels/Functions/BuildTagAndPaletteData.js +55 -0
- package/Voxels/Indexes/VoxelIndex.js +3 -3
- package/Voxels/InitVoxelData.js +31 -73
- package/Voxels/State/Schema/StateSchema.d.ts +1 -1
- package/Voxels/Types/Voxel.types.d.ts +20 -42
- package/Voxels/Types/Voxel.types.js +6 -17
- package/Voxels/Types/VoxelModelCompiledData.types.d.ts +11 -13
- package/Voxels/Types/VoxelSubstances.types.d.ts +2 -15
- package/Voxels/Types/VoxelSubstances.types.js +1 -9
- package/World/Archive/Archive.types.d.ts +38 -34
- package/World/Archive/Functions/ArchiveArea.js +18 -30
- package/World/Archive/Functions/ArchiveSector.js +484 -213
- package/World/Archive/Functions/ImportSector.d.ts +3 -3
- package/World/Archive/Functions/ImportSector.js +205 -151
- 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 +3 -2
- package/World/Cursor/SectionCursor.js +9 -4
- package/World/Cursor/SectorCursor.d.ts +3 -2
- package/World/Cursor/SectorCursor.js +5 -3
- package/World/Cursor/WorldCursor.d.ts +2 -2
- package/World/Cursor/WorldCursor.js +6 -3
- package/World/Cursor/WorldVoxelCursor.d.ts +7 -7
- package/World/Cursor/WorldVoxelCursor.js +21 -24
- package/World/InitTasks.d.ts +1 -1
- package/World/Lock/WorldLock.d.ts +1 -1
- package/World/Section/Section.d.ts +31 -23
- package/World/Section/Section.js +116 -18
- package/World/Section/SectionState.d.ts +10 -0
- package/World/Section/SectionState.js +11 -0
- package/World/Sector/Sector.d.ts +24 -9
- package/World/Sector/Sector.js +92 -21
- package/World/Sector/SectorHeightMap.js +3 -5
- package/World/Sector/SectorState.d.ts +21 -0
- package/World/Sector/SectorState.js +28 -0
- package/World/WorldRegister.d.ts +4 -0
- package/World/WorldRegister.js +15 -3
- package/World/WorldSpaces.d.ts +6 -0
- package/World/WorldSpaces.js +25 -6
- package/package.json +1 -1
- package/Data/Cursor/DataCursor.interface.d.ts +0 -5
- package/Data/Cursor/DataCursor.interface.js +0 -2
- package/Data/Register/MappedDataRegister.d.ts +0 -5
- package/Data/Register/MappedDataRegister.js +0 -9
- package/Data/Register/MappedRegisterBase.d.ts +0 -14
- package/Data/Register/MappedRegisterBase.js +0 -50
- package/Data/Structs/StructBuilder.d.ts +0 -34
- package/Data/Structs/StructBuilder.js +0 -157
- package/Data/Structs/StructBuilder.types.d.ts +0 -30
- package/Mesher/Functions/CompactMesh.d.ts +0 -2
- package/Mesher/Functions/CompactMesh.js +0 -42
- package/Mesher/Geomtry/Buffers.js +0 -81
- 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/Data/SubstanceDataTool.d.ts +0 -13
- package/Tools/Data/SubstanceDataTool.js +0 -51
- package/Voxels/Palettes/MaterialPalette.d.ts +0 -9
- package/Voxels/Palettes/MaterialPalette.js +0 -11
- package/Voxels/Palettes/SubstancePalette.d.ts +0 -9
- package/Voxels/Palettes/SubstancePalette.js +0 -11
- package/Voxels/Palettes/VoxelPalette.d.ts +0 -11
- package/Voxels/Palettes/VoxelPalette.js +0 -15
- package/Voxels/Segments/MaterialDataGenerator.d.ts +0 -6
- package/Voxels/Segments/MaterialDataGenerator.js +0 -12
- package/Voxels/Segments/SubstanceDataGenerator.d.ts +0 -6
- package/Voxels/Segments/SubstanceDataGenerator.js +0 -35
- package/Voxels/Segments/VoxelDataGenerator.d.ts +0 -10
- package/Voxels/Segments/VoxelDataGenerator.js +0 -56
- package/Voxels/Structs/Builder/SubstanceStructBuilder.d.ts +0 -2
- package/Voxels/Structs/Builder/SubstanceStructBuilder.js +0 -42
- package/Voxels/Structs/Builder/VoxelStructBuilder.d.ts +0 -2
- package/Voxels/Structs/Builder/VoxelStructBuilder.js +0 -68
- package/Voxels/Structs/SubstanceStruct.d.ts +0 -17
- package/Voxels/Structs/SubstanceStruct.js +0 -17
- package/Voxels/Structs/VoxelStruct.d.ts +0 -27
- package/Voxels/Structs/VoxelStruct.js +0 -29
- package/World/Section/SectionHeightMap.d.ts +0 -10
- package/World/Section/SectionHeightMap.js +0 -39
- package/World/Section/SectionStruct.d.ts +0 -8
- package/World/Section/SectionStruct.js +0 -29
- package/World/Section/SectionStructProperties.d.ts +0 -10
- package/World/Section/SectionStructProperties.js +0 -11
- package/World/Sector/SectorStruct.d.ts +0 -1
- package/World/Sector/SectorStruct.js +0 -46
- package/World/Sector/SectorStructIds.d.ts +0 -13
- package/World/Sector/SectorStructIds.js +0 -14
- package/World/Structs/WorldDataStructProperties.d.ts +0 -8
- package/World/Structs/WorldDataStructProperties.js +0 -9
- /package/Mesher/{VoxelShaderData.d.ts → Geomtry/VoxelShaderData.d.ts} +0 -0
- /package/Mesher/{VoxelShaderData.js → Geomtry/VoxelShaderData.js} +0 -0
- /package/{Data/Functions → Util/Binary}/Palettes.d.ts +0 -0
- /package/{Data/Functions → Util/Binary}/Palettes.js +0 -0
- /package/{Data/Structs/StructBuilder.types.js → Voxels/Cursor/DataCursor.interface.js} +0 -0
- /package/Voxels/{VoxelLevelReader.d.ts → Cursor/VoxelLevelReader.d.ts} +0 -0
- /package/Voxels/{VoxelLevelReader.js → Cursor/VoxelLevelReader.js} +0 -0
- /package/World/{Storage → Types}/WorldStorage.interface.d.ts +0 -0
- /package/World/{Storage → Types}/WorldStorage.interface.js +0 -0
|
@@ -1,18 +1,27 @@
|
|
|
1
1
|
import { Vector3Like } from "@amodx/math";
|
|
2
|
+
export interface MesherSettingsData {
|
|
3
|
+
}
|
|
4
|
+
export declare class MesherSettingsData {
|
|
5
|
+
/**Tell the mesher to shade voxel faces with sun light data. Disable if you are using a custom renderering pipeline. */
|
|
6
|
+
doSunLight: boolean;
|
|
7
|
+
/**Tell the mesher to use the built in AO system. Disable if you are using a custom renderering pipeline. */
|
|
8
|
+
doAO: boolean;
|
|
9
|
+
doColors: boolean;
|
|
10
|
+
}
|
|
2
11
|
export interface RenderSettingsData {
|
|
3
12
|
}
|
|
4
13
|
export declare class RenderSettingsData {
|
|
14
|
+
/**Set the mode to change how mesh data is generated based on the underlying rendering API. */
|
|
5
15
|
mode: "webgl" | "webgpu";
|
|
16
|
+
/**If set to try the engine will not try to send vertex buffers to woerks for GC. */
|
|
6
17
|
cpuBound: boolean;
|
|
7
18
|
}
|
|
8
|
-
export interface TextureSettings {
|
|
9
|
-
}
|
|
10
|
-
export declare class TextureSettings {
|
|
11
|
-
textureSize: number;
|
|
12
|
-
}
|
|
13
19
|
export interface UpdatingSettings {
|
|
14
20
|
}
|
|
15
21
|
export declare class UpdatingSettings {
|
|
22
|
+
/**Sector sections are marked as dirty so they can be processed later. */
|
|
23
|
+
dirtyMechanism: boolean;
|
|
24
|
+
/**Updated sector sections are auto rebuilt */
|
|
16
25
|
autoRebuild: boolean;
|
|
17
26
|
}
|
|
18
27
|
export interface WorldSettings {
|
|
@@ -31,34 +40,24 @@ export interface SectionSettings {
|
|
|
31
40
|
export declare class SectionSettings {
|
|
32
41
|
power2Size: Vector3Like;
|
|
33
42
|
}
|
|
34
|
-
export interface VoxelSettings {
|
|
35
|
-
}
|
|
36
|
-
export declare class VoxelSettings {
|
|
37
|
-
doColors: boolean;
|
|
38
|
-
}
|
|
39
43
|
export interface FlowSettings {
|
|
40
44
|
}
|
|
41
45
|
export declare class FlowSettings {
|
|
42
46
|
enable: boolean;
|
|
43
|
-
baseFlowLimit: number;
|
|
44
47
|
}
|
|
45
48
|
export interface LightingSettings {
|
|
46
49
|
}
|
|
47
50
|
export declare class LightingSettings {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
doRGBLight: boolean;
|
|
51
|
-
autoRGBLight: boolean;
|
|
52
|
-
autoSunLight: boolean;
|
|
51
|
+
rgbLightEnabled: boolean;
|
|
52
|
+
sunLightEnabled: boolean;
|
|
53
53
|
}
|
|
54
54
|
export declare class EngineSettingsData {
|
|
55
|
+
mesher: MesherSettingsData;
|
|
55
56
|
rendererSettings: RenderSettingsData;
|
|
56
|
-
textures: TextureSettings;
|
|
57
57
|
updating: UpdatingSettings;
|
|
58
58
|
world: WorldSettings;
|
|
59
59
|
sectors: SectorSettings;
|
|
60
60
|
sections: SectionSettings;
|
|
61
|
-
voxels: VoxelSettings;
|
|
62
61
|
flow: FlowSettings;
|
|
63
62
|
lighting: LightingSettings;
|
|
64
63
|
}
|
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
import { Vector3Like } from "@amodx/math";
|
|
2
|
+
export class MesherSettingsData {
|
|
3
|
+
/**Tell the mesher to shade voxel faces with sun light data. Disable if you are using a custom renderering pipeline. */
|
|
4
|
+
doSunLight = true;
|
|
5
|
+
/**Tell the mesher to use the built in AO system. Disable if you are using a custom renderering pipeline. */
|
|
6
|
+
doAO = true;
|
|
7
|
+
doColors = true;
|
|
8
|
+
}
|
|
2
9
|
export class RenderSettingsData {
|
|
10
|
+
/**Set the mode to change how mesh data is generated based on the underlying rendering API. */
|
|
3
11
|
mode = "webgl";
|
|
12
|
+
/**If set to try the engine will not try to send vertex buffers to woerks for GC. */
|
|
4
13
|
cpuBound = false;
|
|
5
14
|
}
|
|
6
|
-
export class TextureSettings {
|
|
7
|
-
textureSize = 16;
|
|
8
|
-
}
|
|
9
15
|
export class UpdatingSettings {
|
|
10
|
-
|
|
16
|
+
/**Sector sections are marked as dirty so they can be processed later. */
|
|
17
|
+
dirtyMechanism = true;
|
|
18
|
+
/**Updated sector sections are auto rebuilt */
|
|
19
|
+
autoRebuild = false;
|
|
11
20
|
}
|
|
12
21
|
export class WorldSettings {
|
|
13
22
|
min = Vector3Like.Create(-Number.MAX_SAFE_INTEGER, 0, -Number.MAX_SAFE_INTEGER);
|
|
@@ -19,28 +28,20 @@ export class SectorSettings {
|
|
|
19
28
|
export class SectionSettings {
|
|
20
29
|
power2Size = Vector3Like.Create(4, 4, 4);
|
|
21
30
|
}
|
|
22
|
-
export class VoxelSettings {
|
|
23
|
-
doColors = true;
|
|
24
|
-
}
|
|
25
31
|
export class FlowSettings {
|
|
26
32
|
enable = true;
|
|
27
|
-
baseFlowLimit = 200;
|
|
28
33
|
}
|
|
29
34
|
export class LightingSettings {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
doRGBLight = true;
|
|
33
|
-
autoRGBLight = true;
|
|
34
|
-
autoSunLight = true;
|
|
35
|
+
rgbLightEnabled = true;
|
|
36
|
+
sunLightEnabled = true;
|
|
35
37
|
}
|
|
36
38
|
export class EngineSettingsData {
|
|
39
|
+
mesher = new MesherSettingsData();
|
|
37
40
|
rendererSettings = new RenderSettingsData();
|
|
38
|
-
textures = new TextureSettings();
|
|
39
41
|
updating = new UpdatingSettings();
|
|
40
42
|
world = new WorldSettings();
|
|
41
43
|
sectors = new SectorSettings();
|
|
42
44
|
sections = new SectionSettings();
|
|
43
|
-
voxels = new VoxelSettings();
|
|
44
45
|
flow = new FlowSettings();
|
|
45
46
|
lighting = new LightingSettings();
|
|
46
47
|
}
|
package/Tasks/IWG/IWG.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Thread, ThreadPool } from "@amodx/threads";
|
|
2
|
-
import { WorldStorageInterface } from "../../World/
|
|
2
|
+
import { WorldStorageInterface } from "../../World/Types/WorldStorage.interface";
|
|
3
3
|
import { Generator, GeneratorData } from "./Internal/Classes/Generator";
|
|
4
4
|
import { InitalLoad } from "./Procedures/InitalLoad";
|
|
5
5
|
import SaveAllSectors from "./Procedures/SaveAllSectors";
|
|
@@ -23,6 +23,7 @@ export declare class IWG {
|
|
|
23
23
|
static createGenerator(data: Partial<GeneratorData>): Generator;
|
|
24
24
|
static addGenerator(generator: Generator): void;
|
|
25
25
|
static removeGenerator(generator: Generator): boolean;
|
|
26
|
+
static tick(): void;
|
|
26
27
|
static update(): void;
|
|
27
28
|
}
|
|
28
29
|
export {};
|
package/Tasks/IWG/IWG.js
CHANGED
|
@@ -29,10 +29,11 @@ export class IWG {
|
|
|
29
29
|
IWGTools.taskTool = new TaskTool(data.threads);
|
|
30
30
|
if (data.worldStorage)
|
|
31
31
|
IWGTools.worldStorage = data.worldStorage;
|
|
32
|
-
console.warn("load the thing", IWGTools.worldStorage, data.worldStorage);
|
|
33
32
|
}
|
|
34
33
|
static createGenerator(data) {
|
|
35
|
-
|
|
34
|
+
if (!initalized)
|
|
35
|
+
throw new Error(`IWG must be initalized first before creating generator`);
|
|
36
|
+
return new Generator(IWGTools.taskTool, {
|
|
36
37
|
dimension: data.dimension ? data.dimension : "main",
|
|
37
38
|
position: data.position ? data.position : Vector3Like.Create(),
|
|
38
39
|
renderRadius: data.renderRadius ? data.renderRadius : 150,
|
|
@@ -53,6 +54,11 @@ export class IWG {
|
|
|
53
54
|
}
|
|
54
55
|
return false;
|
|
55
56
|
}
|
|
57
|
+
static tick() {
|
|
58
|
+
for (const gen of this._generators) {
|
|
59
|
+
gen.tick();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
56
62
|
static update() {
|
|
57
63
|
if (!initalized) {
|
|
58
64
|
throw new Error(`IWG must be initalized.`);
|
|
@@ -77,7 +83,7 @@ export class IWG {
|
|
|
77
83
|
}
|
|
78
84
|
}
|
|
79
85
|
runBuildUpdate(this._generators);
|
|
80
|
-
IWGTasks.buildTasks.runTask();
|
|
86
|
+
// IWGTasks.buildTasks.runTask();
|
|
81
87
|
runWorldUpdate(this._generators);
|
|
82
88
|
IWGTasks.worldLoadTasks.runTask();
|
|
83
89
|
IWGTasks.worldGenTasks.runTask();
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { LocationData } from "../../../../Math";
|
|
2
|
+
import { TaskTool } from "../../../../Tools/Tasks/TasksTool";
|
|
3
|
+
export declare class BuildQueue {
|
|
4
|
+
tasks: TaskTool;
|
|
5
|
+
hash: Set<unknown>;
|
|
6
|
+
sections: LocationData[];
|
|
7
|
+
constructor(tasks: TaskTool);
|
|
8
|
+
add(data: LocationData): false | undefined;
|
|
9
|
+
sort(x: number, y: number, z: number): void;
|
|
10
|
+
run(limit?: number): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { WorldSpaces } from "../../../../World/WorldSpaces";
|
|
2
|
+
export class BuildQueue {
|
|
3
|
+
tasks;
|
|
4
|
+
hash = new Set();
|
|
5
|
+
sections = [];
|
|
6
|
+
constructor(tasks) {
|
|
7
|
+
this.tasks = tasks;
|
|
8
|
+
}
|
|
9
|
+
add(data) {
|
|
10
|
+
const key = WorldSpaces.hash.hashXYZ(data[1], data[2], data[3]);
|
|
11
|
+
if (this.hash.has(key))
|
|
12
|
+
return false;
|
|
13
|
+
this.hash.add(key);
|
|
14
|
+
this.sections.push(data);
|
|
15
|
+
}
|
|
16
|
+
sort(x, y, z) {
|
|
17
|
+
const sections = this.sections;
|
|
18
|
+
const sx = x, sy = y, sz = z;
|
|
19
|
+
let i = sections.length, j, temp, ax, ay, az, bx, by, bz, distA, distB;
|
|
20
|
+
while (i > 1) {
|
|
21
|
+
for (j = 1; j < i; j++) {
|
|
22
|
+
(ax = sections[j - 1][1]),
|
|
23
|
+
(ay = sections[j - 1][2]),
|
|
24
|
+
(az = sections[j - 1][3]);
|
|
25
|
+
(bx = sections[j][1]), (by = sections[j][2]), (bz = sections[j][3]);
|
|
26
|
+
distA = (ax - sx) ** 2 + (ay - sy) ** 2 + (az - sz) ** 2;
|
|
27
|
+
distB = (bx - sx) ** 2 + (by - sy) ** 2 + (bz - sz) ** 2;
|
|
28
|
+
if (distA > distB) {
|
|
29
|
+
temp = sections[j - 1];
|
|
30
|
+
sections[j - 1] = sections[j];
|
|
31
|
+
sections[j] = temp;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
i--;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
run(limit = 25) {
|
|
38
|
+
let count = 0;
|
|
39
|
+
while (this.sections.length) {
|
|
40
|
+
const vec = this.sections.shift();
|
|
41
|
+
const [dimension, x, y, z] = vec;
|
|
42
|
+
this.tasks.build.section.run([dimension, x, y, z]);
|
|
43
|
+
this.hash.delete(WorldSpaces.hash.hashXYZ(x, y, z));
|
|
44
|
+
count++;
|
|
45
|
+
if (count > limit)
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Vector3Like } from "@amodx/math";
|
|
2
2
|
import { Circle } from "@amodx/math/Shapes";
|
|
3
|
+
import { BuildQueue } from "./BuildQueue";
|
|
4
|
+
import { TaskTool } from "../../../../Tools/Tasks/TasksTool";
|
|
3
5
|
export interface GeneratorData {
|
|
4
6
|
dimension: string;
|
|
5
7
|
building?: boolean;
|
|
@@ -10,6 +12,7 @@ export interface GeneratorData {
|
|
|
10
12
|
maxRadius: number;
|
|
11
13
|
}
|
|
12
14
|
export declare class Generator {
|
|
15
|
+
taskTool: TaskTool;
|
|
13
16
|
position: Vector3Like;
|
|
14
17
|
_dimension: string;
|
|
15
18
|
_building: boolean;
|
|
@@ -22,6 +25,8 @@ export declare class Generator {
|
|
|
22
25
|
_genCircle: Circle;
|
|
23
26
|
_renderCircle: Circle;
|
|
24
27
|
_maxCircle: Circle;
|
|
25
|
-
|
|
28
|
+
buildQueue: BuildQueue;
|
|
29
|
+
constructor(taskTool: TaskTool, data: GeneratorData);
|
|
26
30
|
update(): void;
|
|
31
|
+
tick(): void;
|
|
27
32
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { Vector3Like } from "@amodx/math";
|
|
2
2
|
import { Circle } from "@amodx/math/Shapes";
|
|
3
3
|
import { WorldSpaces } from "../../../../World/WorldSpaces";
|
|
4
|
+
import { BuildQueue } from "./BuildQueue";
|
|
4
5
|
export class Generator {
|
|
6
|
+
taskTool;
|
|
5
7
|
position;
|
|
6
8
|
_dimension = "main";
|
|
7
9
|
_building = true;
|
|
@@ -14,7 +16,10 @@ export class Generator {
|
|
|
14
16
|
_genCircle = new Circle({ x: 0, y: 0 }, 0);
|
|
15
17
|
_renderCircle = new Circle({ x: 0, y: 0 }, 0);
|
|
16
18
|
_maxCircle = new Circle({ x: 0, y: 0 }, 10);
|
|
17
|
-
|
|
19
|
+
buildQueue;
|
|
20
|
+
constructor(taskTool, data) {
|
|
21
|
+
this.taskTool = taskTool;
|
|
22
|
+
console.warn("make generator", taskTool);
|
|
18
23
|
this._dimension = data.dimension;
|
|
19
24
|
this.position = data.position;
|
|
20
25
|
this._building =
|
|
@@ -23,10 +28,11 @@ export class Generator {
|
|
|
23
28
|
this._renderCircle.radius = data.renderRadius;
|
|
24
29
|
this._genCircle.radius = data.generationRadius;
|
|
25
30
|
this._maxCircle.radius = data.maxRadius;
|
|
31
|
+
this.buildQueue = new BuildQueue(taskTool);
|
|
26
32
|
}
|
|
27
33
|
update() {
|
|
28
34
|
this._positonChanged = false;
|
|
29
|
-
WorldSpaces.section.getPosition(this.position.x,
|
|
35
|
+
WorldSpaces.section.getPosition(this.position.x, 0, this.position.z, this._sectorPosition);
|
|
30
36
|
if (!Vector3Like.Equals(this._sectorPosition, this._cachedPosition)) {
|
|
31
37
|
this._positonChanged = true;
|
|
32
38
|
Vector3Like.Copy(this._cachedPosition, this._sectorPosition);
|
|
@@ -38,4 +44,10 @@ export class Generator {
|
|
|
38
44
|
this._maxCircle.center.x = this._sectorPosition.x;
|
|
39
45
|
this._maxCircle.center.y = this._sectorPosition.z;
|
|
40
46
|
}
|
|
47
|
+
tick() {
|
|
48
|
+
if (this._building) {
|
|
49
|
+
this.buildQueue.sort(this.position.x, this.position.y, this.position.z);
|
|
50
|
+
this.buildQueue.run(25);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
41
53
|
}
|
|
@@ -47,12 +47,12 @@ export class IWGTaskBase {
|
|
|
47
47
|
const z = task.queue.shift();
|
|
48
48
|
task.waitingFor++;
|
|
49
49
|
if (this.data.propagationBlocking) {
|
|
50
|
-
dimension.inProgress.add(x,
|
|
50
|
+
dimension.inProgress.add(x, y, z);
|
|
51
51
|
}
|
|
52
52
|
this.data.run([dimension.id, x, y, z], () => {
|
|
53
53
|
task.vistedMap.remove(x, y, z);
|
|
54
54
|
if (this.data.propagationBlocking) {
|
|
55
|
-
dimension.inProgress.remove(x,
|
|
55
|
+
dimension.inProgress.remove(x, y, z);
|
|
56
56
|
}
|
|
57
57
|
task.waitingFor--;
|
|
58
58
|
}, dimension);
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { WorldRegister } from "../../../../World/WorldRegister";
|
|
2
|
-
import { SectorStateStructIds } from "../../../../World/Sector/SectorStructIds";
|
|
3
2
|
import { $2dMooreNeighborhood } from "../../../../Math/CardinalNeighbors";
|
|
4
3
|
import { WorldSpaces } from "../../../../World/WorldSpaces";
|
|
5
4
|
import { Sector } from "../../../../World/index";
|
|
@@ -8,7 +7,6 @@ const tempPosition = Vector3Like.Create();
|
|
|
8
7
|
export function getSectorState(sector, state, segment) {
|
|
9
8
|
state.resset();
|
|
10
9
|
const [cx, cy, cz] = sector.position;
|
|
11
|
-
Sector.StateStruct.setData(sector.sectorState);
|
|
12
10
|
for (let i = 0; i < $2dMooreNeighborhood.length; i++) {
|
|
13
11
|
const sectorPOS = WorldSpaces.sector.getPosition(cx + $2dMooreNeighborhood[i][0] * WorldSpaces.sector.bounds.x, cy, cz + $2dMooreNeighborhood[i][1] * WorldSpaces.sector.bounds.z, tempPosition);
|
|
14
12
|
if (!segment.vistedMap.has(sectorPOS.x, cy, sectorPOS.z)) {
|
|
@@ -24,17 +22,16 @@ export function getSectorState(sector, state, segment) {
|
|
|
24
22
|
state.allLoaded = false;
|
|
25
23
|
break;
|
|
26
24
|
}
|
|
27
|
-
Sector.
|
|
28
|
-
if (!Sector.StateStruct.getProperty(SectorStateStructIds.isWorldGenDone)) {
|
|
25
|
+
if (!sector.getBitFlag(Sector.FlagIds.isWorldGenDone)) {
|
|
29
26
|
state.nWorldGenAllDone = false;
|
|
30
27
|
}
|
|
31
|
-
if (!Sector.
|
|
28
|
+
if (!sector.getBitFlag(Sector.FlagIds.isWorldDecorDone)) {
|
|
32
29
|
state.nDecorAllDone = false;
|
|
33
30
|
}
|
|
34
|
-
if (!Sector.
|
|
31
|
+
if (!sector.getBitFlag(Sector.FlagIds.isWorldSunDone)) {
|
|
35
32
|
state.nSunAllDone = false;
|
|
36
33
|
}
|
|
37
|
-
if (!Sector.
|
|
34
|
+
if (!sector.getBitFlag(Sector.FlagIds.isWorldPropagationDone)) {
|
|
38
35
|
state.nPropagtionAllDone = false;
|
|
39
36
|
}
|
|
40
37
|
}
|
|
@@ -3,10 +3,25 @@ import { WorldSpaces } from "../../../../World/WorldSpaces";
|
|
|
3
3
|
import { SectorState } from "../Classes/SectorState";
|
|
4
4
|
import { WorldRegister } from "../../../../World/WorldRegister";
|
|
5
5
|
import { getSectorState } from "./getSectorState";
|
|
6
|
-
import { IWGTasks } from "../IWGTasks";
|
|
7
6
|
import { IWGDimensions } from "../IWGDimensions";
|
|
8
7
|
const stateCursor = new SectorState();
|
|
9
8
|
const sectorSquare = new Square();
|
|
9
|
+
function run(dimenion, sector, location, generator) {
|
|
10
|
+
let rendered = true;
|
|
11
|
+
if (!dimenion.rendered.has(location[1], location[2], location[3])) {
|
|
12
|
+
rendered = false;
|
|
13
|
+
dimenion.rendered.add(location[1], location[2], location[3]);
|
|
14
|
+
}
|
|
15
|
+
for (const section of sector.getRenerableSections()) {
|
|
16
|
+
if (rendered && (section.isInProgress() || !section.isDirty()))
|
|
17
|
+
continue;
|
|
18
|
+
section.setInProgress(true);
|
|
19
|
+
generator.buildQueue.add([
|
|
20
|
+
location[0],
|
|
21
|
+
...section.getPosition(),
|
|
22
|
+
]);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
10
25
|
export function runBuildUpdate(generators) {
|
|
11
26
|
for (const generator of generators) {
|
|
12
27
|
if (!generator._building)
|
|
@@ -39,9 +54,13 @@ export function runBuildUpdate(generators) {
|
|
|
39
54
|
if (state.nWorldGenAllDone &&
|
|
40
55
|
state.nSunAllDone &&
|
|
41
56
|
state.nPropagtionAllDone) {
|
|
57
|
+
if (sector.anySectionDirty()) {
|
|
58
|
+
run(segment, sector, [generator._dimension, cx, cy, cz], generator);
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
42
61
|
if (segment.rendered.has(cx, cy, cz))
|
|
43
62
|
continue;
|
|
44
|
-
|
|
63
|
+
run(segment, sector, [generator._dimension, cx, cy, cz], generator);
|
|
45
64
|
}
|
|
46
65
|
}
|
|
47
66
|
}
|
|
@@ -3,7 +3,6 @@ import { getSectorState } from "./getSectorState";
|
|
|
3
3
|
import { SectorState } from "../Classes/SectorState";
|
|
4
4
|
import { WorldRegister } from "../../../../World/WorldRegister";
|
|
5
5
|
import { Sector } from "../../../../World";
|
|
6
|
-
import { SectorStateStructIds } from "../../../../World/Sector/SectorStructIds";
|
|
7
6
|
import { WorldLock } from "../../../../World/Lock/WorldLock";
|
|
8
7
|
import { IWGTasks } from "../IWGTasks";
|
|
9
8
|
import { IWGDimensions } from "../IWGDimensions";
|
|
@@ -41,24 +40,24 @@ export function runWorldUpdate(generators) {
|
|
|
41
40
|
continue;
|
|
42
41
|
}
|
|
43
42
|
const state = getSectorState(sector, stateCursor, segment);
|
|
44
|
-
Sector.
|
|
43
|
+
sector.getBitFlag(Sector.FlagIds.isWorldGenDone);
|
|
45
44
|
if (state.allLoaded &&
|
|
46
|
-
!Sector.
|
|
45
|
+
!sector.getBitFlag(Sector.FlagIds.isWorldGenDone)) {
|
|
47
46
|
IWGTasks.worldGenTasks.add(generator._dimension, cx, cy, cz);
|
|
48
47
|
continue;
|
|
49
48
|
}
|
|
50
49
|
if (state.nWorldGenAllDone &&
|
|
51
|
-
!Sector.
|
|
50
|
+
!sector.getBitFlag(Sector.FlagIds.isWorldDecorDone)) {
|
|
52
51
|
IWGTasks.worldDecorateTasks.add(generator._dimension, cx, cy, cz);
|
|
53
52
|
continue;
|
|
54
53
|
}
|
|
55
54
|
if (state.nDecorAllDone &&
|
|
56
|
-
!Sector.
|
|
55
|
+
!sector.getBitFlag(Sector.FlagIds.isWorldPropagationDone)) {
|
|
57
56
|
IWGTasks.worldPropagationTasks.add(generator._dimension, cx, cy, cz);
|
|
58
57
|
continue;
|
|
59
58
|
}
|
|
60
59
|
if (state.nPropagtionAllDone &&
|
|
61
|
-
!Sector.
|
|
60
|
+
!sector.getBitFlag(Sector.FlagIds.isWorldSunDone)) {
|
|
62
61
|
IWGTasks.worldSunTasks.add(generator._dimension, cx, cy, cz);
|
|
63
62
|
continue;
|
|
64
63
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { WorldRegister } from "../../../World/WorldRegister";
|
|
2
2
|
import { Sector } from "../../../World/index";
|
|
3
|
-
import { SectorStateStructIds } from "../../../World/Sector/SectorStructIds";
|
|
4
3
|
import { IWGTools } from "./IWGTools";
|
|
5
4
|
import { TaskRegister } from "./TaskRegister";
|
|
6
5
|
export class IWGTasks {
|
|
@@ -38,15 +37,13 @@ export class IWGTasks {
|
|
|
38
37
|
id: "generate",
|
|
39
38
|
propagationBlocking: true,
|
|
40
39
|
async run(location, onDone) {
|
|
41
|
-
const sector = WorldRegister.sectors.get(location
|
|
40
|
+
const sector = WorldRegister.sectors.get(...location);
|
|
42
41
|
if (!sector)
|
|
43
42
|
throw new Error(`Sector at ${location.toString()} does not exist when attempting generation.`);
|
|
44
|
-
Sector.
|
|
45
|
-
if (Sector.StateStruct.getProperty(SectorStateStructIds.isWorldGenDone))
|
|
43
|
+
if (sector.getBitFlag(Sector.FlagIds.isWorldGenDone))
|
|
46
44
|
return onDone();
|
|
47
45
|
IWGTools.taskTool.generate.run([location, []], null, () => {
|
|
48
|
-
Sector.
|
|
49
|
-
Sector.StateStruct.setProperty(SectorStateStructIds.isWorldGenDone, 1);
|
|
46
|
+
sector.setBitFlag(Sector.FlagIds.isWorldGenDone, true);
|
|
50
47
|
onDone();
|
|
51
48
|
});
|
|
52
49
|
},
|
|
@@ -58,15 +55,13 @@ export class IWGTasks {
|
|
|
58
55
|
id: "decorate",
|
|
59
56
|
propagationBlocking: true,
|
|
60
57
|
async run(location, onDone) {
|
|
61
|
-
const sector = WorldRegister.sectors.get(location
|
|
58
|
+
const sector = WorldRegister.sectors.get(...location);
|
|
62
59
|
if (!sector)
|
|
63
60
|
throw new Error(`Sector at ${location.toString()} does not exist when attempting decoration.`);
|
|
64
|
-
Sector.
|
|
65
|
-
if (Sector.StateStruct.getProperty(SectorStateStructIds.isWorldDecorDone))
|
|
61
|
+
if (sector.getBitFlag(Sector.FlagIds.isWorldDecorDone))
|
|
66
62
|
return onDone();
|
|
67
63
|
IWGTools.taskTool.decorate.run([location, []], null, () => {
|
|
68
|
-
Sector.
|
|
69
|
-
Sector.StateStruct.setProperty(SectorStateStructIds.isWorldDecorDone, 1);
|
|
64
|
+
sector.setBitFlag(Sector.FlagIds.isWorldDecorDone, true);
|
|
70
65
|
onDone();
|
|
71
66
|
});
|
|
72
67
|
},
|
|
@@ -78,15 +73,13 @@ export class IWGTasks {
|
|
|
78
73
|
id: "wolrd_sun",
|
|
79
74
|
propagationBlocking: true,
|
|
80
75
|
async run(location, onDone) {
|
|
81
|
-
const sector = WorldRegister.sectors.get(location
|
|
76
|
+
const sector = WorldRegister.sectors.get(...location);
|
|
82
77
|
if (!sector)
|
|
83
78
|
throw new Error(`Sector at ${location.toString()} does not exist when attempting world sun.`);
|
|
84
|
-
Sector.
|
|
85
|
-
if (Sector.StateStruct.getProperty(SectorStateStructIds.isWorldSunDone))
|
|
79
|
+
if (sector.getBitFlag(Sector.FlagIds.isWorldSunDone))
|
|
86
80
|
return onDone();
|
|
87
81
|
IWGTools.taskTool.worldSun.run(location, null, () => {
|
|
88
|
-
Sector.
|
|
89
|
-
Sector.StateStruct.setProperty(SectorStateStructIds.isWorldSunDone, 1);
|
|
82
|
+
sector.setBitFlag(Sector.FlagIds.isWorldSunDone, true);
|
|
90
83
|
onDone();
|
|
91
84
|
});
|
|
92
85
|
},
|
|
@@ -98,15 +91,13 @@ export class IWGTasks {
|
|
|
98
91
|
id: "propagation",
|
|
99
92
|
propagationBlocking: true,
|
|
100
93
|
async run(location, onDone) {
|
|
101
|
-
const sector = WorldRegister.sectors.get(location
|
|
94
|
+
const sector = WorldRegister.sectors.get(...location);
|
|
102
95
|
if (!sector)
|
|
103
96
|
throw new Error(`Sector at ${location.toString()} does not exist when attempting propagation.`);
|
|
104
|
-
Sector.
|
|
105
|
-
if (Sector.StateStruct.getProperty(SectorStateStructIds.isWorldPropagationDone))
|
|
97
|
+
if (sector.getBitFlag(Sector.FlagIds.isWorldPropagationDone))
|
|
106
98
|
return onDone();
|
|
107
99
|
IWGTools.taskTool.propagation.run(location, null, () => {
|
|
108
|
-
Sector.
|
|
109
|
-
Sector.StateStruct.setProperty(SectorStateStructIds.isWorldPropagationDone, 1);
|
|
100
|
+
sector.setBitFlag(Sector.FlagIds.isWorldPropagationDone, true);
|
|
110
101
|
onDone();
|
|
111
102
|
});
|
|
112
103
|
},
|
|
@@ -135,14 +126,4 @@ export class IWGTasks {
|
|
|
135
126
|
onDone();
|
|
136
127
|
},
|
|
137
128
|
});
|
|
138
|
-
/**# Build Task
|
|
139
|
-
* ---
|
|
140
|
-
*/
|
|
141
|
-
static buildTasks = TaskRegister.addTasks({
|
|
142
|
-
id: "build_tasks",
|
|
143
|
-
async run(location, onDone, dimenion) {
|
|
144
|
-
dimenion.rendered.add(location[1], location[2], location[3]);
|
|
145
|
-
IWGTools.taskTool.build.sector.run(location, null, onDone);
|
|
146
|
-
},
|
|
147
|
-
});
|
|
148
129
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Thread } from "@amodx/threads";
|
|
2
2
|
import { TaskTool } from "../../../Tools/Tasks/TasksTool";
|
|
3
|
-
import { WorldStorageInterface } from "../../../World/
|
|
3
|
+
import { WorldStorageInterface } from "../../../World/Types/WorldStorage.interface";
|
|
4
4
|
export declare class IWGTools {
|
|
5
5
|
static taskTool: TaskTool;
|
|
6
6
|
static worldStorage: WorldStorageInterface | null;
|
|
@@ -13,6 +13,8 @@ export default async function SaveAllSectors() {
|
|
|
13
13
|
for (const [dimensionId] of IWGDimensions._dimensions) {
|
|
14
14
|
const dimension = WorldRegister.dimensions.get(dimensionId);
|
|
15
15
|
for (const [key, sector] of dimension.sectors) {
|
|
16
|
+
if (sector.isStored())
|
|
17
|
+
continue;
|
|
16
18
|
proms.push(worldStorage.saveSector([dimensionId, ...sector.position]));
|
|
17
19
|
}
|
|
18
20
|
}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { BrushTool } from "../../../Tools/Brush/Brush.js";
|
|
2
|
-
import { SubstanceDataTool } from "../../../Tools/Data/SubstanceDataTool.js";
|
|
3
2
|
import { UpdateTask } from "../../Update/UpdateTask.js";
|
|
4
3
|
import { WorldCursor } from "../../../World/index.js";
|
|
5
4
|
export declare class FlowManager {
|
|
6
5
|
static _brush: BrushTool;
|
|
7
6
|
static _sDataTool: WorldCursor;
|
|
8
7
|
static _nDataTool: WorldCursor;
|
|
9
|
-
static _substanceTool: SubstanceDataTool;
|
|
10
8
|
static setVoxel(tasks: UpdateTask, vox: string, level: number, levelState: number, x: number, y: number, z: number): void;
|
|
11
9
|
static setDimension(dimension: string): void;
|
|
12
10
|
static removeVoxel(tasks: UpdateTask, x: number, y: number, z: number): void;
|