fogón

← Kit de nivelesObjeto 3Dfogon/nivel-piedra

Bloque de piedra

de fogonCC018432 bloques
Bloque de piedraArrastrá para girarlo
// «Bloque de piedra» · gpt-6-sol (medium)
// A square stone ground tile that tiles seamlessly: a full 48x48 footprint (x 0..47, y 0..47), 8 blocks thick (z 0..7), flat with straight vertical sides. The top surface is made of large light-grey square flagstones about 12x12 blocks each, separated by 1-block darker grey grout lines that line up with the edges so neighboring tiles continue the pattern; a few thin dark cracks and a little moss green in some grout. The sides show stacked grey stone layers in 2-3 shades, darker toward the bottom.

// Full-size modular stone tile: 48 × 48 × 8.
const layers = [
  "#737c80", "#7b8588", "#899397",
  "#929da0", "#9da8aa",
  "#a9b3b5", "#b3bdbf"
];

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

const flagColors = ["#c7d0cf", "#cbd3d2", "#d0d7d5", "#c4cecd"];
const edgeColors = ["#b5c0c0", "#bbc5c4", "#bfc9c7", "#b3bebe"];

for (let y = 0; y < 48; y++) {
  for (let x = 0; x < 48; x++) {
    const lx = x % 12;
    const ly = y % 12;

    if (lx === 0 || ly === 0) {
      // One-block grout grid, repeated exactly at every tile boundary.
      let color = "#747e80";
      if (rand() < 0.12) color = "#808a89";
      set(x, y, 7, color);
    } else {
      const stone = ((Math.floor(x / 12) * 3 + Math.floor(y / 12) * 5) % 4);
      const edge = lx === 1 || lx === 11 || ly === 1 || ly === 11;
      let color = edge ? edgeColors[stone] : flagColors[stone];
      if (!edge && rand() < 0.035) color = "#d9dfdc";
      set(x, y, 7, color);
    }
  }
}

// Sparse moss tucked into grout, not across the walking surface.
for (const [x0, y0, dx, dy, length] of [
  [12, 5, 0, 1, 4], [29, 24, 1, 0, 4],
  [36, 39, 0, 1, 3], [6, 12, 1, 0, 3],
  [24, 17, 0, 1, 3]
]) {
  for (let i = 0; i < length; i++) {
    set(x0 + dx * i, y0 + dy * i, 7,
      i % 3 === 0 ? "#668b69" : "#7a9b72");
  }
}

// A few fine, short cracks confined to individual flagstones.
for (const [x, y] of [
  [16, 5], [17, 5], [18, 6], [18, 7], [19, 7],
  [39, 16], [38, 17], [37, 17], [37, 18],
  [6, 30], [7, 31], [8, 31], [8, 32],
  [29, 40], [30, 40], [31, 41]
]) {
  set(x, y, 7, "#899395");
}

// Straight exposed sides with small, regularly spaced masonry joints.
for (const z of [1, 2, 4, 5]) {
  const offset = z <= 2 ? 0 : 6;
  for (let p = offset; p < 48; p += 12) {
    const seam = z <= 2 ? "#626d72" : "#849093";
    set(p, 0, z, seam);
    set(p, 47, z, seam);
    set(0, p, z, seam);
    set(47, p, z, seam);
  }
}