Bug-triage patch — fix torch builds, idle-pawn traps, floor render order
Three playtest-reported bugs fixed out-of-phase before Phase 18: * Furniture build-queue gap: Torch / Bed / Crate / Workbench / CremationPyre were missing World.register_build_site(self) in _ready, so newly-painted designations never entered ConstructionProvider's iteration. The seeded cabin pre-built everything via _spawn_complete_* helpers, masking the gap until a player painted a fresh furniture designation. * Wall-trap regression for bystanders + walk-through pawns: Wall._complete now dislodges any pawn on the tile via new Pathfinder.find_nearest_walkable BFS helper; Pawn._advance_walk re-checks next tile walkability before stepping, aborts walk + cancels job + lets Decision reroute. Phase 6's adjacent-stand fix only protected the BUILDING pawn. * Floor / Pawn Y-sort ambiguity: Floor was anchored at tile-center (same Y as Pawn), so Y-sort tiebreak fell to scene-tree order and Floor (spawned later) drew over Pawn. Moved Floor origin to top-of-tile so Floor.y < Pawn.y under Y-sort; _draw rect offsets compensate. All three verified via MCP runtime: torch built end-to-end, all 3 pawns working on different jobs with no idle traps, pawn renders over floor. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
d41778a483
commit
922f269a6c
9 changed files with 97 additions and 14 deletions
19
memory.md
19
memory.md
|
|
@ -87,6 +87,18 @@ Distilled from the brainstorm. Each lock has a "why" — change with deliberate
|
|||
- Mana Seed series considered but **dropped** from buy plan (the bundle covers what we'd planned).
|
||||
- **Authoring still required**: designation overlays (~2 hrs custom), possibly autotile bits on bundle wall sheets, possibly wolf sprite, possibly grave marker.
|
||||
|
||||
## Known bugs / triage backlog
|
||||
|
||||
Reported from playtest. Triaged but not yet fixed. Plan: knock out as a bug-triage patch out-of-phase before Phase 18 (Audio) — same shape as the 2026-05-12 PC-controls patch.
|
||||
|
||||
- [x] **[HIGH] Torches don't build when placed.** Reported 2026-05-15, fixed 2026-05-15. Root cause: Torch/Bed/Crate/Workbench/CremationPyre didn't call `World.register_build_site(self)` in `_ready` (only Wall/Floor/Door/GraveSlot did). ConstructionProvider iterates `World.build_queue` so the unregistered entities were never offered as jobs. The seeded cabin pre-built everything via `_spawn_complete_*` helpers, masking the gap until a player painted a fresh furniture designation. Fix: added register_build_site / unregister_build_site to all five entity types.
|
||||
- [x] **[HIGH] Two of three pawns sit idle, one does all work.** Reported 2026-05-15, fixed 2026-05-15. Root cause: pawns get stranded on tiles that became impassable mid-walk. Sequence: pawn-A walks a path computed pre-wall; pawn-B builds a wall on a tile in pawn-A's path; pawn-A keeps stepping along the now-stale path and lands on the wall tile; pathfinder requires a walkable START, so all subsequent find_path calls from pawn-A return empty → pawn-A is idle forever. The Phase 6 wall-trap-bug fix only protected the BUILDING pawn (adjacent-stand); bystanders + walk-through cases weren't covered. Two-part fix: (a) Wall._complete dislodges any pawn standing on the tile via new `Pathfinder.find_nearest_walkable` BFS helper; (b) Pawn._advance_walk re-checks `next_tile` walkability before snapping `tile`, aborts walk + cancels job + lets Decision reroute. Defense in depth.
|
||||
- [x] **[MED] Pawns render behind floor tiles.** Reported 2026-05-15, fixed 2026-05-15. Root cause: Floor entity anchored origin at tile-center (`tile.y*16+8`), same Y as Pawn — Y-sort tiebreak fell to scene-tree order, Floor (spawned later) drew over Pawn. Fix: moved Floor origin to top-of-tile (`tile.y*16`) so Floor.y < Pawn.y under Y-sort; _draw offsets compensate (rect spans y=0..TILE_SIZE_PX instead of -half..+half).
|
||||
|
||||
Older bugs noted in passing but never fixed:
|
||||
- [ ] **[LOW] Bed-claim failure for 2/3 pawns when beds are free** (logged 2026-05-11). `Bram bed claim failed at /root/Main/World/Bed — sleeping on floor` even when beds free. Doesn't gate progress; needs sleep-system audit.
|
||||
- [ ] **[LOW] Save mid-INTERACT/mid-BUILD restarts toil from 0 on load** (Phase 16 known acceptable gap). Walk toil round-trips; multi-step interact does not. Tolerable per Phase 20 tuning note.
|
||||
|
||||
## Open questions / TODOs
|
||||
|
||||
### Audit / unblock-the-prototype action items
|
||||
|
|
@ -247,6 +259,13 @@ Same scope as locked in `~/claude/ideas/rimlike/plan.md`. Realistic timeline 3
|
|||
- **Pattern recorded:** when copying a new texture into `art/tiles/`, run `/mnt/d/godot/Godot_v4.6.2-stable_win64.exe --editor --headless --quit` to force generation of the `.import` file before any scene can `preload()` it. Skipping this step yields a silent null preload at runtime.
|
||||
- Delegation report this session: **No delegation — handled on Opus** for sprite-atlas surveys, GDScript refactors, MCP runtime verification. Pure visual / MCP-tool work; subagents would have re-read the same files repeatedly.
|
||||
|
||||
### 2026-05-15
|
||||
- **Bug-triage patch shipped** out-of-phase, before Phase 18 (Audio) starts. Same pattern as the 2026-05-12 PC-controls patch. Three playtest-reported bugs investigated, root-caused, fixed, and MCP-runtime-verified end-to-end. See **Known bugs / triage backlog** above for per-bug detail.
|
||||
- **Pattern recorded — "pre-built seed masks downstream wiring gaps".** Five entity types (Torch / Bed / Crate / Workbench / CremationPyre) had been missing `World.register_build_site(self)` since Phase 17 landed. Nobody noticed because the cabin demo seed calls `_spawn_complete_*` helpers (insta-builds via direct on_build_tick loop), so no player ever painted a fresh furniture designation. Lesson: when adding a new entity type to a build-queue iterating system, always playtest the FRESH-PAINT path, not just the pre-built seed.
|
||||
- **Pattern recorded — "pathfinder mutation can strand walking pawns".** When set_cell_walkable(false) fires, pawns already mid-walk on a path through that cell will keep stepping along the stale path and land on the now-impassable tile. AStarGrid2D requires walkable START, so the pawn idles forever. Defense-in-depth fix: Wall._complete dislodges-on-tile + Pawn._advance_walk re-checks walkability before stepping. Generalises to any future system that mutates pathfinder walkability (e.g. doors, big_rock, future fortifications).
|
||||
- **Pattern recorded — "Y-sort equal-Y ambiguity".** Two entities at same Y-sort root with same position.y fall back to scene-tree order, which is fragile. Always set distinct Y-positions for distinct visual layers (ground vs. above-ground). Ground-tier entities use top-of-tile anchor; above-ground entities use bottom-of-tile anchor (Wall/Bed/Torch/Workbench pattern). Pawn at mid-tile sits cleanly between.
|
||||
- Delegation report: `researcher` (Haiku, 1 dispatch) mapped three bug surfaces (~600 word digest with file:line citations). All fixes + MCP runtime verification handled on Opus — fix sites were already in context from the researcher report, so re-dispatching to Sonnet would have been pure overhead.
|
||||
|
||||
## External references
|
||||
|
||||
- **Forgejo repo:** https://git.rdx4.com/megaproxy/rimlike (private)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue