fogón

← Level pieces 23D assetfogon/nivel-palanca

Palanca

by fogonCC02682 blocks
PalancaDrag to turn it
// «Palanca» · gpt-6-sol (medium)
// A floor lever: a dark stone base block 20x14x8 centered on the floor with a curved slot on top, and a thick iron lever arm 3x3 and 20 long tilting out of the slot, ending in a big round red knob (radius 4).

// Dark stone base: 20 × 14 × 8, centered on the floor.
box(14, 17, 0, 33, 30, 7, "#465762");
box(14, 17, 0, 33, 30, 1, "#34434d");
box(14, 17, 7, 33, 30, 7, "#657780");
box(15, 18, 7, 32, 29, 7, "#72858b");

// Clean stone highlights and a little restrained surface variation.
box(14, 17, 2, 33, 17, 2, "#52646e");
box(14, 17, 6, 33, 17, 6, "#52646e");
box(14, 18, 2, 14, 29, 2, "#52646e");
for (let i = 0; i < 24; i++) {
  const x = 15 + Math.floor(rand() * 18);
  const y = 18 + Math.floor(rand() * 12);
  const z = 2 + Math.floor(rand() * 4);
  if (y === 17 || x === 14) set(x, y, z, "#596b74");
}

// Recessed, rounded slot running front to back.
for (let y = 19; y <= 28; y++) {
  const halfWidth = (y === 19 || y === 28) ? 1 : 2;
  for (let x = 24 - halfWidth; x <= 24 + halfWidth; x++) {
    set(x, y, 7, "#192831");
    set(x, y, 6, "#26353d");
  }
}
// Bright metal edging follows the slot's rounded ends.
for (let y = 20; y <= 27; y++) {
  set(21, y, 7, "#a5b8bc");
  set(27, y, 7, "#82999f");
}
for (let x = 23; x <= 25; x++) {
  set(x, 18, 7, "#b5c8c9");
  set(x, 29, 7, "#82999f");
}
set(22, 19, 7, "#a5b8bc");
set(26, 19, 7, "#a5b8bc");
set(22, 28, 7, "#82999f");
set(26, 28, 7, "#82999f");

// Chunky corner bolts on the top and front.
for (const x of [17, 30]) {
  for (const y of [20, 27]) {
    set(x, y, 7, "#b7c9c8");
    set(x, y, 8, "#d5dfd9");
  }
  set(x, 17, 4, "#a9b9b9");
  set(x, 17, 3, "#6f858b");
}

// Fixed hinge beneath the moving arm.
box(22, 22, 7, 26, 26, 8, "#778e97");
box(23, 23, 8, 25, 25, 8, "#b2c8ca");

part("palanca", [24, 24, 8]);

// Thick 3 × 3 iron arm, 20 blocks long, leaning toward the viewer.
for (let z = 8; z <= 27; z++) {
  const y = 24 - Math.round((z - 8) * 0.36);
  box(23, y - 1, z, 25, y + 1, z, "#a6bbc1");
  for (let x = 23; x <= 25; x++) set(x, y - 1, z, "#d0dcda");
  set(25, y + 1, z, "#718990");
}

// Broad collar where the iron disappears into the red handle.
box(22, 15, 26, 26, 19, 27, "#70878e");
box(23, 14, 27, 25, 18, 27, "#c1d1ce");

// Round red knob with a darker underside and glossy upper face.
sphere(24, 17, 29, 4, "#cf3035");
for (let x = 20; x <= 28; x++) {
  for (let y = 13; y <= 21; y++) {
    for (let z = 25; z <= 33; z++) {
      const d2 = (x - 24) ** 2 + (y - 17) ** 2 + (z - 29) ** 2;
      if (d2 <= 16) {
        if (z >= 30) set(x, y, z, "#f24745");
        if (z <= 27) set(x, y, z, "#a92530");
      }
    }
  }
}
set(23, 14, 31, "#ff9b82");
set(24, 14, 31, "#ff9b82");
set(23, 14, 30, "#ff766a");

animate("palanca", { type: "swing", axis: "x", amplitude: 0.5, speed: 1.5 });