// giant stag beetle on a log
var y0 = 0;
// ground
fill(-25, y0 - 1, -30, 25, y0 - 1, 30, 'dirt');
fill(-25, y0, -30, 25, y0, 30, 'grass_block');
// fallen log
var x, y, z;
for (z = -25; z <= 25; z++) {
for (x = -4; x <= 4; x++) {
for (y = y0 + 1; y <= y0 + 7; y++) {
if ((x * x) / 16 + ((y - (y0 + 4)) * (y - (y0 + 4))) / 9 <= 1) {
pb(x, y, z, 'spruce_log');
}
}
}
}
// beetle body (abdomen)
for (z = -2; z <= 14; z++) {
for (x = -6; x <= 6; x++) {
for (y = y0 + 8; y <= y0 + 14; y++) {
pb(x, y, z, 'black_concrete');
}
}
}
// thorax
for (z = -8; z <= -3; z++) {
for (x = -5; x <= 5; x++) {
for (y = y0 + 8; y <= y0 + 13; y++) {
pb(x, y, z, 'black_concrete');
}
}
}
// head
for (z = -13; z <= -9; z++) {
for (x = -4; x <= 4; x++) {
for (y = y0 + 8; y <= y0 + 12; y++) {
pb(x, y, z, 'black_concrete');
}
}
}
// eyes
pb(-4, y0 + 11, -13, 'redstone_block');
pb(4, y0 + 11, -13, 'redstone_block');
// mandibles
for (z = -14; z >= -22; z--) {
pb(-4, y0 + 11, z, 'black_concrete');
pb(4, y0 + 11, z, 'black_concrete');
}
for (x = -4; x <= -2; x++) { pb(x, y0 + 11, -22, 'black_concrete'); }
for (x = 2; x <= 4; x++) { pb(x, y0 + 11, -22, 'black_concrete'); }
// antennae
pb(-3, y0 + 13, -13, 'black_concrete');
pb(-3, y0 + 14, -14, 'black_concrete');
pb(3, y0 + 13, -13, 'black_concrete');
pb(3, y0 + 14, -14, 'black_concrete');
// legs
var legZ = [-8, -3, 2];
var i;
for (i = 0; i < legZ.length; i++) {
z = legZ[i];
for (y = y0 + 2; y <= y0 + 8; y++) {
pb(-8, y, z, 'black_concrete');
pb(8, y, z, 'black_concrete');
}
for (x = -8; x <= -6; x++) { pb(x, y0 + 8, z, 'black_concrete'); }
for (x = 6; x <= 8; x++) { pb(x, y0 + 8, z, 'black_concrete'); }
}
// seam on the back
for (z = -2; z <= 14; z++) {
pb(0, y0 + 14, z, 'gray_concrete');
}
// mushrooms and ferns
for (i = 0; i < 40; i++) {
x = -20 + ((i * 7) % 40);
z = -25 + ((i * 11) % 50);
if (x > -6 && x < 6) { continue; }
if (i % 3 === 0) { pb(x, y0 + 1, z, 'red_mushroom'); }
else if (i % 3 === 1) { pb(x, y0 + 1, z, 'brown_mushroom'); }
else { pb(x, y0 + 1, z, 'fern'); }
}