hytopia
Version:
The HYTOPIA SDK makes it easy for developers to create massively multiplayer games using JavaScript or TypeScript.
265 lines (119 loc) • 3.71 kB
Markdown
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) > [server](./server.md) > [Chunk](./server.chunk.md)
## Chunk class
A 16^3 chunk of blocks representing a slice of world terrain.
When to use: reading chunk data or working with bulk block operations. Do NOT use for: creating terrain directly; prefer `ChunkLattice`<!-- -->.
**Signature:**
```typescript
export default class Chunk implements protocol.Serializable
```
**Implements:** protocol.Serializable
## Remarks
Chunks are fixed-size (16×16×16) and store block IDs by local coordinates.
<h2>Coordinate System</h2>
- \*\*Global (world) coordinates:\*\* integer block positions in world space. - \*\*Chunk origin:\*\* the world coordinate at the chunk's minimum corner (multiples of 16). - \*\*Local coordinates:\*\* 0..15 per axis within the chunk.
\*\*Category:\*\* Blocks
## Constructors
<table><thead><tr><th>
Constructor
</th><th>
Modifiers
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
[(constructor)(originCoordinate)](./server.chunk._constructor_.md)
</td><td>
</td><td>
Creates a new chunk instance.
</td></tr>
</tbody></table>
## Properties
<table><thead><tr><th>
Property
</th><th>
Modifiers
</th><th>
Type
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
[blockRotations](./server.chunk.blockrotations.md)
</td><td>
`readonly`
</td><td>
Readonly<Map<number, [BlockRotation](./server.blockrotation.md)<!-- -->>>
</td><td>
The rotations of the blocks in the chunk as a map of block index to rotation.
\*\*Category:\*\* Blocks
</td></tr>
<tr><td>
[blocks](./server.chunk.blocks.md)
</td><td>
`readonly`
</td><td>
Readonly<Uint8Array>
</td><td>
The blocks in the chunk as a flat Uint8Array\[4096\], each index as 0 or a block type ID.
\*\*Category:\*\* Blocks
</td></tr>
<tr><td>
[originCoordinate](./server.chunk.origincoordinate.md)
</td><td>
`readonly`
</td><td>
[Vector3Like](./server.vector3like.md)
</td><td>
The origin coordinate of the chunk (world-space, multiples of 16).
\*\*Category:\*\* Blocks
</td></tr>
</tbody></table>
## Methods
<table><thead><tr><th>
Method
</th><th>
Modifiers
</th><th>
Description
</th></tr></thead>
<tbody><tr><td>
[blockIndexToLocalCoordinate(index)](./server.chunk.blockindextolocalcoordinate.md)
</td><td>
`static`
</td><td>
Converts a block index to a local coordinate.
</td></tr>
<tr><td>
[getBlockId(localCoordinate)](./server.chunk.getblockid.md)
</td><td>
</td><td>
Gets the block type ID at a specific local coordinate.
</td></tr>
<tr><td>
[getBlockRotation(localCoordinate)](./server.chunk.getblockrotation.md)
</td><td>
</td><td>
Gets the rotation of a block at a specific local coordinate.
</td></tr>
<tr><td>
[globalCoordinateToLocalCoordinate(globalCoordinate)](./server.chunk.globalcoordinatetolocalcoordinate.md)
</td><td>
`static`
</td><td>
Converts a global coordinate to a local coordinate.
</td></tr>
<tr><td>
[globalCoordinateToOriginCoordinate(globalCoordinate)](./server.chunk.globalcoordinatetoorigincoordinate.md)
</td><td>
`static`
</td><td>
Converts a global coordinate to a chunk origin coordinate.
</td></tr>
<tr><td>
[hasBlock(localCoordinate)](./server.chunk.hasblock.md)
</td><td>
</td><td>
Checks if a block exists at a specific local coordinate.
</td></tr>
</tbody></table>