fogón

← Kit de nivelesObjeto 3Dfogon/nivel-pared-de-ladrillo

Pared de ladrillo

de fogonCC019200 bloques
Pared de ladrilloArrastrá para girarlo
// «Pared de ladrillo» · gpt-6-sol (medium)
// A modular red brick wall segment: exactly 48 blocks long on x (x 0..47), 10 thick on y (y 19..28), 40 tall (z 0..39), a solid flat-sided slab so segments line up end to end. Bricks are 6 blocks long and 3 tall, in a running bond (every other row offset by 3), with 1-block light grey mortar lines recessed 1 block deep, on both the front (-y) and back faces; bricks in 3 shades of red-orange, a few slightly darker. A 2-block tall light grey stone cap along the top, flush with the ends.

const brick = ["#d95a38", "#e66a3e", "#c94b34", "#b94432"];
const mortar = "#bfc2bd";
const mortarShade = "#aeb3af";

// Solid, grid-aligned core. The exposed mortar sits one block behind
// the brick faces.
box(0, 19, 0, 47, 28, 37, "#c75538");
box(0, 20, 0, 47, 20, 37, mortar);
box(0, 27, 0, 47, 27, 37, mortar);

for (let z = 0; z < 38; z++) {
  const row = Math.floor(z / 4);
  const horizontalJoint = z % 4 === 3;
  const seam = row % 2 === 0 ? 5 : 2;

  for (let x = 0; x < 48; x++) {
    const verticalJoint = (x - seam + 48) % 6 === 0;
    const brickIndex = Math.floor((x - seam + 48) / 6);
    const shade = (brickIndex * 7 + row * 3) % 13 === 0
      ? 3
      : (brickIndex * 5 + row * 7) % 3;
    let color = brick[shade];

    if (z % 4 === 0 && shade !== 3) color = "#eb7045";
    if (z % 4 === 2 && shade !== 3) color = brick[Math.min(shade + 1, 2)];

    // Front and back use the same running-bond pattern.
    if (!horizontalJoint && !verticalJoint) {
      set(x, 19, z, color);
      set(x, 28, z, color);
    } else {
      set(x, 20, z, horizontalJoint ? mortarShade : mortar);
      set(x, 27, z, horizontalJoint ? mortarShade : mortar);
    }

    // Keep both cut ends flat and fully filled.
    set(x, 19, z, get(x, 19, z) || mortar);
    set(x, 28, z, get(x, 28, z) || mortar);
  }

  // Simple brick-and-mortar pattern on the narrow end faces.
  for (const x of [0, 47]) {
    for (let y = 20; y <= 27; y++) {
      set(x, y, z, horizontalJoint ? mortarShade : brick[(row + y) % 3]);
    }
  }
}

// Two-block stone cap, flush with all four edges.
box(0, 19, 38, 47, 28, 38, "#b5bab9");
box(0, 19, 39, 47, 28, 39, "#d8dbd5");