No description
Find a file
megaproxy f435c3c467 Hauling/JobRunner: fail unreachable walks; pre-check haul reachability
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>
2026-05-12 13:58:47 +01:00
.claude Wire Godot MCP Pro and tiered subagents (mirrors tavernkeep) 2026-05-10 19:26:54 +01:00
art Phase 1 — 80² world, 6-layer TileMap, camera rig, tick loop, speed UI 2026-05-10 20:37:02 +01:00
audio Phase 0 scaffold + asset audit findings 2026-05-10 20:09:11 +01:00
autoload Alerts: wire room_too_large, no_stockpile_accepts, bill_blocked 2026-05-12 13:16:25 +01:00
data Phase 0 scaffold + asset audit findings 2026-05-10 20:09:11 +01:00
docs Phase 17: Touch UX (PawnDetail+BuildDrawer+WorkMatrix+AlertsLog+Settings) 2026-05-11 19:45:35 +01:00
scenes Hauling/JobRunner: fail unreachable walks; pre-check haul reachability 2026-05-12 13:58:47 +01:00
tests Phase 0 scaffold + asset audit findings 2026-05-10 20:09:11 +01:00
tools Phase 0 scaffold + asset audit findings 2026-05-10 20:09:11 +01:00
.gitignore Wire Godot MCP Pro and tiered subagents (mirrors tavernkeep) 2026-05-10 19:26:54 +01:00
.mcp.json Wire Godot MCP Pro and tiered subagents (mirrors tavernkeep) 2026-05-10 19:26:54 +01:00
CLAUDE.md Wire Godot MCP Pro and tiered subagents (mirrors tavernkeep) 2026-05-10 19:26:54 +01:00
icon.svg Phase 0 scaffold + asset audit findings 2026-05-10 20:09:11 +01:00
icon.svg.import Make main scene root Node2D so editor defaults to 2D view 2026-05-10 20:19:09 +01:00
memory.md memory.md: log PC controls patch + latent backdrop-bug fix 2026-05-12 12:07:09 +01:00
project.godot PC controls: keyboard pan/zoom, Tab cycle, Escape stack, right-click deselect 2026-05-12 12:06:38 +01:00
README.md Phase 0 scaffold + asset audit findings 2026-05-10 20:09:11 +01:00

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

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).