fogón

← Piezas de nivel 2Objeto 3Dfogon/nivel-hielo

Bloque de hielo

de fogonCC018432 bloques
Bloque de hieloArrastrá para girarlo
// «Bloque de hielo» · 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. Entirely translucent-looking pale cyan ice in 3 shades (light cyan, sky blue, deeper blue near the bottom), with a few white diagonal crack lines and small white highlight blocks scattered on the smooth flat top; the sides show faint horizontal darker blue layers. Very clean and glossy.

// Solid, grid-aligned ice tile: every layer fills the full 48×48 footprint.
const layers = [
  "#68bad8", // deeper blue at the bottom
  "#74c5df",
  "#80cde4",
  "#75c1dc", // faint horizontal side band
  "#91d9e9",
  "#9cdeed",
  "#a9e7f1",
  "#c5f5f8"  // smooth, pale-cyan top
];

for (let z = 0; z < 8; z++) {
  box(0, 0, z, 47, 47, z, layers[z]);
}

// Sparse, subtle blue glints visible beneath the white surface details.
for (let i = 0; i < 85; i++) {
  const x = 2 + Math.floor(rand() * 44);
  const y = 2 + Math.floor(rand() * 44);
  set(x, y, 7, rand() < 0.55 ? "#b5ecf5" : "#d8fafb");
}

// Fine diagonal cracks, kept away from all four tile edges.
function crack(points) {
  for (let i = 0; i < points.length - 1; i++) {
    const [x0, y0] = points[i];
    const [x1, y1] = points[i + 1];
    const steps = Math.max(Math.abs(x1 - x0), Math.abs(y1 - y0));
    for (let j = 0; j <= steps; j++) {
      const t = j / steps;
      const x = Math.round(x0 + (x1 - x0) * t);
      const y = Math.round(y0 + (y1 - y0) * t);
      set(x, y, 7, "#f5ffff");
    }
  }
}

crack([[8, 13], [14, 19], [17, 21], [22, 27], [28, 31]]);
crack([[16, 20], [20, 18], [24, 15]]);
crack([[26, 30], [30, 28], [34, 25]]);
crack([[30, 9], [34, 13], [37, 15]]);
crack([[11, 35], [15, 32], [18, 30]]);

// Small, crisp specular highlights on the perfectly flat top.
for (const [x, y] of [
  [7, 8], [8, 8], [38, 9], [39, 9],
  [33, 19], [12, 27], [39, 35],
  [20, 39], [21, 39], [34, 40]
]) {
  set(x, y, 7, "#ffffff");
}