Skip to main content

Class: MeshPipeline

Constructors

constructor

new MeshPipeline(): MeshPipeline

Returns

MeshPipeline

Accessors

dirtyCount

get dirtyCount(): number

Returns

number

Methods

expireStuckJobs

expireStuckJobs(nowMs, maxAgeMs): string[]

The leak watchdog: release any in-flight generation older than maxAgeMs and re-queue its key. Single-flight dispatch turns one unsettled job into a chunk level that never re-meshes again for the whole session, and every historical instance of that (a shed queue, a dispatch path missing its release, a worker that died) has looked like this exact symptom: a walkable chunk that stopped rendering hours into a long session and stayed gone until reload. Expiry converts whichever such path still exists — or gets written next — from a permanent hole into a logged self-heal. Returns the expired keys for the caller to report.

Parameters

NameType
nowMsnumber
maxAgeMsnumber

Returns

string[]


failJob

failJob(key, jobGeneration): void

Release an in-flight generation that produced no mesh (worker bail-out). Re-queues the key so remesh can retry instead of leaving a permanent ghost mesh when voxel data already changed but geometry never applied.

Parameters

NameType
keystring
jobGenerationnumber

Returns

void


getDirtyKeys

getDirtyKeys(center?): string[]

Dirty keys ready for dispatch: the urgent lane first in insertion order (player edits stay latency-ordered), then regular keys nearest-first around center so remesh work reaches the camera before the horizon. Without a center the regular lane keeps insertion order.

Parameters

NameType
center?Coords2

Returns

string[]


hasAnyInFlightJobs

hasAnyInFlightJobs(): boolean

Returns

boolean


hasDirtyChunks

hasDirtyChunks(): boolean

Returns

boolean


hasInFlightJob

hasInFlightJob(key): boolean

Parameters

NameType
keystring

Returns

boolean


inFlightJobCount

inFlightJobCount(): number

Returns

number


isUrgent

isUrgent(key): boolean

Parameters

NameType
keystring

Returns

boolean


makeKey

makeKey(cx, cz, level): string

Parameters

NameType
cxnumber
cznumber
levelnumber

Returns

string


markFreshFromServer

markFreshFromServer(cx, cz, level): void

Parameters

NameType
cxnumber
cznumber
levelnumber

Returns

void


needsRemesh

needsRemesh(key): boolean

Parameters

NameType
keystring

Returns

boolean


onJobComplete

onJobComplete(key, jobGeneration): boolean

Parameters

NameType
keystring
jobGenerationnumber

Returns

boolean


onVoxelChange

onVoxelChange(cx, cz, level, isUrgent?): void

Parameters

NameTypeDefault value
cxnumberundefined
cznumberundefined
levelnumberundefined
isUrgentbooleanfalse

Returns

void


parseKey

parseKey(key): Object

Parameters

NameType
keystring

Returns

Object

NameType
cxnumber
cznumber
levelnumber

remove

remove(cx, cz): void

Parameters

NameType
cxnumber
cznumber

Returns

void


shouldStartJob

shouldStartJob(key): boolean

Parameters

NameType
keystring

Returns

boolean


startJob

startJob(key, nowMs?): number

Parameters

NameType
keystring
nowMsnumber

Returns

number