Skip to content

Furniture pack: fish tank, piano, hot tub — closes #72#78

Open
nicosandller wants to merge 1 commit into
mainfrom
feat/furniture-pack
Open

Furniture pack: fish tank, piano, hot tub — closes #72#78
nicosandller wants to merge 1 commit into
mainfrom
feat/furniture-pack

Conversation

@nicosandller

Copy link
Copy Markdown
Owner

The #72 ask (a fish tank for the living room — "I know, we're special ;-)") plus two more pieces that fit the same "common home object with no representation" gap, while the file was open:

  • Fish tank — rectangular tank with a glass inset, two top-view fish (lens body + tail) and a bubble, so it reads as an aquarium rather than a rug.
  • Piano — upright piano: body with a keyboard strip along the front edge and key separators.
  • Hot tub — round tub in a square shell with four corner jets.

All three follow the existing glyph conventions (gray line-art, detail over the shared base shape, scale with w/h, rotate with angle) and are wired end-to-end: type union, default sizes, editor labels, the + Add glyph popover, README list. The Record<FurnitureType, …> types force completeness at compile time, as usual.

Verification

tsc clean, 351/351 tests (the every-type-renders-and-has-a-size sweep now covers 26 types), build clean. Harness: all three glyphs render with their distinguishing marks (2 fish ellipses, >8 piano lines, 5 hot-tub circles), the + Add popover lists them as clickable glyphs, and clicking "fish tank" drops a correctly-sized (100×40) piece onto the canvas.

Closes #72.

🤖 Generated with Claude Code

Three new gray line-art glyphs in the same top-view style as the existing
23: a fish tank (glass inset, two fish, a bubble — issue #72's ask), an
upright piano (keyboard strip with key separators), and a hot tub (round
tub in a square shell with corner jets). Wired through the type union,
default sizes, editor labels and the + Add glyph popover.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds three new furniture glyphs (fish tank, piano, hot tub) to the floorplan editor’s furniture system, wiring them through the shared FurnitureType model so they render, size, label, test, and document consistently with existing furniture.

Changes:

  • Extend FurnitureType and FURNITURE_DEFAULT_SIZE with fishTank, piano, and hotTub.
  • Add SVG rendering details for the three new furniture glyphs.
  • Update editor furniture lists/labels, the “every type renders” test sweep, and the README furniture list.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/types.ts Adds the three new furniture types and their default sizes.
src/render.ts Implements SVG detail rendering for fish tank, piano, and hot tub.
src/render.test.ts Extends the “every furniture type renders and has a default size” sweep to include the new types.
src/editor-forms.ts Adds the new types to the editor’s type list and user-facing labels.
README.md Updates the documented furniture list to include the full set, including the new items.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/render.ts
Comment on lines +1014 to +1016
// Issue #72: glass inset, a waterline tick, and two fish seen from
// above (lens body + tail) so it can't be mistaken for a rug.
const fx = w * 0.18;
Comment thread src/render.ts
Comment on lines +1028 to +1029
<circle cx=${w * 0.32} cy=${-h * 0.18} r="1.5" fill="none" stroke=${color}
stroke-width="1" opacity="0.6" />`;
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.

new object icon for fish tank

2 participants