You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: AGENTS.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,10 @@ This file collects facts that are **not derivable by reading the code** and woul
10
10
11
11
-**`test.js` parity test requires palette source injection.** The worker source template contains `${PALETTE_JS_SOURCE}` which is a literal string when read from disk (not a template literal at read time). The parity test must substitute `pal.PALETTE_JS_SOURCE` into the source before `import()`ing, or it fails with `Unexpected token '{'`. Any new `${...}` interpolations in the worker source must be mirrored in `test.js`.
12
12
13
+
-**Biome palette slot usage.**`client/TerrainBiomePalette.js` defines BIOME_KINDS (0-7: rolling_hills, grasslands, highlands, mountains, alpine, swamp, beach, forest), indexed from `src/terrain/BiomePresets.js`. Worker only uses palette slots 0 (low-elevation) and 1 (high-elevation) per kind via `paletteColor(kind, slot)`. Slots 2-4 currently unused. When changing terrain aesthetics, only slots 0+1 affect what renders.
14
+
15
+
-**Free-fly camera terrain following is auto-wired, requires no special case.** P key toggles free-fly editMode via `src/client/InputHandler.js` (`_editActive` → `input.editToggle`) → `client/app.js:147` calls `cam.setEditMode()` → `client/camera.js:111-120` writes `editCamPos` to `camera.position` each frame. Then `client/app.js:193` unconditionally calls `_terrain.update(camera.position)` every animate frame — it auto-follows the camera regardless of mode. Note: there is a SEPARATE editor mode in `client/editor.js:168` also bound to KeyP; both handlers fire but serve different systems and do not conflict. Terrain update is camera-agnostic.
16
+
13
17
## CI / Deploy
14
18
15
19
-**Declaudeify workflow force-rewrites history on every push.** After `git push`, a GitHub Action strips "Claude" strings from commit messages and force-pushes. Local `main` always diverges from origin after CI runs. Run `git pull --rebase` before every second push in a session, or the second push is rejected.
0 commit comments