Replaces the render stub with the full M1 surface: - camera: ortho iso rig, wheel zoom, middle/right-drag + WASD pan, resize - ground: shader tile grid w/ world-edge dissolve + screen-space vignette - registry: procedural placeholders (two-material rule) + MODELBEAST GLB hot-swap, probed on init and every 10s in dev. GLBs auto-normalise to the machine footprint, so any export scale lands correctly. - belts: InstancedMesh per belt def, chevron scroll injected into a MeshStandardMaterial so belts keep lighting/fog/brownout - cargo: InstancedMesh per item type, interpolated across ticks via alpha - ghost + pickTile with footprint occupancy (cyan valid / red blocked) - feedback: jam klaxon blink, brownout dims the scene via tone-mapping exposure so emissives dim too Machine accents are derived from data (recipes -> outputs -> ItemDef.color), with a legibility floor: near-black products like MDAT ORE would otherwise render the extractor's CRT head as a black panel and its ore as invisible. Verified in the dev build: 500 entities + 2,000 belt items at 3.2ms/frame (5 instanced draw calls); a GLB dropped in mid-session swaps without reload. Dev scaffold is DEV-gated and tree-shaken from the prod bundle. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| data | ||
| lanes | ||
| src | ||
| CONTRACTS.md | ||
| index.html | ||
| MASTERPLAN.md | ||
| package-lock.json | ||
| package.json | ||
| tsconfig.json | ||