// palm house: long glass hall with a dome in the middle
var y0 = 10;
// ground
fill(0, y0 - 2, 0, 71, y0, 55, "grass_block");
// brick base of the hall
fill(8, y0 + 1, 18, 63, y0 + 3, 38, "bricks");
fill(9, y0 + 1, 19, 62, y0 + 3, 37, "air");
fill(9, y0 + 1, 19, 62, y0 + 1, 37, "stone_bricks");
// glass walls
var x, y, z, i;
for (y = y0 + 4; y <= y0 + 14; y++) {
for (x = 8; x <= 63; x++) {
if (x % 4 === 0) {
pb(x, y, 18, "green_concrete");
pb(x, y, 38, "green_concrete");
} else {
pb(x, y, 18, "glass");
pb(x, y, 38, "glass");
}
}
for (z = 18; z <= 38; z++) {
if (z % 4 === 0) {
pb(8, y, z, "green_concrete");
pb(63, y, z, "green_concrete");
} else {
pb(8, y, z, "glass");
pb(63, y, z, "glass");
}
}
}
// glass roof over the hall
fill(8, y0 + 15, 18, 63, y0 + 15, 38, "glass");
for (x = 8; x <= 63; x += 4) {
fill(x, y0 + 15, 18, x, y0 + 15, 38, "green_concrete");
}
// dome in the middle
makeSphere(35, y0 + 15, 28, "glass", 10, true);
fill(25, y0 + 4, 18, 45, y0 + 15, 38, "air");
makeCylinder(35, y0 + 25, 28, "green_concrete", 2, 2, false);
// doors at both ends
fill(8, y0 + 4, 27, 8, y0 + 6, 29, "air");
fill(63, y0 + 4, 27, 63, y0 + 6, 29, "air");
ps(8, y0 + 4, 28, "dark_oak_door[facing=west,half=lower,hinge=left]");
ps(8, y0 + 5, 28, "dark_oak_door[facing=west,half=upper,hinge=left]");
ps(63, y0 + 4, 28, "dark_oak_door[facing=east,half=lower,hinge=right]");
ps(63, y0 + 5, 28, "dark_oak_door[facing=east,half=upper,hinge=right]");
// palms inside
function tree(px, pz, h) {
var k;
for (k = 0; k < h; k++) pb(px, y0 + 4 + k, pz, "jungle_log");
for (k = -2; k <= 2; k++) {
pb(px + k, y0 + 4 + h, pz, "jungle_leaves");
pb(px, y0 + 4 + h, pz + k, "jungle_leaves");
}
pb(px, y0 + 5 + h, pz, "jungle_leaves");
}
tree(14, 24, 6);
tree(20, 32, 7);
tree(28, 24, 8);
tree(35, 28, 10);
tree(44, 32, 7);
tree(52, 24, 8);
tree(58, 32, 6);
// planting beds
fill(12, y0 + 3, 22, 18, y0 + 3, 26, "podzol");
fill(24, y0 + 3, 30, 30, y0 + 3, 34, "podzol");
fill(44, y0 + 3, 22, 50, y0 + 3, 26, "podzol");
fill(52, y0 + 3, 30, 58, y0 + 3, 34, "podzol");
// gallery walkway
fill(12, y0 + 9, 20, 20, y0 + 9, 22, "spruce_planks");
fill(45, y0 + 9, 34, 58, y0 + 9, 36, "spruce_planks");
// stairs up to the gallery
for (i = 0; i < 6; i++) {
ps(22 + i, y0 + 4 + i, 21, "spruce_stairs[facing=west]");
}
// lanterns
for (i = 0; i < 6; i++) {
pb(12 + i * 8, y0 + 14, 28, "lantern");
}
// path outside
fill(0, y0, 27, 7, y0, 29, "gravel");
fill(64, y0, 27, 71, y0, 29, "gravel");
// a couple of trees in the park
tree(5, 10, 5);
tree(66, 46, 5);