← Kit de nivelesObjeto 3Dfogon/nivel-pared-de-ladrillo
Pared de ladrillo
Arrastrá 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");import { draw } from "./assets/voxel";
import { nivelParedDeLadrillo } from "./assets/nivel-pared-de-ladrillo";
// En cada cuadro: parado sobre (x, y), el centro de su base.
draw(ctx, nivelParedDeLadrillo, x, y, { size: 64, angle: 0, t: performance.now() / 1000 });
// size: lo que mide en px su lado más largo
// angle: giro sobre el piso, en radianes
// t: segundos; si se mueve, se anima solo con eso# En una terminal, en la carpeta del juego
fogon assets add nivel-pared-de-ladrillo
# Con las herramientas de Fogón (conector)
add_assets({ slug: "<tu-juego>", ids: ["nivel-pared-de-ladrillo"] })
# Queda en client/assets/nivel-pared-de-ladrillo.ts
# https://fogon.page/object/nivel-pared-de-ladrillo