fogón

← Piezas de nivel 2Objeto 3Dfogon/nivel-pozo-con-pinchos

Pozo con pinchos

de fogonCC018414 bloques
Pozo con pinchosArrastrá para girarlo
// «Pozo con pinchos» · gpt-6-sol (medium)
// A spike pit tile: a full 48x48 footprint, 12 thick (z 0..11). A stone border 6 blocks wide around all four edges with a grass top, and inside it a sunken pit (x 6..41, y 6..41) whose floor is at z 2, filled with a dense grid of sharp steel spikes (pyramids 3 wide at the base, 8 tall) in light silver with darker shading and a few red tips.

// Solid stone foundation and recessed pit floor.
box(0, 0, 0, 47, 47, 2, "#626d76");
box(6, 6, 2, 41, 41, 2, "#48545e");

// Six-block-wide stone rim.
box(0, 0, 3, 47, 5, 10, "#929da5");
box(0, 42, 3, 47, 47, 10, "#929da5");
box(0, 6, 3, 5, 41, 10, "#929da5");
box(42, 6, 3, 47, 41, 10, "#929da5");

// Crisp highlights along the inside walls.
box(5, 6, 9, 5, 41, 10, "#b4bec4");
box(42, 6, 9, 42, 41, 10, "#b4bec4");
box(6, 5, 9, 41, 5, 10, "#b4bec4");
box(6, 42, 9, 41, 42, 10, "#b4bec4");

// Grass cap, kept exactly within the tile footprint.
box(0, 0, 11, 47, 5, 11, "#58c94b");
box(0, 42, 11, 47, 47, 11, "#58c94b");
box(0, 6, 11, 5, 41, 11, "#58c94b");
box(42, 6, 11, 47, 41, 11, "#58c94b");

// Sparse, clean grass highlights.
for (let x = 0; x < 48; x++) {
  for (let y = 0; y < 48; y++) {
    if (get(x, y, 11) && rand() < 0.055) {
      set(x, y, 11, rand() < 0.5 ? "#73dc59" : "#46b840");
    }
  }
}

// Dense, eight-block-tall steel spikes.
for (let cx = 7; cx <= 39; cx += 4) {
  for (let cy = 7; cy <= 39; cy += 4) {
    // Broad, shaded three-by-three base.
    for (let z = 3; z <= 4; z++) {
      for (let dx = -1; dx <= 1; dx++) {
        for (let dy = -1; dy <= 1; dy++) {
          set(cx + dx, cy + dy, z,
            dy === -1 ? "#aebbc3" : dx === 1 ? "#778994" : "#93a4ae");
        }
      }
    }

    // Narrowing shoulder and bright, sharp point.
    for (let z = 5; z <= 6; z++) {
      set(cx - 1, cy - 1, z, "#e2edf0");
      set(cx,     cy - 1, z, "#c7d6dc");
      set(cx - 1, cy,     z, "#aabcc5");
      set(cx,     cy,     z, "#81939e");
    }
    for (let z = 7; z <= 9; z++) {
      set(cx, cy, z, z === 9 ? "#f2f8f8" : "#d8e5e9");
    }

    // A few ominous red tips, scattered but easy to read.
    const red = ((cx * 7 + cy * 11) % 17 === 0);
    set(cx, cy, 10, red ? "#ed4944" : "#f7fcfb");
    if (red) set(cx, cy, 9, "#d46561");
  }
}