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