← Level pieces 23D assetfogon/nivel-pared-de-madera
Pared de madera
Drag to turn it// «Pared de madera» · gpt-6-sol (medium)
// A modular wall segment: exactly 48 blocks long on x (x 0..47), 10 thick on y (y 19..28), 40 tall, with flat clean ends so segments join seamlessly. Vertical wooden planks 6 wide in 3 warm brown shades with darker seams, two horizontal darker beams across the front and back at z 8 and z 30 with black iron nail heads; the top is a row of pointed palisade tips 3 blocks tall.
const plankColors = ["#d68a43", "#c77b39", "#df9650", "#cb803d", "#d18742", "#d99048", "#c57937", "#d98d46"];
const seam = "#85502e";
// Eight solid, six-block-wide planks. The full-height body has flat ends
// and an exact 48 × 10 footprint.
for (let x = 0; x < 48; x++) {
const plank = Math.floor(x / 6);
for (let y = 19; y <= 28; y++) {
for (let z = 0; z <= 36; z++) {
let color = plankColors[plank];
if (z < 3) color = "#af6633";
if (y === 19) color = z < 3 ? "#bd7139" : "#e5a157";
if (y === 28) color = z < 3 ? "#a95f30" : "#cb803e";
if (x % 6 === 5) color = seam;
set(x, y, z, color);
}
}
}
// Each plank finishes in its own chunky, three-block-tall point.
for (let start = 0; start < 48; start += 6) {
for (let y = 19; y <= 28; y++) {
box(start, y, 37, start + 5, y, 37, plankColors[start / 6]);
box(start + 1, y, 38, start + 4, y, 38, y === 19 ? "#e8a85f" : plankColors[start / 6]);
box(start + 2, y, 39, start + 3, y, 39, y === 19 ? "#efb46b" : "#dc944c");
}
// Dark grooves keep the individual tips readable.
for (let y = 19; y <= 28; y++) set(start + 5, y, 37, seam);
}
// Raised rails on both faces, with a bright upper edge and dark underside.
for (const base of [8, 30]) {
for (const [outer, inner] of [[19, 20], [28, 27]]) {
box(0, inner, base, 47, outer, base, "#714328");
box(0, inner, base + 1, 47, outer, base + 1, "#995b32");
box(0, inner, base + 2, 47, outer, base + 2, "#b8733b");
}
// One iron nail centered on each plank, front and back.
for (let x = 3; x < 48; x += 6) {
for (const y of [19, 28]) {
set(x, y, base + 1, "#26333b");
set(x, y, base + 2, "#59636a");
}
}
}import { draw } from "./assets/voxel";
import { nivelParedDeMadera } from "./assets/nivel-pared-de-madera";
// Every frame: standing on (x, y), the centre of its base.
draw(ctx, nivelParedDeMadera, x, y, { size: 64, angle: 0, t: performance.now() / 1000 });
// size: its longest side, in px
// angle: turn on the floor, in radians
// t: seconds; if it moves, that animates it# In a terminal, in the game's folder
fogon assets add nivel-pared-de-madera
# With Fogón's tools (connector)
add_assets({ slug: "<your-game>", ids: ["nivel-pared-de-madera"] })
# It lands in client/assets/nivel-pared-de-madera.ts
# https://fogon.page/object/nivel-pared-de-madera