Shared join module for transport pieces; belt drawing uses it (t67 phase 1)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-27 13:00:43 -04:00
co-authored by Claude Opus 5.5
parent 787721ad35
commit 65338b2b27
11 changed files with 274 additions and 38 deletions
+16
View File
@@ -4,6 +4,22 @@ What agents have done, newest first. Add an entry for every piece of work: the d
note or request it was for, what changed, the files touched, the tests run, and anything left
open or not verified. Keep each entry short; the git history has the details.
## 2026-10-27: t67 phase 1, shared join module (Claude Code + Codex)
- Owner decision (DESIGN.md, replaces the t62 same-row rule): one join rule for every transport
piece. New DOM-free `src/sim/joins.js`: `pieceEnds`, `endJoin`, `pieceJoins`; rule tables are
compiled once and joins must be mutual. Belt drawing now uses it: `slopeBeltConnections`,
`flatBeltCaps` (now also for ghosts), and the pixel filter frame (`beltLike(b, end)`). Sloped
belt drag previews now pass a planned map.
- Deliberate drawing changes where the old belt rules disagreed: flat belt caps no longer
treat any same-row diagonal screw as joined, and filter frames open only at a real join.
- Files: `src/sim/joins.js`, `src/manifest.json`, `src/render/slope-belts.js`,
`src/render/setup.js`, `src/render/world.js`, `src/ui/previews.js`, `test/t_joins.js`,
`test/t_slope_belt_art.js`, `docs/PROJECT_MAP.md`, `docs/DESIGN.md`.
- Tests: `python3 test/run_all.py --browser` all passed; t_joins checks 4,232 placements,
symmetry, planned maps, and that belt sand flow agrees with the rule. Sim output unchanged.
- Open: screws still use their old rules until phase 2.
## 2026-10-27: t62 corner placements stay separate (Claude Code + Codex)
- Owner tried the corner join and found the jog odd; decision (recorded in DESIGN.md): only