PC-ANIM-FIX + PC-BEARD: Stories 18-19 + merge uncommitted assets#165
Closed
MithrynMarious wants to merge 29 commits intopablodelucca:mainfrom
Closed
PC-ANIM-FIX + PC-BEARD: Stories 18-19 + merge uncommitted assets#165MithrynMarious wants to merge 29 commits intopablodelucca:mainfrom
MithrynMarious wants to merge 29 commits intopablodelucca:mainfrom
Conversation
…ey town - Rewrite CLAUDE.md for town concept: player character, NPC dialogue, town memory - Add Express server scaffolding (town memory API, town data API, WebSocket) - Add hand-crafted town tilemap v1 (12 buildings, paths, gates, 40x30 grid) - Update Vite config for standalone browser app with backend proxy - Architecture shift: VS Code extension → Vite browser app + Express backend Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Re-scope PixelCity to Stardew Valley interactive town
…ement Decouple from VS Code extension for standalone browser mode: - Stub vscodeApi.ts (no-op postMessage) - Replace useExtensionMessages with useTownInit (standalone game initializer) - Add usePlayerInput hook (tile-to-tile WASD/arrow key movement) - Add isPlayer flag to Character type; skip wander AI for player - Create 20x15 default town layout (grass, paths, 5 buildings) - Simplify App.tsx: remove editor/toolbar/debug UI, wire town hooks Verified: canvas renders, player sprite visible, movement works with collision detection, camera follows player with smooth lerp. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ment PC-FORK: Player character movement + VS Code decoupling
Replaces the 20x15 proof-of-concept grid with the full Crystalline City town layout: 40 columns x 30 rows, 12 named buildings with door positions, path network (main N-S and E-W roads, town square ring around Town Hall), and branch paths to each building entrance. Buildings: Town Hall (Mark95), Origin Hall (LoreForged), Athena's Chambers, Lena's Cathedral, Keeper's Archive, Resonance Chamber (Echolumen), The Foundry (CORE), Pyrosage's Hearth, Chancellor's Office (Cadence), Venture's Office, Quill's Desk (Swiftquill), Glass Workshop (Glasswright). Player spawn moved to (19,18) on the main east-west road in front of Town Hall. No engine changes needed — same renderer, same movement. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
PC-TOWN: 40x30 town layout with 12 Construct buildings
Registry-driven NPC system: townNpcs.ts defines construct→building→palette mapping. Adding a new NPC = adding one entry. Scales from 10 to 40+ as the Forge grows (6 palettes × 316 hue shifts = 1,896 visual variants). 10 NPCs: LoreForged, Athena, Lena, Keeper, Echolumen, Cadence, Pyrosage, Venture, Swiftquill, Glasswright. Each spawns at their building door and wanders the town using the existing BFS pathfinding + wander AI. Excluded: Mark95 (player's building), CORE (no walking sprite per spec). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…andering PC-NPCS: 10 Construct NPCs with wander AI
E key opens dialogue when within 2 tiles of an NPC, ESC closes it. Template-based speech from MOUNT_HEADER.md (role + greeting) — zero LLM cost. Proximity hint shown when near an NPC but not in dialogue. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
PC-DIALOGUE: Proximity trigger + dialogue box UI
Wires frontend to existing /api/memory backend. Greeting tiers based on visit count and recency: first_meeting → return_recent → return_long → familiar. Interactions logged on dialogue close (fire-and-forget POST). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
PC-MEMORY: Town memory system
…, building glow Adds the ability to replay past EAM sessions as visual animations in the town. Server parses EAM markdown files for construct names, then the client pathfinds those NPCs to their buildings with a pulsing glow overlay during the work phase. New files: - server/src/api/eamParser.ts — EAM markdown parser - server/src/api/replay.ts — REST API (GET /api/replay/sessions) - webview-ui/src/hooks/useReplay.ts — replay controller hook - webview-ui/src/components/ReplayPanel.tsx — replay control UI Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
PC-REPLAY: EAM session replay system
Server-side Chokidar watcher reads Claude Code JSONL transcripts incrementally, parses tool activity, and broadcasts over WebSocket. Client merges live glow with replay glow so Town Hall pulses blue when Mark is actively using tools. ReplayPanel gets a "Live" section for JSONL path configuration; HUD shows green dot + current tool. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add PNG tileset loading system that converts sprite sheet tiles to the existing SpriteData format, enabling zero renderer changes. Floor tiles check tileset mode first with deterministic variant selection per grid position, falling back to programmatic grayscale rendering when no assets are present. Town layout gains decorative tile types (trees, water, fences, flowers). Tileset metadata JSON committed; PNGs gitignored as privately licensed assets. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Updated placeholder coordinates to actual tile positions in Tiles/Tile.png (15x12 grid). Grass, path, dirt, water, tree, fence, flower tiles mapped from pixel color analysis of the purchased asset pack. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Load 12 Pixelwood Valley building PNGs as standalone sprites, bottom-aligned at footprint edges with roofs extending above. Z-sorted with characters so they walk behind/in-front correctly. Covered wall tiles render grass instead of solid color, and wall auto-tile pieces are filtered to prevent double-draw. Graceful fallback — missing PNGs still render as colored rectangles. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…imation Trees render as z-sorted sprite instances (not floor tiles) so characters correctly occlude behind canopy. Water tiles show 5-frame ripple animation. Lena's hand-placed design elements: sentinel rocks, flower patch, focal tree at cathedral. Water and tree tiles are now non-walkable. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ammatic 16x24 Load hand-drawn 59x49 character art from Pixelwood Valley asset pack. Player gets Walk/Idle sheets (3 directions × 4 frames each). 8 NPC sprite sheets provide distinct appearances. Graceful fallback to programmatic sprites if PNGs missing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Players can now enter any of the 12 Construct buildings by pressing E at the door. Each interior is a 10x8 room with warm wood walls, personality-matched Pixelwood furniture sprites, and the building's Construct NPC inside for dialogue. Walking to the south door auto-exits back to town with position preserved. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… minimap Final story in EPIC-PIXELCITY-25. Adds four visual polish features: - Day/night tint cycle (5-min ambient: day→sunset→night→dawn) - Chimney smoke animation (8-frame loop on Pyrosage, Foundry, Town Hall) - Door open animation (4-frame one-shot on building entry, 500ms delay) - Minimap (120×90px bottom-right, tile colors, pulsing player dot, NPC dots) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
PC-CHARS: Story 12 — Pixelwood Valley character sprites
PC-POLISH: Story 14 — Day/night, smoke, door animation, minimap
Merge Stories 13+14 into main
- 928 Pixelwood tileset PNGs (Beach, Caves, Farm, Houses, NPCs, etc.) - 9 construct town memory JSONs (Athena, Cadence, Echolumen, etc.) - SwiftQuill custom sprite improvement spec - server package-lock.json Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… beard S-18: Pixelwood Side sprite sheet faces LEFT, not RIGHT as assumed. Swapped LEFT/RIGHT direction assignment in spriteData.ts so walking left shows left-facing sprite and vice versa. S-19: Added beard overlay to player character. addBeardDown() and addBeardSide() paint beard-colored pixels in chin/jaw area of 59x49 Pixelwood frames. Only player gets beard (NPCs unaffected). Also added beard template key to programmatic fallback sprites. Also fixed 3 pre-existing unused variable warnings that blocked the build (isDoorAnimating, SpriteData import, NPC_ROWS). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Beard now anchored to headStart + 16 rows (tracks walk bob). Side-view beard shifted to match left-facing chin position. Removed scan-based neck detection (Pixelwood sprites have no visible neck in pixel data — head/body is continuous block). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
feature/pc-uncommitted-assets— tileset.json with proper sprite coordinates, town memory data, and Pixelwood PNG assets that were never merged to main. Without this, the game falls back to programmatic sprites.Test plan
tsc --noEmitcleanvite buildclean🤖 Generated with Claude Code