Skip to main content

A utility class for extracting and inserting voxel data from and into numbers.

The voxel data is stored in the following format:

  • Voxel type: 0x0000ffff
  • Rotation: 0x000f0000
  • Y-rotation: 0x00f00000
  • Stage: 0x0f000000
  • Waterlogged: 0x10000000

TODO-DOCS For more information about voxel data, see here

Example

// Insert a voxel type 13 into zero.
const number = VoxelUtils.insertID(0, 13);

Methods​

evaluateBlockRule​

▸ evaluateBlockRule(rule, voxel, functions): boolean

Parameters​

NameType
ruleBlockRule
voxelCoords3
functionsObject
functions.getVoxelAt(x: number, y: number, z: number) => number
functions.getVoxelRotationAt(x: number, y: number, z: number) => BlockRotation
functions.getVoxelStageAt(x: number, y: number, z: number) => number

Returns​

boolean


extractFluidLevel​

▸ extractFluidLevel(voxel): number

The level of fluid standing in this voxel, wherever it is stored: a waterlogged block keeps its water's level in its own field, a fluid block keeps its own in stage. Mirrors BlockUtils::extract_fluid_level.

Parameters​

NameTypeDescription
voxelnumberThe voxel value to extract from.

Returns​

number


extractID​

▸ extractID(voxel): number

Extract the voxel id from a number.

Parameters​

NameTypeDescription
voxelnumberThe voxel value to extract from.

Returns​

number

The extracted voxel id.


extractRotation​

▸ extractRotation(voxel): BlockRotation

Extract the voxel rotation from a number.

Parameters​

NameTypeDescription
voxelnumberThe voxel value to extract from.

Returns​

BlockRotation

The extracted voxel rotation.


extractStage​

▸ extractStage(voxel): number

Extract the voxel stage from a number.

Parameters​

NameTypeDescription
voxelnumberThe voxel value to extract from.

Returns​

number

The extracted voxel stage.


extractWaterlogLevel​

▸ extractWaterlogLevel(voxel): number

The level of fluid a waterlogged voxel holds, in the same 0-7 range as a fluid block's stage.

Parameters​

NameTypeDescription
voxelnumberThe voxel value to extract from.

Returns​

number


extractWaterlogged​

▸ extractWaterlogged(voxel): boolean

Whether this voxel holds the world's waterlogging fluid alongside its block. Mirrors BlockUtils::extract_waterlogged on the server.

Parameters​

NameTypeDescription
voxelnumberThe voxel value to extract from.

Returns​

boolean


getBlockEntityId​

▸ getBlockEntityId(id, voxel): string

Parameters​

NameType
idstring
voxelCoords3

Returns​

string


getBlockRotatedTransparency​

▸ getBlockRotatedTransparency(block, rotation): boolean[]

Parameters​

NameType
blockBlock
rotationBlockRotation

Returns​

boolean[]


getBlockTorchLightLevel​

▸ getBlockTorchLightLevel(block, color): number

Parameters​

NameType
blockBlock
colorLightColor

Returns​

number


getBlockTorchLightLevelAt​

▸ getBlockTorchLightLevelAt(block, color, voxel, functions): number

Parameters​

NameType
blockBlock
colorLightColor
voxelCoords3
functionsObject
functions.getVoxelAt(x: number, y: number, z: number) => number
functions.getVoxelRotationAt(x: number, y: number, z: number) => BlockRotation
functions.getVoxelStageAt(x: number, y: number, z: number) => number

Returns​

number


insertAll​

▸ insertAll(id, rotation?, stage?, isWaterlogged?, waterlogLevel?): number

Parameters​

NameType
idnumber
rotation?BlockRotation
stage?number
isWaterlogged?boolean
waterlogLevel?number

Returns​

number


insertID​

▸ insertID(voxel, id): number

Insert a voxel id into a number.

Parameters​

NameTypeDescription
voxelnumberThe voxel value to insert the id into.
idnumberThe voxel id to insert.

Returns​

number

The inserted voxel value.


insertRotation​

▸ insertRotation(voxel, rotation): number

Insert a voxel rotation into a number.

Parameters​

NameTypeDescription
voxelnumberThe voxel value to insert the rotation into.
rotationBlockRotationThe voxel rotation to insert.

Returns​

number

The inserted voxel value.


insertStage​

▸ insertStage(voxel, stage): number

Insert a voxel stage into a number.

Parameters​

NameTypeDescription
voxelnumberThe voxel value to insert the stage into.
stagenumberThe voxel stage to insert.

Returns​

number

The inserted voxel value.


insertWaterlogLevel​

▸ insertWaterlogLevel(voxel, level): number

Insert the waterlogging fluid's level into a voxel value.

The level occupies the top three bits, so the result is normalised back to unsigned: JavaScript's bitwise operators work on signed 32-bit integers and a level of 4 or more would otherwise come back negative.

Parameters​

NameTypeDescription
voxelnumberThe voxel value to insert the level into.
levelnumberThe fluid level, 0 through 7.

Returns​

number


insertWaterlogged​

▸ insertWaterlogged(voxel, isWaterlogged): number

Insert the waterlogged flag into a voxel value.

Parameters​

NameTypeDescription
voxelnumberThe voxel value to insert the flag into.
isWaterloggedbooleanWhether the voxel holds the waterlogging fluid.

Returns​

number