No description
Two compounding bugs made hauling appear broken when targets were behind walls. User report: 'i set a stockpile and there is stuff to move' — items sat indefinitely. JobRunner._tick_walk treated 'path is empty' (unreachable) by marking the walk toil done and silently advancing to the next toil. Pickup/deposit then ran at the pawn's CURRENT tile instead of the intended target — 'Bram pickup: no item at (44, 25)' for an item that lived at (45, 21). The job 'completed' wrongly. Now an unreachable walk cancel_job()'s, letting Decision pick something else next tick. HaulingProvider didn't pre-check reachability before handing out a job. With the JobRunner fix alone, Decision would have re-picked the same unreachable haul every tick (busy-spin at 20 Hz). Now the item loop and corpse loop both skip targets where find_path is empty from pawn.tile. Cost: ~10 us pathfind per candidate; trivial at MVP scale. Verified MCP runtime: bread at (45, 21) (reachable) hauled end-to-end to the stockpile at (15, 62). Bread at (50, 21) (unreachable behind the cabin wall arrangement) correctly skipped — no job assigned, no busy spin in the log. Bram completed the haul and picked up his next job (Harvest wheat) naturally. Note: the JobRunner unreachable-cancel fix also helps any other provider whose walk_to leg fails — chop/mine/construction were silently 'finishing' the same way when targets walled off. They now cancel cleanly too. Their providers don't yet pre-check reachability, so they could cancel-loop on unreachable targets if nothing else is queued — left for a followup once a real case surfaces. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| art | ||
| audio | ||
| autoload | ||
| data | ||
| docs | ||
| scenes | ||
| tests | ||
| tools | ||
| .gitignore | ||
| .mcp.json | ||
| CLAUDE.md | ||
| icon.svg | ||
| icon.svg.import | ||
| memory.md | ||
| project.godot | ||
| README.md | ||
rimlike
A 2D, tile-based cute-farming-RPG-meets-colony-sim for mobile and handheld. Rimworld DNA, Going Medieval × Stardew lodestars. Built on Godot 4.
Working title rimlike — rename TBD.
Working in this repo
- Project rules:
CLAUDE.md - Decisions index + open questions:
memory.md - Phased build plan (the checklist):
docs/implementation.md - Game design:
docs/design.md - Tech / engine layout:
docs/architecture.md - Touch UX:
docs/ui.md - Art / tilesets / license:
docs/art.md
On a fresh clone
The proprietary Godot MCP Pro addon is gitignored. Re-copy from the local install before opening the project:
cp -r /mnt/d/godot/mcp/addons/godot_mcp ./addons/
Then open project.godot in Godot 4.6+. Project → Project Settings → Plugins → enable Godot MCP Pro. Look for the green dot in the "MCP Pro" bottom panel.
Engine
Godot 4.6.2 stable, GDScript only, GL Compatibility renderer (max mobile reach), 16×16 pixel art (texture filter = nearest, pixel snap on).