df_journal
The book itself: its state, its pages, its keyboard and its callbacks.
ui.journal.df_journal
The book itself: its state, its pages, its keyboard and its callbacks.
The screen is 1080x1440 and cannot be resized, so the book is laid out in explicit pixels — three columns of known width (gutter, page, tabs) and rows of known height down the page. Nothing here measures itself against a parent it cannot see.
Two pages: the index of a reach's plates, and one specimen's own page with its figure, its depth band and its three field notes. The foot of both is the strip the identification is committed from.
See /zero/source/ui/journal/README.md for the slice's public surface and the
plate vocabulary the fauna slices draw inside.
Interface
What this asset declares: the schema it conforms to, what it exposes, and the rendered structured payload.
conforms to
zero/source-extract/v2df_journal — the field journal. A naturalist's notebook carried down on the line: printed plates and binomials on ruled rag paper, tabbed by stratum, a hand-lettered depth index down the gutter, and the record of what has actually been seen filling in as the dive goes on. It is also the instrument the game is played with — the identification is committed from these pages. Opened with J, closed with J or Escape. Left/Right turn to another stratum, Up/Down move down the plates, Return opens a plate and then commits it. Every one of those is a click as well. The screen is 1080x1440 and cannot be resized, so the book is laid out in EXPLICIT PIXELS rather than in fractions of a parent: three columns — gutter, page, tabs — of known width, and rows of known height down the page. Nothing here measures itself against a parent it cannot see. Slice owner: journal. Screen id `df-journal` (Core.SCREENS.journal).
depthToFrac(d: number) → number
| arg | type | description |
|---|---|---|
| d | number |
entryFor(id: string) → void
| arg | type | description |
|---|---|---|
| id | string |
idsInStratum(stratumId: string) → void
| arg | type | description |
|---|---|---|
| stratumId | string |
isIdentified(id: string) → boolean
| arg | type | description |
|---|---|---|
| id | string |
identifiedDepth(id: string) → number
| arg | type | description |
|---|---|---|
| id | string |
attemptsOn(id: string) → number
| arg | type | description |
|---|---|---|
| id | string |
stratumUnlocked(id: string) → boolean
| arg | type | description |
|---|---|---|
| id | string |
identifiedIn(stratumId: string) → void
| arg | type | description |
|---|---|---|
| stratumId | string |
liveSighting( ) → void
readability( ) → number
plateFor(e: ?, size: number, identified: boolean, locked: boolean) → void
Plates
| arg | type | description |
|---|---|---|
| e | ? | |
| size | number | |
| identified | boolean | |
| locked | boolean |
inkAnimation(since: number) → void
| arg | type | description |
|---|---|---|
| since | number |
inkedSince(id: string) → number
| arg | type | description |
|---|---|---|
| id | string |
depthIndex( ) → void
Column 1 — the hand-lettered depth index
tabs( ) → void
Column 3 — the tabs
pageHead(s: ?) → void
Column 2 — the page
| arg | type | description |
|---|---|---|
| s | ? |
entryRow(e: ?, locked: boolean) → void
| arg | type | description |
|---|---|---|
| e | ? | |
| locked | boolean |
noteBlock(label: string, text: string?, missing: string) → void
| arg | type | description |
|---|---|---|
| label | string | |
| text | string? | |
| missing | string |
specimenPage(e: ?, locked: boolean) → void
| arg | type | description |
|---|---|---|
| e | ? | |
| locked | boolean |
commitStrip( ) → void
The commit strip
indexBody(s: ?, locked: boolean) → void
The whole book
| arg | type | description |
|---|---|---|
| s | ? | |
| locked | boolean |
buildTree( ) → void
isOpen( ) → boolean
Opening and closing
open( ) → void
dimColumn(gain: number) → void
A screen composites over the frame at less than full coverage, so whatever the water is doing is read THROUGH the page. Bright caustics and the lamp's bloom behind a sheet of rag paper make the field notes unreadable, which is the one thing this book cannot afford. Turning the column down while the book is open is also what the fiction wants: you stop looking at the water and look at the page. The water slice exposes `gain` for exactly this.
| arg | type | description |
|---|---|---|
| gain | number |
close( ) → void
toggle( ) → void
turnTo(index: number) → void
| arg | type | description |
|---|---|---|
| index | number |
select(id: string?) → void
| arg | type | description |
|---|---|---|
| id | string? |
commit( ) → boolean
handleCallback(id: string, _value: any) → void
Callbacks
| arg | type | description |
|---|---|---|
| id | string | |
| _value | any |
pressed(name: string) → boolean
Keyboard
| arg | type | description |
|---|---|---|
| name | string |
moveSelection(delta: number) → void
| arg | type | description |
|---|---|---|
| delta | number |
readKeys( ) → void
isCurrent( ) → boolean
tick(dt: number) → void
| arg | type | description |
|---|---|---|
| dt | number |
listen(name: string, fn: (any) → void
| arg | type | description |
|---|---|---|
| name | string | |
| fn | (any |
clearStaleBakes( ) → void
A saved scene can carry a frozen `UiPanel` copy of this screen, baked under the name `ui_<screen id>`. A copy like that draws the book a second time, from a tree that no longer updates, and it answers to the same element ids as the live one. The book takes its own copies down when it mounts so only one of it is ever on the page.
mount( ) → void
unmount( ) → void
isMounted( ) → boolean
debugState( ) → void
Sub-parts
Everything contained inside this part. Assets are composite children (clickable cards). Files are leaf payloads. Expand any row to view its source.
Showing up to 3 levels deep. Open a part to see what it holds further down.
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.