Trapline.parts: small helpers that build the hazard and checkpoint looks
out of primitive shapes. Every part is a local, temporary child entity, so
looks are rebuilt by each peer and never saved into the scene.
mesh(name: string) → any
| arg | type | description |
|---|
| name | string | |
material(name: string?) → any
| arg | type | description |
|---|
| name | string? | |
rgb(hex: string) → void
"#rrggbb" (or "rrggbb") to { r, g, b } in 0..1.
| arg | type | description |
|---|
| hex | string | |
mix(a: { number }, b: { number }, t: number) → void
Blend two colours: a + (b - a) * t.
| arg | type | description |
|---|
| a | { number } | |
| b | { number } | |
| t | number | |
shade(c: { number }, k: number) → void
Scale a colour's brightness.
| arg | type | description |
|---|
| c | { number } | |
| k | number | |
euler(x: number?, y: number?, z: number?) → void
Euler angles in DEGREES (applied Y, then X, then Z) to a quaternion { x, y, z, w }.
| arg | type | description |
|---|
| x | number? | |
| y | number? | |
| z | number? | |
axisAngle(ax: number, ay: number, az: number, deg: number) → void
Rotation about an arbitrary axis, angle in degrees.
| arg | type | description |
|---|
| ax | number | |
| ay | number | |
| az | number | |
| deg | number | |
tint(e: any, c: { number }?, blend: number?) → void
| arg | type | description |
|---|
| e | any | |
| c | { number }? | |
| blend | number? | |
group(parent: any, name: string, pos: { number }?, rot: { number }?) → any
An empty pivot entity under `parent`, for grouping and for rotating parts about a point.
| arg | type | description |
|---|
| parent | any | |
| name | string | |
| pos | { number }? | |
| rot | { number }? | |
part(parent: any, name: string, meshName: string, opts: any?) → any
One visible part. opts: pos, scale, rot (quaternion) or euler {x,y,z} degrees,
color {r,g,b}, mat (plastic | metal | chrome | gold | glow | neon | glass | toon | unlit | water),
glow (0..1 brightness for an emissive colour), shadows (default true).
| arg | type | description |
|---|
| parent | any | |
| name | string | |
| meshName | string | |
| opts | any? | |
color(e: any, c: { number }, blend: number?) → void
Recolour a part (tint fully to `c`).
| arg | type | description |
|---|
| e | any | |
| c | { number } | |
| blend | number? | |
glow(e: any, c: { number }, k: number) → void
Recolour an emissive part: its colour times `k` (0 = dark, 1 = full).
| arg | type | description |
|---|
| e | any | |
| c | { number } | |
| k | number | |
show(e: any, on: boolean) → void
Show or hide a part (and only its own mesh).
| arg | type | description |
|---|
| e | any | |
| on | boolean | |
pose(e: any, pos: { number }?, rot: { number }?, scale: { number }?) → void
Set a part's local position and (optionally) rotation and scale, skipping no-op writes.
| arg | type | description |
|---|
| e | any | |
| pos | { number }? | |
| rot | { number }? | |
| scale | { number }? | |
light(parent: any, name: string, pos: { number }, c: { number }, intensity: number?, range: number?) → any
A point light under `parent`. Returns the entity; change `component.get("Light").intensity` to animate it.
| arg | type | description |
|---|
| parent | any | |
| name | string | |
| pos | { number } | |
| c | { number } | |
| intensity | number? | |
| range | number? | |
setLight(e: any, intensity: number, c: { number }?) → void
Set a light's brightness (and colour).
| arg | type | description |
|---|
| e | any | |
| intensity | number | |
| c | { number }? | |
label(parent: any, name: string, text: string, pos: { number }, opts: any?) → any
A floating text label (Text3D, billboarded) under `parent`.
| arg | type | description |
|---|
| parent | any | |
| name | string | |
| text | string | |
| pos | { number } | |
| opts | any? | |
clear(root: any) → void
Despawn every child under `root` (used when a look is rebuilt).
| arg | type | description |
|---|
| root | any | |
smooth(x: number) → number
| arg | type | description |
|---|
| x | number | |
easeOutBack(x: number) → number
| arg | type | description |
|---|
| x | number | |
easeInQuad(x: number) → number
| arg | type | description |
|---|
| x | number | |
hash(seed: number, i: number) → number
A deterministic pseudo-random number in [0, 1) for (seed, i).
| arg | type | description |
|---|
| seed | number | |
| i | number | |
cycle(t: number, cycle: number) → number
Where `t` is in a loop of `cycle` seconds, 0..1 (0 when cycle is 0).
| arg | type | description |
|---|
| t | number | |
| cycle | number | |
loop(t: number, cycle: number) → number
Which loop `t` is in (an integer), for seeding per-loop randomness.
| arg | type | description |
|---|
| t | number | |
| cycle | number | |
ramp(x: number, a: number, b: number) → number
0..1 ramp of x between a and b (clamped, linear).
| arg | type | description |
|---|
| x | number | |
| a | number | |
| b | number | |
onOff(u: number, onAt: number, warnFor: number) → void
A timed on/off switch over one loop: returns state ("off" | "warn" | "on") and the 0..1 progress through that state.
u is the loop fraction; the hazard is on from `onAt` to 1, warns for `warnFor` (as a fraction of the loop) before that.
| arg | type | description |
|---|
| u | number | |
| onAt | number | |
| warnFor | number | |