fogón

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

Bloque de arena

de fogonCC018567 bloques
Bloque de arenaArrastrá para girarlo
// «Bloque de arena» · 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. The top 2 layers (z 6..7) are warm pale sand in 3 shades with a light speckled random pattern and two or three tiny ripple lines running across x; the sides are slightly darker sand with a thin layer of tan sandstone at the bottom (z 0..1). On top, a small starfish-orange shell and two tiny pebbles away from the edges.

const topSand = ["#f8dda0", "#f4d493", "#ffe3aa"];
const sideSand = ["#dfba7c", "#e7c48a", "#edcc91"];
const bottomSand = ["#c99d63", "#d4aa70"];

for (let z = 0; z <= 7; z++) {
  for (let y = 0; y < 48; y++) {
    for (let x = 0; x < 48; x++) {
      let color;
      if (z < 2) {
        color = bottomSand[rand() < 0.12 ? 1 : 0];
      } else if (z < 6) {
        color = sideSand[z === 5 ? 2 : rand() < 0.08 ? 0 : 1];
      } else {
        color = topSand[rand() < 0.045 ? 2 : rand() < 0.11 ? 1 : 0];
      }
      set(x, y, z, color);
    }
  }
}

// Low, continuous wind ripples cross the tile without changing its flat surface.
for (const y of [11, 32, 40]) {
  for (let x = 0; x < 48; x++) {
    set(x, y, 7, "#ffe7b0");
    if (x % 7 < 5) set(x, y + 1, 7, "#f5d99b");
  }
}

// A small, chunky orange fan shell, with its narrow hinge toward the back.
for (let y = 19; y <= 28; y++) {
  const width = Math.floor((28 - y) * 0.58) + 1;
  for (let x = 24 - width; x <= 24 + width; x++) {
    const edge = Math.abs(x - 24) === width;
    set(x, y, 8, edge ? "#d9683e" : "#f58b4e");
    if (!edge && y >= 20 && y <= 26 && Math.abs(x - 24) <= width - 1) {
      set(x, y, 9, "#f89a59");
    }
  }
}
for (const dx of [-3, -1, 1, 3]) {
  for (let y = 20; y <= 25; y++) {
    const x = 24 + Math.round(dx * (28 - y) / 9);
    if (get(x, y, 9)) set(x, y, 9, "#ffd080");
  }
}
box(23, 27, 8, 25, 28, 9, "#df7141");

// Two tiny rounded pebbles, safely inside the tile edges.
set(11, 34, 8, "#a99c88");
box(12, 34, 8, 13, 35, 8, "#c7b9a0");
set(12, 34, 9, "#eee0bd");

box(35, 14, 8, 37, 15, 8, "#9fa9a4");
set(36, 14, 9, "#d7ddd1");
set(35, 14, 9, "#bcc9c0");