Skip to main content

Class: BlockVolume

A BlockVolume is a simple interface to an object which represents a 3D rectangle of a given size (in blocks) at a world block location. Note that these are not analogous to "min" and "max" values, in that the vector components are not guaranteed to be in any order. In addition, these vector positions are not interchangeable with BlockLocation. If you want to get this volume represented as range of of BlockLocations, you can use the getBoundingBox utility function. This volume class will maintain the ordering of the corner indexes as initially set. imagine that each corner is assigned in Editor - as you move the corner around (potentially inverting the min/max relationship of the bounds) - what you had originally selected as the top/left corner would traditionally become the bottom/right. When manually editing these kinds of volumes, you need to maintain the identity of the corner as you edit - the BlockVolume utility functions do this.

Important to note that this measures block sizes (to/from) - a normal AABB (0,0,0) to (0,0,0) would traditionally be of size (0,0,0) However, because we're measuring blocks - the size or span of a BlockVolume would actually be (1,1,1)

Extends

Constructors

new BlockVolume()

new BlockVolume(from, to): BlockVolume

Parameters

ParameterType
fromVector3
toVector3

Returns

BlockVolume

Overrides

BlockVolumeBase . constructor

Properties

from

from: Vector3

Remarks

A world block location that represents a corner in a 3D rectangle

This property can't be edited in read-only mode.


to

to: Vector3

Remarks

A world block location that represents the opposite corner in a 3D rectangle

This property can't be edited in read-only mode.

Methods

doesLocationTouchFaces()

doesLocationTouchFaces(pos): boolean

Parameters

ParameterTypeDescription
posVector3The world block location to test

Returns

boolean

If the location is either inside or more than 0 blocks away, the function will return false. If the location is directly contacting the outer surface of the BlockVolume, the function will return true.

Remarks

Check to see if the given location is directly adjacent to the outer surface of a BlockVolume.

This function can't be called in read-only mode.


doesVolumeTouchFaces()

doesVolumeTouchFaces(other): boolean

Parameters

ParameterTypeDescription
otherBlockVolumeThe volume to test

Returns

boolean

If the outer faces of both block volumes touch and are directly adjacent at any point, return true.

Remarks

Check to see if a two block volumes are directly adjacent and two faces touch.

This function can't be called in read-only mode.


getBlockLocationIterator()

getBlockLocationIterator(): BlockLocationIterator

Returns

BlockLocationIterator

Inherited from

BlockVolumeBase . getBlockLocationIterator

Remarks

Fetch a BlockLocationIterator that represents all of the block world locations within the specified volume

This function can't be called in read-only mode.


getBoundingBox()

getBoundingBox(): BoundingBox

Returns

BoundingBox

Inherited from

BlockVolumeBase . getBoundingBox

Remarks

Return a BoundingBox object which represents the validated min and max coordinates of the volume

This function can't be called in read-only mode.

Throws

This function can throw errors.


getCapacity()

getCapacity(): number

Returns

number

Inherited from

BlockVolumeBase . getCapacity

Remarks

Return the capacity (volume) of the BlockVolume (WDH)

This function can't be called in read-only mode.


getMax()

getMax(): Vector3

Returns

Vector3

Inherited from

BlockVolumeBase . getMax

Remarks

Get the largest corner position of the volume (guaranteed to be >= min)

This function can't be called in read-only mode.

Throws

This function can throw errors.


getMin()

getMin(): Vector3

Returns

Vector3

Inherited from

BlockVolumeBase . getMin

Remarks

Get the smallest corner position of the volume (guaranteed to be <= max)

This function can't be called in read-only mode.

Throws

This function can throw errors.


getSpan()

getSpan(): Vector3

Returns

Vector3

Inherited from

BlockVolumeBase . getSpan

Remarks

Get a Vector3 object where each component represents the number of blocks along that axis

This function can't be called in read-only mode.


intersects()

intersects(other): BlockVolumeIntersection

Parameters

ParameterType
otherBlockVolume

Returns

BlockVolumeIntersection

Remarks

Return an enumeration which represents the intersection between two BlockVolume objects

This function can't be called in read-only mode.


isInside()

isInside(pos): boolean

Parameters

ParameterType
posVector3

Returns

boolean

Inherited from

BlockVolumeBase . isInside

Remarks

Check to see if a given world block location is inside a BlockVolume

This function can't be called in read-only mode.


translate()

translate(delta): void

Parameters

ParameterTypeDescription
deltaVector3Amount of blocks to move by

Returns

void

Inherited from

BlockVolumeBase . translate

Remarks

Move a BlockVolume by a specified amount

This function can't be called in read-only mode.