createGroundSurface
createGroundSurface(
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: readonlyobject[];steep:string;steepAbove:number; };hills:Readonly<{amplitude:number;detail:number;wavelength:number; }>;materials:Readonly<Record<string, {animate?: {frames?:number;frameTime?:number;scroll?: …[]; };bumps?:number;cover?: {colour?:string;density?:number;height?:number;kind:Grass;sway?:boolean; };from?:string;hexTiling?:boolean;rotate?:boolean;sharpness?:number;texture?:string;tile?:number;tint?:string;tintAmount?:number;wet?:boolean; }>>;paths:Readonly<Record<string,Readonly<{fade:number;halfWidth:number;points: readonly readonly [number,number][];surface?:"dirt"|"stone"|"sand"; }>>>;props:Readonly<Record<string,Readonly<{color:string;kind:PropShape;position: readonly […, …] | readonly […, …, …];scale:number| readonly […, …, …];size: readonly [number,number,number];yaw:number; }> |Readonly<{kind:ScatterKind;position: readonly […, …] | readonly […, …, …];scale:number;yaw:number; }> |Readonly<{model:string;position: readonly […, …] | readonly […, …, …];scale:number| readonly […, …, …];yaw:number; }>>>;regions:Readonly<Record<string,Readonly<{center: readonly [number,number];fade:number;hills:Readonly<{amplitude:number;detail:number;wavelength:number; }>;material?:string;radius:number;scatter:Readonly<{bushRound:number;clearing:number;grassTuft:number;rockBoulder:number;rockFlat:number;seedOffset:number;treeRound:number;treeTall:number; }>; }>>>;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:Readonly<{amplitude:number;detail:number;wavelength:number; }>;paths:Readonly<Record<string,Readonly<…>>>;regions:Readonly<Record<string,Readonly<…>>>;rim:number;seed:number; }>;blend?:string[];cell:number;erased?:Partial<Record<ScatterFamily, […, …][]>>;height?:string[];overlay?:string[];paint?:string[];palette?:string[];scatter?:Partial<Record<ScatterFamily,string[]>>;size:number; };views:Readonly<Record<string,Readonly<{eye: readonly [number,number,number];fov:number;ortho?:number;target: readonly [number,number,number]; }>>>; }>;offsets:Float64Array<ArrayBufferLike>;sea:number;seed:number;segments:number;size:number;terrain:Pick<{base:Readonly<{hills:Readonly<{amplitude:number;detail:number;wavelength:number; }>;paths:Readonly<Record<string,Readonly<{fade: …;halfWidth: …;points: …;surface?: …; }>>>;regions:Readonly<Record<string,Readonly<{center: …;fade: …;hills: …;material?: …;radius: …;scatter: …; }>>>;rim:number;seed:number; }>;blend?:string[];cell:number;erased?:Partial<Record<ScatterFamily, [number,number][]>>;height?:string[];overlay?:string[];paint?:string[];palette?:string[];scatter?:Partial<Record<ScatterFamily,string[]>>;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; }>
The map’s ground: its base baked from the hills, the regions, the
paths and the rim, then its terrain’s offsets added over it: the map’s
own terrain block, or terrain where given, as the editor’s newest
write is. Terrain written for another grid is refused.
Parameters
Section titled “Parameters”| Parameter | Type | Default value |
|---|---|---|
values |
TerrainMap |
terrainMap |
terrain? |
Pick<{ base: Readonly<{ hills: Readonly<{ amplitude: number; detail: number; wavelength: number; }>; paths: Readonly<Record<string, Readonly<{ fade: number; halfWidth: number; points: readonly readonly […, …][]; surface?: "dirt" | "stone" | "sand"; }>>>; regions: Readonly<Record<string, Readonly<{ center: readonly [number, number]; fade: number; hills: Readonly<{ amplitude: …; detail: …; wavelength: …; }>; material?: string; radius: number; scatter: Readonly<{ bushRound: …; clearing: …; grassTuft: …; rockBoulder: …; rockFlat: …; seedOffset: …; treeRound: …; treeTall: …; }>; }>>>; rim: number; seed: number; }>; blend?: string[]; cell: number; erased?: Partial<Record<ScatterFamily, [number, number][]>>; height?: string[]; overlay?: string[]; paint?: string[]; palette?: string[]; scatter?: Partial<Record<ScatterFamily, string[]>>; size: number; }, "height" | "size" | "overlay" | "cell" | "paint" | "blend" | "scatter" | "palette" | "erased"> |
undefined |
Returns
Section titled “Returns”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?: { frames?: number; frameTime?: number; scroll?: …[]; }; bumps?: number; cover?: { colour?: string; density?: number; height?: number; kind: Grass; sway?: boolean; }; from?: string; hexTiling?: boolean; rotate?: boolean; sharpness?: number; texture?: string; tile?: number; tint?: string; tintAmount?: number; wet?: boolean; }>>; paths: Readonly<Record<string, Readonly<{ fade: number; halfWidth: number; points: readonly readonly [number, number][]; surface?: "dirt" | "stone" | "sand"; }>>>; props: Readonly<Record<string, Readonly<{ color: string; kind: PropShape; position: readonly […, …] | readonly […, …, …]; scale: number | readonly […, …, …]; size: readonly [number, number, number]; yaw: number; }> | Readonly<{ kind: ScatterKind; position: readonly […, …] | readonly […, …, …]; scale: number; yaw: number; }> | Readonly<{ model: string; position: readonly […, …] | readonly […, …, …]; scale: number | readonly […, …, …]; yaw: number; }>>>; regions: Readonly<Record<string, Readonly<{ center: readonly [number, number]; fade: number; hills: Readonly<{ amplitude: number; detail: number; wavelength: number; }>; material?: string; radius: number; scatter: Readonly<{ bushRound: number; clearing: number; grassTuft: number; rockBoulder: number; rockFlat: number; seedOffset: number; treeRound: number; treeTall: number; }>; }>>>; 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: Readonly<{ amplitude: number; detail: number; wavelength: number; }>; paths: Readonly<Record<string, Readonly<…>>>; regions: Readonly<Record<string, Readonly<…>>>; rim: number; seed: number; }>; blend?: string[]; cell: number; erased?: Partial<Record<ScatterFamily, […, …][]>>; height?: string[]; overlay?: string[]; paint?: string[]; palette?: string[]; scatter?: Partial<Record<ScatterFamily, string[]>>; size: number; }; views: Readonly<Record<string, Readonly<{ eye: readonly [number, number, number]; fov: number; ortho?: number; target: readonly [number, number, number]; }>>>; }>; offsets: Float64Array<ArrayBufferLike>; sea: number; seed: number; segments: number; size: number; terrain: Pick<{ base: Readonly<{ hills: Readonly<{ amplitude: number; detail: number; wavelength: number; }>; paths: Readonly<Record<string, Readonly<{ fade: …; halfWidth: …; points: …; surface?: …; }>>>; regions: Readonly<Record<string, Readonly<{ center: …; fade: …; hills: …; material?: …; radius: …; scatter: …; }>>>; rim: number; seed: number; }>; blend?: string[]; cell: number; erased?: Partial<Record<ScatterFamily, [number, number][]>>; height?: string[]; overlay?: string[]; paint?: string[]; palette?: string[]; scatter?: Partial<Record<ScatterFamily, string[]>>; 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; }>