27 lines
1.4 KiB
JavaScript
27 lines
1.4 KiB
JavaScript
// Self-contained grid. Rows: UR, DR, DL, UL. Each run has both end joins.
|
|
// Columns: horizontal edge, horizontal corner, vertical edge, vertical corner;
|
|
// repeat those four with the straight travel reversed. Camera fits --zoom 6 --viewport 2100x1300.
|
|
// Run after clear-sky.js or by itself. Empty, paused screws expose the whole casing.
|
|
money = 50000;
|
|
for (let y = 64; y < 280; y++) for (let x = 112; x < 456; x++) {
|
|
const i = y * W + x;
|
|
setCell(i, EMPTY, 20, 0); bgm[i] = 0;
|
|
}
|
|
for (let x = 112; x < 456; x++) surfY[x] = 280;
|
|
window.T62_JOINTS = [];
|
|
for (let row = 0; row < 4; row++) for (let col = 0; col < 8; col++) {
|
|
const v = 4 + row, [dx, dy] = SCREW_DIRS[v], vertical = !!(col & 2), corner = !!(col & 1);
|
|
const x = 33 + col * 10 + (dx < 0 ? 4 : 0), y = 23 + row * 12 + (dy < 0 ? 4 : 0);
|
|
const sv = vertical ? (dy < 0 ? 0 : 2) : (dx > 0 ? 1 : 3), straight = col < 4 ? sv : (sv + 2) % 4;
|
|
for (let k = 0; k < 3; k++) placeBlock(BP_SCREW, v, x + k * dx, y + k * dy, true);
|
|
for (const end of [-1, 1]) {
|
|
const ex = x + (end > 0 ? 2 * dx : 0), ey = y + (end > 0 ? 2 * dy : 0);
|
|
const nx = ex + (vertical && !corner ? 0 : end * dx), ny = ey + (!vertical && !corner ? 0 : end * dy);
|
|
for (let k = 0; k < 2; k++) placeBlock(BP_SCREW, straight, nx + (vertical ? 0 : k * end * dx), ny + (vertical ? k * end * dy : 0), true);
|
|
T62_JOINTS.push({v, end, vertical, corner, straight, bx:ex, by:ey});
|
|
}
|
|
}
|
|
updateRoof();
|
|
window.CAM = [284, 168];
|
|
drawBot = () => {};
|