// steampunk airship moored to a mast
var x, y, z, i;
// ground
fill(-25, -1, -30, 25, -1, 30, 'stone');
fill(-25, 0, -30, 25, 0, 30, 'grass_block');
// landing platform
fill(-12, 0, -12, 12, 0, 20, 'stone_bricks');
// balloon - big oval made of copper
var cy = 26;
for (z = -16; z <= 16; z++) {
for (y = -6; y <= 6; y++) {
for (x = -6; x <= 6; x++) {
var v = (x * x) / 36.0 + (y * y) / 36.0 + (z * z) / 256.0;
if (v <= 1) {
pb(x, cy + y, z, 'copper_block');
}
}
}
}
// gold stripes
for (z = -12; z <= 12; z += 6) {
for (y = -6; y <= 6; y++) {
for (x = -6; x <= 6; x++) {
var v2 = (x * x) / 36.0 + (y * y) / 36.0 + (z * z) / 256.0;
if (v2 <= 1 && v2 > 0.75) {
pb(x, cy + y, z, 'gold_block');
}
}
}
}
// tail fins
for (i = 0; i < 6; i++) {
fill(0, cy + 6, -16 + i, 0, cy + 9, -16 + i, 'oak_planks');
fill(-6 - i, cy, -16 + i, -6, cy, -16 + i, 'oak_planks');
fill(6, cy, -16 + i, 6 + i, cy, -16 + i, 'oak_planks');
}
// gondola under the balloon
fill(-2, 15, -10, 2, 19, 10, 'oak_planks');
fill(-1, 16, -9, 1, 18, 9, 'air');
// windows
for (z = -8; z <= 8; z += 2) {
pb(-2, 17, z, 'glass');
pb(2, 17, z, 'glass');
}
pb(0, 17, 10, 'glass');
pb(0, 16, 10, 'glass');
// ropes holding the gondola
for (y = 20; y <= 21; y++) {
pb(-2, y, -8, 'oak_fence');
pb(2, y, -8, 'oak_fence');
pb(-2, y, 8, 'oak_fence');
pb(2, y, 8, 'oak_fence');
}
// propellers
for (i = -1; i <= 1; i += 2) {
fill(i * 3, 22, -8, i * 7, 22, -8, 'iron_block');
fill(i * 8, 19, -8, i * 8, 25, -8, 'iron_block');
fill(i * 8, 22, -11, i * 8, 22, -5, 'iron_block');
}
// mooring mast
fill(-1, 1, 18, 1, 28, 20, 'iron_block');
fill(0, 1, 19, 0, 28, 19, 'iron_bars');
// ropes to the mast
for (i = 0; i < 6; i++) {
pb(0, 26 - i, 17 - i, 'oak_fence');
}
// inside the gondola
pb(0, 16, 8, 'crafting_table');
pb(0, 16, -8, 'furnace');
pb(-1, 16, 0, 'chest');
ps(1, 16, 2, 'red_bed[facing=north,part=foot]');
ps(1, 16, 1, 'red_bed[facing=north,part=head]');
pb(0, 18, 0, 'lantern');
// some barrels on the platform
pb(-8, 1, 5, 'barrel');
pb(-8, 1, 6, 'barrel');
pb(8, 1, 5, 'barrel');