Skip to content

Let building palettes and kit parts carry tiled PBR surfaces - #1749

Merged
Noisemaker111 merged 1 commit into
mainfrom
claude/building-surfaces
Sep 5, 2026
Merged

Noisemaker111 merged 1 commit into
mainfrom
claude/building-surfaces

Conversation

@Noisemaker111

Copy link
Copy Markdown
Owner

Building facades could only be flat colours; the ambientCG Facade/Bricks/Plaster/RoofingTiles packs were already in the catalog but had no seam into the generator. First slice of #1624 (the material path; the mesh path stays blocked on assets).

  • packages/core/src/world/buildings.ts: BuildingSurfaceMaterial (color, maps, repeat, roughness, metalness), BuildingSurface = string | material, BuildingPalette parts widen to it; buildingSurfaceColor / resolveBuildingSurface for colour-only readers.
  • packages/core/src/world/buildingKit.ts: BuildingKitPart.material.
  • packages/shell/src/structures/buildingSurface.ts: non-suspending map loader with per-caller tiled clones; a missing map file is skipped, not fatal.
  • packages/shell/src/structures/GeneratedBuilding.tsx, BuildingKitBatch.tsx: instanced boxes and kit models apply the surface; kit instances bucket by tint plus surface.
  • CityRenderer.tsx, buildingGenerator.ts: read colours through buildingSurfaceColor.
  • apps/dev/public/materials: plaster001 and roofingtiles001 pulled for the loopline shots.
  • CHANGELOG, generated api.

Refs #1624. Loopline adoption is in Noisemaker111/JGengine-games (parked until the next SDK release carries these types). vice-isle stays out of scope per the issue note on navigation.

Verification: check-types core/shell/editor pass; test buildings, buildingKit, shell structures pass; check-stateful-ratchet, check-doc-symbols, check-orphan-ratchet, check-changelog pass.

loopline --mode play, before (flat colours) / after (plaster walls, tiled roofs):

building-surface-before
building-surface-after
building-surface-before-high
building-surface-after-high

🤖 Generated with Claude Code

A BuildingPalette part (and BuildingKitPart.material) may be a colour plus
maps/repeat/roughness/metalness instead of only a hex; generated facade boxes
and kit models tile the maps per slot, colour-only consumers read the hex through
buildingSurfaceColor. Textures load without suspending and a missing map file
(a pack with no ao.jpg) is skipped rather than failing the batch. Pulls
ambientCG plaster001 and roofingtiles001 into the dev app for loopline.

Refs #1624

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@Noisemaker111
Noisemaker111 enabled auto-merge (squash) September 5, 2026 08:41
@Noisemaker111
Noisemaker111 merged commit 9693c8a into main Sep 5, 2026
6 checks passed
@Noisemaker111
Noisemaker111 deleted the claude/building-surfaces branch September 5, 2026 08:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant