@divinevoxel/vlox 0.0.78 → 0.0.80
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,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { VoxelLUT } from "../../../../../Voxels/Data/VoxelLUT";
|
|
2
|
+
import { GeometryLUT } from "../../../../../Voxels/Data/GeometryLUT";
|
|
3
|
+
import { VoxelRelativeCubeIndexPositionMap } from "../../../../../Voxels/Geometry/VoxelRelativeCubeIndex";
|
|
3
4
|
export function CullRulledFace(builder, trueFaceIndex) {
|
|
4
|
-
const faceIndexes =
|
|
5
|
+
const faceIndexes = GeometryLUT.faceCullMap[trueFaceIndex];
|
|
5
6
|
if (!faceIndexes)
|
|
6
7
|
return true;
|
|
7
8
|
for (let i = 0; i < faceIndexes.length; i++) {
|
|
@@ -10,47 +11,57 @@ export function CullRulledFace(builder, trueFaceIndex) {
|
|
|
10
11
|
const hashed = builder.space.getHash(builder.nVoxel, builder.position.x + p[0], builder.position.y + p[1], builder.position.z + p[2]);
|
|
11
12
|
if (builder.space.foundHash[hashed] < 2)
|
|
12
13
|
continue;
|
|
13
|
-
const
|
|
14
|
-
const
|
|
14
|
+
const voxelStringId = VoxelLUT.voxelIds.getStringId(builder.space.trueVoxelCache[hashed]);
|
|
15
|
+
const voxelId = builder.space.voxelCache[hashed];
|
|
16
|
+
const reltionalVoxelId = builder.space.reltionalVoxelCache[hashed];
|
|
17
|
+
const geometryIndex = VoxelLUT.getGeometryIndex(voxelId, reltionalVoxelId);
|
|
18
|
+
const offsetBaseGometry = GeometryLUT.geometryIndex[geometryIndex];
|
|
15
19
|
if (offsetBaseGometry) {
|
|
16
20
|
for (let i = 0; i < offsetBaseGometry.length; i++) {
|
|
17
21
|
const geoId = offsetBaseGometry[i];
|
|
18
|
-
if (
|
|
22
|
+
if (GeometryLUT.rulelessIndex[geoId])
|
|
19
23
|
continue;
|
|
20
|
-
const cullingProcedure =
|
|
24
|
+
const cullingProcedure = GeometryLUT.geometryCullingProcedures[GeometryLUT.geometryCullingProceduresIndex[geoId]];
|
|
21
25
|
if (cullingProcedure.type == "transparent") {
|
|
22
|
-
if (
|
|
26
|
+
if (voxelStringId != builder.voxel.getStringId())
|
|
23
27
|
continue;
|
|
24
28
|
}
|
|
25
29
|
else {
|
|
26
30
|
if (cullingProcedure.type != "default")
|
|
27
31
|
continue;
|
|
28
32
|
}
|
|
29
|
-
if (
|
|
33
|
+
if (GeometryLUT.faceCullIndex.getValue(geoId, directionIndex, trueFaceIndex) == 1) {
|
|
30
34
|
return false;
|
|
31
35
|
}
|
|
32
36
|
}
|
|
33
37
|
}
|
|
34
|
-
const
|
|
38
|
+
const trueVoxelId = builder.space.trueVoxelCache[hashed];
|
|
39
|
+
const offsetConditonalGeometry = VoxelLUT.getConditionalGeometryNodes(trueVoxelId);
|
|
35
40
|
if (offsetConditonalGeometry) {
|
|
41
|
+
const modelState = VoxelLUT.voxelIdToModelState[voxelId];
|
|
42
|
+
const reltioanlModSeltate = builder.space.reltionalStateCache[hashed];
|
|
36
43
|
for (let i = 0; i < offsetConditonalGeometry.length; i++) {
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
44
|
+
const [geoId, requiredModelState, requiredReltionalModelState] = offsetConditonalGeometry[i];
|
|
45
|
+
if (requiredModelState !== modelState ||
|
|
46
|
+
!requiredReltionalModelState[reltioanlModSeltate])
|
|
47
|
+
continue;
|
|
48
|
+
const geomerties = GeometryLUT.geometryIndex[geoId];
|
|
49
|
+
for (let k = 0; k < geomerties.length; k++) {
|
|
50
|
+
const geoId = geomerties[k];
|
|
51
|
+
if (GeometryLUT.rulelessIndex[geoId])
|
|
41
52
|
continue;
|
|
42
|
-
const cullingProcedure =
|
|
53
|
+
const cullingProcedure = GeometryLUT.geometryCullingProcedures[GeometryLUT.geometryCullingProceduresIndex[geoId]];
|
|
43
54
|
if (cullingProcedure.type == "transparent") {
|
|
44
|
-
if (
|
|
55
|
+
if (voxelStringId != builder.voxel.getStringId())
|
|
45
56
|
continue;
|
|
46
57
|
}
|
|
47
58
|
else {
|
|
48
59
|
if (cullingProcedure.type != "default")
|
|
49
60
|
continue;
|
|
50
61
|
}
|
|
51
|
-
if (
|
|
62
|
+
if (GeometryLUT.rulelessIndex[geoId])
|
|
52
63
|
continue;
|
|
53
|
-
if (
|
|
64
|
+
if (GeometryLUT.faceCullIndex.getValue(geoId, directionIndex, trueFaceIndex) == 1)
|
|
54
65
|
return false;
|
|
55
66
|
}
|
|
56
67
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { QuadVerticies } from "../../../../
|
|
1
|
+
import { QuadVerticies } from "../../../../Geometry/Geometry.types";
|
|
2
2
|
import { VoxelModelBuilder } from "../../../Models/VoxelModelBuilder";
|
|
3
3
|
import { Vec4Array } from "@amodx/math";
|
|
4
4
|
export declare function ShadeRulelessFace(builder: VoxelModelBuilder, lightData: Record<QuadVerticies, number>, vertexWeights: Vec4Array[], verticesStride: number): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { VoxelModelBuilder } from "../../VoxelModelBuilder";
|
|
2
2
|
import { Vec4Array } from "@amodx/math";
|
|
3
|
-
import { QuadVerticies } from "../../../../
|
|
3
|
+
import { QuadVerticies } from "../../../../Geometry/Geometry.types";
|
|
4
4
|
export declare function ShadeRulledFace(builder: VoxelModelBuilder, trueFaceIndex: number, lightData: Record<QuadVerticies, number>, vertexWeights: Vec4Array[], vertexStride: number): void;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { VoxelRelativeCubeIndexPositionMap } from "../../../../../Voxels/
|
|
2
|
-
import {
|
|
1
|
+
import { VoxelRelativeCubeIndexPositionMap } from "../../../../../Voxels/Geometry/VoxelRelativeCubeIndex";
|
|
2
|
+
import { GeometryLUT } from "../../../../../Voxels/Data/GeometryLUT";
|
|
3
3
|
import { getInterpolationValue } from "../Calc/CalcConstants";
|
|
4
|
+
import { VoxelLUT } from "../../../../../Voxels/Data/VoxelLUT";
|
|
4
5
|
export function ShadeRulledFace(builder, trueFaceIndex, lightData, vertexWeights, vertexStride) {
|
|
5
6
|
const noAO = builder.voxel.isLightSource() || builder.voxel.noAO();
|
|
6
7
|
const worldLight = builder.vars.light;
|
|
@@ -10,7 +11,7 @@ export function ShadeRulledFace(builder, trueFaceIndex, lightData, vertexWeights
|
|
|
10
11
|
worldLight.vertices[v] = getInterpolationValue(lightData, vertexWeights[v]);
|
|
11
12
|
if (noAO)
|
|
12
13
|
continue;
|
|
13
|
-
const aoIndexes =
|
|
14
|
+
const aoIndexes = GeometryLUT.aoVertexHitMap[trueFaceIndex][v];
|
|
14
15
|
if (!aoIndexes)
|
|
15
16
|
continue;
|
|
16
17
|
for (let i = 0; i < aoIndexes.length; i++) {
|
|
@@ -20,16 +21,15 @@ export function ShadeRulledFace(builder, trueFaceIndex, lightData, vertexWeights
|
|
|
20
21
|
if (builder.space.foundHash[hashed] < 2 ||
|
|
21
22
|
builder.space.noCastAO[hashed] === 1)
|
|
22
23
|
continue;
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
const voxelId = builder.space.voxelCache[hashed];
|
|
25
|
+
const reltionalVoxelId = builder.space.reltionalVoxelCache[hashed];
|
|
26
|
+
const geometryIndex = VoxelLUT.getGeometryIndex(voxelId, reltionalVoxelId);
|
|
27
|
+
const baseGeo = GeometryLUT.geometryIndex[geometryIndex];
|
|
28
|
+
// if (!baseGeo && !conditonalGeo) continue;
|
|
28
29
|
let shaded = false;
|
|
29
30
|
if (baseGeo) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if (VoxelModelConstructorRegister.aoIndex.getValue(baseGeo[geoIndex], directionIndex, trueFaceIndex, v)) {
|
|
31
|
+
for (let geoIndex = 0; geoIndex < baseGeo.length; geoIndex++) {
|
|
32
|
+
if (GeometryLUT.aoIndex.getValue(baseGeo[geoIndex], directionIndex, trueFaceIndex, v)) {
|
|
33
33
|
worldAO.vertices[v]++;
|
|
34
34
|
if (worldAO.vertices[v] >= 3) {
|
|
35
35
|
shaded = true;
|
|
@@ -38,17 +38,27 @@ export function ShadeRulledFace(builder, trueFaceIndex, lightData, vertexWeights
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
if (
|
|
41
|
+
if (shaded)
|
|
42
42
|
continue;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
43
|
+
const trueVoxelId = builder.space.trueVoxelCache[hashed];
|
|
44
|
+
const offsetConditonalGeometry = VoxelLUT.getConditionalGeometryNodes(trueVoxelId);
|
|
45
|
+
if (offsetConditonalGeometry) {
|
|
46
|
+
const modelState = VoxelLUT.voxelIdToModelState[voxelId];
|
|
47
|
+
const reltioanlModSeltate = builder.space.reltionalStateCache[hashed];
|
|
48
|
+
for (let i = 0; i < offsetConditonalGeometry.length; i++) {
|
|
49
|
+
const [geoId, requiredModelState, requiredReltionalModelState] = offsetConditonalGeometry[i];
|
|
50
|
+
if (requiredModelState !== modelState ||
|
|
51
|
+
!requiredReltionalModelState[reltioanlModSeltate])
|
|
52
|
+
continue;
|
|
53
|
+
const geomerties = GeometryLUT.geometryIndex[geoId];
|
|
54
|
+
for (let geoIndex = 0; geoIndex < geomerties.length; geoIndex++) {
|
|
55
|
+
const geoId = geomerties[geoIndex];
|
|
56
|
+
if (GeometryLUT.aoIndex.getValue(geoId, directionIndex, trueFaceIndex, v)) {
|
|
57
|
+
worldAO.vertices[v]++;
|
|
58
|
+
if (worldAO.vertices[v] >= 3) {
|
|
59
|
+
shaded = true;
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
52
62
|
}
|
|
53
63
|
}
|
|
54
64
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseVoxelGeometryTextureProcedureData } from "../Procedures/TextureProcedure";
|
|
2
2
|
import { VoxelModelBuilder } from "../VoxelModelBuilder";
|
|
3
|
-
import { Quad } from "../../../
|
|
3
|
+
import { Quad } from "../../../Geometry";
|
|
4
4
|
import { VoxelFaces } from "../../../../Math";
|
|
5
|
-
import { Triangle } from "../../../
|
|
6
|
-
export declare function GetTexture(builder: VoxelModelBuilder, data: number |
|
|
5
|
+
import { Triangle } from "../../../Geometry";
|
|
6
|
+
export declare function GetTexture(builder: VoxelModelBuilder, data: number | BaseVoxelGeometryTextureProcedureData, closestFace: VoxelFaces, primitive: Quad | Triangle): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { VoxelModelBuilder } from "../../../VoxelModelBuilder";
|
|
2
|
-
import { QuadScalarVertexData } from "../../../../../
|
|
2
|
+
import { QuadScalarVertexData } from "../../../../../Geometry/Primitives/QuadVertexData";
|
|
3
3
|
import { CompassAngles } from "@amodx/math";
|
|
4
4
|
export declare enum FlowVerticies {
|
|
5
5
|
NorthEast = 0,
|
package/Mesher/Voxels/Models/Nodes/Custom/Liquid/{LiquidGeomtryNode.d.ts → LiquidGeometryNode.d.ts}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { GeoemtryNode } from "../../GeometryNode";
|
|
2
|
-
import {
|
|
2
|
+
import { VoxelCustomGeometryNode } from "../../../../../../Voxels/Geometry/VoxelGeometry.types";
|
|
3
3
|
import { VoxelFaces } from "../../../../../../Math";
|
|
4
4
|
import type { LiquidVoxelModelArgs } from "../../../../../../Voxels/Models/Defaults/LiquidVoxelModel";
|
|
5
|
-
export declare class LiquidGeometryNode extends GeoemtryNode<
|
|
5
|
+
export declare class LiquidGeometryNode extends GeoemtryNode<VoxelCustomGeometryNode, LiquidVoxelModelArgs> {
|
|
6
6
|
init(): void;
|
|
7
7
|
isExposed(face: VoxelFaces): boolean;
|
|
8
8
|
determineShading(face: VoxelFaces): void;
|
package/Mesher/Voxels/Models/Nodes/Custom/Liquid/{LiquidGeomtryNode.js → LiquidGeometryNode.js}
RENAMED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { GeoemtryNode } from "../../GeometryNode";
|
|
2
2
|
import { CompassAngles } from "@amodx/math";
|
|
3
|
-
import { Quad } from "../../../../../
|
|
4
|
-
import { QuadVerticies, } from "../../../../../
|
|
5
|
-
import { QuadScalarVertexData } from "../../../../../
|
|
3
|
+
import { Quad } from "../../../../../Geometry/Primitives/Quad";
|
|
4
|
+
import { QuadVerticies, } from "../../../../../Geometry/Geometry.types";
|
|
5
|
+
import { QuadScalarVertexData } from "../../../../../Geometry/Primitives/QuadVertexData";
|
|
6
6
|
import { VoxelFaceDirections, VoxelFaces } from "../../../../../../Math";
|
|
7
7
|
import { getFlowAngle, getFlowGradient, FlowVerticies } from "./FlowGradient";
|
|
8
8
|
import { VoxelLightData } from "../../../../../../Voxels/Cursor/VoxelLightData";
|
|
9
|
-
import { addVoxelQuad } from "../../../../
|
|
9
|
+
import { addVoxelQuad } from "../../../../Geometry/VoxelGeometryBuilder";
|
|
10
10
|
import { GetTexture } from "../../../Common/GetTexture";
|
|
11
|
-
import { Box } from "../../../../../
|
|
11
|
+
import { Box } from "../../../../../Geometry/Shapes/Box";
|
|
12
12
|
const vertexValue = new QuadScalarVertexData();
|
|
13
13
|
const vertexLevel = new QuadScalarVertexData();
|
|
14
14
|
const lightData = new VoxelLightData();
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Vec4Array } from "@amodx/math";
|
|
2
2
|
import { VoxelFaces } from "../../../../../Math";
|
|
3
|
-
import { Quad } from "../../../../
|
|
3
|
+
import { Quad } from "../../../../Geometry/Primitives/Quad";
|
|
4
4
|
import { GeoemtryNode } from "../GeometryNode";
|
|
5
|
-
import {
|
|
6
|
-
export declare class QuadVoxelGometryNode extends GeoemtryNode<
|
|
5
|
+
import { CompiledQuadVoxelGeometryNode, QuadVoxelGometryArgs } from "../Types/QuadVoxelGometryNodeTypes";
|
|
6
|
+
export declare class QuadVoxelGometryNode extends GeoemtryNode<CompiledQuadVoxelGeometryNode, QuadVoxelGometryArgs> {
|
|
7
7
|
quad: Quad;
|
|
8
8
|
vertexWeights: [Vec4Array, Vec4Array, Vec4Array, Vec4Array];
|
|
9
9
|
closestFace: VoxelFaces;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Quad } from "../../../../
|
|
2
|
-
import { addVoxelQuad } from "../../../
|
|
1
|
+
import { Quad } from "../../../../Geometry/Primitives/Quad";
|
|
2
|
+
import { addVoxelQuad } from "../../../Geometry/VoxelGeometryBuilder";
|
|
3
3
|
import { GeoemtryNode } from "../GeometryNode";
|
|
4
4
|
import { QuadVoxelGometryInputs, } from "../Types/QuadVoxelGometryNodeTypes";
|
|
5
5
|
import { GetTexture } from "../../Common/GetTexture";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Vec4Array } from "@amodx/math";
|
|
2
2
|
import { VoxelFaces } from "../../../../../Math";
|
|
3
3
|
import { GeoemtryNode } from "../GeometryNode";
|
|
4
|
-
import {
|
|
5
|
-
import { Triangle } from "../../../../
|
|
6
|
-
export declare class TriangleVoxelGeometryNode extends GeoemtryNode<
|
|
4
|
+
import { CompiledTriangleVoxelGeometryNode, TriangleVoxelGometryArgs } from "../Types/TriangleVoxelGometryNodeTypes";
|
|
5
|
+
import { Triangle } from "../../../../Geometry/Primitives/Triangle";
|
|
6
|
+
export declare class TriangleVoxelGeometryNode extends GeoemtryNode<CompiledTriangleVoxelGeometryNode, TriangleVoxelGometryArgs> {
|
|
7
7
|
triangle: Triangle;
|
|
8
8
|
vertexWeights: Vec4Array[];
|
|
9
9
|
closestFace: VoxelFaces;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { addVoxelTriangle } from "../../../
|
|
1
|
+
import { addVoxelTriangle } from "../../../Geometry/VoxelGeometryBuilder";
|
|
2
2
|
import { GeoemtryNode } from "../GeometryNode";
|
|
3
3
|
import { GetTexture } from "../../Common/GetTexture";
|
|
4
4
|
import { TriangleVoxelGometryInputs, } from "../Types/TriangleVoxelGometryNodeTypes";
|
|
5
|
-
import { Triangle } from "../../../../
|
|
5
|
+
import { Triangle } from "../../../../Geometry/Primitives/Triangle";
|
|
6
6
|
import { CullRulledFace } from "../../Common/Faces/CullRulledFace";
|
|
7
7
|
import { ShadeRulledFace } from "../../Common/Faces/ShadeRulledFace";
|
|
8
8
|
import { ShadeRulelessFace } from "../../Common/Faces/ShadeRulelessFace";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { VoxelModelBuilder } from "../VoxelModelBuilder";
|
|
2
2
|
import { VoxelGeometryConstructor } from "./VoxelGeometryConstructor";
|
|
3
3
|
export interface GeoemtryNodeConstructor<Data = any, Args = any> {
|
|
4
|
-
new (geometryPaletteId: number,
|
|
4
|
+
new (geometryPaletteId: number, geometry: VoxelGeometryConstructor, data: Data): GeoemtryNode<Data, Args>;
|
|
5
5
|
}
|
|
6
6
|
export declare abstract class GeoemtryNode<Data = any, Args = any> {
|
|
7
7
|
geometryPaletteId: number;
|
|
8
|
-
|
|
8
|
+
geometry: VoxelGeometryConstructor;
|
|
9
9
|
data: Data;
|
|
10
10
|
builder: VoxelModelBuilder;
|
|
11
|
-
constructor(geometryPaletteId: number,
|
|
11
|
+
constructor(geometryPaletteId: number, geometry: VoxelGeometryConstructor, data: Data);
|
|
12
12
|
abstract init(): void;
|
|
13
13
|
abstract add(args: Args): boolean;
|
|
14
14
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export class GeoemtryNode {
|
|
2
2
|
geometryPaletteId;
|
|
3
|
-
|
|
3
|
+
geometry;
|
|
4
4
|
data;
|
|
5
5
|
builder;
|
|
6
|
-
constructor(geometryPaletteId,
|
|
6
|
+
constructor(geometryPaletteId, geometry, data) {
|
|
7
7
|
this.geometryPaletteId = geometryPaletteId;
|
|
8
|
-
this.
|
|
8
|
+
this.geometry = geometry;
|
|
9
9
|
this.data = data;
|
|
10
10
|
}
|
|
11
11
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CompiledQuadVoxelGeometryNode } from "./QuadVoxelGometryNodeTypes";
|
|
2
|
+
import { CompiledTriangleVoxelGeometryNode } from "./TriangleVoxelGometryNodeTypes";
|
|
3
|
+
export type CompiledCustomGeometryNode = {
|
|
4
|
+
type: "custom";
|
|
5
|
+
id: string;
|
|
6
|
+
};
|
|
7
|
+
export type CompiledGeometryNodes = CompiledQuadVoxelGeometryNode | CompiledTriangleVoxelGeometryNode | CompiledCustomGeometryNode;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Vec3Array, Vec4Array } from "@amodx/math";
|
|
2
|
-
import { QuadUVData } from "../../../../
|
|
2
|
+
import { QuadUVData } from "../../../../Geometry/Geometry.types";
|
|
3
3
|
import { VoxelFaces } from "../../../../../Math";
|
|
4
4
|
export type QuadVoxelGometryArgs = [
|
|
5
5
|
enabled: boolean,
|
|
6
|
-
texture:
|
|
6
|
+
texture: any,
|
|
7
7
|
rotation: number,
|
|
8
8
|
doubleSided: boolean,
|
|
9
9
|
uvs: QuadUVData
|
|
@@ -15,7 +15,7 @@ declare enum ArgIndexes {
|
|
|
15
15
|
DoubleSided = 3,
|
|
16
16
|
UVs = 4
|
|
17
17
|
}
|
|
18
|
-
export type
|
|
18
|
+
export type CompiledQuadVoxelGeometryNode = {
|
|
19
19
|
type: "quad";
|
|
20
20
|
positions: [Vec3Array, Vec3Array, Vec3Array, Vec3Array];
|
|
21
21
|
weights: [Vec4Array, Vec4Array, Vec4Array, Vec4Array];
|
|
@@ -2,7 +2,7 @@ import { Vec2Array, Vec3Array, Vec4Array } from "@amodx/math";
|
|
|
2
2
|
import { VoxelFaces } from "../../../../../Math";
|
|
3
3
|
export type TriangleVoxelGometryArgs = [
|
|
4
4
|
enabled: boolean,
|
|
5
|
-
texture:
|
|
5
|
+
texture: any,
|
|
6
6
|
rotation: number,
|
|
7
7
|
doubleSided: boolean,
|
|
8
8
|
uvs: [v1: Vec2Array, v2: Vec2Array, v3: Vec2Array]
|
|
@@ -14,7 +14,7 @@ declare enum ArgIndexes {
|
|
|
14
14
|
DoubleSided = 3,
|
|
15
15
|
UVs = 4
|
|
16
16
|
}
|
|
17
|
-
export type
|
|
17
|
+
export type CompiledTriangleVoxelGeometryNode = {
|
|
18
18
|
type: "triangle";
|
|
19
19
|
positions: [Vec3Array, Vec3Array, Vec3Array];
|
|
20
20
|
weights: [Vec4Array, Vec4Array, Vec4Array];
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { CompiledVoxelGeometrySyncData } from "../../../../Voxels/Models/CompiledVoxelModel.types";
|
|
2
1
|
import { GeoemtryNode } from "./GeometryNode";
|
|
3
|
-
import { CullingProcedureData } from "../../../../Voxels/
|
|
2
|
+
import { CullingProcedureData } from "../../../../Voxels/Geometry/VoxelGeometry.types";
|
|
4
3
|
export declare class VoxelGeometryConstructor {
|
|
5
4
|
geometryPaletteId: number;
|
|
6
5
|
nodes: GeoemtryNode<any, any>[];
|
|
7
6
|
cullingProcedure: CullingProcedureData;
|
|
8
|
-
constructor(geometryPaletteId: number
|
|
7
|
+
constructor(geometryPaletteId: number);
|
|
9
8
|
}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import { QuadVoxelGometryNode } from "./Default/QuadVoxelGeometryNode";
|
|
2
2
|
import { TriangleVoxelGeometryNode } from "./Default/TriangleVoxelGeometryNode";
|
|
3
3
|
import { VoxelModelConstructorRegister } from "../VoxelModelConstructorRegister";
|
|
4
|
+
import { GeometryLUT } from "../../../../Voxels/Data/GeometryLUT";
|
|
4
5
|
export class VoxelGeometryConstructor {
|
|
5
6
|
geometryPaletteId;
|
|
6
7
|
nodes = [];
|
|
7
8
|
cullingProcedure;
|
|
8
|
-
constructor(geometryPaletteId
|
|
9
|
+
constructor(geometryPaletteId) {
|
|
9
10
|
this.geometryPaletteId = geometryPaletteId;
|
|
10
|
-
this.cullingProcedure =
|
|
11
|
-
|
|
11
|
+
this.cullingProcedure =
|
|
12
|
+
GeometryLUT.geometryCullingProcedures[GeometryLUT.geometryCullingProceduresIndex[geometryPaletteId]];
|
|
13
|
+
const nodes = GeometryLUT.compiledGeometry[geometryPaletteId];
|
|
14
|
+
for (const node of nodes) {
|
|
12
15
|
if (node.type == "custom") {
|
|
13
16
|
const nodeClass = VoxelModelConstructorRegister.getCustomNode(node.id);
|
|
14
17
|
const newNode = new nodeClass(geometryPaletteId, this, node);
|
|
15
18
|
newNode.init();
|
|
16
19
|
this.nodes.push(newNode);
|
|
17
20
|
}
|
|
18
|
-
}
|
|
19
|
-
for (const node of data.nodes) {
|
|
20
21
|
if (node.type == "quad") {
|
|
21
22
|
const newNode = new QuadVoxelGometryNode(geometryPaletteId, this, node);
|
|
22
23
|
newNode.init();
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { Vec3Array, Vector4Like } from "@amodx/math";
|
|
2
|
-
import type { Quad } from "../../../../
|
|
3
|
-
import { VoxelModelBuilder } from "
|
|
4
|
-
import { TextureProcedure,
|
|
2
|
+
import type { Quad } from "../../../../Geometry";
|
|
3
|
+
import { VoxelModelBuilder } from "../../../Models/VoxelModelBuilder";
|
|
4
|
+
import { TextureProcedure, BaseVoxelGeometryTextureProcedureData } from "../TextureProcedure";
|
|
5
5
|
import { TextureId } from "Textures";
|
|
6
6
|
import { VoxelFaces } from "Math";
|
|
7
7
|
/**
|
|
8
8
|
* Extend your data type so we can add a seed if we want, and define
|
|
9
9
|
* the rotations we can choose from.
|
|
10
10
|
*/
|
|
11
|
-
export interface ConsistentRotationTextureProcedureData extends
|
|
11
|
+
export interface ConsistentRotationTextureProcedureData extends BaseVoxelGeometryTextureProcedureData {
|
|
12
12
|
type: "consistent-rotation";
|
|
13
13
|
texture: TextureId | number;
|
|
14
14
|
/**
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Vector4Like } from "@amodx/math";
|
|
2
|
-
import type { Quad } from "../../../../
|
|
3
|
-
import { VoxelModelBuilder } from "
|
|
4
|
-
import { TextureProcedure,
|
|
2
|
+
import type { Quad } from "../../../../Geometry";
|
|
3
|
+
import { VoxelModelBuilder } from "../../../Models/VoxelModelBuilder";
|
|
4
|
+
import { TextureProcedure, BaseVoxelGeometryTextureProcedureData } from "../TextureProcedure";
|
|
5
5
|
import { TextureId } from "Textures";
|
|
6
6
|
import { VoxelFaces } from "../../../../../Math/index.js";
|
|
7
|
-
export interface OutlinedTextureProcedureData extends
|
|
7
|
+
export interface OutlinedTextureProcedureData extends BaseVoxelGeometryTextureProcedureData {
|
|
8
8
|
type: "outlined";
|
|
9
9
|
texture: TextureId | number;
|
|
10
10
|
textureRecrod: {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { Vector4Like } from "@amodx/math";
|
|
2
|
-
import type { Quad } from "../../../../
|
|
3
|
-
import { VoxelModelBuilder } from "
|
|
4
|
-
import { TextureProcedure,
|
|
2
|
+
import type { Quad } from "../../../../Geometry";
|
|
3
|
+
import { VoxelModelBuilder } from "../../../Models/VoxelModelBuilder";
|
|
4
|
+
import { TextureProcedure, BaseVoxelGeometryTextureProcedureData } from "../TextureProcedure";
|
|
5
5
|
import { TextureId } from "../../../../../Textures";
|
|
6
6
|
import { VoxelFaces } from "../../../../../Math";
|
|
7
7
|
/**
|
|
8
8
|
* Extend your data type so we can add a seed if we want, and define
|
|
9
9
|
* the rotations we can choose from.
|
|
10
10
|
*/
|
|
11
|
-
export interface PillarTextureProcedureData extends
|
|
11
|
+
export interface PillarTextureProcedureData extends BaseVoxelGeometryTextureProcedureData {
|
|
12
12
|
type: "pillar";
|
|
13
13
|
texture: TextureId | number;
|
|
14
14
|
textureRecrod: {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TextureProcedure, } from "../TextureProcedure";
|
|
2
2
|
import { VoxelFaces } from "../../../../../Math";
|
|
3
|
+
import { VoxelLUT } from "../../../../../Voxels/Data/VoxelLUT";
|
|
3
4
|
export class PillarTextureProcedure extends TextureProcedure {
|
|
4
5
|
getTexture(builder, data, closestFace, primitive) {
|
|
5
6
|
if (data.direction == "up-down") {
|
|
@@ -8,11 +9,16 @@ export class PillarTextureProcedure extends TextureProcedure {
|
|
|
8
9
|
if (closestFace == VoxelFaces.Down)
|
|
9
10
|
return data.textureRecrod.downTex;
|
|
10
11
|
let sideTexture = data.textureRecrod.sideDisconnectedTex;
|
|
12
|
+
const currentState = VoxelLUT.voxelIdToModelState[builder.voxel.getId()];
|
|
11
13
|
const topVoxel = builder.nVoxel.getVoxel(builder.position.x, builder.position.y + 1, builder.position.z);
|
|
12
|
-
const topSame = topVoxel
|
|
14
|
+
const topSame = topVoxel
|
|
15
|
+
? builder.voxel.isSameVoxel(topVoxel) &&
|
|
16
|
+
VoxelLUT.voxelIdToModelState[topVoxel.getId()] == currentState
|
|
17
|
+
: false;
|
|
13
18
|
const bottomVoxel = builder.nVoxel.getVoxel(builder.position.x, builder.position.y - 1, builder.position.z);
|
|
14
19
|
const bottomSame = bottomVoxel
|
|
15
|
-
? builder.voxel.isSameVoxel(bottomVoxel)
|
|
20
|
+
? builder.voxel.isSameVoxel(bottomVoxel) &&
|
|
21
|
+
VoxelLUT.voxelIdToModelState[bottomVoxel.getId()] == currentState
|
|
16
22
|
: false;
|
|
17
23
|
if (topSame && !bottomSame) {
|
|
18
24
|
sideTexture = data.textureRecrod.sideDownTex;
|
|
@@ -35,13 +41,16 @@ export class PillarTextureProcedure extends TextureProcedure {
|
|
|
35
41
|
if (closestFace == VoxelFaces.South)
|
|
36
42
|
return data.textureRecrod.downTex;
|
|
37
43
|
let sideTexture = data.textureRecrod.sideDisconnectedTex;
|
|
44
|
+
const currentState = VoxelLUT.voxelIdToModelState[builder.voxel.getId()];
|
|
38
45
|
const northVoxel = builder.nVoxel.getVoxel(builder.position.x, builder.position.y, builder.position.z + 1);
|
|
39
46
|
const northSame = northVoxel
|
|
40
|
-
? builder.voxel.isSameVoxel(northVoxel)
|
|
47
|
+
? builder.voxel.isSameVoxel(northVoxel) &&
|
|
48
|
+
VoxelLUT.voxelIdToModelState[northVoxel.getId()] == currentState
|
|
41
49
|
: false;
|
|
42
50
|
const southVoxel = builder.nVoxel.getVoxel(builder.position.x, builder.position.y, builder.position.z - 1);
|
|
43
51
|
const southSame = southVoxel
|
|
44
|
-
? builder.voxel.isSameVoxel(southVoxel)
|
|
52
|
+
? builder.voxel.isSameVoxel(southVoxel) &&
|
|
53
|
+
VoxelLUT.voxelIdToModelState[southVoxel.getId()] == currentState
|
|
45
54
|
: false;
|
|
46
55
|
if (northSame && !southSame) {
|
|
47
56
|
sideTexture = data.textureRecrod.sideDownTex;
|
|
@@ -64,12 +73,17 @@ export class PillarTextureProcedure extends TextureProcedure {
|
|
|
64
73
|
if (closestFace == VoxelFaces.West)
|
|
65
74
|
return data.textureRecrod.downTex;
|
|
66
75
|
let sideTexture = data.textureRecrod.sideDisconnectedTex;
|
|
76
|
+
const currentState = VoxelLUT.voxelIdToModelState[builder.voxel.getId()];
|
|
67
77
|
const eastVoxel = builder.nVoxel.getVoxel(builder.position.x + 1, builder.position.y, builder.position.z);
|
|
68
78
|
const northSame = eastVoxel
|
|
69
|
-
? builder.voxel.isSameVoxel(eastVoxel)
|
|
79
|
+
? builder.voxel.isSameVoxel(eastVoxel) &&
|
|
80
|
+
VoxelLUT.voxelIdToModelState[eastVoxel.getId()] == currentState
|
|
70
81
|
: false;
|
|
71
82
|
const westVoxel = builder.nVoxel.getVoxel(builder.position.x - 1, builder.position.y, builder.position.z);
|
|
72
|
-
const westSame = westVoxel
|
|
83
|
+
const westSame = westVoxel
|
|
84
|
+
? builder.voxel.isSameVoxel(westVoxel) &&
|
|
85
|
+
VoxelLUT.voxelIdToModelState[westVoxel.getId()] == currentState
|
|
86
|
+
: false;
|
|
73
87
|
if (northSame && !westSame) {
|
|
74
88
|
sideTexture = data.textureRecrod.sideDownTex;
|
|
75
89
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Vector4Like } from "@amodx/math";
|
|
2
|
-
import { Quad, Triangle } from "../../../
|
|
2
|
+
import { Quad, Triangle } from "../../../Geometry";
|
|
3
3
|
import { VoxelModelBuilder } from "../VoxelModelBuilder";
|
|
4
4
|
import { VoxelFaces } from "../../../../Math";
|
|
5
5
|
import { TextureId } from "../../../../Textures";
|
|
6
|
-
export interface
|
|
6
|
+
export interface BaseVoxelGeometryTextureProcedureData {
|
|
7
7
|
type: string;
|
|
8
8
|
texture?: TextureId | number;
|
|
9
9
|
textureRecrod?: Record<string, TextureId | number>;
|
|
@@ -1,23 +1,8 @@
|
|
|
1
1
|
import { VoxelModelBuilder } from "./VoxelModelBuilder";
|
|
2
|
-
import { CompiledVoxelModelInputData, CompiledVoxelModelData } from "../../../Voxels/Models/CompiledVoxelModel.types";
|
|
3
|
-
import { StateSchema } from "../../../Voxels/State/Schema/StateSchema";
|
|
4
|
-
import { StateTreeReader } from "../../../Voxels/State/StateTreeReader";
|
|
5
|
-
import { VoxelModelEffect } from "./VoxelModelEffect";
|
|
6
|
-
import { CondtionalTreeReader } from "../../../Voxels/State/CondiotnalTreeReader";
|
|
7
2
|
export declare class VoxelConstructor {
|
|
8
3
|
id: string;
|
|
9
4
|
builder: VoxelModelBuilder;
|
|
10
|
-
data: CompiledVoxelModelData;
|
|
11
5
|
isModel: true;
|
|
12
|
-
|
|
13
|
-
modSchema: StateSchema;
|
|
14
|
-
modTree: StateTreeReader;
|
|
15
|
-
baseInputMap: any[];
|
|
16
|
-
conditonalInputMap: any[];
|
|
17
|
-
schema: StateSchema;
|
|
18
|
-
effects: VoxelModelEffect;
|
|
19
|
-
stateTree: StateTreeReader;
|
|
20
|
-
condtioanlShapeStateTree: CondtionalTreeReader;
|
|
21
|
-
constructor(id: string, builder: VoxelModelBuilder, data: CompiledVoxelModelData, voxleData: CompiledVoxelModelInputData);
|
|
6
|
+
constructor(id: string, builder: VoxelModelBuilder);
|
|
22
7
|
process(): boolean;
|
|
23
8
|
}
|