voxolith
API reference@voxolith/gen-terrainInterfaces

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

PropertyModifierTypeDescriptionDefined in
depthreadonlynumberExtent along z, in columns.index.ts:142
heightsreadonlyInt16ArrayGround height per column, x + z * width. Editable (levelling), then read by everything below.index.ts:146
paramsreadonlyTerrainParamsThe params it was made from, defaults filled in.index.ts:136
rolesreadonlyRole[]Colour roles; role 10 (WATER) carries the "water" material hint.index.ts:148
seedreadonlynumberThe seed it was made with.index.ts:138
waterLevelreadonlynumberWater surface Y, rounded; columns whose ground is below it are flooded.index.ts:144
widthreadonlynumberExtent 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

ParameterType
cellsUint8Array
oxnumber
oynumber
oznumber
basenumber
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

ParameterType
xnumber
znumber

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

ParameterType
originVec3
dirVec3
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

ParameterType
xnumber
ynumber
znumber

Returns

number


topRole()

topRole(x: number, z: number): number;

Defined in: index.ts:156

Role of the top voxel of a column.

Parameters

ParameterType
xnumber
znumber

Returns

number


waterAt()

waterAt(x: number, z: number): boolean;

Defined in: index.ts:152

Is this column under water?

Parameters

ParameterType
xnumber
znumber

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

ParameterType
xnumber
znumber

Returns

number

On this page