fogón

← Piezas de nivel 2Objeto 3Dfogon/nivel-piso-de-metal

Piso de metal

de fogonCC018432 bloques
Piso de metalArrastrá para girarlo
// «Piso de metal» · gpt-6-sol (medium)
// A square ground tile that tiles seamlessly: a full 48x48 footprint (x 0..47, y 0..47), 8 blocks thick (z 0..7), a perfectly flat solid slab with straight vertical sides and no gaps. A sci-fi metal floor plate: light grey steel top divided into four 24x24 panels by darker 1-block seams, each panel with a raised diamond-tread pattern of lighter blocks and a small dark bolt at each corner; a yellow and black hazard stripe border 2 blocks wide along all four edges of the top; the sides dark grey metal.

// Solid, grid-aligned 48×48×8 floor tile.
box(0, 0, 0, 47, 47, 7, "#56636d");

// Straight metal sides with crisp horizontal bands.
for (let z = 0; z <= 6; z++) {
  const color =
    z === 1 ? "#414d57" :
    z === 5 ? "#71818b" :
    z === 6 ? "#485761" : "#56636d";

  for (let i = 0; i < 48; i++) {
    set(i, 0, z, color);
    set(i, 47, z, color);
    set(0, i, z, color);
    set(47, i, z, color);
  }
}

// Four light-steel panels, distinguished by subtle clean shading.
for (let y = 2; y <= 45; y++) {
  for (let x = 2; x <= 45; x++) {
    const panel = (x >= 24 ? 1 : 0) + (y >= 24 ? 2 : 0);
    const shades = ["#b9c9d1", "#becdd5", "#b6c6ce", "#bbcad2"];
    set(x, y, 7, shades[panel]);
  }
}

// One-block seams and their bright machined edges.
for (let i = 2; i <= 45; i++) {
  set(23, i, 7, "#526570");
  set(i, 23, 7, "#526570");
  set(22, i, 7, "#d8e2e5");
  set(i, 22, 7, "#d8e2e5");
}

// Raised-looking diamond tread, kept within the tile's flat z=7 top.
const diamonds = [
  [7, 13, 19], [29, 35, 41]
];
for (const xs of diamonds) {
  for (const ys of diamonds) {
    for (const cx of xs) {
      for (const cy of ys) {
        set(cx, cy - 2, 7, "#edf5f5");
        set(cx - 1, cy - 1, 7, "#e4eef0");
        set(cx + 1, cy - 1, 7, "#f1f7f6");
        set(cx - 2, cy, 7, "#dce8eb");
        set(cx + 2, cy, 7, "#eef6f6");
        set(cx - 1, cy + 1, 7, "#dce8eb");
        set(cx + 1, cy + 1, 7, "#e4eef0");
        set(cx, cy + 2, 7, "#d4e2e6");
      }
    }
  }
}

// Dark corner bolts on every panel, with a tiny steel highlight.
for (const x of [4, 20, 27, 44]) {
  for (const y of [4, 20, 27, 44]) {
    set(x, y, 7, "#374750");
    set(x - 1, y - 1, 7, "#eef4f3");
  }
}

// Two-block hazard border. The stripe period divides 48, so adjacent
// copies continue the same diagonal pattern seamlessly.
for (let y = 0; y < 48; y++) {
  for (let x = 0; x < 48; x++) {
    if (x < 2 || x >= 46 || y < 2 || y >= 46) {
      const stripe = (x + y) % 8 < 4;
      set(x, y, 7, stripe ? "#ffd43d" : "#303b43");
    }
  }
}