// Run after clear-sky.js: filling, blocked, set, and hot machinery in one view. const my = BY - 4; const filling = addMold('ingot', BX + 3, my, RSTONE, true); filling.cavs[0].slice(0, 11).forEach(i => setCell(i, MCU, 1160, 0)); const blocked = addMold('ingot', BX + 12, my, RSTONE, true); blocked.cavs[0].forEach(i => setCell(i, COPPER, 30, F_CAST)); for (let y = blocked.y + blocked.h; y < blocked.y + blocked.h + 2; y++) for (let x = blocked.x; x < blocked.x + blocked.w; x++) setCell(y * W + x, STONE, 30, 0); const bit = addMold('bit', BX + 23, my - 1, RSTONE, true); bit.cavs[0].forEach(i => setCell(i, COPPER, 30, F_CAST)); checkMolds(); const fan = addMachine('fan', BX + 30, my, 0); for (let y = fan.y; y < fan.y + fan.h; y++) for (let x = fan.x; x < fan.x + fan.w; x++) temp[y * W + x] = 900; tick = (30 - fan.id % 30) % 30; machinesTick(); if (filling.fill < 0.35 || filling.fill > 0.45 || !blocked.blocked || bit.state !== 'ready' || !(fan.hot > 760)) throw Error('Message scene did not reach its intended states'); if (!hoverInfo(blocked.x + 1, blocked.y + 1).t2.includes('blocked: leave one open block under it') || !hoverInfo(bit.x + 1, bit.y + 1).t2.includes('100% set · press F') || !hoverInfo(fan.x + 1, fan.y + 1).t2.includes('900°C · melts at 1085°C')) throw Error('Missing hover details'); CAM = [filling.x + 60, filling.y + 4];