From d41778a483e07eca4e3224b38f8455864acb4457 Mon Sep 17 00:00:00 2001 From: megaproxy Date: Tue, 12 May 2026 16:18:02 +0100 Subject: [PATCH] memory.md: log visual sprite upgrade pass session Walls, items, and doors swapped from procedural draws to ElvGames atlas sprites this session. Notes on tileset survey results (which atlases have 1-tile-wide doors vs castle gates), MCP execute_game_script statement limit, and the .import-generation step required for new textures. Co-Authored-By: Claude Opus 4.7 (1M context) --- memory.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/memory.md b/memory.md index c302d8b..4ffdf65 100644 --- a/memory.md +++ b/memory.md @@ -238,6 +238,15 @@ Same scope as locked in `~/claude/ideas/rimlike/plan.md`. Realistic timeline 3 - **Pattern recorded:** for any CanvasLayer-based UI panel with full-screen backdrop, always toggle `self.visible` (CanvasLayer) in addition to inner Control visibility, OR use `mouse_filter=PASS` on the backdrop. Apply when adding future modals. - Delegation report: PC controls drafted by `gdscript-refactor` (Sonnet, 2 dispatches — spec implementation + polish pass). Backdrop-bug discovery + fix done on Opus during MCP runtime verification (already in context). Headless + runtime verify all green. +- **Visual sprite upgrade pass (play → fix → play loop).** Three procedural draws replaced with ElvGames atlas sprites this session: + - **Walls** — stone-fill was at FG_Fortress (1,1), which is a tan stone *floor* tile (no brick texture, no cap). Swapped to (13,4) — middle column of a 3-tile-wide capped autotile, used as a non-autotile single sprite. Reads as a proper brick wall with a depth cap. Commit before context summary. + - **Items on ground** — five most-spawned types (stone, iron_ore, gold, wood, plank) now render from FG_Abandoned_Mines coords with a quality border + stack-count badge composited on top in `_draw()`. Other types still use the original hue-hashed square fallback. Commit `7274ada`. + - **Doors** — first attempt used FG_Fortress 32×32 closed-gate at (4,19); user rejected as "a door for a entrance to a castle" (commit `ac21443`). Pivoted to **FG_Village (3, 24)**, a 1-tile-wide olive-wood cabin door with U-handle extracted from the red-roofed cottage template. Commit `745ab29`. FG_Village.png copied into `art/tiles/`. +- **Tileset survey notes (for future visual passes).** FG_Fortress = ALL doors are 2-tile-wide castle gates. FG_Houses = component-style 2-wide doors (cottage but still big). **FG_Village** = full-house templates with 1-tile-wide cabin doors baked into the bottom row (the one we used) — good source for residential furniture, signs, windows. FG_Interior = wardrobes/dressers/wallpaper, no standalone door entities. FG_Marketplace = no doors at all. +- **MCP `execute_game_script` quirk:** scripts with 3+ statements fail `Parse error`. Workaround: pack with `;` or use `for x in y: a; b; c` (compound for-body line). Affected this session's visual probes. +- **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. + ## External references - **Forgejo repo:** https://git.rdx4.com/megaproxy/rimlike (private)