RECORDGOD/webstore/assets/wowplatter/bluequart.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

82 lines
4.7 KiB
XML
Executable File

<svg xmlns="http://www.w3.org/2000/svg"
width="2400" height="4800"
viewBox="0 0 2400 4800">
<defs>
<!-- Vertical-ridge pattern for one 1200x1200 tile -->
<pattern id="ridge-vertical" patternUnits="userSpaceOnUse" width="1200" height="1200">
<line x1="100" y1="0" x2="100" y2="1200" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
<line x1="200" y1="0" x2="200" y2="1200" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
<line x1="300" y1="0" x2="300" y2="1200" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
<line x1="400" y1="0" x2="400" y2="1200" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
<line x1="500" y1="0" x2="500" y2="1200" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
<line x1="600" y1="0" x2="600" y2="1200" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
<line x1="700" y1="0" x2="700" y2="1200" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
<line x1="800" y1="0" x2="800" y2="1200" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
<line x1="900" y1="0" x2="900" y2="1200" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
<line x1="1000" y1="0" x2="1000" y2="1200" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
<line x1="1100" y1="0" x2="1100" y2="1200" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
</pattern>
<!-- Horizontal-ridge pattern for one 1200x1200 tile -->
<pattern id="ridge-horizontal" patternUnits="userSpaceOnUse" width="1200" height="1200">
<line x1="0" y1="100" x2="1200" y2="100" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
<line x1="0" y1="200" x2="1200" y2="200" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
<line x1="0" y1="300" x2="1200" y2="300" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
<line x1="0" y1="400" x2="1200" y2="400" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
<line x1="0" y1="500" x2="1200" y2="500" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
<line x1="0" y1="600" x2="1200" y2="600" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
<line x1="0" y1="700" x2="1200" y2="700" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
<line x1="0" y1="800" x2="1200" y2="800" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
<line x1="0" y1="900" x2="1200" y2="900" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
<line x1="0" y1="1000" x2="1200" y2="1000" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
<line x1="0" y1="1100" x2="1200" y2="1100" stroke="#000" stroke-width="8" stroke-linecap="butt"/>
</pattern>
<!-- Background checkerboard pattern for alternating blue/black -->
<pattern id="checker-bg" patternUnits="userSpaceOnUse" width="2400" height="2400">
<rect x="0" y="0" width="1200" height="1200" fill="blue"/>
<rect x="1200" y="0" width="1200" height="1200" fill="black"/>
<rect x="0" y="1200" width="1200" height="1200" fill="black"/>
<rect x="1200" y="1200" width="1200" height="1200" fill="blue"/>
</pattern>
</defs>
<!-- 1. Outer border (2400 wide x 4800 high) - Dimensions updated for 2x4 -->
<rect x="0" y="0" width="2400" height="4800" stroke="#000" fill="none" stroke-width="8"/>
<!-- 2. Background Checkerboard Fill - Height updated -->
<rect x="0" y="0" width="2400" height="4800" fill="url(#checker-bg)"/>
<!-- 3. Overlay Ridge Patterns (4 Rows x 2 Columns) - R4 through R7 removed -->
<g fill-opacity="0.5">
<!-- R0: V H (y=0) -->
<rect x="0" y="0" width="1200" height="1200" fill="url(#ridge-vertical)"/>
<rect x="1200" y="0" width="1200" height="1200" fill="url(#ridge-horizontal)"/>
<!-- R1: H V (y=1200) -->
<rect x="0" y="1200" width="1200" height="1200" fill="url(#ridge-horizontal)"/>
<rect x="1200" y="1200" width="1200" height="1200" fill="url(#ridge-vertical)"/>
<!-- R2: V H (y=2400) -->
<rect x="0" y="2400" width="1200" height="1200" fill="url(#ridge-vertical)"/>
<rect x="1200" y="2400" width="1200" height="1200" fill="url(#ridge-horizontal)"/>
<!-- R3: H V (y=3600) -->
<rect x="0" y="3600" width="1200" height="1200" fill="url(#ridge-horizontal)"/>
<rect x="1200" y="3600" width="1200" height="1200" fill="url(#ridge-vertical)"/>
</g>
<!-- 4. Grid lines - Adjusted to stop at 4800, only 3 horizontal lines remain -->
<g stroke="#000" fill="none" stroke-width="8">
<!-- Vertical grid line at X=1200 -->
<line x1="1200" y1="0" x2="1200" y2="4800"/>
<!-- Horizontal grid lines -->
<line x1="0" y1="1200" x2="2400" y2="1200"/>
<line x1="0" y1="2400" x2="2400" y2="2400"/>
<line x1="0" y1="3600" x2="2400" y2="3600"/>
</g>
</svg>