Skip to content
Work in progress. These docs describe Spawnite at launch, and some parts are still being built.

GroundTrait

const GroundTrait: Trait<{ surface: (values, terrain?) => Readonly<{ baseHeights: Float64Array<ArrayBuffer>; cell: number; getHeightAt: (position) => number; getNormalAt: (position, target) => Vector3; isUnderWaterAt: (position) => boolean; map: Readonly<{ cell: number; ground: { base: string; rules: readonly object[]; steep: string; steepAbove: number; }; hills: Readonly<{ amplitude: number; detail: number; wavelength: number; }>; materials: Readonly<Record<string, { animate?: … | …; bumps?: … | …; cover?: … | …; from?: … | …; hexTiling?: … | … | …; rotate?: … | … | …; sharpness?: … | …; texture?: … | …; tile?: … | …; tint?: … | …; tintAmount?: … | …; wet?: … | … | …; }>>; paths: Readonly<Record<string, Readonly<{ fade: …; halfWidth: …; points: …; surface?: …; }>>>; props: Readonly<Record<string, Readonly<…> | Readonly<…> | Readonly<…>>>; regions: Readonly<Record<string, Readonly<{ center: …; fade: …; hills: …; material?: …; radius: …; scatter: …; }>>>; revision?: number; rim: number; scatter: Readonly<{ bushRound: number; grassTuft: number; rockBoulder: number; rockFlat: number; seedOffset: number; treeRound: number; treeTall: number; }>; sea?: number; seed: number; size: number; terrain?: { base: Readonly<{ hills: …; paths: …; regions: …; rim: …; seed: …; }>; blend?: …[]; cell: number; erased?: Partial<…>; height?: …[]; overlay?: …[]; paint?: …[]; palette?: …[]; scatter?: Partial<…>; size: number; }; views: Readonly<Record<string, Readonly<{ eye: …; fov: …; ortho?: …; target: …; }>>>; }>; offsets: Float64Array<ArrayBufferLike>; sea: number; seed: number; segments: number; size: number; terrain: Pick<{ base: Readonly<{ hills: Readonly<…>; paths: Readonly<…>; regions: Readonly<…>; rim: number; seed: number; }>; blend?: string[]; cell: number; erased?: Partial<Record<…, …>>; height?: string[]; overlay?: string[]; paint?: string[]; palette?: string[]; scatter?: Partial<Record<…, …>>; size: number; }, "height" | "size" | "overlay" | "cell" | "paint" | "blend" | "scatter" | "palette" | "erased"> | undefined; getPathDistanceAt: number; getPathSurfaceAt: { surface: NonNullable<"dirt" | "stone" | "sand" | undefined>; weight: number; } | undefined; getPointAt: Vector3; getRegionWeightsAt: number[]; getShoreDistanceAt: number; getSlopeAt: number; }>; }>