RECORDGOD/webstore/assets/wowplatter/booth.svg
type-two 8c25b65d7e feat(virtual): finish the 3D store port — per-room scoping, decals, portals
Scene was dumping all 3 rooms' racks/crates/lights into one room, and the
served decals + portals were never rendered (trapped in booth-room).

- /virtual/scene scopes to ONE room (?space=, default = is_default space);
  filters racks/crates/lights/cameras/portals/decals/covers by space_id
- render decals (image + canvas-text planes) and portal doorways; walk into
  a portal -> loads the linked room
- portal links_to_id is the PAIRED portal's id, not a space — resolve through
  it to the destination room (to_space)
- copy the 29 referenced decal webp/svg into webstore/assets (self-contained,
  served /store/assets); rewrite WP /wp-content/uploads/ paths in the scene API
- skip the 17MB logo .glb mesh decal (flat logo-blue.webp covers branding)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 21:00:02 +10:00

28 lines
1012 B
XML
Executable File

<svg xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 1860 790"
width="930" height="395"
stroke="#000" fill="none" stroke-linejoin="miter" stroke-linecap="square">
<!-- OUTER FRAME (3cm = 30 units thick) -->
<rect x="0" y="0" width="1860" height="790" stroke-width="30"/>
<!-- FRONT OPENING (inner frame) -->
<rect x="30" y="30" width="1800" height="730" stroke-width="6"/>
<!-- DEPTH (20cm = 200 units) -->
<!-- FRONT CORNERS -->
<!-- FL(30,30) FR(1830,30) BL(30,760) BR(1830,760) -->
<!-- BACK CORNERS -->
<!-- FL'(230,230) FR'(1630,230) BL'(230,560) BR'(1630,560) -->
<!-- Connecting lines (front → back) -->
<line x1="30" y1="30" x2="230" y2="230" stroke-width="4"/>
<line x1="1830" y1="30" x2="1630" y2="230" stroke-width="4"/>
<line x1="30" y1="760" x2="230" y2="560" stroke-width="4"/>
<line x1="1830" y1="760" x2="1630" y2="560" stroke-width="4"/>
<!-- Back rectangle -->
<polygon points="230,230 1630,230 1630,560 230,560" stroke-width="4"/>
</svg>