Terrain
A generated region, from generateTerrain. Everything reads the editable heights map, so levelling a pad into it changes the surface, the roles, fillBrick and pick together. Coordinates are voxels; columns outside the map clamp to its edge.
Defined in: index.ts:134
Properties
| Property | Modifier | Type | Description | Defined in |
|---|---|---|---|---|
depth | readonly | number | Extent along z, in columns. | index.ts:142 |
heights | readonly | Int16Array | Ground height per column, x + z * width. Editable (levelling), then read by everything below. | index.ts:146 |
params | readonly | TerrainParams | The params it was made from, defaults filled in. | index.ts:136 |
roles | readonly | Role[] | Colour roles; role 10 (WATER) carries the "water" material hint. | index.ts:148 |
seed | readonly | number | The seed it was made with. | index.ts:138 |
waterLevel | readonly | number | Water surface Y, rounded; columns whose ground is below it are flooded. | index.ts:144 |
width | readonly | number | Extent along x, in columns. | index.ts:140 |
Methods
fillBrick()
fillBrick(
cells: Uint8Array,
ox: number,
oy: number,
oz: number,
base: number,
top?: TopOverride
): boolean;Defined in: index.ts:168
Write one 8³ brick at (ox, oy, oz) into cells (x + y8 + z64), mapping
role r to base + r - 1. top may override the top voxel of a column
with an absolute palette slot (a path, a yard); 0 keeps it. It is a
function or the same as data (TopOverride).
Returns whether anything was written.
Parameters
| Parameter | Type |
|---|---|
cells | Uint8Array |
ox | number |
oy | number |
oz | number |
base | number |
top? | TopOverride |
Returns
boolean
heightAt()
heightAt(x: number, z: number): number;Defined in: index.ts:150
Ground height (top solid voxel) of the nearest column.
Parameters
| Parameter | Type |
|---|---|
x | number |
z | number |
Returns
number
maxY()
maxY(): number;Defined in: index.ts:160
Highest Y anything is written at (ground or water).
Returns
number
pick()
pick(
origin: Vec3,
dir: Vec3,
opts?: object
): Vec3 | null;Defined in: index.ts:173
First point where a ray meets the ground (or, with water, the water
surface). dir need not be normalised. Null if it never does.
Parameters
| Parameter | Type |
|---|---|
origin | Vec3 |
dir | Vec3 |
opts? | { maxT?: number; water?: boolean; } |
opts.maxT? | number |
opts.water? | boolean |
Returns
Vec3 | null
roleAt()
roleAt(
x: number,
y: number,
z: number
): number;Defined in: index.ts:158
Role at a voxel, or 0 for air.
Parameters
| Parameter | Type |
|---|---|
x | number |
y | number |
z | number |
Returns
number
topRole()
topRole(x: number, z: number): number;Defined in: index.ts:156
Role of the top voxel of a column.
Parameters
| Parameter | Type |
|---|---|
x | number |
z | number |
Returns
number
waterAt()
waterAt(x: number, z: number): boolean;Defined in: index.ts:152
Is this column under water?
Parameters
| Parameter | Type |
|---|---|
x | number |
z | number |
Returns
boolean
waterDepth()
waterDepth(x: number, z: number): number;Defined in: index.ts:154
Water depth above the ground in this column (0 on land).
Parameters
| Parameter | Type |
|---|---|
x | number |
z | number |
Returns
number