bsc_block
<!-- zero:scaffolded-readme --> <!-- Replace the line below with what this module provides and who consumes it, then delete both comment lines. -->
bsc_block
<!-- zero:scaffolded-readme --> <!-- Replace the line below with what this module provides and who consumes it, then delete both comment lines. -->TODO: describe this module.
Interface
What this asset declares: the schema it conforms to, what it exposes, and the rendered structured payload.
conforms to
zero/source-extract/v2nonstrict
nz(ix: number, iy: number, p: number, s: number) → number
| arg | type | description |
|---|---|---|
| ix | number | |
| iy | number | |
| p | number | |
| s | number |
vn(u: number, v: number, p: number, s: number) → number
value noise on a lattice of `p` cells across the whole [0,1) texture
| arg | type | description |
|---|---|---|
| u | number | |
| v | number | |
| p | number | |
| s | number |
fbm(u: number, v: number, p: number, oct: number, s: number) → number
| arg | type | description |
|---|---|---|
| u | number | |
| v | number | |
| p | number | |
| oct | number | |
| s | number |
clamp01(v: number) → number
| arg | type | description |
|---|---|---|
| v | number |
smoothstep(e0: number, e1: number, x: number) → number
| arg | type | description |
|---|---|---|
| e0 | number | |
| e1 | number | |
| x | number |
job(fn: ?) → void
| arg | type | description |
|---|---|---|
| fn | ? |
mkTexWH(name: string, w: number, h: number, srgb: boolean, fn: ?) → void
| arg | type | description |
|---|---|---|
| name | string | |
| w | number | |
| h | number | |
| srgb | boolean | |
| fn | ? |
mkTex(name: string, size: number, srgb: boolean, fn: ?) → void
| arg | type | description |
|---|---|---|
| name | string | |
| size | number | |
| srgb | boolean | |
| fn | ? |
newCanvas(w: number, h: number, r: number, g: number, b: number, a: number) → void
a raw byte canvas we can draw text into, then hand to mkTexWH
| arg | type | description |
|---|---|---|
| w | number | |
| h | number | |
| r | number | |
| g | number | |
| b | number | |
| a | number |
cput(c: ?, x: number, y: number, r: number, g: number, b: number, a: number) → void
| arg | type | description |
|---|---|---|
| c | ? | |
| x | number | |
| y | number | |
| r | number | |
| g | number | |
| b | number | |
| a | number |
crect(c: ?, x0: number, y0: number, x1: number, y1: number, r: number, g: number, b: number, a: number) → void
| arg | type | description |
|---|---|---|
| c | ? | |
| x0 | number | |
| y0 | number | |
| x1 | number | |
| y1 | number | |
| r | number | |
| g | number | |
| b | number | |
| a | number |
textWidth(s: string, sc: number) → number
| arg | type | description |
|---|---|---|
| s | string | |
| sc | number |
drawText(c: ?, s: string, x0: number, y0: number, sc: number, r: number, g: number, b: number, a: number) → void
| arg | type | description |
|---|---|---|
| c | ? | |
| s | string | |
| x0 | number | |
| y0 | number | |
| sc | number | |
| r | number | |
| g | number | |
| b | number | |
| a | number |
drawTextCentred(c: ?, s: string, cxm: number, y0: number, sc: number, r: number, g: number, b: number, a: number) → void
| arg | type | description |
|---|---|---|
| c | ? | |
| s | string | |
| cxm | number | |
| y0 | number | |
| sc | number | |
| r | number | |
| g | number | |
| b | number | |
| a | number |
canvasTex(name: string, c: ?, srgb: boolean) → void
| arg | type | description |
|---|---|---|
| name | string | |
| c | ? | |
| srgb | boolean |
normalFromHeight(name: string, w: number, strength: number, hf: ?) → any
Height field -> tangent-space normal map. `hf(u,v)` returns a height in [0,1]; the map is differenced across one texel so a normal map always agrees with the base colour it was derived from.
| arg | type | description |
|---|---|---|
| name | string | |
| w | number | |
| strength | number | |
| hf | ? |
buildTextures( ) → void
THE SURFACES — every texel of wear on this block is computed here.
asphaltH(u: number, v: number) → number
| arg | type | description |
|---|---|---|
| u | number | |
| v | number |
concreteH(u: number, v: number) → number
| arg | type | description |
|---|---|---|
| u | number | |
| v | number |
blockCell(u: number, v: number) → void
| arg | type | description |
|---|---|---|
| u | number | |
| v | number |
cinderH(u: number, v: number) → number
| arg | type | description |
|---|---|---|
| u | number | |
| v | number |
stuccoH(u: number, v: number) → number
| arg | type | description |
|---|---|---|
| u | number | |
| v | number |
tileH(u: number, v: number) → number
| arg | type | description |
|---|---|---|
| u | number | |
| v | number |
woodH(u: number, v: number) → number
| arg | type | description |
|---|---|---|
| u | number | |
| v | number |
metalH(u: number, v: number) → number
| arg | type | description |
|---|---|---|
| u | number | |
| v | number |
rustH(u: number, v: number) → number
| arg | type | description |
|---|---|---|
| u | number | |
| v | number |
stoneH(u: number, v: number) → number
| arg | type | description |
|---|---|---|
| u | number | |
| v | number |
winMask(u: number, v: number) → number
| arg | type | description |
|---|---|---|
| u | number | |
| v | number |
cellUV(idx: number, cols: number, rows: number) → void
| arg | type | description |
|---|---|---|
| idx | number | |
| cols | number | |
| rows | number |
grime(c: ?, amount: number, seed: number) → void
| arg | type | description |
|---|---|---|
| c | ? | |
| amount | number | |
| seed | number |
buildSigns( ) → void
cell(idx: number) → void
| arg | type | description |
|---|---|---|
| idx | number |
band(idx: number, r: number, g: number, b: number) → void
| arg | type | description |
|---|---|---|
| idx | number | |
| r | number | |
| g | number | |
| b | number |
buildPlates( ) → void
mkMat(key: string, content: any) → any
| arg | type | description |
|---|---|---|
| key | string | |
| content | any |
buildMaterials( ) → void
em(key: string, r: number, g: number, b: number, i: number, ar: number, ag: number, ab: number) → void
lights: the block's own emissive surfaces
| arg | type | description |
|---|---|---|
| key | string | |
| r | number | |
| g | number | |
| b | number | |
| i | number | |
| ar | number | |
| ag | number | |
| ab | number |
bucket(mat: string) → void
| arg | type | description |
|---|---|---|
| mat | string |
tint(b: ?, r: number, g: number, bl: number, grimeAmt: number?, grimeH: number?) → void
tint + grime applied to everything added until the next call
| arg | type | description |
|---|---|---|
| b | ? | |
| r | number | |
| g | number | |
| bl | number | |
| grimeAmt | number? | |
| grimeH | number? |
quad(bk: ?, ax: ?, ay: ?, az: ?, bx: ?, by: ?, bz: ?, cx: ?, cy: ?, cz: ?, dx: ?, dy: ?, dz: ?, u0: ?, v0: ?, u1: ?, v1: ?) → void
corners a,b,c,d counter-clockwise seen from the front face
| arg | type | description |
|---|---|---|
| bk | ? | |
| ax | ? | |
| ay | ? | |
| az | ? | |
| bx | ? | |
| by | ? | |
| bz | ? | |
| cx | ? | |
| cy | ? | |
| cz | ? | |
| dx | ? | |
| dy | ? | |
| dz | ? | |
| u0 | ? | |
| v0 | ? | |
| u1 | ? | |
| v1 | ? |
tri(bk: ?, ax: ?, ay: ?, az: ?, bx: ?, by: ?, bz: ?, cx: ?, cy: ?, cz: ?, u0: ?, v0: ?, u1: ?, v1: ?, u2: ?, v2: ?) → void
| arg | type | description |
|---|---|---|
| bk | ? | |
| ax | ? | |
| ay | ? | |
| az | ? | |
| bx | ? | |
| by | ? | |
| bz | ? | |
| cx | ? | |
| cy | ? | |
| cz | ? | |
| u0 | ? | |
| v0 | ? | |
| u1 | ? | |
| v1 | ? | |
| u2 | ? | |
| v2 | ? |
rot(x: number, z: number) → void
| arg | type | description |
|---|---|---|
| x | number | |
| z | number |
P(lx: number, ly: number, lz: number) → void
| arg | type | description |
|---|---|---|
| lx | number | |
| ly | number | |
| lz | number |
P(lx: number, ly: number, lz: number) → void
| arg | type | description |
|---|---|---|
| lx | number | |
| ly | number | |
| lz | number |
houseZ(h: ?) → number
| arg | type | description |
|---|---|---|
| h | ? |
sideSign(h: ?) → number
| arg | type | description |
|---|---|---|
| h | ? |
buildRoad( ) → void
ROAD, KERBS, PAVEMENT, DRAINS
railing(bk: ?, x0: number, y: number, z0: number, x1: number, z1: number, h: number, posts: number) → void
THE BOUNDARY WALLS — cinderblock with chain-link over it, gates at every lot, and the long blank flanks of the alley.
| arg | type | description |
|---|---|---|
| bk | ? | |
| x0 | number | |
| y | number | |
| z0 | number | |
| x1 | number | |
| z1 | number | |
| h | number | |
| posts | number |
buildWalls( ) → void
segment(z0: number, z1: number, seed: number) → void
| arg | type | description |
|---|---|---|
| z0 | number | |
| z1 | number | |
| seed | number |
markEntity(name: string, x: number, y: number, z: number, yaw: number) → any
| arg | type | description |
|---|---|---|
| name | string | |
| x | number | |
| y | number | |
| z | number | |
| yaw | number |
buildHouse(h: ?, index: number) → void
| arg | type | description |
|---|---|---|
| h | ? | |
| index | number |
bar(bk: ?, x0: number, y0: number, z0: number, x1: number, y1: number, z1: number, r: number) → void
a square-section bar between any two points: frames, scaffold, torii, bikes
| arg | type | description |
|---|---|---|
| bk | ? | |
| x0 | number | |
| y0 | number | |
| z0 | number | |
| x1 | number | |
| y1 | number | |
| z1 | number | |
| r | number |
P(a: number, r: number) → void
| arg | type | description |
|---|---|---|
| a | number | |
| r | number |
plant(bk: ?, x: number, y: number, z: number, w: number, hgt: number, n: number) → void
a clump of foliage: three crossed alpha cards
| arg | type | description |
|---|---|---|
| bk | ? | |
| x | number | |
| y | number | |
| z | number | |
| w | number | |
| hgt | number | |
| n | number |
bicycle(x: number, y: number, z: number, yaw: number, tintR: number, tintG: number, tintB: number) → void
| arg | type | description |
|---|---|---|
| x | number | |
| y | number | |
| z | number | |
| yaw | number | |
| tintR | number | |
| tintG | number | |
| tintB | number |
P(f: number, up: number) → void
| arg | type | description |
|---|---|---|
| f | number | |
| up | number |
Tashiro(h: ?, s: ?, fn: ?, fx: ?, z: ?, hz: ?) → void
WHO LIVES HERE — the line beside each name in BSC.BLOCK.houses, built.
| arg | type | description |
|---|---|---|
| h | ? | |
| s | ? | |
| fn | ? | |
| fx | ? | |
| z | ? | |
| hz | ? |
Ninomiya(h: ?, s: ?, fn: ?, fx: ?, z: ?, hz: ?) → void
| arg | type | description |
|---|---|---|
| h | ? | |
| s | ? | |
| fn | ? | |
| fx | ? | |
| z | ? | |
| hz | ? |
Kusakabe(h: ?, s: ?, fn: ?, fx: ?, z: ?, hz: ?) → void
| arg | type | description |
|---|---|---|
| h | ? | |
| s | ? | |
| fn | ? | |
| fx | ? | |
| z | ? | |
| hz | ? |
Ose(h: ?, s: ?, fn: ?, fx: ?, z: ?, hz: ?) → void
| arg | type | description |
|---|---|---|
| h | ? | |
| s | ? | |
| fn | ? | |
| fx | ? | |
| z | ? | |
| hz | ? |
Hanabusa(h: ?, s: ?, fn: ?, fx: ?, z: ?, hz: ?) → void
| arg | type | description |
|---|---|---|
| h | ? | |
| s | ? | |
| fn | ? | |
| fx | ? | |
| z | ? | |
| hz | ? |
Ando(h: ?, s: ?, fn: ?, fx: ?, z: ?, hz: ?) → void
| arg | type | description |
|---|---|---|
| h | ? | |
| s | ? | |
| fn | ? | |
| fx | ? | |
| z | ? | |
| hz | ? |
Kirihara(h: ?, s: ?, fn: ?, fx: ?, z: ?, hz: ?) → void
| arg | type | description |
|---|---|---|
| h | ? | |
| s | ? | |
| fn | ? | |
| fx | ? | |
| z | ? | |
| hz | ? |
Mizoguchi(h: ?, s: ?, fn: ?, fx: ?, z: ?, hz: ?) → void
| arg | type | description |
|---|---|---|
| h | ? | |
| s | ? | |
| fn | ? | |
| fx | ? | |
| z | ? | |
| hz | ? |
Habu(h: ?, s: ?, fn: ?, fx: ?, z: ?, hz: ?) → void
| arg | type | description |
|---|---|---|
| h | ? | |
| s | ? | |
| fn | ? | |
| fx | ? | |
| z | ? | |
| hz | ? |
Tsuzuki(h: ?, s: ?, fn: ?, fx: ?, z: ?, hz: ?) → void
| arg | type | description |
|---|---|---|
| h | ? | |
| s | ? | |
| fn | ? | |
| fx | ? | |
| z | ? | |
| hz | ? |
Nagareyama(h: ?, s: ?, fn: ?, fx: ?, z: ?, hz: ?) → void
| arg | type | description |
|---|---|---|
| h | ? | |
| s | ? | |
| fn | ? | |
| fx | ? | |
| z | ? | |
| hz | ? |
Okubo(h: ?, s: ?, fn: ?, fx: ?, z: ?, hz: ?) → void
| arg | type | description |
|---|---|---|
| h | ? | |
| s | ? | |
| fn | ? | |
| fx | ? | |
| z | ? | |
| hz | ? |
buildShrine( ) → void
INAHO INARI SHRINE — the dead end of the lane
buildKonbini( ) → void
THE CORNER — POPLIFE, Izakaya Tsuki-no-Ha, the koban
buildIzakaya( ) → void
buildKoban( ) → void
buildLaundry( ) → void
COIN LAUNDRY ARARE — humming on the Kirihara lot, its glass to the lane
buildCourt( ) → void
THE COURT, THE PLOT, THE BUS STOP
buildRicePlot( ) → void
buildBusStop( ) → void
buildPoles( ) → void
reserved(x0: number, z0: number, x1: number, z1: number) → boolean
| arg | type | description |
|---|---|---|
| x0 | number | |
| z0 | number | |
| x1 | number | |
| z1 | number |
buildSprawl( ) → void
solid(name: string, cx: number, cy: number, cz: number, sx: number, sy: number, sz: number) → void
| arg | type | description |
|---|---|---|
| name | string | |
| cx | number | |
| cy | number | |
| cz | number | |
| sx | number | |
| sy | number | |
| sz | number |
buildColliders( ) → void
finalizeOne(mat: string, b: ?) → number
| arg | type | description |
|---|---|---|
| mat | string | |
| b | ? |
build( ) → void
rebuild( ) → void
update(dt: number) → void
Drain the queue in slices, then keep the block alive.
| arg | type | description |
|---|---|---|
| dt | number |
Sub-parts
Everything contained inside this part. Assets are composite children (clickable cards). Files are leaf payloads. Expand any row to view its source.
Problems
Everything affecting this asset right now: its own problems, anything wrong inside it, and problems on its direct dependencies.
agent_score is exposed.+ quality × 0.35
+ performance × 0.25
± compat factor
Usability ratings
Did the part work as advertised when consumers tried to drop it in. Separate from upvotes: those are taste; this is "did it function".
Scoped to this part · feeds back into the world's score.