@divinevoxel/vlox 0.0.78 → 0.0.79
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/Builder/Tools/Wrench/WrenchTool.js +26 -21
- package/Builder/VoxelBuildSpace.d.ts +2 -2
- package/Builder/VoxelBuildSpace.js +4 -4
- package/Builder/World/InitTasks.js +1 -1
- package/Cache/Cache.types.d.ts +0 -4
- package/Cache/CacheManager.d.ts +1 -2
- package/Cache/CacheManager.js +0 -2
- package/Contexts/Base/Main/InitDataGenerator.js +10 -2
- package/Contexts/Base/Remote/DataSync.types.d.ts +10 -4
- package/Contexts/Base/Remote/InitDataSync.js +10 -20
- package/Init/StartMesher.js +2 -1
- package/Init/StartRenderer.js +2 -1
- package/Mesher/{Geomtry → Geometry}/Geometry.types.d.ts +1 -0
- package/Mesher/InitMesher.d.ts +1 -2
- package/Mesher/InitMesher.js +7 -14
- package/Mesher/Items/{Geomtry → Geometry}/ItemGeometryBuilder.d.ts +2 -2
- package/Mesher/Items/{Geomtry → Geometry}/ItemGeometryBuilder.js +1 -1
- package/Mesher/Items/MeshTexture.d.ts +2 -1
- package/Mesher/Items/MeshTexture.js +7 -6
- package/Mesher/Items/MeshTextureO.js +1 -1
- package/Mesher/Items/Models/ItemModelBuilder.d.ts +1 -1
- package/Mesher/Items/Models/ItemModelBuilder.js +2 -2
- package/Mesher/Voxels/Base/CompactTemplateMesh.js +1 -1
- package/Mesher/Voxels/Base/CompactVoxelSectionMesh.js +2 -2
- package/Mesher/Voxels/Base/MeshSectionBase.js +1 -3
- package/Mesher/Voxels/{Geomtry → Geometry}/CompactedSectionVoxelMesh.js +3 -3
- package/Mesher/Voxels/{Geomtry → Geometry}/VoxelGeometryBuilder.d.ts +2 -2
- package/Mesher/Voxels/{Geomtry → Geometry}/VoxelGeometryBuilder.js +1 -1
- package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshBVHBuilder.js +1 -1
- package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshBVHStructCursor.d.ts +1 -1
- package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshBVHStructCursor.js +1 -1
- package/Mesher/Voxels/MeshTemplate.js +0 -3
- package/Mesher/Voxels/MeshVoxel.js +0 -2
- package/Mesher/Voxels/Models/Common/Calc/CalcConstants.d.ts +1 -1
- package/Mesher/Voxels/Models/Common/Calc/CalcConstants.js +2 -2
- package/Mesher/Voxels/Models/Common/Calc/FaceDataCalc.js +4 -1
- package/Mesher/Voxels/Models/Common/Faces/CullRulledFace.js +29 -18
- package/Mesher/Voxels/Models/Common/Faces/ShadeRulelessFace.d.ts +1 -1
- package/Mesher/Voxels/Models/Common/Faces/ShadeRulledFace.d.ts +1 -1
- package/Mesher/Voxels/Models/Common/Faces/ShadeRulledFace.js +31 -21
- package/Mesher/Voxels/Models/Common/GetTexture.d.ts +4 -4
- package/Mesher/Voxels/Models/Nodes/Custom/Liquid/FlowGradient.d.ts +1 -1
- package/Mesher/Voxels/Models/Nodes/Custom/Liquid/FlowGradient.js +1 -1
- package/Mesher/Voxels/Models/Nodes/Custom/Liquid/{LiquidGeomtryNode.d.ts → LiquidGeometryNode.d.ts} +2 -2
- package/Mesher/Voxels/Models/Nodes/Custom/Liquid/{LiquidGeomtryNode.js → LiquidGeometryNode.js} +5 -5
- package/Mesher/Voxels/Models/Nodes/Default/QuadVoxelGeometryNode.d.ts +3 -3
- package/Mesher/Voxels/Models/Nodes/Default/QuadVoxelGeometryNode.js +2 -2
- package/Mesher/Voxels/Models/Nodes/Default/TriangleVoxelGeometryNode.d.ts +3 -3
- package/Mesher/Voxels/Models/Nodes/Default/TriangleVoxelGeometryNode.js +2 -2
- package/Mesher/Voxels/Models/Nodes/GeometryNode.d.ts +3 -3
- package/Mesher/Voxels/Models/Nodes/GeometryNode.js +3 -3
- package/Mesher/Voxels/Models/Nodes/Types/GeometryNode.types.d.ts +7 -0
- package/Mesher/Voxels/Models/Nodes/Types/QuadVoxelGometryNodeTypes.d.ts +3 -3
- package/Mesher/Voxels/Models/Nodes/Types/TriangleVoxelGometryNodeTypes.d.ts +2 -2
- package/Mesher/Voxels/Models/Nodes/VoxelGeometryConstructor.d.ts +2 -3
- package/Mesher/Voxels/Models/Nodes/VoxelGeometryConstructor.js +6 -5
- package/Mesher/Voxels/Models/Procedures/Default/ConsistentRotationTextureProcedure.d.ts +4 -4
- package/Mesher/Voxels/Models/Procedures/Default/OutlinedTextureProcedure.d.ts +4 -4
- package/Mesher/Voxels/Models/Procedures/Default/PillarTextureProcedure.d.ts +4 -4
- package/Mesher/Voxels/Models/Procedures/Default/PillarTextureProcedure.js +20 -6
- package/Mesher/Voxels/Models/Procedures/TextureProcedure.d.ts +2 -2
- package/Mesher/Voxels/Models/VoxelConstructor.d.ts +1 -16
- package/Mesher/Voxels/Models/VoxelConstructor.js +50 -56
- package/Mesher/Voxels/Models/VoxelGeometryBuilderCacheSpace.d.ts +3 -6
- package/Mesher/Voxels/Models/VoxelGeometryBuilderCacheSpace.js +40 -44
- package/Mesher/Voxels/Models/VoxelModelBuilder.d.ts +4 -4
- package/Mesher/Voxels/Models/VoxelModelBuilder.js +4 -4
- package/Mesher/Voxels/Models/VoxelModelConstructorRegister.d.ts +1 -14
- package/Mesher/Voxels/Models/VoxelModelConstructorRegister.js +7 -21
- package/Mesher/Voxels/Models/VoxelModelEffect.d.ts +1 -7
- package/Mesher/Voxels/Models/VoxelModelEffect.js +23 -26
- package/Renderer/Classes/DVESectionMeshes.d.ts +1 -1
- package/Renderer/MeshManager.js +1 -1
- package/Settings/EngineSettings.types.d.ts +2 -1
- package/Settings/EngineSettings.types.js +1 -0
- package/Stats/EngineStats.d.ts +5 -3
- package/Stats/EngineStats.js +8 -6
- package/Templates/Archive/ArchivedVoxelTemplate.d.ts +1 -1
- package/Templates/Archive/ArchivedVoxelTemplate.js +5 -5
- package/Templates/Archive/Functions/CreateArchivedTemplate.d.ts +1 -1
- package/Templates/Archive/Functions/CreateArchivedTemplate.js +2 -2
- package/Templates/Cursor/TemplateCursor.d.ts +1 -1
- package/Templates/Cursor/TemplateCursor.js +1 -1
- package/Templates/Full/FullVoxelTemplate.d.ts +1 -1
- package/Templates/Full/FullVoxelTemplate.js +1 -1
- package/Templates/Full/Functions/CreateFullTemplate.d.ts +1 -1
- package/Templates/Selection/VoxelBFSSelection.d.ts +1 -1
- package/Templates/Selection/VoxelBFSSelection.js +1 -1
- package/Templates/Selection/VoxelBoundsSelection.d.ts +1 -1
- package/Templates/Selection/VoxelBoundsSelection.js +1 -1
- package/Templates/Selection/VoxelPointSelection.d.ts +1 -1
- package/Templates/Selection/VoxelPointSelection.js +1 -1
- package/Templates/Selection/VoxelSelection.d.ts +1 -1
- package/Templates/Selection/VoxelSurfaceSelection.d.ts +1 -1
- package/Templates/Selection/VoxelSurfaceSelection.js +1 -1
- package/Templates/Selection/VoxelTemplateSelection.d.ts +1 -1
- package/Templates/Selection/VoxelTemplateSelection.js +1 -1
- package/Templates/Shapes/Selections/BoxVoxelShapeSelection.d.ts +1 -1
- package/Templates/Shapes/Selections/BoxVoxelShapeSelection.js +1 -1
- package/Templates/Shapes/Selections/ConeVoxelShapeSelection.d.ts +1 -1
- package/Templates/Shapes/Selections/ConeVoxelShapeSelection.js +1 -1
- package/Templates/Shapes/Selections/CylinderVoxelShapeSelection.d.ts +1 -1
- package/Templates/Shapes/Selections/CylinderVoxelShapeSelection.js +1 -1
- package/Templates/Shapes/Selections/EllipsoidVoxelShapeSelection.d.ts +1 -1
- package/Templates/Shapes/Selections/EllipsoidVoxelShapeSelection.js +1 -1
- package/Templates/Shapes/Selections/OctahedronVoxelShapeSelection.d.ts +1 -1
- package/Templates/Shapes/Selections/OctahedronVoxelShapeSelection.js +1 -1
- package/Templates/Shapes/Selections/PyramidVoxelShapeSelection.d.ts +1 -1
- package/Templates/Shapes/Selections/PyramidVoxelShapeSelection.js +1 -1
- package/Templates/Shapes/Selections/SphereVoxelShapeSelection.d.ts +1 -1
- package/Templates/Shapes/Selections/SphereVoxelShapeSelection.js +1 -1
- package/Templates/Shapes/Selections/TorusVoxelShapeSelection.d.ts +1 -1
- package/Templates/Shapes/Selections/TorusVoxelShapeSelection.js +1 -1
- package/Templates/Shapes/VoxelShapeTemplate.d.ts +1 -1
- package/Templates/Shapes/VoxelShapeTemplate.js +1 -1
- package/Templates/VoxelTemplates.types.d.ts +1 -1
- package/Textures/Functions/BuildTextureData.js +4 -52
- package/Tools/Brush/Brush.js +5 -5
- package/Util/StringPalette.js +2 -0
- package/Voxels/Archive/VoxelPaletteArchiveReader.js +7 -6
- package/Voxels/Archive/VoxelPaletteArechive.js +8 -8
- package/Voxels/Cursor/DataCursor.interface.d.ts +1 -1
- package/Voxels/Cursor/VoxelCursor.interface.d.ts +0 -2
- package/Voxels/Cursor/VoxelCursor.interface.js +14 -16
- package/Voxels/Cursor/VoxelCursor.js +5 -5
- package/Voxels/Data/GeometryLUT.d.ts +32 -0
- package/Voxels/Data/GeometryLUT.js +50 -0
- package/Voxels/Data/VoxelLUT.d.ts +83 -0
- package/Voxels/Data/VoxelLUT.js +119 -0
- package/Voxels/Data/VoxelTagsRegister.d.ts +2 -2
- package/Voxels/Data/VoxelTagsRegister.js +2 -2
- package/Voxels/Functions/BuildLUTs.d.ts +6 -0
- package/Voxels/Functions/BuildLUTs.js +361 -0
- package/Voxels/Functions/BuildTagData.d.ts +4 -2
- package/Voxels/Functions/BuildTagData.js +15 -32
- package/Voxels/Functions/Geometry/BuildGeometryLUT.d.ts +11 -0
- package/Voxels/Functions/Geometry/BuildGeometryLUT.js +395 -0
- package/Voxels/{Models/Rules/Functions/Compile/Nodes → Functions/Geometry}/CalcFunctions.d.ts +3 -3
- package/Voxels/{Models/Rules/Functions/Compile/Nodes → Functions/Geometry}/CalcFunctions.js +2 -2
- package/Voxels/Functions/Geometry/Compile/BuildCompiled.d.ts +4 -0
- package/Voxels/Functions/Geometry/Compile/BuildCompiled.js +25 -0
- package/Voxels/Functions/Geometry/Compile/BuildCompiledBox.d.ts +4 -0
- package/Voxels/Functions/Geometry/Compile/BuildCompiledBox.js +13 -0
- package/Voxels/Functions/Geometry/Compile/BuildCompiledQuad.d.ts +4 -0
- package/Voxels/Functions/Geometry/Compile/BuildCompiledQuad.js +41 -0
- package/Voxels/Functions/Geometry/Compile/BuildCompiledTri.d.ts +4 -0
- package/Voxels/Functions/Geometry/Compile/BuildCompiledTri.js +44 -0
- package/Voxels/Functions/Geometry/GeometryLUT.types.d.ts +7 -0
- package/Voxels/Functions/Geometry/Inputs/BaseFunctions.d.ts +4 -0
- package/Voxels/Functions/Geometry/Inputs/BaseFunctions.js +28 -0
- package/Voxels/Functions/Geometry/Inputs/BuildBoxInputs.d.ts +5 -0
- package/Voxels/Functions/Geometry/Inputs/BuildBoxInputs.js +8 -0
- package/Voxels/Functions/Geometry/Inputs/BuildCustomInputs.d.ts +5 -0
- package/Voxels/Functions/Geometry/Inputs/BuildCustomInputs.js +41 -0
- package/Voxels/Functions/Geometry/Inputs/BuildQuadInputs.d.ts +5 -0
- package/Voxels/Functions/Geometry/Inputs/BuildQuadInputs.js +103 -0
- package/Voxels/Functions/Geometry/Inputs/BuildTriangleInputs.d.ts +5 -0
- package/Voxels/Functions/Geometry/Inputs/BuildTriangleInputs.js +101 -0
- package/Voxels/Functions/Geometry/Inputs/BuldInputs.d.ts +4 -0
- package/Voxels/Functions/Geometry/Inputs/BuldInputs.js +22 -0
- package/Voxels/Functions/Geometry/Rules/BuildRules.d.ts +1 -0
- package/Voxels/{Models/Rules/Functions → Functions/Geometry/Rules}/BuildRules.js +23 -23
- package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionFaceRegister.d.ts +2 -2
- package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionQuadFace.js +1 -1
- package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionTriangleFace.js +1 -1
- package/Voxels/{Models/Indexing → Geometry}/AOOcclusionFaceIndex.d.ts +2 -2
- package/Voxels/Geometry/AOOcclusionFaceIndex.js +28 -0
- package/Voxels/{Models/Indexing → Geometry}/CulledOcclusionFaceIndex.d.ts +2 -2
- package/Voxels/Geometry/CulledOcclusionFaceIndex.js +27 -0
- package/Voxels/Geometry/VoxelGeometry.types.d.ts +105 -0
- package/Voxels/Geometry/VoxelGeometry.types.js +1 -0
- package/Voxels/Indexes/VoxelIndex.js +15 -21
- package/Voxels/InitVoxelData.d.ts +4 -3
- package/Voxels/InitVoxelData.js +53 -110
- package/Voxels/Interaction/Functions/PickVoxel.js +1 -1
- package/Voxels/Logic/Classes/Types/VoxelLogicStateType.js +2 -2
- package/Voxels/Logic/Classes/VoxelLogic.d.ts +2 -2
- package/Voxels/Logic/Classes/VoxelLogic.js +2 -2
- package/Voxels/Logic/VoxelLogicRegister.js +2 -2
- package/Voxels/Models/Defaults/CubeVoxelGeometry.d.ts +1 -1
- package/Voxels/Models/Defaults/CubeVoxelModels.d.ts +1 -0
- package/Voxels/Models/Defaults/CubeVoxelModels.js +45 -0
- package/Voxels/Models/Defaults/Examples.d.ts +2 -1
- package/Voxels/Models/Defaults/Examples.js +28 -28
- package/Voxels/Models/Defaults/FarmVoxelModels.d.ts +3 -2
- package/Voxels/Models/Defaults/FarmVoxelModels.js +3 -3
- package/Voxels/Models/Defaults/LiquidVoxelModel.d.ts +2 -1
- package/Voxels/Models/Defaults/PanelVoxelGeometry.d.ts +1 -1
- package/Voxels/Models/VoxelModel.types.d.ts +2 -109
- package/Voxels/State/{Schema → Reltional}/Conditions/SameVoxelConditions.d.ts +2 -2
- package/Voxels/State/Reltional/Conditions/SameVoxelConditions.js +19 -0
- package/Voxels/State/Reltional/Conditions/ShapeStateSchemaRelationsCondition.d.ts +6 -0
- package/Voxels/State/Reltional/Conditions/ShapeStateSchemaRelationsCondition.js +6 -0
- package/Voxels/State/Reltional/ReltionalStateBuilder.d.ts +18 -0
- package/Voxels/State/Reltional/ReltionalStateBuilder.js +42 -0
- package/Voxels/State/Schema/BinarySchema.d.ts +1 -0
- package/Voxels/State/Schema/BinarySchema.js +3 -0
- package/Voxels/State/State.types.d.ts +0 -25
- package/Voxels/State/State.types.js +1 -22
- package/Voxels/State/VoxelSchemas.d.ts +22 -0
- package/Voxels/State/VoxelSchemas.js +60 -0
- package/Voxels/Types/PaintVoxelData.js +55 -45
- package/Voxels/Types/VoxelModelCompiledData.types.d.ts +4 -22
- package/World/Archive/Classes/ImportedSection.js +8 -8
- package/World/Archive/Functions/Sector/ArchiveSector.js +3 -3
- package/World/Cursor/SectionCursor.d.ts +1 -1
- package/World/Cursor/SectionCursor.js +1 -1
- package/World/Cursor/SectorCursor.d.ts +1 -1
- package/World/Cursor/SectorCursor.js +1 -1
- package/World/Cursor/WorldCursor.d.ts +1 -1
- package/World/Cursor/WorldCursor.js +1 -1
- package/World/Lock/Function/LockSectors.d.ts +1 -1
- package/World/Lock/Function/UnLockSectors.d.ts +1 -1
- package/World/SnapShot/SectionSnapShotCursor.d.ts +1 -1
- package/World/SnapShot/SectionSnapShotCursor.js +1 -1
- package/World/SnapShot/SnapShots.d.ts +1 -1
- package/World/SnapShot/SnapShots.js +1 -1
- package/WorldSimulation/Dimensions/SimulationSector.d.ts +1 -1
- package/WorldSimulation/Dimensions/SimulationSector.js +2 -2
- package/WorldSimulation/Tools/SimulationBrush.js +9 -9
- package/WorldSimulation/Voxels/Behaviors/Types/CropVoxelBehavior.js +4 -2
- package/WorldSimulation/Voxels/Behaviors/Types/FarmlandVoxelBehavior.js +5 -2
- package/WorldSimulation/WorldSimulation.d.ts +1 -0
- package/WorldSimulation/WorldSimulation.js +2 -1
- package/package.json +1 -1
- package/Mesher/Voxels/Models/Nodes/Types/GeomtryNode.types.d.ts +0 -7
- package/Voxels/Data/VoxelPalettesRegister.d.ts +0 -18
- package/Voxels/Data/VoxelPalettesRegister.js +0 -24
- package/Voxels/Functions/BuildPaletteData.d.ts +0 -6
- package/Voxels/Functions/BuildPaletteData.js +0 -87
- package/Voxels/Functions/BuildStateData.d.ts +0 -23
- package/Voxels/Functions/BuildStateData.js +0 -327
- package/Voxels/Models/CompiledVoxelModel.types.d.ts +0 -46
- package/Voxels/Models/Indexing/AOOcclusionFaceIndex.js +0 -28
- package/Voxels/Models/Indexing/CulledOcclusionFaceIndex.js +0 -27
- package/Voxels/Models/Rules/Classes/GeomtryInput.d.ts +0 -16
- package/Voxels/Models/Rules/Classes/GeomtryInput.js +0 -85
- package/Voxels/Models/Rules/Classes/VoxelRulesGeometry.d.ts +0 -22
- package/Voxels/Models/Rules/Classes/VoxelRulesGeometry.js +0 -15
- package/Voxels/Models/Rules/Classes/VoxelRulesModel.d.ts +0 -19
- package/Voxels/Models/Rules/Classes/VoxelRulesModel.js +0 -29
- package/Voxels/Models/Rules/Functions/BuildFinalInputs.d.ts +0 -5
- package/Voxels/Models/Rules/Functions/BuildFinalInputs.js +0 -87
- package/Voxels/Models/Rules/Functions/BuildRules.d.ts +0 -7
- package/Voxels/Models/Rules/Functions/Compile/CompileGeomtryNodes.d.ts +0 -4
- package/Voxels/Models/Rules/Functions/Compile/CompileGeomtryNodes.js +0 -39
- package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileBoxGeometryNode.d.ts +0 -5
- package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileBoxGeometryNode.js +0 -14
- package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileQuadGeometryNode.d.ts +0 -6
- package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileQuadGeometryNode.js +0 -92
- package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileTriangleGeometryNode.d.ts +0 -6
- package/Voxels/Models/Rules/Functions/Compile/Nodes/CompileTriangleGeometryNode.js +0 -115
- package/Voxels/Models/Rules/VoxelModelRuleBuilderRegister.d.ts +0 -18
- package/Voxels/Models/Rules/VoxelModelRuleBuilderRegister.js +0 -202
- package/Voxels/State/CondiotnalTreeReader.d.ts +0 -10
- package/Voxels/State/CondiotnalTreeReader.js +0 -23
- package/Voxels/State/LogicStatementReader.d.ts +0 -9
- package/Voxels/State/LogicStatementReader.js +0 -50
- package/Voxels/State/Schema/Conditions/SameVoxelConditions.js +0 -19
- package/Voxels/State/Schema/Conditions/ShapeStateSchemaRelationsCondition.d.ts +0 -6
- package/Voxels/State/Schema/Conditions/ShapeStateSchemaRelationsCondition.js +0 -6
- package/Voxels/State/Schema/ShapeStateRelationsNode.d.ts +0 -10
- package/Voxels/State/Schema/ShapeStateRelationsNode.js +0 -26
- package/Voxels/State/Schema/StateSchema.d.ts +0 -13
- package/Voxels/State/Schema/StateSchema.js +0 -17
- package/Voxels/State/Schema/VoxelSchema.d.ts +0 -7
- package/Voxels/State/Schema/VoxelSchema.js +0 -10
- package/Voxels/State/SchemaRegister.d.ts +0 -18
- package/Voxels/State/SchemaRegister.js +0 -76
- package/Voxels/State/StateTreeReader.d.ts +0 -9
- package/Voxels/State/StateTreeReader.js +0 -37
- /package/Mesher/{Geomtry → Geometry}/Functions/GetBounds.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Functions/GetBounds.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Geometry.types.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Primitives/Quad.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Primitives/Quad.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Primitives/QuadVertexData.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Primitives/QuadVertexData.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Primitives/Triangle.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Primitives/Triangle.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Primitives/TriangleVertexData.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Primitives/TriangleVertexData.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Primitives/index.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Primitives/index.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Proto/ProtoMesh.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Proto/ProtoMesh.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Proto/ProtoMeshBuffer.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Proto/ProtoMeshBuffer.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Shapes/Box.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Shapes/Box.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Transform/TransformBox.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Transform/TransformBox.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Transform/TransformQuad.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Transform/TransformQuad.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/Transform/TransformTriangle.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/Transform/TransformTriangle.js +0 -0
- /package/Mesher/{Geomtry → Geometry}/index.d.ts +0 -0
- /package/Mesher/{Geomtry → Geometry}/index.js +0 -0
- /package/Mesher/Items/{Geomtry → Geometry}/ItemMeshVertexStructCursor.d.ts +0 -0
- /package/Mesher/Items/{Geomtry → Geometry}/ItemMeshVertexStructCursor.js +0 -0
- /package/Mesher/Voxels/{Geomtry → Geometry}/CompactedSectionVoxelMesh.d.ts +0 -0
- /package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshBVHBuilder.d.ts +0 -0
- /package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshVertexStructCursor.d.ts +0 -0
- /package/Mesher/Voxels/{Geomtry → Geometry}/VoxelMeshVertexStructCursor.js +0 -0
- /package/Mesher/Voxels/{Geomtry → Geometry}/VoxelShaderData.d.ts +0 -0
- /package/Mesher/Voxels/{Geomtry → Geometry}/VoxelShaderData.js +0 -0
- /package/Mesher/Voxels/Models/Nodes/Types/{GeomtryNode.types.js → GeometryNode.types.js} +0 -0
- /package/Voxels/{Models/CompiledVoxelModel.types.js → Functions/Geometry/GeometryLUT.types.js} +0 -0
- /package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionFace.d.ts +0 -0
- /package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionFace.js +0 -0
- /package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionFaceRegister.js +0 -0
- /package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionQuadFace.d.ts +0 -0
- /package/Voxels/{Models/Rules/Classes → Functions/Geometry/Rules}/OcclusionTriangleFace.d.ts +0 -0
- /package/Voxels/{Models/Indexing → Geometry}/VoxelRelativeCubeIndex.d.ts +0 -0
- /package/Voxels/{Models/Indexing → Geometry}/VoxelRelativeCubeIndex.js +0 -0
|
@@ -1,74 +1,64 @@
|
|
|
1
1
|
import { VoxelModelConstructorRegister } from "./VoxelModelConstructorRegister";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { VoxelModelEffect } from "./VoxelModelEffect";
|
|
5
|
-
import { CondtionalTreeReader } from "../../../Voxels/State/CondiotnalTreeReader";
|
|
2
|
+
import { VoxelLUT } from "../../../Voxels/Data/VoxelLUT";
|
|
3
|
+
import { GeometryLUT } from "../../../Voxels/Data/GeometryLUT";
|
|
6
4
|
export class VoxelConstructor {
|
|
7
5
|
id;
|
|
8
6
|
builder;
|
|
9
|
-
data;
|
|
10
7
|
isModel = true;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
modTree;
|
|
14
|
-
baseInputMap;
|
|
15
|
-
conditonalInputMap;
|
|
16
|
-
schema;
|
|
17
|
-
effects;
|
|
18
|
-
stateTree;
|
|
19
|
-
condtioanlShapeStateTree;
|
|
20
|
-
constructor(id, builder, data, voxleData) {
|
|
8
|
+
// effects: VoxelModelEffect;
|
|
9
|
+
constructor(id, builder) {
|
|
21
10
|
this.id = id;
|
|
22
11
|
this.builder = builder;
|
|
23
|
-
this.
|
|
24
|
-
this.baseInputMap = voxleData.baseGeometryInputMap;
|
|
25
|
-
this.conditonalInputMap = voxleData.condiotnalGeometryInputMap;
|
|
26
|
-
this.schema = new StateSchema(data.schema);
|
|
27
|
-
this.stateTree = new StateTreeReader(this.schema, 0, data.stateTree);
|
|
28
|
-
this.condtioanlShapeStateTree = new CondtionalTreeReader(this.schema, data.condiotnalStatements, data.condiotnalStateTree);
|
|
29
|
-
this.modSchema = new StateSchema(voxleData.modSchema);
|
|
30
|
-
this.modTree = new StateTreeReader(this.modSchema, 0, voxleData.modStateTree);
|
|
31
|
-
this.effects = new VoxelModelEffect(this);
|
|
12
|
+
// this.effects = new VoxelModelEffect(this);
|
|
32
13
|
}
|
|
33
14
|
process() {
|
|
34
15
|
let added = false;
|
|
35
16
|
const builder = this.builder;
|
|
36
17
|
const hashed = builder.space.getHash(builder.nVoxel, builder.position.x, builder.position.y, builder.position.z);
|
|
37
|
-
const
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
18
|
+
const trueVoxelId = builder.voxel.getVoxelId();
|
|
19
|
+
const voxelId = builder.space.voxelCache[hashed];
|
|
20
|
+
const reltionalVoxelId = builder.space.reltionalVoxelCache[hashed];
|
|
21
|
+
const geomtriesIndex = VoxelLUT.getGeometryIndex(voxelId, reltionalVoxelId);
|
|
22
|
+
const geomtries = GeometryLUT.geometryIndex[geomtriesIndex];
|
|
23
|
+
const inputsIndex = VoxelLUT.getGeometryInputIndex(voxelId, reltionalVoxelId);
|
|
24
|
+
const inputs = GeometryLUT.geometryInputsIndex[inputsIndex];
|
|
25
|
+
const geometriesLength = geomtries.length;
|
|
26
|
+
for (let i = 0; i < geometriesLength; i++) {
|
|
27
|
+
const nodeId = geomtries[i];
|
|
28
|
+
const inputsIndex = inputs[i];
|
|
29
|
+
const geoInputs = GeometryLUT.geometryInputs[inputsIndex];
|
|
30
|
+
const geometry = VoxelModelConstructorRegister.geometry[nodeId];
|
|
31
|
+
const nodesLength = geometry.nodes.length;
|
|
32
|
+
for (let k = 0; k < nodesLength; k++) {
|
|
33
|
+
const geo = geometry.nodes[k];
|
|
34
|
+
geo.builder = this.builder;
|
|
35
|
+
const addedGeo = geo.add(geoInputs[k]);
|
|
36
|
+
if (addedGeo)
|
|
37
|
+
added = true;
|
|
56
38
|
}
|
|
57
39
|
}
|
|
58
|
-
const
|
|
59
|
-
if (
|
|
60
|
-
const
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
const
|
|
65
|
-
|
|
40
|
+
const conditioanlNodes = VoxelLUT.getConditionalGeometryNodes(trueVoxelId);
|
|
41
|
+
if (conditioanlNodes) {
|
|
42
|
+
const modelState = VoxelLUT.voxelIdToModelState[voxelId];
|
|
43
|
+
const reltionalState = builder.space.reltionalStateCache[hashed];
|
|
44
|
+
const nodesLength = conditioanlNodes.length;
|
|
45
|
+
for (let i = 0; i < nodesLength; i++) {
|
|
46
|
+
const [geoId, requiredModelState, requiredModelReltionalState] = conditioanlNodes[i];
|
|
47
|
+
if (requiredModelState !== modelState ||
|
|
48
|
+
!requiredModelReltionalState[reltionalState])
|
|
49
|
+
continue;
|
|
50
|
+
const geomtries = GeometryLUT.geometryIndex[geoId];
|
|
51
|
+
const inputsIndex = VoxelLUT.getConditionalGeometryInputIndex(geoId, voxelId, reltionalVoxelId);
|
|
52
|
+
const inputs = GeometryLUT.geometryInputsIndex[inputsIndex];
|
|
53
|
+
const geometriesLength = geomtries.length;
|
|
66
54
|
for (let i = 0; i < geometriesLength; i++) {
|
|
67
|
-
const
|
|
68
|
-
const
|
|
69
|
-
const
|
|
55
|
+
const nodeId = geomtries[i];
|
|
56
|
+
const inputsIndex = inputs[i];
|
|
57
|
+
const geoInputs = GeometryLUT.geometryInputs[inputsIndex];
|
|
58
|
+
const geometry = VoxelModelConstructorRegister.geometry[nodeId];
|
|
59
|
+
const nodesLength = geometry.nodes.length;
|
|
70
60
|
for (let k = 0; k < nodesLength; k++) {
|
|
71
|
-
const geo =
|
|
61
|
+
const geo = geometry.nodes[k];
|
|
72
62
|
geo.builder = this.builder;
|
|
73
63
|
const addedGeo = geo.add(geoInputs[k]);
|
|
74
64
|
if (addedGeo)
|
|
@@ -77,7 +67,11 @@ export class VoxelConstructor {
|
|
|
77
67
|
}
|
|
78
68
|
}
|
|
79
69
|
}
|
|
80
|
-
this.effects.addEffects(
|
|
70
|
+
/* this.effects.addEffects(
|
|
71
|
+
builder.voxel.getState(),
|
|
72
|
+
builder.origin,
|
|
73
|
+
builder.effects
|
|
74
|
+
); */
|
|
81
75
|
builder.clearCalculatedData();
|
|
82
76
|
return added;
|
|
83
77
|
}
|
|
@@ -5,18 +5,15 @@ export declare class VoxelGeometryBuilderCacheSpace {
|
|
|
5
5
|
bounds: Vector3Like;
|
|
6
6
|
foundHash: Uint8Array;
|
|
7
7
|
voxelCache: Uint16Array;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
trueVoxelCache: Uint16Array;
|
|
9
|
+
reltionalVoxelCache: Uint16Array;
|
|
10
|
+
reltionalStateCache: Uint16Array;
|
|
11
11
|
noCastAO: Uint8Array;
|
|
12
12
|
offset: Vec3Array;
|
|
13
13
|
voxelCursor: VoxelCursor;
|
|
14
14
|
constructor(bounds: Vector3Like);
|
|
15
15
|
start(x: number, y: number, z: number): void;
|
|
16
16
|
getIndex(x: number, y: number, z: number): number;
|
|
17
|
-
getConstructor(index: number): import("./VoxelConstructor").VoxelConstructor | null;
|
|
18
|
-
getGeomtry(index: number): number[] | null;
|
|
19
|
-
getConditionalGeomtry(index: number): number[][] | null;
|
|
20
17
|
getHash(dataCursor: DataCursorInterface, x: number, y: number, z: number): number;
|
|
21
18
|
private hashState;
|
|
22
19
|
}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
import { VoxelModelConstructorRegister } from "./VoxelModelConstructorRegister";
|
|
2
1
|
import { VoxelCursor } from "../../../Voxels/Cursor/VoxelCursor";
|
|
3
2
|
import { GetYXZOrderArrayIndex } from "../../../Math/Indexing";
|
|
3
|
+
import { VoxelSchemas } from "../../../Voxels/State/VoxelSchemas";
|
|
4
|
+
import { VoxelLUT } from "../../../Voxels/Data/VoxelLUT";
|
|
4
5
|
export class VoxelGeometryBuilderCacheSpace {
|
|
5
6
|
bounds;
|
|
6
7
|
foundHash;
|
|
8
|
+
//cache of the voxel ids
|
|
7
9
|
voxelCache;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
//cache of the true voxel ids
|
|
11
|
+
trueVoxelCache;
|
|
12
|
+
//cache of the reltional voxel ids
|
|
13
|
+
reltionalVoxelCache;
|
|
14
|
+
//cache of the reltional state
|
|
15
|
+
reltionalStateCache;
|
|
11
16
|
noCastAO;
|
|
12
17
|
offset = [0, 0, 0];
|
|
13
18
|
voxelCursor = new VoxelCursor();
|
|
@@ -16,9 +21,9 @@ export class VoxelGeometryBuilderCacheSpace {
|
|
|
16
21
|
const volume = bounds.x * bounds.y * bounds.z;
|
|
17
22
|
this.foundHash = new Uint8Array(volume);
|
|
18
23
|
this.voxelCache = new Uint16Array(volume);
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
24
|
+
this.trueVoxelCache = new Uint16Array(volume);
|
|
25
|
+
this.reltionalVoxelCache = new Uint16Array(volume);
|
|
26
|
+
this.reltionalStateCache = new Uint16Array(volume);
|
|
22
27
|
this.noCastAO = new Uint8Array(volume);
|
|
23
28
|
}
|
|
24
29
|
start(x, y, z) {
|
|
@@ -27,29 +32,14 @@ export class VoxelGeometryBuilderCacheSpace {
|
|
|
27
32
|
this.offset[2] = z;
|
|
28
33
|
this.foundHash.fill(0);
|
|
29
34
|
this.voxelCache.fill(0);
|
|
30
|
-
this.
|
|
31
|
-
this.
|
|
32
|
-
this.
|
|
35
|
+
this.trueVoxelCache.fill(0);
|
|
36
|
+
this.reltionalVoxelCache.fill(0);
|
|
37
|
+
this.reltionalStateCache.fill(0);
|
|
33
38
|
this.noCastAO.fill(0);
|
|
34
39
|
}
|
|
35
40
|
getIndex(x, y, z) {
|
|
36
41
|
return GetYXZOrderArrayIndex(x - this.offset[0], y - this.offset[1], z - this.offset[2], this.bounds.x, this.bounds.y, this.bounds.z);
|
|
37
42
|
}
|
|
38
|
-
getConstructor(index) {
|
|
39
|
-
if (this.foundHash[index] < 2)
|
|
40
|
-
return null;
|
|
41
|
-
return VoxelModelConstructorRegister.constructorsPaltte[this.voxelCache[index]];
|
|
42
|
-
}
|
|
43
|
-
getGeomtry(index) {
|
|
44
|
-
if (this.foundHash[index] < 2)
|
|
45
|
-
return null;
|
|
46
|
-
return VoxelModelConstructorRegister.constructorsPaltte[this.voxelCache[index]].data.stateGeometryMap[this.stateCache[index]];
|
|
47
|
-
}
|
|
48
|
-
getConditionalGeomtry(index) {
|
|
49
|
-
if (this.foundHash[index] < 2)
|
|
50
|
-
return null;
|
|
51
|
-
return VoxelModelConstructorRegister.constructorsPaltte[this.voxelCache[index]].data.condiotanlGeometryStatePalette[this.conditonalStateCache[index]];
|
|
52
|
-
}
|
|
53
43
|
getHash(dataCursor, x, y, z) {
|
|
54
44
|
const hashed = this.getIndex(x, y, z);
|
|
55
45
|
if (this.foundHash[hashed] == 0) {
|
|
@@ -67,29 +57,35 @@ export class VoxelGeometryBuilderCacheSpace {
|
|
|
67
57
|
this.foundHash[index] = 1;
|
|
68
58
|
return;
|
|
69
59
|
}
|
|
70
|
-
const
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
this.foundHash[index] = 1;
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
60
|
+
const trueVoxelId = voxel.getVoxelId();
|
|
61
|
+
const voxelId = voxel.getId();
|
|
62
|
+
this.trueVoxelCache[index] = trueVoxelId;
|
|
76
63
|
this.voxelCache[index] = voxelId;
|
|
77
64
|
this.foundHash[index] = 2;
|
|
78
65
|
//no ao
|
|
79
66
|
this.noCastAO[index] = voxel.isLightSource() || voxel.noAO() ? 1 : 0;
|
|
80
|
-
//state
|
|
81
|
-
const state = voxelConstructor.stateTree.getState(voxel.getState());
|
|
82
|
-
this.stateCache[index] = state;
|
|
83
|
-
//mod
|
|
84
|
-
const mod = voxelConstructor.modTree.getState(voxel.getMod());
|
|
85
|
-
this.modCache[index] = mod;
|
|
86
67
|
this.voxelCursor.copy(voxel).process();
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
68
|
+
const reltioanlBuilder = VoxelSchemas.reltionalStateBuilder.get(VoxelLUT.models.getStringId(VoxelLUT.modelsIndex[trueVoxelId]));
|
|
69
|
+
reltioanlBuilder.position.x = x;
|
|
70
|
+
reltioanlBuilder.position.y = y;
|
|
71
|
+
reltioanlBuilder.position.z = z;
|
|
72
|
+
reltioanlBuilder.voxel = this.voxelCursor;
|
|
73
|
+
reltioanlBuilder.dataCursor = dataCursor;
|
|
74
|
+
const reltionalState = reltioanlBuilder.buildState();
|
|
75
|
+
this.reltionalStateCache[index] = reltionalState;
|
|
76
|
+
const reltioanlModBuilder = VoxelSchemas.reltionalModBuilder.get(VoxelLUT.voxelIds.getStringId(trueVoxelId));
|
|
77
|
+
let reltionalMod = 0;
|
|
78
|
+
if (reltioanlModBuilder) {
|
|
79
|
+
reltioanlModBuilder.position.x = x;
|
|
80
|
+
reltioanlModBuilder.position.y = y;
|
|
81
|
+
reltioanlModBuilder.position.z = z;
|
|
82
|
+
reltioanlModBuilder.voxel = this.voxelCursor;
|
|
83
|
+
reltioanlModBuilder.dataCursor = dataCursor;
|
|
84
|
+
reltionalMod = reltioanlModBuilder.buildState();
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
this.reltionalVoxelCache[index] = 0;
|
|
88
|
+
}
|
|
89
|
+
this.reltionalVoxelCache[index] = VoxelLUT.getReltionalVoxelId(trueVoxelId, reltionalState, reltionalMod);
|
|
94
90
|
}
|
|
95
91
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { QuadScalarVertexData } from "../../
|
|
1
|
+
import { QuadScalarVertexData } from "../../Geometry/Primitives/QuadVertexData";
|
|
2
2
|
import { VoxelFaces } from "../../../Math";
|
|
3
|
-
import { QuadVerticies } from "../../
|
|
4
|
-
import { ProtoMesh } from "../../
|
|
5
|
-
import { VoxelMeshBVHBuilder } from "../
|
|
3
|
+
import { QuadVerticies } from "../../Geometry/Geometry.types";
|
|
4
|
+
import { ProtoMesh } from "../../Geometry/Proto/ProtoMesh";
|
|
5
|
+
import { VoxelMeshBVHBuilder } from "../Geometry/VoxelMeshBVHBuilder";
|
|
6
6
|
import { Vec3Array, Vector3Like, Vector4Like } from "@amodx/math";
|
|
7
7
|
import { VoxelCursorInterface } from "../../../Voxels/Cursor/VoxelCursor.interface.js";
|
|
8
8
|
import { DataCursorInterface } from "../../../Voxels/Cursor/DataCursor.interface.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
//tools
|
|
2
2
|
//data
|
|
3
|
-
import { QuadScalarVertexData } from "../../
|
|
3
|
+
import { QuadScalarVertexData } from "../../Geometry/Primitives/QuadVertexData";
|
|
4
4
|
import { VoxelFaces, VoxelFacesArray } from "../../../Math";
|
|
5
|
-
import { QuadVerticies } from "../../
|
|
5
|
+
import { QuadVerticies } from "../../Geometry/Geometry.types";
|
|
6
6
|
import calculateFaceData from "./Common/Calc/FaceDataCalc.js";
|
|
7
|
-
import { ProtoMesh } from "../../
|
|
7
|
+
import { ProtoMesh } from "../../Geometry/Proto/ProtoMesh";
|
|
8
8
|
import { Vector3Like, Vector4Like } from "@amodx/math";
|
|
9
|
-
import { VoxelMeshVertexStructCursor } from "../
|
|
9
|
+
import { VoxelMeshVertexStructCursor } from "../Geometry/VoxelMeshVertexStructCursor";
|
|
10
10
|
class VoxelVars {
|
|
11
11
|
textureIndex = 0;
|
|
12
12
|
overlayTextures = Vector4Like.Create();
|
|
@@ -1,27 +1,14 @@
|
|
|
1
|
-
import { StringPalette } from "../../../Util/StringPalette";
|
|
2
|
-
import { CompiledVoxelGeometrySyncData, CompiledVoxelModelData } from "../../../Voxels/Models/CompiledVoxelModel.types";
|
|
3
1
|
import { GeoemtryNodeConstructor } from "./Nodes/GeometryNode";
|
|
4
2
|
import { VoxelConstructor } from "./VoxelConstructor";
|
|
5
3
|
import { VoxelGeometryConstructor } from "./Nodes/VoxelGeometryConstructor";
|
|
6
|
-
import { AOOcclusionFaceIndex } from "../../../Voxels/Models/Indexing/AOOcclusionFaceIndex";
|
|
7
|
-
import { CulledOcclusionFaceIndex } from "../../../Voxels/Models/Indexing/CulledOcclusionFaceIndex";
|
|
8
4
|
export declare class VoxelModelConstructorRegister {
|
|
9
|
-
static geometryPalette: StringPalette;
|
|
10
5
|
static geometry: VoxelGeometryConstructor[];
|
|
11
|
-
static rulesless: boolean[];
|
|
12
|
-
static aoIndex: AOOcclusionFaceIndex;
|
|
13
|
-
static faceCullIndex: CulledOcclusionFaceIndex;
|
|
14
|
-
static vertexHitMap: number[][][];
|
|
15
|
-
static faceCullMap: number[][];
|
|
16
|
-
static setGeometryPalette(palette: string[]): void;
|
|
17
|
-
static modelData: Map<string, CompiledVoxelModelData>;
|
|
18
6
|
static customNodes: Map<string, GeoemtryNodeConstructor<any, any>>;
|
|
19
|
-
static registerModels(models: CompiledVoxelModelData[]): void;
|
|
20
7
|
static registerCustomNode(id: string, node: GeoemtryNodeConstructor<any, any>): void;
|
|
21
8
|
static getCustomNode(id: string): GeoemtryNodeConstructor<any, any>;
|
|
22
9
|
static constructorsPaltte: VoxelConstructor[];
|
|
23
10
|
static constructors: Map<string, VoxelConstructor>;
|
|
24
11
|
static getConstructor(id: string): VoxelConstructor;
|
|
25
12
|
static registerVoxel(voxel: VoxelConstructor | VoxelConstructor[]): void;
|
|
26
|
-
static
|
|
13
|
+
static init(): void;
|
|
27
14
|
}
|
|
@@ -1,22 +1,9 @@
|
|
|
1
|
-
import { StringPalette } from "../../../Util/StringPalette";
|
|
2
1
|
import { VoxelGeometryConstructor } from "./Nodes/VoxelGeometryConstructor";
|
|
3
|
-
import {
|
|
2
|
+
import { VoxelLUT } from "../../../Voxels/Data/VoxelLUT";
|
|
3
|
+
import { GeometryLUT } from "../../../Voxels/Data/GeometryLUT";
|
|
4
4
|
export class VoxelModelConstructorRegister {
|
|
5
|
-
static geometryPalette;
|
|
6
5
|
static geometry = [];
|
|
7
|
-
static rulesless = [];
|
|
8
|
-
static aoIndex;
|
|
9
|
-
static faceCullIndex;
|
|
10
|
-
static vertexHitMap;
|
|
11
|
-
static faceCullMap;
|
|
12
|
-
static setGeometryPalette(palette) {
|
|
13
|
-
this.geometryPalette = new StringPalette(palette);
|
|
14
|
-
}
|
|
15
|
-
static modelData = new Map();
|
|
16
6
|
static customNodes = new Map();
|
|
17
|
-
static registerModels(models) {
|
|
18
|
-
models.forEach((_) => this.modelData.set(_.id, _));
|
|
19
|
-
}
|
|
20
7
|
static registerCustomNode(id, node) {
|
|
21
8
|
this.customNodes.set(id, node);
|
|
22
9
|
}
|
|
@@ -35,17 +22,16 @@ export class VoxelModelConstructorRegister {
|
|
|
35
22
|
if (Array.isArray(voxel)) {
|
|
36
23
|
for (const vox of voxel) {
|
|
37
24
|
this.constructors.set(vox.id, vox);
|
|
38
|
-
this.constructorsPaltte[
|
|
25
|
+
this.constructorsPaltte[VoxelLUT.voxelIds.getNumberId(vox.id)] = vox;
|
|
39
26
|
}
|
|
40
27
|
return;
|
|
41
28
|
}
|
|
42
|
-
this.constructorsPaltte[
|
|
29
|
+
this.constructorsPaltte[VoxelLUT.voxelIds.getNumberId(voxel.id)] = voxel;
|
|
43
30
|
this.constructors.set(voxel.id, voxel);
|
|
44
31
|
}
|
|
45
|
-
static
|
|
46
|
-
for (
|
|
47
|
-
|
|
48
|
-
this.geometry[paletteId] = new VoxelGeometryConstructor(paletteId, geometry);
|
|
32
|
+
static init() {
|
|
33
|
+
for (let i = 0; i < GeometryLUT.compiledGeometry.length; i++) {
|
|
34
|
+
this.geometry[i] = new VoxelGeometryConstructor(i);
|
|
49
35
|
}
|
|
50
36
|
}
|
|
51
37
|
}
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
import { VoxelConstructor } from "./VoxelConstructor";
|
|
2
|
-
import {
|
|
3
|
-
import { Vec3Array, Vector3Like } from "@amodx/math";
|
|
2
|
+
import { Vector3Like } from "@amodx/math";
|
|
4
3
|
export declare class VoxelModelEffect {
|
|
5
4
|
model: VoxelConstructor;
|
|
6
|
-
effects: {
|
|
7
|
-
id: string;
|
|
8
|
-
reader: StateTreeReader;
|
|
9
|
-
palette: Vec3Array[][];
|
|
10
|
-
}[];
|
|
11
5
|
constructor(model: VoxelConstructor);
|
|
12
6
|
addEffects(state: number, origin: Vector3Like, effects: Record<string, number[]>): void;
|
|
13
7
|
}
|
|
@@ -1,43 +1,40 @@
|
|
|
1
|
-
import { StateTreeReader } from "../../../Voxels/State/StateTreeReader";
|
|
2
1
|
export class VoxelModelEffect {
|
|
3
2
|
model;
|
|
4
|
-
effects
|
|
3
|
+
/* effects: { id: string; reader: StateTreeReader; palette: Vec3Array[][] }[] =
|
|
4
|
+
[]; */
|
|
5
5
|
constructor(model) {
|
|
6
6
|
this.model = model;
|
|
7
|
-
for (const effect of model.data.effects) {
|
|
7
|
+
/* for (const effect of model.data.effects) {
|
|
8
8
|
if (effect.type == "fx-points") {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
this.effects.push({
|
|
10
|
+
id: effect.effectId,
|
|
11
|
+
reader: new StateTreeReader(model.schema, 0, effect.tree),
|
|
12
|
+
palette: effect.treePalette,
|
|
13
|
+
});
|
|
14
14
|
}
|
|
15
|
-
|
|
15
|
+
} */
|
|
16
16
|
}
|
|
17
17
|
addEffects(state, origin, effects) {
|
|
18
|
-
if (!this.effects.length)
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (!array) {
|
|
18
|
+
/* if (!this.effects.length) return;
|
|
19
|
+
for (let i = 0; i < this.effects.length; i++) {
|
|
20
|
+
const e = this.effects[i];
|
|
21
|
+
let array = effects[e.id];
|
|
22
|
+
if (!array) {
|
|
24
23
|
array = [];
|
|
25
24
|
effects[e.id] = array;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
let start = array.length;
|
|
34
|
-
for (let i = 0; i < v.length; i++) {
|
|
25
|
+
}
|
|
26
|
+
const effectState = e.reader.getState(state);
|
|
27
|
+
if (effectState == -1) continue;
|
|
28
|
+
const v = e.palette[effectState];
|
|
29
|
+
if (!v) continue;
|
|
30
|
+
let start = array.length;
|
|
31
|
+
for (let i = 0; i < v.length; i++) {
|
|
35
32
|
const point = v[i];
|
|
36
33
|
array[start] = origin.x + point[0];
|
|
37
34
|
array[start + 1] = origin.y + point[1];
|
|
38
35
|
array[start + 2] = origin.z + point[2];
|
|
39
36
|
start += 3;
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
}
|
|
38
|
+
} */
|
|
42
39
|
}
|
|
43
40
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SectionMesh } from "./SectionMesh";
|
|
2
|
-
import { CompactedSectionVoxelMesh } from "../../Mesher/Voxels/
|
|
2
|
+
import { CompactedSectionVoxelMesh } from "../../Mesher/Voxels/Geometry/CompactedSectionVoxelMesh";
|
|
3
3
|
export declare abstract class DVESectionMeshes {
|
|
4
4
|
abstract updateVertexData(section: SectionMesh, data: CompactedSectionVoxelMesh): SectionMesh;
|
|
5
5
|
abstract returnMesh(mesh: any): void;
|
package/Renderer/MeshManager.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MeshRegister } from "./MeshRegister.js";
|
|
2
|
-
import { CompactedSectionVoxelMesh } from "../Mesher/Voxels/
|
|
2
|
+
import { CompactedSectionVoxelMesh } from "../Mesher/Voxels/Geometry/CompactedSectionVoxelMesh";
|
|
3
3
|
const added = new Set();
|
|
4
4
|
const compacted = new CompactedSectionVoxelMesh();
|
|
5
5
|
const location = [0, 0, 0, 0];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Vector3Like } from "@amodx/math";
|
|
1
|
+
import { Vec2Array, Vector3Like } from "@amodx/math";
|
|
2
2
|
export interface MesherSettingsData {
|
|
3
3
|
}
|
|
4
4
|
export declare class MesherSettingsData {
|
|
@@ -16,6 +16,7 @@ export declare class RenderSettingsData {
|
|
|
16
16
|
/**Renderer will not dispose of buffers to keep them renderering. */
|
|
17
17
|
cpuBound: boolean;
|
|
18
18
|
bufferMode: "single" | "multi";
|
|
19
|
+
textureSize: Vec2Array;
|
|
19
20
|
}
|
|
20
21
|
export interface UpdatingSettings {
|
|
21
22
|
}
|
|
@@ -13,6 +13,7 @@ export class RenderSettingsData {
|
|
|
13
13
|
cpuBound = false;
|
|
14
14
|
/* Single buffer mode will store vertex and indicies in single big buffer. While multi will store a buffer for each section mesh.*/
|
|
15
15
|
bufferMode = "multi";
|
|
16
|
+
textureSize = [16, 16];
|
|
16
17
|
}
|
|
17
18
|
export class UpdatingSettings {
|
|
18
19
|
/**Sector sections are marked as dirty so they can be processed later. */
|
package/Stats/EngineStats.d.ts
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
declare class
|
|
2
|
-
/**The total
|
|
1
|
+
declare class GeometryStats {
|
|
2
|
+
/**The total geometry faces */
|
|
3
3
|
faces: number;
|
|
4
4
|
}
|
|
5
5
|
declare class PaletteStats {
|
|
6
6
|
/**The final voxel palette id size. */
|
|
7
7
|
paletteSize: number;
|
|
8
|
+
/**The final reltional voxel palette id size. */
|
|
9
|
+
reltionalPaletteSize: number;
|
|
8
10
|
}
|
|
9
11
|
/**
|
|
10
12
|
* Stores data from the results of the engine building data and other things.
|
|
11
13
|
*/
|
|
12
14
|
export declare class EngineStats {
|
|
13
15
|
/** Stats to do with the vlox model system. */
|
|
14
|
-
static
|
|
16
|
+
static geometry: GeometryStats;
|
|
15
17
|
/** Stats to do with the vloxel palette system. */
|
|
16
18
|
static palette: PaletteStats;
|
|
17
19
|
static log(): string;
|
package/Stats/EngineStats.js
CHANGED
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
class
|
|
2
|
-
/**The total
|
|
1
|
+
class GeometryStats {
|
|
2
|
+
/**The total geometry faces */
|
|
3
3
|
faces = 0;
|
|
4
4
|
}
|
|
5
5
|
class PaletteStats {
|
|
6
6
|
/**The final voxel palette id size. */
|
|
7
7
|
paletteSize = 0;
|
|
8
|
+
/**The final reltional voxel palette id size. */
|
|
9
|
+
reltionalPaletteSize = 0;
|
|
8
10
|
}
|
|
9
11
|
/**
|
|
10
12
|
* Stores data from the results of the engine building data and other things.
|
|
11
13
|
*/
|
|
12
14
|
export class EngineStats {
|
|
13
15
|
/** Stats to do with the vlox model system. */
|
|
14
|
-
static
|
|
16
|
+
static geometry = new GeometryStats();
|
|
15
17
|
/** Stats to do with the vloxel palette system. */
|
|
16
18
|
static palette = new PaletteStats();
|
|
17
19
|
static log() {
|
|
18
20
|
let output = "DVE Stats\n";
|
|
19
|
-
//
|
|
20
|
-
output += "
|
|
21
|
-
output += `Faces: ${this.
|
|
21
|
+
//geometry
|
|
22
|
+
output += "Geometry\n";
|
|
23
|
+
output += `Faces: ${this.geometry.faces}\n`;
|
|
22
24
|
//palettes
|
|
23
25
|
output += "Palette\n";
|
|
24
26
|
output += `Paltte Size: ${this.palette.paletteSize}\n`;
|
|
@@ -5,7 +5,7 @@ import { NumberPalette } from "../../Util/NumberPalette";
|
|
|
5
5
|
import { IVoxelTemplate } from "../../Templates/VoxelTemplates.types";
|
|
6
6
|
import { BinaryBuffer } from "../../Util/BinaryBuffer/index";
|
|
7
7
|
import { VoxelPaletteArchiveReader } from "../../Voxels/Archive/VoxelPaletteArchiveReader";
|
|
8
|
-
import { BoundingBox } from "@amodx/math/
|
|
8
|
+
import { BoundingBox } from "@amodx/math/Geometry/Bounds/BoundingBox";
|
|
9
9
|
type TemplateCursor = {
|
|
10
10
|
position: Vec3Array;
|
|
11
11
|
raw: RawVoxelData;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Flat3DIndex, Vector3Like } from "@amodx/math";
|
|
2
2
|
import { NumberPalette } from "../../Util/NumberPalette";
|
|
3
|
-
import {
|
|
3
|
+
import { VoxelLUT } from "../../Voxels/Data/VoxelLUT";
|
|
4
4
|
import { VoxelTagsRegister } from "../../Voxels/Data/VoxelTagsRegister";
|
|
5
5
|
import { BinaryBuffer, BinaryBufferFormat, } from "../../Util/BinaryBuffer/index";
|
|
6
6
|
import { VoxelPaletteArchiveReader } from "../../Voxels/Archive/VoxelPaletteArchiveReader";
|
|
7
|
-
import { BoundingBox } from "@amodx/math/
|
|
7
|
+
import { BoundingBox } from "@amodx/math/Geometry/Bounds/BoundingBox";
|
|
8
8
|
const point = Vector3Like.Create();
|
|
9
9
|
export class ArchivedVoxelTemplate {
|
|
10
10
|
index = Flat3DIndex.GetXZYOrder();
|
|
@@ -35,7 +35,7 @@ export class ArchivedVoxelTemplate {
|
|
|
35
35
|
return this.index.getIndexXYZ(x, y, z);
|
|
36
36
|
}
|
|
37
37
|
getId(index) {
|
|
38
|
-
return
|
|
38
|
+
return VoxelLUT.getVoxelIdFromString(...this.voxelPalette.getVoxelData(this.ids.getValue(index)));
|
|
39
39
|
}
|
|
40
40
|
getLevel(index) {
|
|
41
41
|
return this.levelPalette.getValue(this.level.getValue(index));
|
|
@@ -45,9 +45,9 @@ export class ArchivedVoxelTemplate {
|
|
|
45
45
|
}
|
|
46
46
|
getSecondary(index) {
|
|
47
47
|
const id = this.getId(index);
|
|
48
|
-
const trueId =
|
|
48
|
+
const trueId = VoxelLUT.voxels[id][0];
|
|
49
49
|
if (VoxelTagsRegister.VoxelTags[trueId]["dve_can_have_secondary"]) {
|
|
50
|
-
return
|
|
50
|
+
return VoxelLUT.getVoxelIdFromString(...this.voxelPalette.getVoxelData(this.secondaryPalette.getValue(this.secondary.getValue(index))));
|
|
51
51
|
}
|
|
52
52
|
return 0;
|
|
53
53
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ArchivedVoxelTemplate } from "../ArchivedVoxelTemplate";
|
|
2
2
|
import { DataCursorInterface } from "../../../Voxels/Cursor/DataCursor.interface";
|
|
3
|
-
import { BoundsMinMaxData } from "@amodx/math/
|
|
3
|
+
import { BoundsMinMaxData } from "@amodx/math/Geometry/Bounds/BoundsInterface";
|
|
4
4
|
/**
|
|
5
5
|
* Creates an archived template using the passed in the data cursor.
|
|
6
6
|
* @param dimension
|