rr(a: number, b: number) → number
| arg | type | description |
|---|
| a | number | |
| b | number | |
clamp(x: number, a: number, b: number) → number
| arg | type | description |
|---|
| x | number | |
| a | number | |
| b | number | |
smooth(e0: number, e1: number, x: number) → number
| arg | type | description |
|---|
| e0 | number | |
| e1 | number | |
| x | number | |
warnOnce(key: string, msg: string) → void
| arg | type | description |
|---|
| key | string | |
| msg | string | |
xyz(p: any) → void
A vector, a { x, y, z } map or a { x, y, z } array -> numbers.
norm3(x: number, y: number, z: number) → void
| arg | type | description |
|---|
| x | number | |
| y | number | |
| z | number | |
perp(dx: number, dy: number, dz: number) → void
Two unit vectors perpendicular to (dx, dy, dz) and to each other.
| arg | type | description |
|---|
| dx | number | |
| dy | number | |
| dz | number | |
resolveLook(look: any, where: string) → string
| arg | type | description |
|---|
| look | any | |
| where | string | |
knownKind(cat: string, kind: any, where: string) → boolean
| arg | type | description |
|---|
| cat | string | |
| kind | any | |
| where | string | |
mixWhite(c: RGB, k: number) → RGB
| arg | type | description |
|---|
| c | RGB | |
| k | number | |
materialHandle(mat: string) → any
| arg | type | description |
|---|
| mat | string | |
meshRef(shape: string) → any
| arg | type | description |
|---|
| shape | string | |
sweep( ) → void
Drop every draw and buffer an earlier copy of this module left behind.
bufferStanding(name: string) → boolean
| arg | type | description |
|---|
| name | string | |
poolStanding(pool: Pool) → boolean
| arg | type | description |
|---|
| pool | Pool | |
retirePool(pool: Pool) → void
| arg | type | description |
|---|
| pool | Pool | |
parkPool(pool: Pool) → void
An instanced draw always draws at least one instance: park it at zero scale.
| arg | type | description |
|---|
| pool | Pool | |
getPool(matIn: string, shape: string) → Pool
| arg | type | description |
|---|
| matIn | string | |
| shape | string | |
emit(mat: string, shape: string, mode: number, x: number, y: number, z: number, wid: number, life: number, c: RGB) → Particle
| arg | type | description |
|---|
| mat | string | |
| shape | string | |
| mode | number | |
| x | number | |
| y | number | |
| z | number | |
| wid | number | |
| life | number | |
| c | RGB | |
setAxis(p: Particle, x: number, y: number, z: number, len: number) → void
| arg | type | description |
|---|
| p | Particle | |
| x | number | |
| y | number | |
| z | number | |
| len | number | |
setVel(p: Particle, x: number, y: number, z: number) → void
| arg | type | description |
|---|
| p | Particle | |
| x | number | |
| y | number | |
| z | number | |
toColor(p: Particle, c: RGB) → void
| arg | type | description |
|---|
| p | Particle | |
| c | RGB | |
drawParticle(p: Particle) → void
| arg | type | description |
|---|
| p | Particle | |
stepParticle(p: Particle, dt: number) → boolean
| arg | type | description |
|---|
| p | Particle | |
| dt | number | |
drawTracer(t: Tracer) → boolean
| arg | type | description |
|---|
| t | Tracer | |
zigzag(segs: number, amp: number) → void
A jagged polyline in beam space: triples (t along 0..1, o1, o2 metres off the line).
| arg | type | description |
|---|
| segs | number | |
| amp | number | |
regenBolt(b: Beam, len: number) → void
| arg | type | description |
|---|
| b | Beam | |
| len | number | |
drawBolt(b: Beam, dx: number, dy: number, dz: number, len: number) → void
| arg | type | description |
|---|
| b | Beam | |
| dx | number | |
| dy | number | |
| dz | number | |
| len | number | |
drawLaser(b: Beam, dx: number, dy: number, dz: number, len: number) → void
| arg | type | description |
|---|
| b | Beam | |
| dx | number | |
| dy | number | |
| dz | number | |
| len | number | |
stepFlame(b: Beam, dt: number, dx: number, dy: number, dz: number, len: number) → void
| arg | type | description |
|---|
| b | Beam | |
| dt | number | |
| dx | number | |
| dy | number | |
| dz | number | |
| len | number | |
stepBeam(b: Beam, dt: number) → boolean
| arg | type | description |
|---|
| b | Beam | |
| dt | number | |
entityPos(e: any, id: any) → void
| arg | type | description |
|---|
| e | any | |
| id | any | |
trailPuff(tr: Trail, x: number, y: number, z: number, mvx: number, mvy: number, mvz: number) → void
| arg | type | description |
|---|
| tr | Trail | |
| x | number | |
| y | number | |
| z | number | |
| mvx | number | |
| mvy | number | |
| mvz | number | |
stepTrail(tr: Trail, dt: number) → boolean
| arg | type | description |
|---|
| tr | Trail | |
| dt | number | |
stepOrb(o: Orb, dt: number) → boolean
| arg | type | description |
|---|
| o | Orb | |
| dt | number | |
stepAll(dt: number) → void
Frame loop
| arg | type | description |
|---|
| dt | number | |
at(c: FlashCtx, fwd: number) → void
| arg | type | description |
|---|
| c | FlashCtx | |
| fwd | number | |
radial(c: FlashCtx, a: number, lean: number) → void
A unit direction around the aim axis at angle `a`, leaning `lean` forward.
| arg | type | description |
|---|
| c | FlashCtx | |
| a | number | |
| lean | number | |
smokeWisp(c: FlashCtx, count: number, col: RGB) → void
| arg | type | description |
|---|
| c | FlashCtx | |
| count | number | |
| col | RGB | |
flashStar(c: FlashCtx, spikes: number, spikeLen: number, lean: number, coreW: number, fwdLen: number) → void
| arg | type | description |
|---|
| c | FlashCtx | |
| spikes | number | |
| spikeLen | number | |
| lean | number | |
| coreW | number | |
| fwdLen | number | |
sparkSpray(c: FlashCtx, count: number, col: RGB, speed: number) → void
| arg | type | description |
|---|
| c | FlashCtx | |
| count | number | |
| col | RGB | |
| speed | number | |
segRing(c: FlashCtx, fwd: number, r0: number, speed: number, n: number, life: number, col: RGB, mat: string, wid: number, alpha: number) → void
A thin ring of short segments around the axis, expanding outward: crisper
than a torus, which reads as a fat donut face-on.
| arg | type | description |
|---|
| c | FlashCtx | |
| fwd | number | |
| r0 | number | |
| speed | number | |
| n | number | |
| life | number | |
| col | RGB | |
| mat | string | |
| wid | number | |
| alpha | number | |
ring(c: FlashCtx, fwd: number, w0: number, grow: number, life: number, col: RGB, mat: string, alpha: number) → void
| arg | type | description |
|---|
| c | FlashCtx | |
| fwd | number | |
| w0 | number | |
| grow | number | |
| life | number | |
| col | RGB | |
| mat | string | |
| alpha | number | |
kinds(category: string?) → void
Public
Sorted kind names. With a category ("flash", "tracer", "beam", "trail",
"orb", "burst") only that category's; without one, every distinct name.
| arg | type | description |
|---|
| category | string? | |
makeCtx(pos: any, dir: any, look: string, opts: any) → FlashCtx
| arg | type | description |
|---|
| pos | any | |
| dir | any | |
| look | string | |
| opts | any | |
flash(kind: string, pos: vector, dir: vector, opts: { look: string?, scale: number?, color: { number }? }?) → boolean
A short muzzle / cast effect at `pos` facing `dir`.
| arg | type | description |
|---|
| kind | string | |
| pos | vector | |
| dir | vector | |
| opts | { look: string?, scale: number?, color: { number }? }? | |
tracer(from: vector, to: vector, opts: { look: string?, speed: number?, width: number?, color: { number }? }?) → boolean
A fast streak travelling from `from` to `to`.
| arg | type | description |
|---|
| from | vector | |
| to | vector | |
| opts | { look: string?, speed: number?, width: number?, color: { number }? }? | |
set(_self: BeamHandle, _from: vector, _to: vector) → void
| arg | type | description |
|---|
| _self | BeamHandle | |
| _from | vector | |
| _to | vector | |
stop(_self: BeamHandle) → void
| arg | type | description |
|---|
| _self | BeamHandle | |
active(_self: BeamHandle) → void
| arg | type | description |
|---|
| _self | BeamHandle | |
beam(opts: { kind: string, look: string? }) → BeamHandle
A continuous beam the caller updates every frame with handle:set(from, to).
A beam nobody sets for BEAM_TIMEOUT seconds stops by itself.
| arg | type | description |
|---|
| opts | { kind: string, look: string? } | |
set(_self: BeamHandle, from: vector, to: vector) → void
| arg | type | description |
|---|
| _self | BeamHandle | |
| from | vector | |
| to | vector | |
stop(_self: BeamHandle) → void
| arg | type | description |
|---|
| _self | BeamHandle | |
active(_self: BeamHandle) → void
| arg | type | description |
|---|
| _self | BeamHandle | |
noopTrail( ) → TrailHandle
stop(_self: TrailHandle) → void
| arg | type | description |
|---|
| _self | TrailHandle | |
active(_self: TrailHandle) → void
| arg | type | description |
|---|
| _self | TrailHandle | |
trail(target: any, opts: { kind: string, look: string? }) → TrailHandle
A trail following `target` until handle:stop() or the entity is gone.
| arg | type | description |
|---|
| target | any | |
| opts | { kind: string, look: string? } | |
stop(_self: TrailHandle) → void
| arg | type | description |
|---|
| _self | TrailHandle | |
active(_self: TrailHandle) → void
| arg | type | description |
|---|
| _self | TrailHandle | |
orb(kind: string, opts: { look: string?, scale: number? }?) → any
A glowing projectile body: a plain local entity the caller moves and
despawns. Its glow and flame shell follow it until it is despawned. An
unknown kind or look answers an empty entity, so the caller's code runs.
| arg | type | description |
|---|
| kind | string | |
| opts | { look: string?, scale: number? }? | |
burst(kind: string, pos: vector, normal: vector, opts: { look: string?, scale: number?, color: { number }? }?) → boolean
A weapon-specific impact at `pos` on a surface facing `normal`.
| arg | type | description |
|---|
| kind | string | |
| pos | vector | |
| normal | vector | |
| opts | { look: string?, scale: number?, color: { number }? }? | |
stats( ) → void
live: particles, tracers, beams, trails and orbs alive now.
pooled: instanced draws held for reuse (idle ones cost nothing per frame).
stopAll( ) → void
Stop every effect now (orb entities stay: the caller owns them, but their
glow stops until a new orb is made).
_releasePools( ) → void
Tests: retire every instanced-draw pool this module holds (each draw is dropped before its buffers are freed). The next effect builds what it needs again. A test run frees the GPU buffers a suite made but not the draws over them, so the suite calls this after each test.