// Run after clear-sky.js. Paused, empty pipes make casing, flights and mouths easy to inspect. const jx = BX + 5, jy = BY - 3; for (let k = 1; k <= 4; k++) placeBlock(BP_TUBE, 0, jx, jy + k, true); for (let k = 0; k < 6; k++) placeBlock(BP_TUBE, 4, jx + k, jy - k, true); for (let k = 1; k <= 4; k++) placeBlock(BP_TUBE, 0, jx + 5, jy - 5 - k, true); const hx = BX + 21, hy = BY - 3; for (let k = 1; k <= 4; k++) placeBlock(BP_BELT, 1, hx - k, hy, true); for (let k = 0; k < 6; k++) placeBlock(BP_TUBE, 4, hx + k, hy - k, true); for (let k = 1; k <= 4; k++) placeBlock(BP_BELT, 1, hx + 5 + k, hy - 5, true); for (let k = 0; k < 4; k++) placeBlock(BP_TUBE, 5, BX + 32 + k, BY - 10 + k, true); window.JOINTS = { verticalIn: [jx * 4 + 2, jy * 4 + 4], verticalOut: [(jx + 5) * 4 + 2, (jy - 5) * 4], beltIn: [hx * 4, hy * 4 + 2], beltOut: [(hx + 6) * 4, (hy - 5) * 4 + 2], free: [(BX + 35) * 4 + 4, (BY - 7) * 4 + 4] }; window.CAM = [(BX + 20) * 4, (BY - 5) * 4]; // Keep the camera-following bot out of the joint close-ups. drawBot = () => {};