# MCVector3i

A 3-dimensional vector, in a 3-dimensional vector space.

This class is immutable, meaning its values cannot change, so it is safe to be stored as a key in maps or in collections.

No, it's not an arrow.

## 导入相关包

It might be required for you to import the package if you encounter any issues (like casting an Array), so better be safe than sorry and add the import at the very top of the file.

`ZenScript Copy`import crafttweaker.api.util.MCVector3i;``

## 已实现的接口

MCVector3i implements the following interfaces. That means all methods defined in these interfaces are also available in MCVector3i

## Constructor #构造函数

`ZenScript Copy`new MCVector3i(x as int, y as int, z as int) as MCVector3i``

xintNo description provided
yintNo description provided
zintNo description provided

MCVector3dfalse

## 方法

asVector3i

Return Type: MCVector3d

```ZenScript Copy```// MCVector3i.asVector3i() as MCVector3d

myMCVector3i.asVector3i();``````
crossProduct

Creates a new Vector3i based on the cross product of this position, and the given position

Returns: a new Vector3i based on the cross product of this Vector3i and the given Vector3i
Return Type: MCVector3i

`ZenScript Copy`MCVector3i.crossProduct(vec as MCVector3i) as MCVector3i``

vecMCVector3iVector3i to cross product
distanceSq

Gets the squared distance of this position to the specified Vector3i, using the center of the Vector3i

Returns: the squared distance of this current position and the given Vector3i.
Return Type: double

```ZenScript Copy```// MCVector3i.distanceSq(to as MCVector3i) as double

myMCVector3i.distanceSq(new Vector3i(256, 128, 10););``````

toMCVector3iVector3i to check against
distanceSq

Gets the squared distance of this position to the specified Vector3i

Returns: the squared distance of this current position and the given Vector3i.
Return Type: double

`ZenScript Copy`MCVector3i.distanceSq(position as IPosition, useCenter as boolean) as double``

positionIPositionVector3i to check against
useCenterbooleanshould the center of the coordinate be used? (adds 0.5 to each value)
distanceSq

Gets the squared distance of this position to the specified coordinates

Returns: the squared distance of this current position and the given coordinates.
Return Type: double

```ZenScript Copy```// MCVector3i.distanceSq(x as double, y as double, z as double, useCenter as boolean) as double

myMCVector3i.distanceSq(500.25, 250.75, 100.20, false);``````

xdoublex position to check against
ydoubley position to check against
zdoublez position to check against
useCenterbooleanshould the center of the coordinate be used? (adds 0.5 to each value)
down

Creates a new Vector3i based on this Vector3i that is one block lower than this Vector3i

Returns: a new Vector3i that is one block lower than this Vector3i
Return Type: MCVector3i

```ZenScript Copy```// MCVector3i.down() as MCVector3i

myMCVector3i.down();``````
down

Creates a new Vector3i based on this Vector3i that is n block(s) lower than this Vector3i

Returns: a new Vector3i that is n block(s) lower than this Vector3i
Return Type: MCVector3i

`ZenScript Copy`MCVector3i.down(n as int) as MCVector3i``

nintNo Description Provided
getCoordinatesAsString

Return Type: string

```ZenScript Copy```// MCVector3i.getCoordinatesAsString() as string

myMCVector3i.getCoordinatesAsString();``````
getX

Gets the X coordinate of this vector.

Returns: The X coordinate.
Return Type: int

```ZenScript Copy```// MCVector3i.getX() as int

myMCVector3i.getX();``````
getY

Gets the Y coordinate of this vector.

Returns: The Y coordinate.
Return Type: int

```ZenScript Copy```// MCVector3i.getY() as int

myMCVector3i.getY();``````
getZ

Gets the Y coordinate of this vector.

Returns: The Y coordinate.
Return Type: int

```ZenScript Copy```// MCVector3i.getZ() as int

myMCVector3i.getZ();``````
manhattanDistance

Gets the Manhattan Distance of this vector compared to a different vector

Returns: The manhattan distance of the vectors
Return Type: int

`ZenScript Copy`MCVector3i.manhattanDistance(vector as MCVector3i) as int``

vectorMCVector3iother vector to get the distance to
offset

Creates a new Vector3i based on this Vector3i that is one block offset of this Vector3i based on the given Direction

Returns: a new Vector3i that is 1 block offset of this Vector3i
Return Type: MCVector3i

`ZenScript Copy`MCVector3i.offset(facing as Direction, n as int) as MCVector3i``

nintNo Description Provided
up

Creates a new Vector3i based on this Vector3i that is one block higher than this Vector3i

Returns: a new Vector3i that is one block higher than this Vector3i
Return Type: MCVector3i

```ZenScript Copy```// MCVector3i.up() as MCVector3i

myMCVector3i.up();``````
up

Creates a new Vector3i based on this Vector3i that is n block(s) higher than this Vector3i

Returns: a new Vector3i that is n block(s) higher than this Vector3i
Return Type: MCVector3i

```ZenScript Copy```// MCVector3i.up(n as int) as MCVector3i

myMCVector3i.up(45);``````

nintNo Description Provided
withinDistance

Checks if the given Vector3i is within the specified distance of this Vector3i (this uses the middle of the Vector3i)

Returns: true if the given Vector3i is within the given distance of this Vector3i
Return Type: boolean

`ZenScript Copy`MCVector3i.withinDistance(vector as MCVector3i, distance as double) as boolean``

vectorMCVector3iVector3i to check if it is within the distance
distancedoubledistance to check within

## 参数

coordinateStringstringtruefalseNo Description Provided
xinttruefalseGets the X coordinate of this vector.
yinttruefalseGets the Y coordinate of this vector.
zinttruefalseGets the Y coordinate of this vector.