{"version":3,"sources":["machine-models.mjs"],"sourcesContent":["// MACHINES AS MODELS (the owner, Sep 30: \"redo most of the machines as models … something more 3d for each\"). Nine voxel\n// models for each of the nine machines: the two crafting benches, the four stations, the battery, the power core and the\n// solar panel. Each fills its cell on an 8 x 8 x 8 grid (x and z across, y up; the front faces +z). For the owner's\n// review first; nothing in game reads this yet. Once picked, a placed machine draws its model in place of a textured\n// cube, its cell still solid (an invisible whole-cell hitbox, as flora have), and its icon becomes the model.\n//\n// A model returns voxels as flora.mjs floraIcon does: [x, y, z, hex, glow]. Colours come from the machine's own\n// palette (MACHINE_PALETTES), so every model of a machine wears that machine's colours.\n\nimport { baseItemOf, materialOf, itemHexOf } from './item-ids.mjs';   // material variants (Oct 1)\n\nconst N = 8;\nconst shade = (hex, k) => { const n = parseInt(hex.slice(1), 16), f = (v) => Math.max(0, Math.min(255, Math.round(v * k))); return '#' + [n >> 16, (n >> 8) & 255, n & 255].map((v) => f(v).toString(16).padStart(2, '0')).join(''); };\nconst mix = (a, b, t) => { const p = parseInt(a.slice(1), 16), q = parseInt(b.slice(1), 16); return '#' + [16, 8, 0].map((s) => Math.round(((p >> s) & 255) * (1 - t) + ((q >> s) & 255) * t).toString(16).padStart(2, '0')).join(''); };\n\n// Each machine's palette: B body (its own colour), D dark, L light, M steel, K near-black, G its glow, W glass,\n// C copper, Y hazard, R a red indicator. G and R are lit.\nfunction palette(hex, glow) {\n    return { B: hex, D: shade(hex, 0.6), L: mix(hex, '#ffffff', 0.35), M: '#8d939b', K: '#2a2d33', G: glow, W: mix(glow, '#dff4ff', 0.6), C: '#b87333', Y: '#e8c13a', R: '#ff4b3a' };\n}\nexport const MACHINE_PALETTES = Object.freeze({\n    benchi: palette('#8E8E8E', '#ffd27a'),\n    smelter: palette('#A87F6B', '#FF6A1F'),\n    electrolyzer: palette('#6F8FA6', '#7FD8FF'),\n    chemsynth: palette('#7FA391', '#8FE07A'),\n    quantumasm: palette('#9A90B8', '#C9A7FF'),\n    battery: palette('#4FB8F0', '#9fe8ff'),\n    powercore: palette('#7FE0FF', '#3FB0E0'),\n    solarpanel: palette('#16233F', '#6fa8ff'),\n    crate: palette('#9A6A3C', '#58e0a8'),\n    vending: palette('#7C8590', '#ffc94a'),\n    // VESSELS, PHASE 2 (Oct 12): the Suit Dock. A tall part's upper half is a machine of its own (its own faces and model),\n    // placed and broken with its base. (The Air Recycler and the Airlock Door went with vessels' insides, Oct 13.)\n    suitdock: palette('#8A96A8', '#5dff8a'),\n    suitdockup: palette('#8A96A8', '#5dff8a'),\n    // VESSELS, PHASE 3 (Oct 12): the two drives that make a station a ship.\n    emdrive: palette('#5E7FA6', '#7fd6ff'),\n    methalox: palette('#8C6F5A', '#ff9a3a'),\n    // THE FURNITURE (Oct 19; storage-machines.mjs FURNITURE), each in its catalogue colour.\n    bed: palette('#8A5A44', '#ffd27a'), table: palette('#A07850', '#ffd27a'), bench: palette('#94704A', '#ffd27a'),\n    shelf: palette('#7E5A3A', '#ffd27a'), cabinet: palette('#7A4E2C', '#ffd27a'), barrel: palette('#86603C', '#ffd27a'),\n    counter: palette('#8C6A48', '#ffd27a'), workbench: palette('#9C7246', '#ffd27a'),\n    locker: palette('#6E4A30', '#ffd27a'), lockerup: palette('#6E4A30', '#ffd27a'), planter: palette('#7C6440', '#ffd27a'),\n    // THE STORAGE OF OCT 21 (the owner): the Cargo Crate's side, a Locker's upper half and the Display Case.\n    crateside: palette('#9A6A3C', '#58e0a8'), display: palette('#B7CFD6', '#ffd27a'),\n    hearth: palette('#6A6662', '#FF7A2A'), lamppost: palette('#5E646C', '#FFCF6A'), trough: palette('#727A80', '#ffd27a'),\n    // THE ANIMALS' FURNITURE (Oct 29): hide brown; bone white round a Glow Gland's light.\n    hiderug: palette('#A0623E', '#ffd27a'), chandelier: palette('#F2E6C9', '#FFD070'),\n});\n// …and the two STORAGE MACHINES (the owner's decisions, Oct 11): the Cargo Crate and the Vending Machine. They were\n// picked as lattice designs, not models (machine-icons.mjs), so each has the one model below: what a canvas that cannot\n// be drawn on shows (app.js hotbarDrawModel), never the world, which draws their faces.\nexport const MACHINE_NAMES = Object.freeze({\n    benchi: 'Toolbench', smelter: 'Induction Smelter', electrolyzer: 'Electrolyzer',\n    chemsynth: 'Chemical Synthesizer', quantumasm: 'Quantum Assembler', battery: 'Battery', powercore: 'Power Core', solarpanel: 'Solar Panel',\n    crate: 'Cargo Crate', vending: 'Vending Machine',\n    suitdock: 'Suit Dock', suitdockup: 'Suit Dock Upper',\n    emdrive: 'EM Drive', methalox: 'Methalox Thruster',\n    // …and THE FURNITURE (Oct 19): lattice designs too (machine-icons.mjs FURNITURE_ICONS), with one model each below.\n    bed: 'Bed', table: 'Table', bench: 'Bench', shelf: 'Shelf', cabinet: 'Cabinet', barrel: 'Barrel',\n    counter: 'Counter', workbench: 'Workbench', locker: 'Locker', planter: 'Planter', hearth: 'Hearth', lamppost: 'Lamp Post', trough: 'Trough',\n    // …and THE STORAGE OF OCT 21 (the owner): the Packing Crate is gone, the Wardrobe is the Locker (two kubes high, its upper\n    // half a part of its own), the Cargo Crate two kubes wide (its side a part of its own), and the Display Case.\n    lockerup: 'Locker Upper', crateside: 'Cargo Crate Side', display: 'Display Case',\n    // …and WHAT ANIMALS GIVE (the owner's Alien Animals items, Oct 29): a rug of hide that lies flat, a chandelier of bone.\n    hiderug: 'Hide Rug', chandelier: 'Bone Chandelier',\n});\n\n// THE LIGHTS THAT SAY WHAT A MACHINE IS DOING (the owner, Oct 1): every electrical machine shows a power light, lit when\n// it is powered; a battery shows how full it is (a gauge of lit segments) and a status light, green while it charges and\n// amber while it powers something. A model is built for a STATE, { powered, fill (0..1), mode: 'charging' | 'powering' |\n// 'idle' }, and each such voxel carries its ROLE (6th field: 'P' power light, 'S' status, 'F<i>/<n>' gauge segment) so the\n// game can relight it without rebuilding the model.\nexport const LIGHTS = Object.freeze({ on: '#5dff8a', off: '#3a3f46', charging: '#5dff8a', powering: '#ffb02e', gaugeOff: '#2a2f36' });\nconst IDLE = Object.freeze({ powered: false, fill: 0.6, mode: 'idle' });\n\n// A model under construction: later voxels replace earlier ones at the same cell.\nfunction M(pal, st = IDLE) {\n    const cells = new Map(), roles = new Map();\n    const put = (x, y, z, c) => { x = Math.round(x); y = Math.round(y); z = Math.round(z); if (x < 0 || y < 0 || z < 0 || x >= N || y >= N || z >= N) return; const k = x + ',' + y + ',' + z; roles.delete(k); if (c == null) cells.delete(k); else cells.set(k, [x, y, z, c]); };\n    const m = {\n        st,   // the state it is built for\n        put,\n        // A box, corners inclusive.\n        b(x0, y0, z0, x1, y1, z1, c) { for (let x = Math.min(x0, x1); x <= Math.max(x0, x1); x++) for (let y = Math.min(y0, y1); y <= Math.max(y0, y1); y++) for (let z = Math.min(z0, z1); z <= Math.max(z0, z1); z++) put(x, y, z, c); },\n        // An upright cylinder (or annulus, with r0) round (cx, cz) in cell-centre coordinates (3.5 is the middle).\n        cyl(cx, cz, r, y0, y1, c, r0 = -1) { for (let x = 0; x < N; x++) for (let z = 0; z < N; z++) { const d = Math.hypot(x + 0.5 - (cx + 0.5), z + 0.5 - (cz + 0.5)); if (d <= r && d > r0) for (let y = y0; y <= y1; y++) put(x, y, z, c); } },\n        // A ball round (cx, cy, cz).\n        ball(cx, cy, cz, r, c, r0 = -1) { for (let x = 0; x < N; x++) for (let y = 0; y < N; y++) for (let z = 0; z < N; z++) { const d = Math.hypot(x - cx, y - cy, z - cz); if (d <= r && d > r0) put(x, y, z, c); } },\n        // A ring standing in the x-y plane at depth z.\n        vring(cx, cy, z0, z1, r, r0, c) { for (let x = 0; x < N; x++) for (let y = 0; y < N; y++) { const d = Math.hypot(x - cx, y - cy); if (d <= r && d > r0) for (let z = z0; z <= z1; z++) put(x, y, z, c); } },\n        // The twelve edges of a box.\n        edges(x0, y0, z0, x1, y1, z1, c) {\n            for (const y of [y0, y1]) for (const z of [z0, z1]) m.b(x0, y, z, x1, y, z, c);\n            for (const x of [x0, x1]) for (const z of [z0, z1]) m.b(x, y0, z, x, y1, z, c);\n            for (const x of [x0, x1]) for (const y of [y0, y1]) m.b(x, y, z0, x, y, z1, c);\n        },\n        // A straight run of voxels from one cell to another.\n        line(x0, y0, z0, x1, y1, z1, c) { const n = Math.max(Math.abs(x1 - x0), Math.abs(y1 - y0), Math.abs(z1 - z0), 1); for (let i = 0; i <= n; i++) put(x0 + (x1 - x0) * i / n, y0 + (y1 - y0) * i / n, z0 + (z1 - z0) * i / n, c); },\n        legs(h, c, inset = 0) { for (const x of [inset, N - 1 - inset]) for (const z of [inset, N - 1 - inset]) m.b(x, 0, z, x, h, z, c); },\n        // The power light: lit while the machine is powered.\n        power(x, y, z) { put(x, y, z, st.powered ? 'Pon' : 'Poff'); roles.set(x + ',' + y + ',' + z, 'P'); },\n        // A battery's status light: green charging, amber powering, dark idle.\n        status(x, y, z) { put(x, y, z, 'S' + st.mode); roles.set(x + ',' + y + ',' + z, 'S'); },\n        // A charge gauge: its segments in order from empty to full, as many lit as the charge fills.\n        // A segment is one voxel [x, y, z] or a group of them [[x, y, z], …]; offKey is what an unlit one shows.\n        gauge(list, litKey = 'G', offKey = 'Foff') { const n = list.length, lit = Math.round(Math.max(0, Math.min(1, st.fill)) * n);\n            list.forEach((seg, i) => { for (const [x, y, z] of Array.isArray(seg[0]) ? seg : [seg]) { put(x, y, z, i < lit ? litKey : offKey); roles.set(Math.round(x) + ',' + Math.round(y) + ',' + Math.round(z), 'F' + i + '/' + n); } }); },\n        out() {\n            const hexOf = (c) => c === 'Pon' ? LIGHTS.on : c === 'Poff' ? LIGHTS.off : c === 'Scharging' ? LIGHTS.charging : c === 'Spowering' ? LIGHTS.powering\n                : c === 'Sidle' ? LIGHTS.off : c === 'Foff' ? LIGHTS.gaugeOff : (pal[c] || c);\n            const lit = (c) => c === 'G' || c === 'R' || c === 'Pon' || c === 'Scharging' || c === 'Spowering';\n            // 7th field: what the part is made of, for its texture (MACHINE_PART_KUBE): the palette key it was drawn in.\n            return [...cells.entries()].map(([k, [x, y, z, c]]) => [x, y, z, hexOf(c), lit(c) ? 1 : 0, roles.get(k) || null, c]);\n        },\n    };\n    return m;\n}\n\n// ── THE NINE MODELS OF EACH MACHINE: [label, build(m)] ──────────────────────────────────────────────────────────────\nconst V = {\n    benchi: [\n        ['Trestle table', (m) => { m.b(0, 4, 0, 7, 5, 7, 'B'); m.legs(3, 'D'); m.b(0, 1, 0, 7, 1, 0, 'D'); m.b(0, 1, 7, 7, 1, 7, 'D'); m.b(2, 6, 3, 5, 6, 3, 'M'); m.b(5, 6, 2, 5, 6, 4, 'K'); }],\n        ['Tool chest', (m) => { m.b(0, 0, 0, 7, 4, 7, 'D'); for (const y of [1, 3]) { m.b(1, y, 7, 6, y, 7, 'L'); m.b(3, y, 7, 4, y, 7, 'M'); } m.b(0, 5, 0, 7, 5, 7, 'B'); m.b(5, 6, 2, 6, 6, 5, 'M'); m.b(5, 7, 3, 6, 7, 4, 'K'); }],\n        ['Anvil stand', (m) => { m.b(1, 0, 1, 6, 1, 6, 'D'); m.b(2, 2, 2, 5, 3, 5, 'D'); m.b(0, 4, 2, 7, 5, 5, 'M'); m.b(0, 5, 3, 0, 5, 4, 'L'); m.put(5, 5, 3, 'K'); m.b(2, 6, 3, 4, 6, 3, 'B'); }],\n        ['Pegboard bench', (m) => { m.b(0, 3, 0, 7, 4, 7, 'B'); m.legs(2, 'D'); m.b(0, 5, 0, 7, 7, 0, 'L'); for (const [x, y] of [[1, 6], [3, 5], [3, 7], [5, 6], [6, 5]]) m.put(x, y, 1, 'M'); m.b(1, 5, 1, 1, 7, 1, 'M'); }],\n        ['Sawhorse and plank', (m) => { for (const x of [1, 6]) { m.line(x, 0, 1, x, 3, 3, 'D'); m.line(x, 0, 6, x, 3, 4, 'D'); } m.b(0, 4, 2, 7, 4, 5, 'B'); m.b(3, 5, 3, 4, 5, 4, 'M'); }],\n        ['Crate bench', (m) => { m.b(0, 0, 0, 7, 5, 7, 'B'); for (const y of [0, 2, 5]) m.b(0, y, 0, 7, y, 7, 'D'); m.edges(0, 0, 0, 7, 5, 7, 'K'); m.b(2, 6, 2, 4, 6, 3, 'M'); }],\n        ['Drafting desk', (m) => { m.legs(3, 'D', 1); for (let z = 0; z < N; z++) m.b(0, 4 + Math.floor((7 - z) / 3), z, 7, 4 + Math.floor((7 - z) / 3), z, 'B'); m.b(2, 6, 1, 5, 6, 2, 'L'); m.b(1, 4, 7, 6, 4, 7, 'M'); }],\n        ['Stone and steel', (m) => { m.b(0, 0, 0, 7, 2, 7, 'D'); m.b(0, 3, 0, 7, 5, 7, 'M'); for (const x of [2, 5]) m.b(x, 5, 0, x, 5, 7, 'K'); m.b(1, 6, 1, 2, 6, 2, 'B'); }],\n        ['Folding workstand', (m) => { for (let i = 0; i < 4; i++) { m.put(i + 1, i, 1, 'D'); m.put(6 - i, i, 1, 'D'); m.put(i + 1, i, 6, 'D'); m.put(6 - i, i, 6, 'D'); } m.b(0, 4, 1, 7, 4, 6, 'B'); for (const x of [1, 6]) m.b(x, 5, 2, x, 6, 5, 'M'); }],\n    ],\n    smelter: [\n        ['Brick furnace', (m) => { m.b(0, 0, 0, 7, 6, 7, 'B'); for (const y of [2, 4]) m.b(0, y, 0, 7, y, 7, 'D'); m.b(2, 1, 7, 5, 3, 7, 'G'); m.b(5, 7, 1, 6, 7, 2, 'D'); }],\n        ['Induction coil', (m) => { m.b(0, 0, 0, 7, 1, 7, 'D'); m.cyl(3.5, 3.5, 2.4, 2, 6, 'B'); for (const y of [3, 5]) m.cyl(3.5, 3.5, 3.6, y, y, 'C', 2.5); m.cyl(3.5, 3.5, 1.4, 6, 6, 'G'); }],\n        ['Pouring crucible', (m) => { for (const x of [0, 7]) m.b(x, 0, 3, x, 6, 4, 'D'); m.b(0, 6, 3, 7, 6, 4, 'M'); m.b(2, 2, 2, 5, 5, 5, 'B'); m.b(3, 5, 3, 4, 5, 4, 'G'); m.put(5, 4, 6, 'B'); m.put(5, 3, 7, 'G'); m.b(4, 0, 6, 7, 0, 7, 'M'); m.b(5, 1, 7, 6, 1, 7, 'G'); }],\n        ['Blast tower', (m) => { m.cyl(3.5, 3.5, 3.6, 0, 3, 'B'); m.cyl(3.5, 3.5, 2.6, 4, 7, 'B'); m.cyl(3.5, 3.5, 3.6, 3, 3, 'D'); m.b(3, 1, 7, 4, 1, 7, 'G'); m.cyl(3.5, 3.5, 1.2, 7, 7, 'G'); }],\n        ['Arc furnace', (m) => { m.cyl(3.5, 3.5, 3.7, 0, 3, 'B'); m.cyl(3.5, 3.5, 3.7, 4, 4, 'D'); for (const [x, z] of [[2, 2], [5, 3], [3, 5]]) m.b(x, 5, z, x, 7, z, 'M'); m.put(3, 4, 3, 'G'); m.put(4, 4, 3, 'G'); m.put(3, 4, 4, 'G'); }],\n        ['Kiln dome', (m) => { m.ball(3.5, 0, 3.5, 4.2, 'B'); m.ball(3.5, 0, 3.5, 4.2, 'D', 3.6); m.b(3, 0, 7, 4, 1, 7, 'G'); m.b(3, 4, 3, 4, 4, 4, 'K'); }],\n        ['Crucible on tripod', (m) => { for (const [x, z] of [[1, 1], [6, 1], [3, 6]]) m.line(x, 0, z, 3, 3, 3, 'M'); m.cyl(3.5, 3.5, 2.6, 4, 6, 'B'); m.cyl(3.5, 3.5, 1.6, 6, 6, 'G'); m.b(3, 1, 3, 4, 2, 4, 'G'); }],\n        ['Cupola with vents', (m) => { m.b(0, 0, 0, 7, 5, 7, 'B'); m.b(1, 6, 1, 6, 6, 6, 'D'); m.cyl(3.5, 3.5, 1.5, 7, 7, 'D'); for (const y of [1, 3]) { m.b(1, y, 7, 2, y, 7, 'G'); m.b(5, y, 7, 6, y, 7, 'G'); m.b(7, y, 1, 7, y, 2, 'G'); m.b(7, y, 5, 7, y, 6, 'G'); } }],\n        ['Ingot press', (m) => { m.b(0, 0, 0, 7, 1, 7, 'D'); for (const x of [0, 7]) m.b(x, 2, 0, x, 7, 1, 'M'); m.b(0, 7, 0, 7, 7, 1, 'M'); m.b(2, 5, 0, 5, 6, 1, 'B'); m.b(1, 2, 3, 6, 2, 6, 'B'); m.b(2, 3, 4, 5, 3, 5, 'G'); m.b(2, 2, 7, 5, 2, 7, 'G'); m.power(6, 1, 7); }],\n    ],\n    electrolyzer: [\n        ['Cell stack', (m) => { for (let x = 0; x < N; x++) m.b(x, 0, 1, x, 6, 6, x % 2 ? 'D' : 'B'); m.b(0, 7, 2, 7, 7, 2, 'M'); m.b(0, 7, 5, 7, 7, 5, 'M'); m.b(1, 3, 7, 6, 3, 7, 'G'); m.power(6, 5, 7); }],\n        ['Twin tanks', (m) => { m.b(0, 0, 0, 7, 0, 7, 'D'); for (const x of [1.5, 5.5]) { m.cyl(x, 3.5, 1.8, 1, 6, 'W'); m.cyl(x, 3.5, 0.9, 7, 7, 'M'); } m.put(2, 3, 5, 'G'); m.put(1, 5, 4, 'G'); m.put(5, 2, 5, 'G'); m.put(6, 4, 4, 'G'); m.b(2, 7, 3, 5, 7, 4, 'C'); }],\n        ['Open bath', (m) => { m.b(0, 0, 0, 7, 4, 7, 'W'); m.b(1, 1, 1, 6, 4, 6, null); m.b(1, 1, 1, 6, 3, 6, 'G'); for (const x of [2, 5]) m.b(x, 2, 2, x, 7, 5, 'M'); m.b(2, 7, 3, 5, 7, 4, 'C'); }],\n        ['Gas tower', (m) => { m.b(0, 0, 0, 7, 1, 7, 'D'); m.cyl(3.5, 3.5, 2.6, 2, 7, 'B'); m.b(3, 3, 6, 4, 5, 6, 'G'); m.b(6, 2, 3, 7, 2, 4, 'C'); m.b(7, 2, 3, 7, 6, 3, 'C'); }],\n        ['Membrane panels', (m) => { m.edges(0, 0, 0, 7, 7, 7, 'D'); for (const x of [1, 3, 5]) m.b(x, 1, 1, x + 1, 6, 6, 'W'); for (const x of [2, 4, 6]) m.b(x, 1, 3, x, 6, 4, 'G'); }],\n        ['Bubbler jars', (m) => { m.b(0, 0, 0, 7, 0, 7, 'D'); for (const [x, z] of [[1.5, 1.5], [5.5, 1.5], [1.5, 5.5], [5.5, 5.5]]) { m.cyl(x, z, 1.6, 1, 5, 'W'); m.cyl(x, z, 0.7, 6, 6, 'M'); m.put(x, 2 + ((x + z) % 3), z, 'G'); } }],\n        ['Dial cabinet', (m) => { m.b(0, 0, 0, 7, 6, 7, 'B'); for (const x of [2, 5]) { m.vring(x, 4, 7, 7, 1.3, 0.6, 'G'); m.put(x, 4, 7, 'K'); } m.b(1, 1, 7, 6, 1, 7, 'D'); m.b(3, 7, 3, 4, 7, 4, 'C'); }],\n        ['U-tube voltameter', (m) => { m.b(0, 0, 0, 7, 0, 7, 'D'); for (const x of [1, 6]) m.b(x, 1, 3, x, 6, 4, 'W'); m.b(1, 1, 3, 6, 1, 4, 'W'); m.b(3, 1, 3, 4, 7, 4, 'W'); m.b(2, 7, 2, 5, 7, 5, 'W'); for (const y of [3, 5]) { m.put(1, y, 3, 'G'); m.put(6, y - 1, 4, 'G'); } m.put(1, 7, 3, 'M'); m.put(6, 7, 4, 'M'); }],\n        ['Busbar stack', (m) => { for (let z = 1; z < 7; z++) m.b(1, 0, z, 6, 5, z, z % 2 ? 'B' : 'M'); m.b(0, 6, 0, 7, 6, 1, 'C'); m.b(0, 6, 6, 7, 6, 7, 'C'); m.b(0, 2, 7, 7, 2, 7, 'G'); }],\n    ],\n    chemsynth: [\n        ['Flask array', (m) => { m.b(0, 0, 0, 7, 0, 7, 'D'); for (const x of [1, 3.5, 6]) { m.cyl(x, 3.5, 1.4, 1, 3, 'W'); m.cyl(x, 3.5, 0.6, 4, 6, 'W'); m.cyl(x, 3.5, 1, 1, 2, 'G'); } }],\n        ['Distillation column', (m) => { m.b(0, 0, 0, 7, 0, 7, 'D'); m.cyl(2, 3.5, 1.5, 1, 7, 'W'); for (const y of [2, 4, 6]) m.cyl(2, 3.5, 1.5, y, y, 'G'); m.line(3, 7, 3, 6, 4, 3, 'C'); m.cyl(5.5, 5, 1.4, 1, 3, 'W'); m.put(5, 1, 5, 'G'); }],\n        ['Reactor vessel', (m) => { m.cyl(3.5, 3.5, 3.2, 0, 5, 'B'); m.ball(3.5, 5, 3.5, 3.2, 'B'); m.b(3, 2, 7, 4, 3, 7, 'G'); m.b(0, 4, 3, 7, 4, 4, 'C'); m.put(3, 7, 3, 'M'); }],\n        ['Pipe manifold', (m) => { m.b(0, 0, 0, 7, 0, 7, 'D'); m.b(1, 1, 1, 1, 7, 1, 'C'); m.b(1, 6, 1, 6, 6, 1, 'C'); m.b(6, 1, 1, 6, 6, 1, 'C'); m.b(6, 3, 1, 6, 3, 6, 'M'); m.b(1, 3, 6, 6, 3, 6, 'M'); m.b(3, 1, 3, 4, 2, 4, 'B'); for (const [x, y, z] of [[1, 4, 1], [6, 3, 4], [3, 3, 6]]) m.put(x, y, z, 'R'); }],\n        ['Mixing vat', (m) => { m.cyl(3.5, 3.5, 3.6, 0, 4, 'B'); m.cyl(3.5, 3.5, 2.8, 2, 4, null); m.cyl(3.5, 3.5, 2.8, 2, 3, 'G'); m.b(3, 4, 3, 4, 7, 4, 'M'); m.b(1, 3, 3, 6, 3, 4, 'M'); m.b(0, 7, 3, 7, 7, 4, 'D'); m.power(3, 1, 7); }],\n        ['Retort stand', (m) => { m.b(0, 0, 0, 7, 0, 7, 'D'); m.b(1, 1, 1, 1, 7, 1, 'M'); m.b(1, 5, 1, 4, 5, 1, 'M'); m.ball(4, 3, 4, 2, 'W'); m.ball(4, 3, 4, 1.2, 'G'); m.line(4, 5, 4, 7, 6, 7, 'W'); }],\n        ['Centrifuge', (m) => { m.b(0, 0, 0, 7, 1, 7, 'D'); m.cyl(3.5, 3.5, 3.4, 2, 4, 'B'); m.cyl(3.5, 3.5, 3.4, 4, 4, 'G', 2.6); m.cyl(3.5, 3.5, 2.2, 5, 5, 'M'); m.b(2, 2, 7, 5, 2, 7, 'K'); }],\n        ['Glovebox', (m) => { m.b(0, 0, 0, 7, 6, 7, 'B'); m.b(1, 2, 7, 6, 5, 7, 'W'); for (const x of [2, 5]) m.put(x, 3, 7, 'K'); m.b(1, 7, 1, 6, 7, 6, 'D'); m.put(4, 3, 5, 'G'); m.put(3, 2, 4, 'G'); }],\n        ['Drum cluster', (m) => { for (const [x, z, h] of [[1.5, 1.5, 6], [5.5, 1.5, 5], [1.5, 5.5, 4], [5.5, 5.5, 6]]) { m.cyl(x, z, 1.8, 0, h, 'B'); m.cyl(x, z, 1.8, 2, 2, 'Y'); m.cyl(x, z, 0.6, h, h, 'G'); } }],\n    ],\n    quantumasm: [\n        ['Floating core', (m) => { m.edges(0, 0, 0, 7, 7, 7, 'M'); m.b(0, 0, 0, 7, 0, 7, 'D'); m.b(3, 3, 3, 4, 4, 4, 'G'); for (const [x, z] of [[2, 2], [5, 5], [2, 5], [5, 2]]) m.put(x, 3 + ((x + z) % 2), z, 'W'); }],\n        ['Ring gate', (m) => { m.b(0, 0, 2, 7, 0, 5, 'D'); m.vring(3.5, 4, 3, 4, 3.6, 2.4, 'B'); m.vring(3.5, 4, 3, 4, 2.4, 1.2, 'G'); }],\n        ['Cryostat chandelier', (m) => { m.cyl(3.5, 3.5, 3.6, 7, 7, 'C'); m.cyl(3.5, 3.5, 2.8, 5, 5, 'C'); m.cyl(3.5, 3.5, 2, 3, 3, 'C'); m.cyl(3.5, 3.5, 0.8, 1, 7, 'M'); for (const [x, z] of [[1, 1], [6, 1], [1, 6], [6, 6]]) m.b(x, 5, z, x, 7, z, 'M'); m.cyl(3.5, 3.5, 1.2, 0, 0, 'G'); }],\n        ['Lattice cube', (m) => { m.edges(0, 0, 0, 7, 7, 7, 'B'); for (const p of [2, 5]) for (const q of [2, 5]) for (const r of [2, 5]) m.put(p, q, r, 'G'); m.edges(2, 2, 2, 5, 5, 5, 'W'); m.power(3, 0, 7); }],\n        ['Three spires', (m) => { m.cyl(3.5, 3.5, 3.7, 0, 0, 'D'); for (const [x, z, h] of [[1, 1, 5], [5, 2, 7], [2, 5, 6]]) { m.b(x, 1, z, x + 1, h, z + 1, 'B'); m.b(x, h, z, x + 1, h, z + 1, 'G'); } m.line(2, 4, 2, 5, 6, 3, 'W'); m.line(5, 6, 3, 3, 5, 5, 'W'); }],\n        ['Orb on pedestal', (m) => { m.b(2, 0, 2, 5, 2, 5, 'B'); m.b(1, 0, 1, 6, 0, 6, 'D'); m.ball(3.5, 5, 3.5, 2.4, 'G'); m.cyl(3.5, 3.5, 3.4, 5, 5, 'M', 2.6); }],\n        ['Stacked rings', (m) => { m.cyl(3.5, 3.5, 1, 0, 7, 'M'); for (const y of [1, 3, 5, 7]) m.cyl(3.5, 3.5, 3.6 - y * 0.25, y, y, y % 4 === 1 ? 'B' : 'G', 2); }],\n        ['Monolith', (m) => { m.b(1, 0, 1, 6, 0, 6, 'D'); m.b(2, 1, 3, 5, 7, 4, 'B'); m.b(2, 1, 3, 5, 7, 3, 'D'); for (const y of [2, 4, 6]) m.b(2, y, 4, 5, y, 4, 'G'); m.b(3, 1, 4, 4, 7, 4, 'G'); }],\n        ['Containment pod', (m) => { m.b(0, 0, 0, 7, 1, 7, 'B'); m.b(0, 7, 0, 7, 7, 7, 'B'); m.edges(0, 2, 0, 7, 6, 7, 'M'); m.b(1, 2, 1, 6, 6, 6, 'W'); m.b(3, 3, 3, 4, 5, 4, 'G'); }],\n    ],\n    battery: [\n        ['Cylinder cell', (m) => { m.cyl(3.5, 3.5, 3.2, 0, 6, 'B'); m.cyl(3.5, 3.5, 3.2, 0, 0, 'D'); m.cyl(3.5, 3.5, 1, 7, 7, 'M'); m.b(3, 1, 7, 4, 5, 7, 'G'); }],\n        ['Block battery', (m) => { m.b(0, 0, 1, 7, 5, 6, 'B'); m.b(0, 5, 1, 7, 5, 6, 'D'); m.b(1, 6, 3, 2, 6, 4, 'R'); m.b(5, 6, 3, 6, 6, 4, 'M'); m.b(1, 2, 6, 6, 3, 6, 'G'); }],\n        ['Four cells', (m) => { m.b(0, 0, 0, 7, 0, 7, 'D'); for (const [x, z] of [[1.5, 1.5], [5.5, 1.5], [1.5, 5.5], [5.5, 5.5]]) { m.cyl(x, z, 1.7, 1, 6, 'B'); m.put(x, 7, z, 'M'); m.put(x, 3, z + 1.5, 'G'); } }],\n        ['Pouch stack', (m) => { for (let y = 0; y < 7; y++) m.b(0, y, 1, 7, y, 6, y % 2 ? 'B' : 'L'); m.b(2, 7, 0, 2, 7, 1, 'M'); m.b(5, 7, 0, 5, 7, 1, 'C'); m.b(0, 3, 6, 7, 3, 6, 'G'); }],\n        ['Capacitor bank', (m) => { m.b(0, 0, 0, 7, 0, 7, 'D'); for (let x = 0; x < 4; x++) for (let z = 0; z < 4; z++) { const h = 3 + ((x * 3 + z) % 4); m.b(x * 2, 1, z * 2, x * 2, h, z * 2, 'B'); m.put(x * 2, h + 1, z * 2, (x + z) % 2 ? 'G' : 'M'); } }],\n        ['Carry cell', (m) => { m.b(1, 0, 1, 6, 5, 6, 'B'); m.b(1, 0, 1, 6, 0, 6, 'D'); m.b(2, 6, 3, 2, 7, 4, 'M'); m.b(5, 6, 3, 5, 7, 4, 'M'); m.b(2, 7, 3, 5, 7, 4, 'M'); m.b(2, 1, 6, 5, 4, 6, 'G'); }],\n        ['Hex cell', (m) => { m.cyl(3.5, 3.5, 3.7, 0, 6, 'B'); for (const y of [0, 6]) m.cyl(3.5, 3.5, 3.7, y, y, 'D'); m.cyl(3.5, 3.5, 3.7, 3, 3, 'G', 3); m.cyl(3.5, 3.5, 1, 7, 7, 'M'); }],\n        ['Bar gauge', (m) => { m.b(0, 0, 0, 7, 6, 7, 'B'); m.edges(0, 0, 0, 7, 6, 7, 'D'); for (const y of [1, 2, 3, 4, 5]) m.b(2, y, 7, 5, y, 7, y < 5 ? 'G' : 'K'); m.b(3, 7, 3, 4, 7, 4, 'M'); }],\n        ['Flow tanks', (m) => { m.b(0, 0, 0, 7, 0, 7, 'D'); m.cyl(1.5, 2, 1.6, 1, 6, 'B'); m.cyl(5.5, 2, 1.6, 1, 6, 'L'); m.b(1, 1, 5, 6, 4, 6, 'M'); m.b(2, 2, 7, 5, 3, 7, 'G'); m.line(1, 6, 3, 2, 4, 5, 'C'); m.line(5, 6, 3, 5, 4, 5, 'C'); }],\n    ],\n    powercore: [\n        ['Reactor sphere', (m) => { m.edges(0, 0, 0, 7, 7, 7, 'M'); m.ball(3.5, 3.5, 3.5, 3, 'G'); m.ball(3.5, 3.5, 3.5, 3, 'B', 2.4); m.b(0, 0, 0, 7, 0, 7, 'D'); m.power(3, 0, 7); }],\n        ['Fusion torus', (m) => { m.b(0, 0, 0, 7, 0, 7, 'D'); for (let x = 0; x < N; x++) for (let z = 0; z < N; z++) { const d = Math.hypot(x - 3.5, z - 3.5); if (d > 1.6 && d < 3.8) for (let y = 2; y <= 4; y++) if (Math.hypot(d - 2.7, y - 3) < 1.3) m.put(x, y, z, Math.hypot(d - 2.7, y - 3) < 0.6 ? 'G' : 'B'); } m.cyl(3.5, 3.5, 1, 1, 6, 'M'); }],\n        ['Caged column', (m) => { m.b(0, 0, 0, 7, 0, 7, 'D'); m.b(0, 7, 0, 7, 7, 7, 'D'); m.cyl(3.5, 3.5, 1.6, 1, 6, 'G'); for (const [x, z] of [[0, 0], [7, 0], [0, 7], [7, 7], [3, 0], [0, 4], [7, 3], [4, 7]]) m.b(x, 1, z, x, 6, z, 'M'); }],\n        ['Stacked discs', (m) => { for (let y = 0; y < N; y++) m.cyl(3.5, 3.5, y % 2 ? 2.6 : 3.6, y, y, y % 2 ? 'G' : 'B'); }],\n        ['Crystal core', (m) => { m.b(1, 0, 1, 6, 1, 6, 'D'); for (let y = 2; y < N; y++) { const r = 2.6 - Math.abs(y - 4.5) * 0.9; if (r > 0) m.cyl(3.5, 3.5, r, y, y, 'G'); } m.edges(1, 2, 1, 6, 2, 6, 'M'); }],\n        ['Capsule', (m) => { m.cyl(3.5, 3.5, 3.4, 0, 1, 'D'); m.cyl(3.5, 3.5, 3.4, 6, 7, 'D'); m.cyl(3.5, 3.5, 2.6, 2, 5, 'W'); m.cyl(3.5, 3.5, 1.4, 2, 5, 'G'); }],\n        ['Turbine', (m) => { m.b(0, 0, 0, 7, 0, 7, 'D'); m.cyl(3.5, 3.5, 2, 1, 7, 'B'); m.cyl(3.5, 3.5, 2, 4, 4, 'G'); for (let y = 1; y <= 7; y += 2) for (const [dx, dz] of [[1, 0], [-1, 0], [0, 1], [0, -1]]) m.line(3.5 + dx * 2, y, 3.5 + dz * 2, 3.5 + dx * 3.5, y, 3.5 + dz * 3.5, 'M'); }],\n        ['Nested cubes', (m) => { m.edges(0, 0, 0, 7, 7, 7, 'B'); m.edges(1, 1, 1, 6, 6, 6, 'M'); m.b(2, 2, 2, 5, 5, 5, 'G'); m.b(3, 3, 3, 4, 4, 4, 'W'); }],\n        ['Tesla column', (m) => { m.cyl(3.5, 3.5, 3.4, 0, 1, 'D'); m.cyl(3.5, 3.5, 1.2, 2, 5, 'B'); for (const y of [2, 4]) m.cyl(3.5, 3.5, 1.8, y, y, 'C', 1.2); m.cyl(3.5, 3.5, 3.6, 6, 7, 'G', 1.8); m.cyl(3.5, 3.5, 1.8, 7, 7, 'M'); }],\n    ],\n    solarpanel: [\n        ['Tilted on a post', (m) => { m.b(3, 0, 3, 4, 3, 4, 'M'); m.b(2, 0, 2, 5, 0, 5, 'D'); for (let z = 0; z < N; z++) { const y = 4 + Math.floor((7 - z) / 3); m.b(0, y, z, 7, y, z, z % 3 === 2 ? 'L' : 'B'); } m.power(3, 0, 5); }],\n        ['Flat roof panel', (m) => { m.b(0, 0, 0, 7, 1, 7, 'M'); m.b(1, 1, 1, 6, 1, 6, 'B'); for (const p of [3]) { m.b(p, 1, 1, p, 1, 6, 'L'); m.b(1, 1, p, 6, 1, p, 'L'); } }],\n        ['Sun tracker', (m) => { m.b(2, 0, 2, 5, 1, 5, 'D'); m.b(3, 2, 3, 4, 4, 4, 'M'); for (let x = 0; x < N; x++) { const y = 5 + Math.floor(x / 3); m.b(x, y, 0, x, y, 7, x % 3 === 2 ? 'L' : 'B'); } }],\n        ['Fold-out wings', (m) => { m.b(3, 0, 1, 4, 4, 6, 'M'); m.line(0, 2, 1, 2, 5, 1, 'B'); for (let z = 1; z <= 6; z++) { m.line(0, 2, z, 2, 5, z, 'B'); m.line(7, 2, z, 5, 5, z, 'B'); } m.b(3, 5, 1, 4, 5, 6, 'G'); }],\n        ['Panel pyramid', (m) => { for (let y = 0; y < 4; y++) m.b(y, y, y, 7 - y, y, 7 - y, y % 2 ? 'L' : 'B'); m.put(3, 4, 3, 'M'); m.put(4, 4, 4, 'M'); }],\n        ['Three-panel array', (m) => { for (const x0 of [0, 3, 6]) { m.b(x0, 0, 3, x0, 2, 4, 'M'); for (let z = 0; z < N; z++) { const y = 3 + Math.floor((7 - z) / 3); m.b(x0, y, z, Math.min(7, x0 + 1), y, z, z % 3 === 2 ? 'L' : 'B'); } } }],\n        ['Concentrator dish', (m) => { m.b(3, 0, 3, 4, 2, 4, 'M'); for (let x = 0; x < N; x++) for (let z = 0; z < N; z++) { const d = Math.hypot(x - 3.5, z - 3.5); if (d < 3.9) m.put(x, 3 + Math.round(d * d / 7), z, 'L'); } m.b(3, 7, 3, 4, 7, 4, 'G'); m.line(1, 4, 1, 3, 7, 3, 'M'); }],\n        ['Panel tower', (m) => { m.b(3, 0, 3, 4, 7, 4, 'M'); for (const y of [1, 4, 7]) m.b(0, y, 0, 7, y, 7, 'B'); for (const y of [1, 4, 7]) m.edges(0, y, 0, 7, y, 7, 'L'); }],\n        ['Clad cube', (m) => { m.b(0, 0, 0, 7, 7, 7, 'D'); m.b(1, 7, 1, 6, 7, 6, 'B'); m.b(1, 1, 7, 6, 6, 7, 'B'); m.b(7, 1, 1, 7, 6, 6, 'B'); m.b(1, 4, 7, 6, 4, 7, 'L'); m.b(7, 4, 1, 7, 4, 6, 'L'); m.b(4, 7, 1, 4, 7, 6, 'L'); }],\n    ],\n    // The drawer cabinet in voxels: three drawers with steel pulls on the front, slats on top.\n    crate: [\n        ['Drawer cabinet', (m) => { m.b(0, 0, 0, 7, 7, 7, 'B'); m.edges(0, 0, 0, 7, 7, 7, 'D');\n            for (const y of [0, 3, 6]) { m.b(1, y, 7, 6, y + 1, 7, 'L'); m.b(3, y, 7, 4, y, 7, 'M'); }\n            for (const z of [1, 3, 5]) m.b(1, 7, z, 6, 7, z, 'L'); }],\n    ],\n    // The vending unit in voxels: a glass front, a keypad beside it, a light strip on top.\n    vending: [\n        ['Vending unit', (m) => { m.b(0, 0, 0, 7, 7, 7, 'B'); m.edges(0, 0, 0, 7, 7, 7, 'D');\n            m.b(1, 2, 7, 4, 6, 7, 'W'); m.b(6, 4, 7, 6, 6, 7, 'M'); m.b(6, 6, 7, 6, 6, 7, 'G'); m.b(1, 0, 7, 4, 0, 7, 'K'); m.b(1, 7, 1, 6, 7, 2, 'G'); }],\n    ],\n    // ---- VESSELS, PHASE 2 (Oct 12). Its faces are lattice designs (machine-icons.mjs), which the world draws; these are\n    // what a canvas that cannot be drawn on shows.\n    suitdock: [\n        ['Rack, lower', (m) => { m.b(0, 0, 0, 7, 7, 1, 'B'); m.b(0, 0, 0, 0, 7, 7, 'D'); m.b(7, 0, 0, 7, 7, 7, 'D'); m.b(0, 0, 0, 7, 0, 7, 'D');\n            m.b(2, 1, 2, 3, 1, 3, 'M'); m.b(4, 1, 2, 5, 1, 3, 'M'); m.b(3, 4, 2, 4, 6, 2, 'K'); m.power(6, 6, 2); }],\n    ],\n    suitdockup: [\n        ['Rack, upper', (m) => { m.b(0, 0, 0, 7, 7, 1, 'B'); m.b(0, 0, 0, 0, 7, 7, 'D'); m.b(7, 0, 0, 7, 7, 7, 'D'); m.b(0, 7, 0, 7, 7, 7, 'D');\n            m.vring(3.5, 4, 2, 2, 2.2, 1.2, 'M'); m.b(3, 3, 2, 4, 4, 2, 'W'); }],\n    ],\n    // ---- VESSELS, PHASE 3 (Oct 12): the drives. Their faces are lattice designs (machine-icons.mjs) as well.\n    emdrive: [\n        ['Coil drive', (m) => { m.b(0, 0, 0, 7, 7, 7, 'D'); for (let z = 0; z < N; z += 2) m.vring(3.5, 3.5, z, z, 3.8, 2.2, 'C'); m.vring(3.5, 3.5, 0, 7, 1.6, 0, 'G'); m.power(6, 1, 7); }],\n    ],\n    methalox: [\n        ['Bell nozzle', (m) => { m.b(0, 6, 0, 7, 7, 7, 'B'); m.b(1, 7, 1, 2, 7, 2, 'M'); m.b(5, 7, 5, 6, 7, 6, 'M'); m.cyl(3.5, 3.5, 3.6, 0, 2, 'K'); m.cyl(3.5, 3.5, 2.6, 3, 5, 'D'); m.cyl(3.5, 3.5, 1.4, 0, 1, 'G'); }],\n    ],\n    // ---- THE FURNITURE (Oct 19). Their faces are lattice designs (machine-icons.mjs FURNITURE_ICONS), which the world draws;\n    // these are what a canvas that cannot be drawn on shows.\n    bed: [['Made bed', (m) => { m.legs(1, 'D'); m.b(0, 2, 0, 7, 3, 7, 'B'); m.b(0, 4, 1, 7, 4, 7, 'L'); m.b(1, 5, 2, 6, 5, 7, 'C'); m.b(2, 5, 0, 5, 5, 1, 'L'); m.b(0, 2, 0, 7, 6, 0, 'D'); }]],\n    table: [['Plank table', (m) => { m.legs(5, 'D'); m.b(0, 6, 0, 7, 7, 7, 'B'); m.b(0, 7, 3, 7, 7, 3, 'D'); }]],\n    bench: [['Plank seat', (m) => { m.b(1, 0, 1, 1, 2, 6, 'D'); m.b(6, 0, 1, 6, 2, 6, 'D'); m.b(0, 3, 1, 7, 3, 6, 'B'); m.b(0, 3, 3, 7, 3, 3, 'D'); }]],\n    shelf: [['Book rows', (m) => { m.b(0, 0, 0, 7, 7, 1, 'D'); m.b(0, 0, 0, 0, 7, 7, 'D'); m.b(7, 0, 0, 7, 7, 7, 'D'); for (const y of [0, 3, 6]) m.b(0, y, 0, 7, y, 7, 'L');\n        for (let x = 1; x < 7; x++) { m.b(x, 1, 2, x, 2, 6, x % 2 ? 'C' : 'M'); m.b(x, 4, 2, x, 5, 6, x % 3 ? 'K' : 'C'); } }]],\n    // CABINETS INSTEAD OF CHESTS (the owner, Oct 21: \"i want to remove chests and just use cabinets of varying wood color\n    // instead\"), then TWIN DOORS (the owner, Oct 21: \"the entire texture should be twin side by side doors and they should not\n    // extend beyond 90 degrees … It should be possible to make cabinets out of wood or metal\"), then FRAMED, DOORS ALWAYS 3D\n    // (the owner, Oct 21, on the Cabinet Looks page: \"more solid … without the bulging 3d elements. I would like the doors to\n    // be 3d though\"; the look 'Framed', machine-icons.mjs). The carcass (z 0..6) is flat body with its edges drawn in the\n    // dark tone, as the lattice's one-pixel border; the two doors are a board layer standing on its front (z 7), the left\n    // x 0..3 and the right x 4..7, each plain body framed in the dark tone on all four edges (so the frames meet as the dark\n    // seam, x 3 | x 4), with a small steel pull just inside the seam at mid height (x 2 and x 5, y 3..4). Nothing raised,\n    // no drawer, rail, plinth or lip. Body parts (B D) take the variant's wood or metal (machineModelOf, itemHexOf).\n    // The world draws none of this: a placed cabinet is a kube wearing the lattice body, its doors real boards a sixteenth\n    // of a kube thick that open on their outer corners onto a flat black inside (system-view.js cabinet doors).\n    cabinet: [['Framed', (m) => {\n        m.b(0, 0, 0, 7, 7, 6, 'B'); m.edges(0, 0, 0, 7, 7, 6, 'D');   // the carcass, its front at z 6, its edges dark\n        m.b(0, 0, 7, 7, 7, 7, 'B');                                    // the two doors: a board over the whole front\n        m.edges(0, 0, 7, 3, 7, 7, 'D'); m.edges(4, 0, 7, 7, 7, 7, 'D'); // each door's frame; x 3 | x 4 is the seam\n        m.b(2, 3, 7, 2, 4, 7, 'M'); m.b(5, 3, 7, 5, 4, 7, 'M');        // the two small pulls, just inside the seam, mid height\n    }]],\n    barrel: [['Hooped barrel', (m) => { m.cyl(3.5, 3.5, 3.6, 0, 7, 'B'); for (const y of [1, 4, 6]) m.cyl(3.5, 3.5, 3.6, y, y, 'M'); m.cyl(3.5, 3.5, 2.4, 7, 7, 'D'); }]],\n    counter: [['Stone counter', (m) => { m.b(0, 0, 0, 7, 6, 7, 'B'); m.b(0, 7, 0, 7, 7, 7, 'L'); m.b(3, 1, 7, 4, 5, 7, 'D'); m.b(2, 3, 7, 2, 3, 7, 'M'); m.b(5, 3, 7, 5, 3, 7, 'M'); }]],\n    workbench: [['Vice bench', (m) => { m.legs(4, 'D'); m.b(0, 5, 0, 7, 6, 7, 'B'); m.b(0, 1, 1, 7, 1, 6, 'B'); m.b(0, 7, 6, 1, 7, 7, 'M'); m.b(4, 7, 2, 6, 7, 2, 'M'); }]],\n    // THE LOCKER (the owner, Oct 21): one tall narrow door, vents near its top, a steel handle; its upper half the door's top.\n    locker: [['Vented locker', (m) => { m.b(0, 0, 0, 7, 7, 7, 'B'); m.edges(0, 0, 0, 7, 7, 7, 'D'); m.b(1, 0, 7, 6, 7, 7, 'L'); m.edges(1, 0, 7, 6, 7, 7, 'D');\n        for (const y of [5, 6]) m.b(2, y, 7, 5, y, 7, 'K'); m.b(5, 2, 7, 5, 3, 7, 'M'); }]],\n    lockerup: [['Vented locker, upper', (m) => { m.b(0, 0, 0, 7, 7, 7, 'B'); m.edges(0, 0, 0, 7, 7, 7, 'D'); m.b(1, 0, 7, 6, 7, 7, 'L'); m.edges(1, 0, 7, 6, 7, 7, 'D');\n        for (const y of [4, 5, 6]) m.b(2, y, 7, 5, y, 7, 'K'); }]],\n    // THE CARGO CRATE'S SIDE (Oct 21): the right half of the drawers.\n    crateside: [['Drawer cabinet, right', (m) => { m.b(0, 0, 0, 7, 7, 7, 'B'); m.edges(0, 0, 0, 7, 7, 7, 'D');\n        for (const y of [0, 3, 6]) { m.b(0, y, 7, 6, y + 1, 7, 'L'); m.b(0, y, 7, 1, y, 7, 'M'); } }]],\n    // THE DISPLAY CASE (Oct 21): a frame of its material round glass panes, a plinth inside.\n    display: [['Glass case', (m) => { m.edges(0, 0, 0, 7, 7, 7, 'B'); m.b(0, 0, 0, 7, 0, 7, 'B'); m.b(1, 1, 1, 6, 6, 6, 'W'); m.b(3, 1, 3, 4, 2, 4, 'D'); }]],\n    planter: [['Leafy box', (m) => { m.b(0, 0, 0, 7, 3, 7, 'B'); m.b(1, 3, 1, 6, 3, 6, 'K'); m.ball(2.5, 5, 2.5, 2, '#4C9638'); m.ball(5, 5, 5, 2, '#4C9638'); m.ball(4, 6, 3, 1.5, '#7DC35A'); }]],   // leaves, unlit\n    hearth: [['Fire box', (m) => { m.b(0, 0, 0, 7, 6, 7, 'B'); m.b(1, 1, 7, 6, 5, 7, 'K'); m.b(2, 1, 7, 5, 3, 7, 'G'); m.b(2, 7, 2, 5, 7, 5, 'D'); m.b(3, 7, 3, 4, 7, 4, 'M'); }]],\n    lamppost: [['Lamp head', (m) => { m.b(3, 0, 3, 4, 4, 4, 'B'); m.b(2, 0, 2, 5, 0, 5, 'D'); m.b(2, 5, 2, 5, 7, 5, 'D'); m.b(3, 5, 3, 4, 6, 4, 'G'); }]],\n    trough: [['Water trough', (m) => { m.b(0, 0, 1, 0, 1, 6, 'D'); m.b(7, 0, 1, 7, 1, 6, 'D'); m.b(0, 2, 1, 7, 5, 6, 'B'); m.b(1, 5, 2, 6, 5, 5, '#4F86B8'); }]],   // its water\n    // THE HIDE RUG (Oct 29): a flat hide on the floor, its stitched hem a shade darker, a pale patch of fur in its middle.\n    hiderug: [['Stitched hide', (m) => { m.b(0, 0, 0, 7, 0, 7, 'B'); m.edges(0, 0, 0, 7, 0, 7, 'D'); m.b(2, 0, 2, 5, 0, 5, 'L'); m.b(3, 0, 3, 4, 0, 4, 'B'); }]],\n    // THE BONE CHANDELIER (Oct 29): a bone stem hung from the ceiling, four bone arms, the Glow Gland lit at its heart and a lit\n    // bead at each arm's tip.\n    chandelier: [['Bone arms', (m) => { m.b(3, 4, 3, 4, 7, 4, 'B'); m.b(1, 3, 3, 6, 3, 4, 'B'); m.b(3, 3, 1, 4, 3, 6, 'B'); m.b(3, 2, 3, 4, 3, 4, 'G');\n        for (const [x, z] of [[1, 3], [6, 4], [3, 1], [4, 6]]) { m.put(x, 2, z, 'D'); m.put(x, 4, z, 'G'); } m.b(3, 1, 3, 4, 1, 4, 'D'); }]],\n};\n\nexport const MACHINE_VARIANTS = Object.freeze(Object.fromEntries(Object.entries(V).map(([id, list]) =>\n    [id, Object.freeze(list.map(([label, build], i) => Object.freeze({ id: 'mm-' + id + '-' + i, label, voxels: (st) => { const m = M(MACHINE_PALETTES[id], st); build(m); return m.out(); } })))])));\n\n// THE OWNER'S PICKS (the Material Bench, Oct 1): the model each machine wears. The battery's is chosen again from\n// BATTERY_GAUGES, which can show its charge.\nexport const MACHINE_PICKS = Object.freeze({ benchi: 'mm-benchi-0', smelter: 'mm-smelter-8', electrolyzer: 'mm-electrolyzer-0',\n    chemsynth: 'mm-chemsynth-4', quantumasm: 'mm-quantumasm-3', battery: 'mm-battery-1', powercore: 'mm-powercore-0', solarpanel: 'mm-solarpanel-0',\n    crate: 'mm-crate-0', vending: 'mm-vending-0',\n    suitdock: 'mm-suitdock-0', suitdockup: 'mm-suitdockup-0',\n    emdrive: 'mm-emdrive-0', methalox: 'mm-methalox-0',\n    bed: 'mm-bed-0', table: 'mm-table-0', bench: 'mm-bench-0', shelf: 'mm-shelf-0', cabinet: 'mm-cabinet-0', barrel: 'mm-barrel-0',\n    counter: 'mm-counter-0', workbench: 'mm-workbench-0', locker: 'mm-locker-0', planter: 'mm-planter-0', hearth: 'mm-hearth-0', lamppost: 'mm-lamppost-0', trough: 'mm-trough-0',\n    lockerup: 'mm-lockerup-0', crateside: 'mm-crateside-0', display: 'mm-display-0', hiderug: 'mm-hiderug-0', chandelier: 'mm-chandelier-0' });\n// Which machines are electrical (a power light): all but the bench, a table worked by hand.\nexport const ELECTRICAL = Object.freeze(['smelter', 'electrolyzer', 'chemsynth', 'quantumasm', 'battery', 'powercore', 'solarpanel', 'suitdock', 'emdrive']);\n\n// NINE BATTERIES THAT SHOW THEIR CHARGE (the owner, Oct 1): each with a gauge (lit segments, empty to full) and a status\n// light (green charging, amber powering something, dark idle).\nconst ring = (cx, cz, r0, r1, y) => { const o = []; for (let x = 0; x < N; x++) for (let z = 0; z < N; z++) { const d = Math.hypot(x - cx, z - cz); if (d > r0 && d <= r1) o.push([x, y, z, Math.atan2(z - cz, x - cx)]); } return o; };\nconst BG = [\n    ['Block with bar', (m) => { m.b(0, 0, 1, 7, 5, 6, 'B'); m.b(0, 5, 1, 7, 5, 6, 'D'); m.b(1, 6, 3, 2, 6, 4, 'R'); m.b(5, 6, 3, 6, 6, 4, 'M');\n        m.b(0, 1, 6, 7, 3, 6, 'K'); m.gauge([1, 2, 3, 4, 5, 6].map((x) => [x, 2, 6])); m.status(6, 4, 6); }],\n    ['Cylinder with stripe', (m) => { m.cyl(3.5, 3.5, 3.2, 0, 6, 'B'); m.cyl(3.5, 3.5, 3.2, 0, 0, 'D'); m.cyl(3.5, 3.5, 1, 7, 7, 'M');\n        m.gauge([1, 2, 3, 4, 5, 6].map((y) => [[3, y, 6], [4, y, 6]])); m.status(4, 7, 4); }],\n    ['Tower gauge', (m) => { m.b(1, 0, 1, 6, 7, 6, 'B'); m.edges(1, 0, 1, 6, 7, 6, 'D'); m.b(2, 1, 6, 5, 6, 6, 'K');\n        m.gauge([1, 2, 3, 4, 5, 6].map((y) => [[3, y, 6], [4, y, 6]])); m.status(3, 7, 3); m.status(4, 7, 4); }],\n    ['Power bank', (m) => { m.b(0, 0, 1, 7, 2, 6, 'B'); m.b(1, 2, 2, 6, 2, 5, 'L'); m.b(0, 1, 6, 7, 1, 6, 'K');\n        m.gauge([[1, 1, 6], [2, 1, 6], [3, 1, 6], [4, 1, 6]]); m.status(6, 1, 6); }],\n    ['Glass column', (m) => { m.cyl(3.5, 3.5, 3.4, 0, 1, 'D'); m.cyl(3.5, 3.5, 3.4, 7, 7, 'D'); m.cyl(3.5, 3.5, 2.6, 2, 6, 'W');\n        m.gauge([2, 3, 4, 5, 6].map((y) => ring(3.5, 3.5, -1, 1.6, y).map(([x, yy, z]) => [x, yy, z])), 'G', 'W'); m.status(3, 7, 6); }],\n    ['Twin cells', (m) => { m.cyl(1.5, 3.5, 1.7, 0, 6, 'B'); m.cyl(5.5, 3.5, 1.7, 0, 6, 'B'); m.b(3, 0, 2, 4, 6, 5, 'D'); m.put(1.5, 7, 3.5, 'M'); m.put(5.5, 7, 3.5, 'M');\n        m.gauge([1, 2, 3, 4, 5].map((y) => [[3, y, 5], [4, y, 5]])); m.status(3, 7, 3); m.status(4, 7, 4); }],\n    ['Hex ring', (m) => { m.cyl(3.5, 3.5, 3.7, 0, 5, 'B'); m.cyl(3.5, 3.5, 3.7, 0, 0, 'D'); m.cyl(3.5, 3.5, 3.7, 6, 6, 'K');\n        const rr = ring(3.5, 3.5, 2.2, 3.7, 6).sort((a, b) => a[3] - b[3]), segs = [];\n        for (let i = 0; i < 8; i++) segs.push(rr.filter((c, j) => Math.floor(j * 8 / rr.length) === i).map(([x, y, z]) => [x, y, z]));\n        m.gauge(segs); for (const [x, z] of [[3, 3], [4, 4], [3, 4], [4, 3]]) m.status(x, 6, z); }],\n    ['Slab stack', (m) => { m.b(0, 0, 1, 7, 6, 6, 'B'); for (const y of [0, 6]) m.b(0, y, 1, 7, y, 6, 'D');\n        m.gauge([1, 2, 3, 4, 5].map((y) => [1, 2, 3, 4, 5, 6].map((x) => [x, y, 6]))); m.status(6, 7, 3); m.b(1, 7, 3, 2, 7, 4, 'M'); }],\n    ['Arc gauge', (m) => { m.b(0, 0, 1, 7, 6, 6, 'B'); m.b(1, 1, 6, 6, 6, 6, 'K'); m.b(2, 7, 3, 5, 7, 4, 'M');\n        const arc = []; for (let i = 0; i < 7; i++) { const a = Math.PI * (1 - i / 6); arc.push([Math.round(3.5 + Math.cos(a) * 2.6 - 0.5 + 0.5), Math.round(1.6 + Math.sin(a) * 3.2), 6]); }\n        m.gauge(arc); m.status(3, 1, 6); m.status(4, 1, 6); }],\n];\nexport const BATTERY_GAUGES = Object.freeze(BG.map(([label, build], i) => Object.freeze({ id: 'bg-' + i, label,\n    voxels: (st) => { const m = M(MACHINE_PALETTES.battery, st); build(m); return m.out(); } })));\n\n// WHAT EACH PART IS MADE OF (the owner, Oct 1: \"made with textures for their associated colored components\"): a palette\n// key -> the kube whose texture that part wears in the world, in the part's own colour. 'self' is the machine's own\n// kube (its picked texture); lights, gauges, glow and hazard paint are left plain, so they read as what they are.\nexport const MACHINE_PART_KUBE = Object.freeze({ B: 'self', D: 'self', L: 'self', M: 'Steel', C: 'Copper', W: 'Lumina Glass', K: 'Carbon' });\n\n// FOR THE GAME: which kube names are machines, and the voxels each wears (its picked model, in a state).\n// A MATERIAL VARIANT is its base machine (\"Toolbench (Iron)\" is the bench: item-ids.mjs baseItemOf), and wears its\n// material: the body's own colours (B, D, L) are rebuilt from the material's colour with the machine's palette rule,\n// so a wooden bench is a brown bench shaded exactly as the grey one is. In the world the same parts also wear the\n// material's texture (system-view buildMachineMeshes, materialOf).\nconst MACHINE_ID_BY_NAME = new Map(Object.entries(MACHINE_NAMES).map(([id, name]) => [name, id]));\nconst idOfMachine = (name) => MACHINE_ID_BY_NAME.get(baseItemOf(name)) || null;\nexport const isMachineName = (name) => !!idOfMachine(name);\nexport const machineIdOf = (name) => idOfMachine(name);   // also its texture slot (texture-dispatch.js)\nconst BODY_PARTS = new Set(['B', 'D', 'L']);\nconst _modelCache = new Map();\nexport function machineModelOf(name, st = { powered: false, fill: 0, mode: 'idle' }) {\n    const id = idOfMachine(name); if (!id) return null;\n    const key = name + '|' + (st.powered ? 1 : 0) + '|' + Math.round((st.fill || 0) * 8) + '|' + (st.mode || 'idle') ;\n    let v = _modelCache.get(key);\n    if (!v) {\n        const pick = MACHINE_VARIANTS[id].find((x) => x.id === MACHINE_PICKS[id]) || MACHINE_VARIANTS[id][0];\n        v = pick.voxels(st);\n        const hex = materialOf(name) ? itemHexOf(name) : null;\n        if (hex) {\n            const pal = palette(hex, MACHINE_PALETTES[id].G);\n            v = v.map((c) => (!c[4] && BODY_PARTS.has(c[6]) ? [c[0], c[1], c[2], pal[c[6]], ...c.slice(4)] : c));\n        }\n        _modelCache.set(key, v);\n    }\n    return v;\n}\n\n// DOORS AND RUNGS (doors.mjs, Oct 20): their icons, on the same 8-grid (x across, y up, front +z), in the item's own\n// colour. The world draws their panels itself (system-view.js doorLayerBuild); these are what the hotbar and the\n// Kubipedia show: a tall door with its parting line, a double door's leaf, a hatch lying flat, a shutter's slats under\n// their housing, a rung standing off a wall.\nexport function doorIconModel(name, kind) {\n    const hex = itemHexOf(name) || '#8a6a48', D = shade(hex, 0.62), L = mix(hex, '#ffffff', 0.25), brass = '#c9a24a', glass = '#bfe2ee';\n    const v = [], put = (x, y, z, c, g = 0) => v.push([x, y, z, c, g]);\n    const box = (x0, y0, z0, x1, y1, z1, c) => { for (let x = x0; x <= x1; x++) for (let y = y0; y <= y1; y++) for (let z = z0; z <= z1; z++) put(x, y, z, c); };\n    if (kind === 'door' || kind === 'glass' || kind === 'double') {\n        box(1, 0, 3, 1, 7, 4, D); box(6, 0, 3, 6, 7, 4, D); box(2, 7, 3, 5, 7, 4, D);            // the frame\n        if (kind === 'glass') { box(2, 0, 3, 5, 0, 4, hex); box(2, 1, 4, 5, 6, 4, glass); box(3, 1, 4, 4, 6, 4, glass); for (let y = 1; y < 7; y++) put(3, y, 3, D); }\n        else if (kind === 'double') { box(2, 0, 3, 5, 6, 4, hex); box(2, 3, 5, 2, 3, 5, brass); for (let y = 0; y < 7; y++) put(5, y, 4, L); }\n        else { box(2, 0, 3, 5, 6, 4, hex); for (let y = 0; y < 7; y++) put(3, y, 4, D); put(2, 3, 5, brass); put(5, 3, 5, brass); }   // two halves, the line between them\n        return v;\n    }\n    if (kind === 'hatch') { box(0, 5, 0, 7, 6, 7, hex); for (let x = 0; x < 8; x++) put(x, 6, 3, D); put(2, 7, 3, brass); put(5, 7, 4, brass); box(0, 4, 0, 7, 4, 0, D); return v; }\n    if (kind === 'shutter') { for (let y = 0; y < 6; y++) box(0, y, 3, 7, y, 4, y % 2 ? hex : D); box(0, 6, 2, 7, 7, 5, L); return v; }\n    if (kind === 'rung') { box(0, 0, 0, 7, 7, 1, '#6f7378'); box(1, 3, 5, 6, 3, 5, hex); box(1, 3, 2, 1, 3, 4, hex); box(6, 3, 2, 6, 3, 4, hex); return v; }\n    return null;\n}\n"],"mappings":"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","names":[],"file":"machine-models.mjs"}